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

Chris Wilson chris at chris-wilson.co.uk
Wed Feb 21 13:45:23 UTC 2018


Quoting Tvrtko Ursulin (2018-02-21 13:42:29)
> 
> On 21/02/2018 13:35, Tvrtko Ursulin wrote:
> > 
> > On 21/02/2018 13:07, Chris Wilson wrote:
> >> Quoting Tvrtko Ursulin (2018-02-21 12:55:17)
> >>>
> >>> 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;
> >>>>>        }
> 
> For preserving time and sanity:
> 
> bool is_bsd = (ring & 0xf) == I915_EXEC_BSD;

& 63

Just to remind you how broken it all is.

> bool implicit_bsd = !(ring & (3 << 13));
> bool supports_explicit_bsd = gem_has_bsd2(fd);
> 
> if (is_bsd) {
>         if (implicit_bsd && supports_explicit_bsd)
>                 return false;
>         else if (!implicit_bsd && !supports_explicit_bsd)
>                 return false;
> }
> 

class/instance to the rescue. :)
-Chris


More information about the Intel-gfx mailing list