[PATCH i-g-t 5/5] tests/intel/xe_configfs: Add test to validate survivability mode

Riana Tauro riana.tauro at intel.com
Thu Apr 24 05:41:18 UTC 2025



On 4/24/2025 9:47 AM, Lucas De Marchi wrote:
> On Tue, Apr 22, 2025 at 03:29:55PM -0400, Rodrigo Vivi wrote:
>> On Tue, Apr 22, 2025 at 08:57:35AM -0500, Lucas De Marchi wrote:
>>> On Tue, Apr 22, 2025 at 03:26:01PM +0530, Riana Tauro wrote:
>>> > The test validates if survivability mode is enabled on supported
>>> > platforms when configured using configfs attribute.
>>> >
>>> > Signed-off-by: Riana Tauro <riana.tauro at intel.com>
>>> > ---
>>> > tests/intel/xe_configfs.c | 112 ++++++++++++++++++++++++++++++++++++++
>>> > tests/meson.build         |   1 +
>>> > 2 files changed, 113 insertions(+)
>>> > create mode 100644 tests/intel/xe_configfs.c
>>> >
>>> > diff --git a/tests/intel/xe_configfs.c b/tests/intel/xe_configfs.c
>>> > new file mode 100644
>>> > index 000000000..414af4a86
>>> > --- /dev/null
>>> > +++ b/tests/intel/xe_configfs.c
>>>
>>>
>>> humn... does it make sense to test survivability mode in a xe_configfs
>>> test? configfs is just the way to trigger it. For completly different
>>> areas of the driver I don't think we should bundle the tests into a
>>> configfs test: we don't test if xe can be loaded without display in a
>>> xe_param.c test, or if we can inject faults in a xe_debugfs.c test, etc.
>>>
>>> My suggestion is to have a dedicated test for survivability in which
>>> configfs is part of it.
>>
>> Well, that would work for survivability itself. But perhaps it is good
>> to have dedicated entry points for the knobs we expose, like we have
>> a single place to toggle all sysfs and debufs. So we don't forget to
>> add new cases and we have a single entry point to quickly exercises
>> the knobs.
> 
> humn... dunno. The problem I see here is that the answer for "does it it
> work?" is quite different for each configfs file we implement. Some may
> even be honored on probe only vs others that can be set in runtime. If
> we had a generic way to test the configfs like:
> 
> 1) write XYZ to file
> 2) read file
> 3) make sure it's XYZ
> 
> then it'd make sense. But for these tests, checking that is not testing
> much.
> 
> For survivability we should test:
> 
>      1) bind the module in survivability mode
>      2) read something to make sure it is in that mode
>      3) flash the same firmware... possible?
>      4) unbind the module and remove configfs
>      5) bind the module
> 
> For possible other things coming to configfs:
> 
> A) Extra Workarounds
> 
>      1) write a {gt/engine/lrc} regiter-save-restore
>      2) bind the module
>      3) check for each of them, via <debugfs>/register-save-restore that 
>         the value is correctly set.
>      4) repeat test for write types like rmw, write, set bit, etc
> 
> B) Fuse off engines in software
> 
>      1) write a file with the possible possible engines that we should 
> export
>      2) bind the module
>      3) check via debugfs that the exposed are at the most those
> 
> C) Do not attempt enabling display (i.e. a substitute to the module
> param)
> 
> ... etc
> 
> Are we going to shove all of them in a xe_configfs test even if the
> tests are totally different? I think it will be harder to maintain, but
> we can always move to something else later if it becomes overwhelming.
> So.. I'm not sure. Any additional thoughts?
> 
> Lucas De Marchi
> 


If we have a single test for each entry, wouldn't it be better to place 
it in xe_configfs file?

There can be a couple of basic tests along with this like (read all 
entries, invalid directory creation etc)

Thanks
Riana


>>
>>>
>>> Lucas De Marchi



More information about the igt-dev mailing list