[PATCH] drm/xe: Add outer runtime_pm protection to xe_live_ktest at xe_dma_buf

Matthew Brost matthew.brost at intel.com
Wed Apr 17 20:32:58 UTC 2024


On Wed, Apr 17, 2024 at 04:12:22PM -0400, Rodrigo Vivi wrote:
> On Wed, Apr 17, 2024 at 08:10:00PM +0000, Matthew Brost wrote:
> > On Wed, Apr 17, 2024 at 03:34:11PM -0400, Rodrigo Vivi wrote:
> > > Any kunit doing any memory access should get their own runtime_pm
> > 
> > So maybe we grab a ref for any live kunit tests in a generic way?
> 
> Yeap, I wished to have something like that so we don't risk end up
> with missing cases like this, but I couldn't find a generic way.

I figured you looked into this...

> Right now every other kunit is protected. This is the only one left
> behind. Perhaps we should move with this series as is and then
> have a follow up with a generic entry for all kunit tests on
> top?
>

Sounds good, don't want to hold up a fix.

With that:
Reviewed-by: Matthew Brost <matthew.brost at intel.com>

> > 
> > Matt
> > 
> > > outer references since they don't use the standard driver API
> > > entries. In special this dma_buf from the same driver.
> > > 
> > > Found by pre-merge CI on adding WARN calls for unprotected
> > > inner callers:
> > > 
> > > <6> [318.639739]     # xe_dma_buf_kunit: running xe_test_dmabuf_import_same_driver
> > > <4> [318.639957] ------------[ cut here ]------------
> > > <4> [318.639967] xe 0000:4d:00.0: Missing outer runtime PM protection
> > > <4> [318.640049] WARNING: CPU: 117 PID: 3832 at drivers/gpu/drm/xe/xe_pm.c:533 xe_pm_runtime_get_noresume+0x48/0x60 [xe]
> > > 
> > > Cc: Matthew Auld <matthew.auld at intel.com>
> > > Cc: Francois Dugast <francois.dugast at intel.com>
> > > Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
> > > ---
> > >  drivers/gpu/drm/xe/tests/xe_dma_buf.c | 3 +++
> > >  1 file changed, 3 insertions(+)
> > > 
> > > diff --git a/drivers/gpu/drm/xe/tests/xe_dma_buf.c b/drivers/gpu/drm/xe/tests/xe_dma_buf.c
> > > index d54dd5b43007..e7f9b531c465 100644
> > > --- a/drivers/gpu/drm/xe/tests/xe_dma_buf.c
> > > +++ b/drivers/gpu/drm/xe/tests/xe_dma_buf.c
> > > @@ -12,6 +12,7 @@
> > >  #include "tests/xe_pci_test.h"
> > >  
> > >  #include "xe_pci.h"
> > > +#include "xe_pm.h"
> > >  
> > >  static bool p2p_enabled(struct dma_buf_test_params *params)
> > >  {
> > > @@ -259,6 +260,7 @@ static int dma_buf_run_device(struct xe_device *xe)
> > >  	const struct dma_buf_test_params *params;
> > >  	struct kunit *test = xe_cur_kunit();
> > >  
> > > +	xe_pm_runtime_get(xe);
> > >  	for (params = test_params; params->mem_mask; ++params) {
> > >  		struct dma_buf_test_params p = *params;
> > >  
> > > @@ -266,6 +268,7 @@ static int dma_buf_run_device(struct xe_device *xe)
> > >  		test->priv = &p;
> > >  		xe_test_dmabuf_import_same_driver(xe);
> > >  	}
> > > +	xe_pm_runtime_put(xe);
> > >  
> > >  	/* A non-zero return would halt iteration over driver devices */
> > >  	return 0;
> > > -- 
> > > 2.44.0
> > > 


More information about the Intel-xe mailing list