[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