All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Wajdeczko <michal.wajdeczko@intel.com>
To: Gustavo Sousa <gustavo.sousa@intel.com>,
	<intel-xe@lists.freedesktop.org>
Subject: Re: [PATCH v2 4/8] drm/xe/kunit: Add xe_kunit_helper_is_live_test()
Date: Tue, 12 May 2026 21:26:36 +0200	[thread overview]
Message-ID: <2360fb36-1304-4b8b-9586-df962c2de299@intel.com> (raw)
In-Reply-To: <20260508-rtp-mcr-check-v2-4-9897b147a5d2@intel.com>



On 5/8/2026 11:42 PM, Gustavo Sousa wrote:
> In upcoming changes we will need to differentiate between regular and
> live KUnit tests.  Add the function xe_kunit_helper_is_live_test() for
> that purpose.
> 
> Note that this is implemented in a rather hackish way, by leveraging
> KUnit's static stubbing functionality.  A better approach would be to
> store a boolean somewhere in test->priv that would tell if a test is a
> live one, however that's not quite feasible today given the inconsistent
> usage of test->priv (there is not a single uniform type of data assigned
> to it across existing test).
> 
> v2:
>   - s/xe_kunit_helper_is_live_test/xe_kunit_helper_is_live_test/
>     (Michal)
> 
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
> ---
>  drivers/gpu/drm/xe/tests/xe_kunit_helpers.c | 26 ++++++++++++++++++++++++++
>  drivers/gpu/drm/xe/tests/xe_kunit_helpers.h |  4 ++++
>  2 files changed, 30 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/tests/xe_kunit_helpers.c b/drivers/gpu/drm/xe/tests/xe_kunit_helpers.c
> index bc5156966ce9..d2f654f53cc7 100644
> --- a/drivers/gpu/drm/xe/tests/xe_kunit_helpers.c
> +++ b/drivers/gpu/drm/xe/tests/xe_kunit_helpers.c
> @@ -16,6 +16,18 @@
>  #include "xe_device_types.h"
>  #include "xe_pm.h"
>  
> +/**
> + * xe_kunit_helper_is_live_test - Return true if @test is a live test.
> + * @test: the &kunit test
> + *
> + * Return: True for a live test and false otherwise.
> + */
> +bool xe_kunit_helper_is_live_test(struct kunit *test)
> +{
> +	KUNIT_STATIC_STUB_REDIRECT(xe_kunit_helper_is_live_test, test);
> +	return false;
> +}

or maybe we only need something like this in xe_device.h:

+static inline bool xe_device_is_real(const struct xe_device *xe)
+{
+       return xe->drm.dev->bus == &pci_bus_type;
+}

as all fake kunit xe devices will have kunit_bus_type instead

already tested ;)

> +
>  /**
>   * xe_kunit_helper_alloc_xe_device - Allocate a &xe_device for a KUnit test.
>   * @test: the &kunit where this &xe_device will be used
> @@ -93,6 +105,11 @@ EXPORT_SYMBOL_IF_KUNIT(xe_kunit_helper_xe_device_test_init);
>  
>  KUNIT_DEFINE_ACTION_WRAPPER(put_xe_pm_runtime, xe_pm_runtime_put, struct xe_device *);
>  
> +static bool xe_kunit_is_live_test_indeed(struct kunit *test)
> +{
> +	return true;
> +}
> +
>  /**
>   * xe_kunit_helper_xe_device_live_test_init - Prepare a &xe_device for
>   *                                            use in a live KUnit test.
> @@ -116,6 +133,15 @@ int xe_kunit_helper_xe_device_live_test_init(struct kunit *test)
>  {
>  	struct xe_device *xe = xe_device_const_cast(test->param_value);
>  
> +	/*
> +	 * FIXME: This is a hack and a better solution is to have the "priv"
> +	 * member of tests have a boolean to tell if a test is a live one.
> +	 * Unfortunately that can't be done today because "priv" does not point
> +	 * to a single unified type across existing tests.
> +	 */
> +	kunit_activate_static_stub(test, xe_kunit_helper_is_live_test,
> +				   xe_kunit_is_live_test_indeed);
> +
>  	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, xe);
>  	kunit_info(test, "running on %s device\n", xe->info.platform_name);
>  
> diff --git a/drivers/gpu/drm/xe/tests/xe_kunit_helpers.h b/drivers/gpu/drm/xe/tests/xe_kunit_helpers.h
> index 83665f7b1254..71cfeb2d4efb 100644
> --- a/drivers/gpu/drm/xe/tests/xe_kunit_helpers.h
> +++ b/drivers/gpu/drm/xe/tests/xe_kunit_helpers.h
> @@ -6,10 +6,14 @@
>  #ifndef _XE_KUNIT_HELPERS_H_
>  #define _XE_KUNIT_HELPERS_H_
>  
> +#include <linux/types.h>
> +
>  struct device;
>  struct kunit;
>  struct xe_device;
>  
> +bool xe_kunit_helper_is_live_test(struct kunit *test);
> +
>  struct xe_device *xe_kunit_helper_alloc_xe_device(struct kunit *test,
>  						  struct device *dev);
>  int xe_kunit_helper_xe_device_test_init(struct kunit *test);
> 


  parent reply	other threads:[~2026-05-12 19:26 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-08 21:42 [PATCH v2 0/8] Fix MCR inconsistencies in RTP tables Gustavo Sousa
2026-05-08 21:42 ` [PATCH v2 1/8] drm/xe: Define CACHE_MODE_1 as MCR register Gustavo Sousa
2026-05-08 21:42 ` [PATCH v2 2/8] drm/xe: Define and use MCR version of COMMON_SLICE_CHICKEN1 Gustavo Sousa
2026-05-08 21:42 ` [PATCH v2 3/8] drm/xe: Define and use MCR version of COMMON_SLICE_CHICKEN4 Gustavo Sousa
2026-05-13 22:35   ` Matt Roper
2026-05-08 21:42 ` [PATCH v2 4/8] drm/xe/kunit: Add xe_kunit_helper_is_live_test() Gustavo Sousa
2026-05-11 10:37   ` Jani Nikula
2026-05-11 11:45     ` Gustavo Sousa
2026-05-11 12:03       ` Jani Nikula
2026-05-11 12:30         ` Gustavo Sousa
2026-05-11 20:33           ` Rodrigo Vivi
2026-05-11 21:01             ` Gustavo Sousa
2026-05-12 19:00               ` Rodrigo Vivi
2026-05-12 19:26   ` Michal Wajdeczko [this message]
2026-05-13 13:03     ` Gustavo Sousa
2026-05-13 12:58   ` Gustavo Sousa
2026-05-08 21:42 ` [PATCH v2 5/8] drm/xe: Extract xe_hw_engine_setup_reg_lrc() Gustavo Sousa
2026-05-08 21:42 ` [PATCH v2 6/8] drm/xe/kunit: Use KUNIT_EXPECT_EQ() in xe_wa_gt() Gustavo Sousa
2026-05-08 21:42 ` [PATCH v2 7/8] drm/xe/mcr: Extract reg_in_steering_type_ranges() Gustavo Sousa
2026-05-08 21:42 ` [PATCH v2 8/8] drm/xe/reg_sr: Do sanity check for MCR vs non-MCR Gustavo Sousa
2026-05-13 22:49   ` Matt Roper
2026-05-08 21:50 ` ✓ CI.KUnit: success for Fix MCR inconsistencies in RTP tables (rev2) Patchwork
2026-05-08 23:04 ` ✓ Xe.CI.BAT: " Patchwork
2026-05-09 10:54 ` ✗ Xe.CI.FULL: failure " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2360fb36-1304-4b8b-9586-df962c2de299@intel.com \
    --to=michal.wajdeczko@intel.com \
    --cc=gustavo.sousa@intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.