[Intel-xe] [PATCH i-g-t] test/xe_pm: Assert on unbounded VSP

Rodrigo Vivi rodrigo.vivi at kernel.org
Fri Apr 21 13:55:28 UTC 2023


On Fri, Apr 21, 2023 at 03:45:11PM +0530, Anshuman Gupta wrote:
> Discrete GFX cards gfx may have multiple PCIe endpoints,
> they connects to root port via pcie upstream switch port(USP)
> and virtual pcie switch port(VSP), sometimes VSP pcie devices
> doesn't bind to pcieport driver. Without pcieport driver pcie PM
> comes without any warranty and with unbounded VSP runtime pm and
> system wide suspend/resume IGT test cases may get pass as false
> positive.

I'm not sure if I'm following here... you mean that in cases like
this we cannot suspend/resume at all? What are the false positive?
I'm not following the whole scenario here...

> 
> Therefore assert the xe_pm igt tests on unbounded VSP.
> 
> Signed-off-by: Anshuman Gupta <anshuman.gupta at intel.com>
> ---
>  tests/xe/xe_pm.c | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/xe/xe_pm.c b/tests/xe/xe_pm.c
> index 23b8246ed..78d9374cf 100644
> --- a/tests/xe/xe_pm.c
> +++ b/tests/xe/xe_pm.c
> @@ -33,6 +33,7 @@
>  typedef struct {
>  	int fd_xe;
>  	struct pci_device *pci_xe;
> +	struct pci_device *pci_parent;
>  	struct pci_device *pci_root;
>  } device_t;
>  
> @@ -344,6 +345,7 @@ NULL));
>  igt_main
>  {
>  	struct drm_xe_engine_class_instance *hwe;
> +	struct drm_xe_query_config *config;
>  	device_t device;
>  	char d3cold_allowed[2];
>  	const struct s_state {
> @@ -369,8 +371,15 @@ igt_main
>  		device.fd_xe = drm_open_driver(DRIVER_XE);
>  		device.pci_xe = igt_device_get_pci_device(device.fd_xe);
>  		device.pci_root = igt_device_get_pci_root_port(device.fd_xe);
> +		device.pci_parent = pci_device_get_parent_bridge(device.pci_xe);
>  
> -		xe_device_get(device.fd_xe);
> +		config = xe_device_get(device.fd_xe)->config;
> +
> +		if (config->info[XE_QUERY_CONFIG_FLAGS] & XE_QUERY_CONFIG_FLAGS_HAS_VRAM) {
> +			igt_assert(device.pci_parent);
> +			igt_assert_f(!pci_device_has_kernel_driver(device.pci_parent),
> +				     "pci bridge device does not bind with pcieport driver\n");
> +		}
>  
>  		/* Always perform initial once-basic exec checking for health */
>  		xe_for_each_hw_engine(device.fd_xe, hwe)
> -- 
> 2.25.1
> 


More information about the Intel-xe mailing list