From: Tejas Upadhyay <tejas.upadhyay@intel.com>
To: intel-xe@lists.freedesktop.org
Cc: himal.prasad.ghimiray@intel.com, rodrigo.vivi@intel.com,
Tejas Upadhyay <tejas.upadhyay@intel.com>
Subject: [PATCH V19 00/15] Add memory page offlining support
Date: Mon, 31 Aug 2026 12:19:42 +0530 [thread overview]
Message-ID: <20260831064942.315720-17-tejas.upadhyay@intel.com> (raw)
This functionality represents a significant step in making
the xe driver gracefully handle hardware memory degradation.
By integrating with the DRM Buddy allocator, the driver
can permanently "carve out" faulty memory so it isn't reused
by subsequent allocations.
IGT tests for testing this via injecting simple single address and
duplicate address fault to unit test functionality:
https://patchwork.freedesktop.org/patch/748439/?series=170555&rev=2
v19:
- Sashiko review comment closure
- Sliting of making xe_bo_ttm_purge() export and NULL handling
- Remove redundant code in xe_ttm_vram_reserve_page_at_addr()
- Resolve nit comments provided in configfs and debugfs
v18:
- Splitting out the sysfs patch; it will come later once it is redesigned
- Address sashiko reivew comments
- Add debugfs and adjust igt tests and fault injection
v17:
- Rebase on drm-tip
- Enforce CONFIG_FAULT_INJECTION_DEBUG_FS for fault inject
v16:
- Correct sysfs patches with moving code with rcu lock
- In case purge fail let next alloc decide final failure
- Remove addr_to_block API, its being pulled from drm-tip
- Remove some unused code and replace where existing API can be used
v15:
- Split few big patches into small
- Avoid vram_mgr lock in sysfs
- fix missing queue_pages counter increment
v14:
- Solve sashiko reviews
- Remove SOFT->HARD offline patch, decision is taken based on -EEXIST
- Dump gpu buddy allocated patch dropped
v13:
- Add fault inject and remove standlone debugfs
v12:
- Fix Sashiko review comments
v11:
- Add BAN reason for UMD to know about offlining
- Add support for soft offline mode
- Rebase and remove dummy lockdep annotation patch, as it merged from upstream
v10:
- Remove RFC
v7:
- Improve debugfs warning messages
- Use scope_guard for locking(MattB)
- Adapt addition of queue member of LRC BO(MattB)
- Extend and use xe_ttm_bo_purge API for vram pages(MattB)
- Handle dma_buf_map requests for native and remote(MattB)
- Address if in never initialized block, set block to NULL
- Add lockdep in gpu buddy (MattB)
- Correct allocated_addr_to_block logic (MattA)
V6:
- Add more specific tests to noncritical bo sections
- Handle smooth exit of user created exec queues
- Break code and make purge specific static API
V5:
- Sysfs "max_pages" addition
- Reset block->private NULL post purge
- Remove wedge, return -EIO to system controller will initiate reset
- Add debugfs tests to trigger different test scenarios manually and via igt
- Rename addr_to_tbo to addr_to_block and move under gpu/buddy.c
V4: API reworks, add configfs for policy reservation and apply config everywhere
V3: use res_to_mem_region to avoid use of block->private (MattA)
V2:
- some fixes and clean up on errors
- Added xe_vram_addr_to_region helper to avoid other use of block->private(MattB)
Tejas Upadhyay (15):
drm/xe: Link VRAM object with gpu buddy
drm/xe: Link LRC BO and its execution Queue
drm/xe: Export xe_ttm_bo_purge()
drm/xe: Handle NULL resource and allow purging of VRAM pages
drm/xe/bo: Make xe_bo_is_user() public
drm/xe: Guard teardown paths against purged BOs
drm/xe/vram: Extract buddy alloc and free helpers
drm/xe/vram: Add page offline data structures and lifecycle
drm/xe/vram: Add VRAM page offline fault handler
drm/xe/configfs: Add disable_vram_page_offline attribute
drm/xe/ras: Cache disable_vram_page_offline policy at init
drm/xe/vram: Check disable_vram_page_offline policy in fault handler
drm/xe: Expose bad VRAM pages via debugfs
drm/xe/uapi: Expose ban reason in EXEC_QUEUE_GET_PROPERTY_BAN
drm/xe: Add fault-inject based VRAM page offline injection
drivers/gpu/drm/xe/xe_bo.c | 25 +-
drivers/gpu/drm/xe/xe_bo.h | 2 +
drivers/gpu/drm/xe/xe_bo_types.h | 3 +
drivers/gpu/drm/xe/xe_configfs.c | 72 ++-
drivers/gpu/drm/xe/xe_configfs.h | 2 +
drivers/gpu/drm/xe/xe_debugfs.c | 51 +++
drivers/gpu/drm/xe/xe_debugfs.h | 2 +
drivers/gpu/drm/xe/xe_dma_buf.c | 3 +
drivers/gpu/drm/xe/xe_drm_ras_types.h | 3 +
drivers/gpu/drm/xe/xe_exec_queue.c | 14 +-
drivers/gpu/drm/xe/xe_exec_queue_types.h | 7 +-
drivers/gpu/drm/xe/xe_execlist.c | 4 +-
drivers/gpu/drm/xe/xe_guc_submit.c | 36 +-
drivers/gpu/drm/xe/xe_lrc.c | 1 +
drivers/gpu/drm/xe/xe_ras.c | 9 +
drivers/gpu/drm/xe/xe_ttm_vram_mgr.c | 510 ++++++++++++++++++++-
drivers/gpu/drm/xe/xe_ttm_vram_mgr.h | 4 +
drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h | 40 ++
include/uapi/drm/xe_drm.h | 18 +-
19 files changed, 760 insertions(+), 46 deletions(-)
--
2.52.0
next reply other threads:[~2026-08-31 6:51 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-31 6:49 Tejas Upadhyay [this message]
2026-08-31 6:49 ` [PATCH V19 01/15] drm/xe: Link VRAM object with gpu buddy Tejas Upadhyay
2026-08-31 6:49 ` [PATCH V19 02/15] drm/xe: Link LRC BO and its execution Queue Tejas Upadhyay
2026-08-31 7:24 ` sashiko-bot
2026-08-31 6:49 ` [PATCH V19 03/15] drm/xe: Export xe_ttm_bo_purge() Tejas Upadhyay
2026-09-02 0:33 ` Matthew Brost
2026-08-31 6:49 ` [PATCH V19 04/15] drm/xe: Handle NULL resource and allow purging of VRAM pages Tejas Upadhyay
2026-08-31 6:52 ` Ghimiray, Himal Prasad
2026-08-31 7:42 ` sashiko-bot
2026-08-31 6:49 ` [PATCH V19 05/15] drm/xe/bo: Make xe_bo_is_user() public Tejas Upadhyay
2026-08-31 6:49 ` [PATCH V19 06/15] drm/xe: Guard teardown paths against purged BOs Tejas Upadhyay
2026-08-31 6:53 ` Ghimiray, Himal Prasad
2026-08-31 8:03 ` sashiko-bot
2026-09-01 5:05 ` Upadhyay, Tejas
2026-08-31 6:49 ` [PATCH V19 07/15] drm/xe/vram: Extract buddy alloc and free helpers Tejas Upadhyay
2026-08-31 8:08 ` sashiko-bot
2026-09-01 5:10 ` Upadhyay, Tejas
2026-08-31 6:49 ` [PATCH V19 08/15] drm/xe/vram: Add page offline data structures and lifecycle Tejas Upadhyay
2026-08-31 6:49 ` [PATCH V19 09/15] drm/xe/vram: Add VRAM page offline fault handler Tejas Upadhyay
2026-08-31 6:57 ` Ghimiray, Himal Prasad
2026-08-31 8:37 ` sashiko-bot
2026-09-01 5:48 ` Upadhyay, Tejas
2026-08-31 6:49 ` [PATCH V19 10/15] drm/xe/configfs: Add disable_vram_page_offline attribute Tejas Upadhyay
2026-08-31 8:45 ` sashiko-bot
2026-09-01 5:25 ` Upadhyay, Tejas
2026-08-31 6:49 ` [PATCH V19 11/15] drm/xe/ras: Cache disable_vram_page_offline policy at init Tejas Upadhyay
2026-08-31 9:02 ` sashiko-bot
2026-09-01 5:22 ` Upadhyay, Tejas
2026-08-31 6:49 ` [PATCH V19 12/15] drm/xe/vram: Check disable_vram_page_offline policy in fault handler Tejas Upadhyay
2026-08-31 6:49 ` [PATCH V19 13/15] drm/xe: Expose bad VRAM pages via debugfs Tejas Upadhyay
2026-08-31 6:55 ` Ghimiray, Himal Prasad
2026-08-31 9:18 ` sashiko-bot
2026-09-01 5:13 ` Upadhyay, Tejas
2026-08-31 6:49 ` [PATCH V19 14/15] drm/xe/uapi: Expose ban reason in EXEC_QUEUE_GET_PROPERTY_BAN Tejas Upadhyay
2026-08-31 9:40 ` sashiko-bot
2026-09-01 9:40 ` Upadhyay, Tejas
2026-08-31 6:49 ` [PATCH V19 15/15] drm/xe: Add fault-inject based VRAM page offline injection Tejas Upadhyay
2026-08-31 6:54 ` Ghimiray, Himal Prasad
2026-08-31 11:53 ` ✓ CI.KUnit: success for Add memory page offlining support (rev22) Patchwork
2026-08-31 13:28 ` ✓ Xe.CI.BAT: " Patchwork
2026-08-31 13:58 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-08-31 14:04 ` [PATCH V19 00/15] Add memory page offlining support Rodrigo Vivi
2026-08-31 14:58 ` Matthew Brost
2026-09-01 4:09 ` Upadhyay, Tejas
2026-08-31 17:44 ` ✓ CI.KUnit: success for Add memory page offlining support (rev23) Patchwork
2026-08-31 18:32 ` ✓ Xe.CI.BAT: " Patchwork
2026-08-31 22:22 ` ✗ 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=20260831064942.315720-17-tejas.upadhyay@intel.com \
--to=tejas.upadhyay@intel.com \
--cc=himal.prasad.ghimiray@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=rodrigo.vivi@intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox