[Intel-gfx] [PATCH i-g-t v2 2/7] lib/ioctl_wrappers: Separate ring BSD1 from BSD2 checks

Dave Gordon david.s.gordon at intel.com
Mon Mar 7 12:34:05 UTC 2016


On 07/03/16 11:56, Dave Gordon wrote:
> On 02/03/16 18:10, Derek Morton wrote:
>> Some platforms have ring BSD available but no BSD2.
>> Because of the current verification, tests involving ring BSD1
>> will be skipped if no BSD2 is available.
>>
>> Decoupling the checks will allow running the BSD1 specific tests
>> on these platforms.
>>
>> Based on a patch originally submitted by Gabriel Feceoru to
>> patchwork-hook-test branch.
>>
>> Signed-off-by: Derek Morton <derek.j.morton at intel.com>
>> ---
>>   lib/ioctl_wrappers.c | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
>> index f42e2c9..a4c6aa4 100644
>> --- a/lib/ioctl_wrappers.c
>> +++ b/lib/ioctl_wrappers.c
>> @@ -1432,8 +1432,10 @@ void gem_require_ring(int fd, int ring_id)
>>
>>       /* silly ABI, the kernel thinks everyone who has BSD also has
>> BSD2 */
>>       if ((ring_id & ~(3<<13)) == I915_EXEC_BSD) {
>> -        if (ring_id & (3 << 13))
>> +        if (ring_id & (2 << 13))
>>               igt_require(gem_has_bsd2(fd));
>> +        if (ring_id & (1 << 13))
>> +            igt_require(gem_has_bsd(fd));
>>       }
>>   }
>>
>
> Isn't the first (unchanged) line rather unclear?
> Why not test for (ring_id & I915_EXEC_BSD)?
> And then you only need to additionally test bit 14.
>
>         if (ring_id & I915_EXEC_BSD) {

Oops, no, this should be:

	if ((ring_id & I915_EXEC_RING_MASK) == I915_EXEC_BSD) {

>          /* require at least one BSD ring */
>          igt_require(gem_has_bsd(fd));
>
>          if (ring_id & (2 << 13)) {

Or better (and symbolically):

           if ((ring_id & I915_EXEC_BSD_MASK) == I915_EXEC_BSD_RING2) {

>              /* specifically require BSD2 */
>                 igt_require(gem_has_bsd2(fd));
>          }
>      }
>
> .Dave.



More information about the Intel-gfx mailing list