intel-xe.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 1/1] drm/xe: fix the ERR_PTR() returned on failure to allocate tiny pt
@ 2024-11-21 21:20 Mirsad Todorovac
  2024-11-25 12:05 ` ✓ CI.Patch_applied: success for series starting with [v1,1/1] " Patchwork
                   ` (8 more replies)
  0 siblings, 9 replies; 11+ messages in thread
From: Mirsad Todorovac @ 2024-11-21 21:20 UTC (permalink / raw)
  To: Rodrigo Vivi, intel-xe, dri-devel, linux-kernel
  Cc: Lucas De Marchi, Thomas Hellström, Maarten Lankhorst,
	Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
	Mirsad Todorovac, Matthew Brost, Matthew Auld, Matt Roper,
	Francois Dugast, Philippe Lecluse, Nirmoy Das, Jani Nikula,
	José Roberto de Souza, Faith Ekstrand, Daniel Vetter,
	Mauro Carvalho Chehab, Akshata Jahagirdar, David Kershner

Running coccinelle spatch gave the following warning:

./drivers/gpu/drm/xe/tests/xe_migrate.c:226:5-11: inconsistent IS_ERR and PTR_ERR on line 228.

The code reports PTR_ERR(pt) when IS_ERR(tiny) is checked:

→ 211         pt = xe_bo_create_pin_map(xe, tile, m->q->vm, XE_PAGE_SIZE,
  212                                   ttm_bo_type_kernel,
  213                                   XE_BO_FLAG_VRAM_IF_DGFX(tile) |
  214                                   XE_BO_FLAG_PINNED);
  215         if (IS_ERR(pt)) {
  216                 KUNIT_FAIL(test, "Failed to allocate fake pt: %li\n",
  217                            PTR_ERR(pt));
  218                 goto free_big;
  219         }
  220
  221         tiny = xe_bo_create_pin_map(xe, tile, m->q->vm,
→ 222                                     2 * SZ_4K,
  223                                     ttm_bo_type_kernel,
  224                                     XE_BO_FLAG_VRAM_IF_DGFX(tile) |
  225                                     XE_BO_FLAG_PINNED);
→ 226         if (IS_ERR(tiny)) {
→ 227                 KUNIT_FAIL(test, "Failed to allocate fake pt: %li\n",
→ 228                            PTR_ERR(pt));
  229                 goto free_pt;
  230         }

Now, the IS_ERR(tiny) and the corresponding PTR_ERR(pt) do not match.

Returning PTR_ERR(tiny), as the last failed function call, seems logical.

Fixes: dd08ebf6c3525 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Matthew Auld <matthew.auld@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Cc: Francois Dugast <francois.dugast@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Philippe Lecluse <philippe.lecluse@intel.com>
Cc: Nirmoy Das <nirmoy.das@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: David Airlie <airlied@gmail.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Faith Ekstrand <faith.ekstrand@collabora.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Simona Vetter <simona@ffwll.ch>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Akshata Jahagirdar <akshata.jahagirdar@intel.com>
Cc: David Kershner <david.kershner@intel.com>
Cc: intel-xe@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Mirsad Todorovac <mtodorovac69@gmail.com>
---
 v1:
	There is also the logical problem which this patch developer is not qualified to fix:
	first the fake pt tries to allocate size of (1 << (XE_PT_SHIFT=12)) = 4096 bytes,
	then "tiny pt" tries to allocate 2 * SZ_4K, twice as much. Is this what was meant
	to accomplish?

	drivers/gpu/drm/xe/xe_bo.h#L46:
	#define XE_PTE_SHIFT			12
	#define XE_PAGE_SIZE			(1 << XE_PTE_SHIFT)

	include/linux/sizes.h#L23:
	#define SZ_4K				0x00001000

 drivers/gpu/drm/xe/tests/xe_migrate.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/tests/xe_migrate.c b/drivers/gpu/drm/xe/tests/xe_migrate.c
index 1a192a2a941b..3bbdb362d6f0 100644
--- a/drivers/gpu/drm/xe/tests/xe_migrate.c
+++ b/drivers/gpu/drm/xe/tests/xe_migrate.c
@@ -224,8 +224,8 @@ static void xe_migrate_sanity_test(struct xe_migrate *m, struct kunit *test)
 				    XE_BO_FLAG_VRAM_IF_DGFX(tile) |
 				    XE_BO_FLAG_PINNED);
 	if (IS_ERR(tiny)) {
-		KUNIT_FAIL(test, "Failed to allocate fake pt: %li\n",
-			   PTR_ERR(pt));
+		KUNIT_FAIL(test, "Failed to allocate tiny fake pt: %li\n",
+			   PTR_ERR(tiny));
 		goto free_pt;
 	}
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2024-12-12 13:11 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-21 21:20 [PATCH v1 1/1] drm/xe: fix the ERR_PTR() returned on failure to allocate tiny pt Mirsad Todorovac
2024-11-25 12:05 ` ✓ CI.Patch_applied: success for series starting with [v1,1/1] " Patchwork
2024-11-25 12:06 ` ✗ CI.checkpatch: warning " Patchwork
2024-11-25 12:07 ` ✓ CI.KUnit: success " Patchwork
2024-11-25 12:25 ` ✓ CI.Build: " Patchwork
2024-11-25 12:28 ` ✓ CI.Hooks: " Patchwork
2024-11-25 12:30 ` ✓ CI.checksparse: " Patchwork
2024-11-25 12:47 ` ✓ Xe.CI.BAT: " Patchwork
2024-11-25 14:10 ` ✗ Xe.CI.Full: failure " Patchwork
2024-12-09 16:49 ` [PATCH v1 1/1] " Rodrigo Vivi
2024-12-11 21:24   ` Mirsad Todorovac

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).