[PATCH] tests/core_setmaster: Handle the test even if cards are non-continuous

Bommu, Krishnaiah krishnaiah.bommu at intel.com
Tue Sep 3 08:32:00 UTC 2024



> -----Original Message-----
> From: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> Sent: Thursday, August 22, 2024 10:16 PM
> To: igt-dev at lists.freedesktop.org
> Cc: Bommu, Krishnaiah <krishnaiah.bommu at intel.com>; Emil Velikov
> <emil.l.velikov at gmail.com>; Ghimiray, Himal Prasad
> <himal.prasad.ghimiray at intel.com>
> Subject: Re: [PATCH] tests/core_setmaster: Handle the test even if cards are
> non-continuous
> 
> Hi Bommu,
> On 2024-08-12 at 10:54:43 +0530, Bommu Krishnaiah wrote:
> > Although most of userspace assumes drm cards to be populated
> > continously,
> >
> 
> Remove blank line.
I will remove 
> 
> > this assumption may not be always true. After hot unpluging and
> > repluging of card
> >
> 
> Remove blank.
I will remove
> 
> > the card may be non-continous.  To address such scenarios where the
> > cards can be non-continous
> >
> 
> Remove blank.
I will remove
> 
> > modify the tweak_perm function to loop all possible
> > cardnumbers(card0-card255) to confirm are they populated or not.
> -----^
> s/cardnumbers/card numbers/
I will changes 
> 
> imho test is checking only first card so looping all is not optimal.
> 
> >
> > Problem Description:
> > The test fails after running the `core_hotunplug at hot*` subtest, where
> > card0 is missing.
Here card0 is populated as card1
> 
> imho this could be discussed if that is ok or driver error, imho valid case would
> be to have multi-card and unpluging first.
> 
> > This leads to a failure in the subsequent `master-drop-set-user` test.
> >
> > Command sequence for reproducing the issue:
> > - Check available cards: `ls /dev/dri/`
> > 	- Output: by-path  card0  renderD128
> > - Run the test: `# ./core_hotunplug --r hotrebind-lateclose`
> > - Check again: ‘ls /dev/dri/’
> > 	- Output after failure: by-path  card1  renderD129
> 
> s/failure/core_hotunplug failure/
I will change 
> 
> > - Run the test: `# ./core_setmaster --r master-drop-set-user`
> >
> > This failures on both XE and i915 for above sequence.
> >
> > Signed-off-by: Bommu Krishnaiah <krishnaiah.bommu at intel.com>
> > Cc: Emil Velikov <emil.l.velikov at gmail.com>
> > Cc: Himal Prasad Ghimiray <himal.prasad.ghimiray at intel.com>
> > Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> > ---
> >  tests/core_setmaster.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/tests/core_setmaster.c b/tests/core_setmaster.c index
> > 9c2083f66..a2758e2f2 100644
> > --- a/tests/core_setmaster.c
> > +++ b/tests/core_setmaster.c
> > @@ -116,9 +116,10 @@ static unsigned tweak_perm(uint8_t *saved_perm,
> unsigned max_perm, bool save)
> >  	for (i = 0; i < max_perm; i++) {
> >  		snprintf(path, sizeof(path), "/dev/dri/card%u", i);
> >
> > -		/* Existing userspace assumes there's no gaps, do the same. */
> > +		/* Userspace cannot always have continuous card0...N due to
> > +		 * dynamic unloading or removal of cards */
> >  		if (stat(path, &st) != 0)
> > -			break;
> > +			continue;
> 
> imho this is ok but you should also break after first save/restore just before end
> of for loop, so no need for setting all perms when you will test only first one.
> 
> Also imho you should fill info in saved_perm about which card was found and
> use it instead of calling __drm_open_driver().
> 

kbommu at kbommu-desk:~/xe_public/igt-gpu-tools$ git diff
diff --git a/tests/core_setmaster.c b/tests/core_setmaster.c
index a2758e2f2..b0bf4a5d3 100644
--- a/tests/core_setmaster.c
+++ b/tests/core_setmaster.c
@@ -138,6 +138,9 @@ static unsigned tweak_perm(uint8_t *saved_perm, unsigned max_perm, bool save)
                 * failure may be irrelevant.
                 */
                chmod(path, st.st_mode);
+
+               if (save)
+                       return i;
        }
        return i;
 }
kbommu at kbommu-desk:~/xe_public/igt-gpu-tools$

this is the changes your excepting right ?

Regards,
Krishna.

> Regards,
> Kamil
> 
> >
> >  		if (save) {
> >  			/* Save and toggle */
> > --
> > 2.25.1
> >


More information about the igt-dev mailing list