[Intel-gfx] [PATCH igt v2] lib: Skip aliased bsd ABI ring if bsd2 is available

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Wed Feb 21 12:55:17 UTC 2018


On 21/02/2018 12:53, Tvrtko Ursulin wrote:
> 
> On 21/02/2018 12:17, Chris Wilson wrote:
>> How much do I want this uABI to rot away? Say "Never again!" to implicit
>> aliasing.
>>
>> In the meantime, we do not need to perform duplicate work on bsd2
>> machines, as especially we do not know which engine bsd relates to.
>>
>> v2: When in doubt, shout!
>>
>> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
>> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>> ---
>>   lib/ioctl_wrappers.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
>> index 8748cfcf..b9b86079 100644
>> --- a/lib/ioctl_wrappers.c
>> +++ b/lib/ioctl_wrappers.c
>> @@ -1460,7 +1460,7 @@ bool gem_has_ring(int fd, unsigned ring)
>>       /* silly ABI, the kernel thinks everyone who has BSD also has 
>> BSD2 */
>>       if ((ring & ~(3<<13)) == I915_EXEC_BSD) {
>> -        if (ring & (3 << 13) && !gem_has_bsd2(fd))
>> +        if (!(ring & (3 << 13)) ^ !gem_has_bsd2(fd))
>>               return false;
>>       }
> 
> If default BSD (1)
>      and no BSD2 -> 1 ^ 1 = 1 OK

Oops
1 ^ 1 = 0 so also bad

>      and BSD2 -> 1 ^ 0 = 1 BAD
> 
> If explicit BSD (0)
>      and no BSD2 -> 0 ^ 1 = 1 BAD
>      has BSD2 -> 0 ^ 0 = 0 = BAD
> 
> Maybe I'm confused.. please simplify the statement? :)
> 
> Regards,
> 
> Tvrtko


More information about the Intel-gfx mailing list