[igt-dev] [i-g-t 2/6] lib: Cache xe_device at driver open/close level

Modem, Bhanuprakash bhanuprakash.modem at intel.com
Tue May 16 13:41:35 UTC 2023


Hi Zbigniew,

On Thu-11-05-2023 11:00 am, Zbigniew Kempczyński wrote:
> On Thu, May 04, 2023 at 10:27:22AM +0530, Bhanuprakash Modem wrote:
>> Instead of caching the xe_device struct at subtest level, cache
>> just after opening the driver. And remove from the cache just
>> before closing the driver.
>>
>> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
>> ---
>>   lib/drmtest.c | 9 +++++++++
>>   1 file changed, 9 insertions(+)
>>
>> diff --git a/lib/drmtest.c b/lib/drmtest.c
>> index 03b5239b2..f6cd8e500 100644
>> --- a/lib/drmtest.c
>> +++ b/lib/drmtest.c
>> @@ -63,6 +63,7 @@
>>   #include "intel_reg.h"
>>   #include "ioctl_wrappers.h"
>>   #include "igt_dummyload.h"
>> +#include "xe/xe_query.h"
>>   
>>   /**
>>    * SECTION:drmtest
>> @@ -601,6 +602,10 @@ int drm_open_driver(int chipset)
>>   		}
>>   	}
>>   
>> +	/* Cache xe_device struct. */
>> +	if (is_xe_device(fd))
>> +		xe_device_get(fd);
>> +
>>   	return fd;
>>   }
>>   
> 
> Imo this should land to __drm_open_driver_another() and
> __drm_open_driver_render().

Agreed, will float a new rev with these changes.

> 
> gem_reopen_driver() still requires explicit device get for xe.

This fix is already landed in IGT:
https://cgit.freedesktop.org/drm/igt-gpu-tools/commit/?id=a48277948

- Bhanu

> 
> --
> Zbigniew
> 
> 
>> @@ -618,6 +623,10 @@ int drm_close_driver(int fd)
>>   	if (fd < 3)
>>   		return -1;
>>   
>> +	/* Remove xe_device from cache. */
>> +	if (is_xe_device(fd))
>> +		xe_device_put(fd);
>> +
>>   	return close(fd);
>>   }
>>   
>> -- 
>> 2.40.0
>>


More information about the igt-dev mailing list