public inbox for drm-ai-reviews@public-inbox.freedesktop.org
 help / color / mirror / Atom feed
From: Claude Code Review Bot <claude-review@example.com>
To: dri-devel-reviews@example.com
Subject: Claude review: drm/xe: Avoid shrinker reclaim from kswapd under fragmentation
Date: Tue, 05 May 2026 10:00:01 +1000	[thread overview]
Message-ID: <review-patch6-20260430191809.2142544-7-matthew.brost@intel.com> (raw)
In-Reply-To: <20260430191809.2142544-7-matthew.brost@intel.com>

Patch Review

**Subject:** `[PATCH v4 6/6] drm/xe: Avoid shrinker reclaim from kswapd under fragmentation`

```c
+	if (ttm_bo_shrink_kswap_maybe_fragmented(sc->nid, sc->order))
+		goto out;
```

**Placement concern:** This check is inserted at line 238 in `xe_shrinker_scan`, between the purgeable scan (phase 1) and the backup/writeback scan (phase 2):

```c
	if (nr_scanned >= nr_to_scan || !can_backup)
		goto out;

+	if (ttm_bo_shrink_kswap_maybe_fragmented(sc->nid, sc->order))
+		goto out;

	/* If we didn't wake before, try to do it now if needed. */
	if (!runtime_pm)
		runtime_pm = xe_shrinker_runtime_pm_get(shrinker, true, 0, can_backup);
```

**This placement is well-chosen.** It allows purgeable BOs to still be freed (those are cheap to reclaim — no writeback needed, just discarded). It only blocks the more expensive backup/writeback path where active GPU working set would be evicted to swap/shmem. This is the right tradeoff: during fragmentation-driven kswapd, purge expendable objects but don't evict active working sets.

**However**, the `goto out` means `sc->nr_scanned` retains the value from the purgeable scan, and the return is `nr_scanned ? freed : SHRINK_STOP`. If the purgeable scan found nothing to scan (`nr_scanned == 0`) and we hit the fragmentation bail-out, we'll return `SHRINK_STOP`, which tells the MM "this shrinker has nothing to offer." That's actually the desired behavior here — if we have nothing purgeable and we're under fragmentation, we genuinely don't want kswapd to keep hammering this shrinker.

**No functional issues. Good integration.**

---

## Summary

The series addresses a real problem with a reasonable layered approach. **Patch 3 is the main concern** — the change from `__GFP_DIRECT_RECLAIM` to `__GFP_RECLAIM` and the broadened condition from `order > beneficial_order` to `order != beneficial_order` are both more aggressive than justified in the commit message, and the commit message itself is inconsistent with the implementation. The remaining patches are solid, with minor documentation and style nits in patches 2 and 4.

---
Generated by Claude Code Patch Reviewer

  reply	other threads:[~2026-05-05  0:00 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-30 19:18 [PATCH v4 0/6] mm, drm/ttm, drm/xe: Avoid reclaim/eviction loops under fragmentation Matthew Brost
2026-04-30 19:18 ` [PATCH v4 1/6] mm: Wire up order in shrink_control Matthew Brost
2026-05-05  0:00   ` Claude review: " Claude Code Review Bot
2026-04-30 19:18 ` [PATCH v4 2/6] mm: Introduce zone_maybe_fragmented_in_shrinker() Matthew Brost
2026-05-01  0:50   ` Santa, Carlos
     [not found]   ` <f25f27a1-bf09-44bd-9b37-49f159d82d6a@panix.com>
2026-05-01 20:00     ` PATCH v4 0/6] mm, drm/ttm, drm/xe: Avoid reclaim/eviction loops under fragmentation Matthew Brost
     [not found]       ` <1bc0b1a7-a01f-4dc2-ad7a-3a05f975331e@panix.com>
2026-05-01 21:10         ` Matthew Brost
2026-05-01 22:33           ` Matthew Brost
2026-05-05  0:00   ` Claude review: mm: Introduce zone_maybe_fragmented_in_shrinker() Claude Code Review Bot
2026-04-30 19:18 ` [PATCH v4 3/6] drm/ttm: Issue direct reclaim at beneficial_order Matthew Brost
2026-05-04  7:16   ` Christian König
2026-05-05  0:00   ` Claude review: " Claude Code Review Bot
2026-04-30 19:18 ` [PATCH v4 4/6] drm/ttm: Introduce ttm_bo_shrink_kswap_maybe_fragmented() Matthew Brost
2026-05-05  0:00   ` Claude review: " Claude Code Review Bot
2026-04-30 19:18 ` [PATCH v4 5/6] drm/xe: Set TTM device beneficial_order to 9 (2M) Matthew Brost
2026-05-05  0:00   ` Claude review: " Claude Code Review Bot
2026-04-30 19:18 ` [PATCH v4 6/6] drm/xe: Avoid shrinker reclaim from kswapd under fragmentation Matthew Brost
2026-05-05  0:00   ` Claude Code Review Bot [this message]
2026-04-30 23:01 ` [PATCH v4 0/6] mm, drm/ttm, drm/xe: Avoid reclaim/eviction loops " Andrew Morton
2026-05-01  6:28   ` Matthew Brost
2026-05-01 12:51     ` Andrew Morton
2026-05-01  1:42 ` Dave Chinner
2026-05-01  7:09   ` Matthew Brost
2026-05-05  0:00 ` Claude review: " Claude Code Review Bot
  -- strict thread matches above, loose matches on Subject: below --
2026-04-30 18:23 [PATCH v3 0/6] " Matthew Brost
2026-04-30 18:23 ` [PATCH v3 6/6] drm/xe: Avoid shrinker reclaim from kswapd " Matthew Brost
2026-05-05  0:13   ` Claude review: " Claude Code Review Bot
2026-04-21  1:26 [PATCH 0/3] drm/ttm, drm/xe: Avoid reclaim/eviction loops " Matthew Brost
2026-04-21  1:26 ` [PATCH 3/3] drm/xe: Avoid shrinker reclaim from kswapd " Matthew Brost
2026-04-22 23:01   ` Claude review: " Claude Code Review Bot

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=review-patch6-20260430191809.2142544-7-matthew.brost@intel.com \
    --to=claude-review@example.com \
    --cc=dri-devel-reviews@example.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