All of lore.kernel.org
 help / color / mirror / Atom feed
* drm/ttm/memcg/lru: enable memcg tracking for ttm and amdgpu driver (complete series v3)
@ 2025-09-02  4:06 Dave Airlie
  2025-09-02  4:06 ` [PATCH 01/15] mm: add gpu active/reclaim per-node stat counters (v2) Dave Airlie
                   ` (15 more replies)
  0 siblings, 16 replies; 29+ messages in thread
From: Dave Airlie @ 2025-09-02  4:06 UTC (permalink / raw)
  To: dri-devel, tj, christian.koenig, Johannes Weiner, Michal Hocko,
	Roman Gushchin, Shakeel Butt, Muchun Song
  Cc: cgroups, Dave Chinner, Waiman Long, simona

Hi all,

This is a repost with some fixes and cleanups.

I'd really like to land this into drm-next, Maarten posted xe support for this and some other work
and I think we need to start moving this forward in tree as I'm not sure what else I can really do
out of tree.

Differences since last posting:
1. Squashed exports into where they are used (Shakeel)
2. Fixed bug in uncharge path memcg
3. Fixed config bug in the module option.

Differences since 1st posting:
1. Added patch 18: add a module option to allow pooled pages to not be stored in the lru per-memcg
   (Requested by Christian Konig)
2. Converged the naming and stats between vmstat and memcg (Suggested by Shakeel Butt)
3. Cleaned up the charge/uncharge code and some other bits.

Dave.

Original cover letter:
tl;dr: start using list_lru/numa/memcg in GPU driver core and amdgpu driver for now.

This is a complete series of patches, some of which have been sent before and reviewed,
but I want to get the complete picture for others, and try to figure out how best to land this.

There are 3 pieces to this:
01->02: add support for global gpu stat counters (previously posted, patch 2 is newer)
03->06: port ttm pools to list_lru for numa awareness
07->13: add memcg stats + gpu apis, then port ttm pools to memcg aware list_lru and shrinker
14: enable amdgpu to use new functionality.
15: add a module option to turn it all off.

The biggest difference in the memcg code from previously is I discovered what
obj cgroups were designed for and I'm reusing the page/objcg intergration that 
already exists, to avoid reinventing that wheel right now.

There are some igt-gpu-tools tests I've written at:
https://gitlab.freedesktop.org/airlied/igt-gpu-tools/-/tree/amdgpu-cgroups?ref_type=heads

One problem is there are a lot of delayed action, that probably means the testing
needs a bit more robustness, but the tests validate all the basic paths.

Regards,
Dave.


^ permalink raw reply	[flat|nested] 29+ messages in thread
* drm/ttm/memcg/lru: enable memcg tracking for ttm and amdgpu driver (complete series v3)
@ 2025-07-22  1:43 Dave Airlie
  2025-07-22  1:43 ` [PATCH 08/15] ttm: add a memcg accounting flag to the alloc/populate APIs Dave Airlie
  0 siblings, 1 reply; 29+ messages in thread
From: Dave Airlie @ 2025-07-22  1:43 UTC (permalink / raw)
  To: dri-devel, linux-mm, Johannes Weiner, Christian Koenig
  Cc: Dave Chinner, Kairui Song

Hi all,

This is a 2nd repost with some fixes and cleanups. Original post is below.

https://lore.kernel.org/dri-devel/20250714052243.1149732-1-airlied@gmail.com/ is the 2nd post.
https://lore.kernel.org/dri-devel/20250630045005.1337339-1-airlied@gmail.com/ is the 1st post.

Differences since last posting:
1. Shakeel suggested I squash some export additions - done now
2. Shakeel suggested I use lruvec in the earlier vmstat accounting - done
3. Christian asked for the turn off patch to be more generic - added Kconfig/module option

I would probably squash 16 into other places, but left it alone for now so we can see it.

Christian has an outstanding statement on suspend/resume breakage that I'm waiting for a respone.

I'd like to at least land 01->06 in drm-misc-next soon, to at least reduce the patch load.

Patch order is now:
01->02: add support for global gpu stat counters
03->06: port ttm pools to list_lru for numa awareness
07->13,16: add memcg stats + gpu apis, then port ttm pools to memcg aware list_lru and shrinker
14: enable amdgpu to use new functionality.

Differences since last posting:
1. Added patch 18: add a module option to allow pooled pages to not be stored in the lru per-memcg
   (Requested by Christian Konig)
2. Converged the naming and stats between vmstat and memcg (Suggested by Shakeel Butt)
3. Cleaned up the charge/uncharge code and some other bits.

Dave.

Original cover letter:
tl;dr: start using list_lru/numa/memcg in GPU driver core and amdgpu driver for now.

This is a complete series of patches, some of which have been sent before and reviewed,
but I want to get the complete picture for others, and try to figure out how best to land this.

There are 3 pieces to this:
01->02: add support for global gpu stat counters (previously posted, patch 2 is newer)
03->07: port ttm pools to list_lru for numa awareness
08->14: add memcg stats + gpu apis, then port ttm pools to memcg aware list_lru and shrinker
15->17: enable amdgpu to use new functionality.

The biggest difference in the memcg code from previously is I discovered what
obj cgroups were designed for and I'm reusing the page/objcg intergration that 
already exists, to avoid reinventing that wheel right now.

There are some igt-gpu-tools tests I've written at:
https://gitlab.freedesktop.org/airlied/igt-gpu-tools/-/tree/amdgpu-cgroups?ref_type=heads

One problem is there are a lot of delayed action, that probably means the testing
needs a bit more robustness, but the tests validate all the basic paths.

Regards,
Dave.



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

end of thread, other threads:[~2025-09-16 13:23 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-02  4:06 drm/ttm/memcg/lru: enable memcg tracking for ttm and amdgpu driver (complete series v3) Dave Airlie
2025-09-02  4:06 ` [PATCH 01/15] mm: add gpu active/reclaim per-node stat counters (v2) Dave Airlie
2025-09-02  4:06 ` [PATCH 02/15] drm/ttm: use gpu mm stats to track gpu memory allocations. (v4) Dave Airlie
2025-09-03 11:10   ` Maarten Lankhorst
2025-09-04  2:33     ` Dave Airlie
2025-09-02  4:06 ` [PATCH 03/15] ttm/pool: port to list_lru. (v2) Dave Airlie
2025-09-03  0:44   ` kernel test robot
2025-09-02  4:06 ` [PATCH 04/15] ttm/pool: drop numa specific pools Dave Airlie
2025-09-02  4:06 ` [PATCH 05/15] ttm/pool: make pool shrinker NUMA aware Dave Airlie
2025-09-02  4:06 ` [PATCH 06/15] ttm/pool: track allocated_pages per numa node Dave Airlie
2025-09-02  4:06 ` [PATCH 07/15] memcg: add support for GPU page counters. (v3) Dave Airlie
2025-09-02  4:06 ` [PATCH 08/15] ttm: add a memcg accounting flag to the alloc/populate APIs Dave Airlie
2025-09-02  4:06 ` [PATCH 09/15] ttm/pool: initialise the shrinker earlier Dave Airlie
2025-09-02 14:07   ` Christian König
2025-09-04  2:21     ` Dave Airlie
2025-09-02  4:06 ` [PATCH 10/15] ttm: add objcg pointer to bo and tt Dave Airlie
2025-09-02  4:06 ` [PATCH 11/15] ttm/pool: enable memcg tracking and shrinker. (v2) Dave Airlie
2025-09-02 14:23   ` Christian König
2025-09-04  2:25     ` Dave Airlie
2025-09-04 11:29       ` Christian König
2025-09-09  2:18         ` Dave Airlie
2025-09-09 11:51           ` Christian König
2025-09-02  4:06 ` [PATCH 12/15] ttm: hook up memcg placement flags Dave Airlie
2025-09-02  4:06 ` [PATCH 13/15] memcontrol: allow objcg api when memcg is config off Dave Airlie
2025-09-02  4:06 ` [PATCH 14/15] amdgpu: add support for memory cgroups Dave Airlie
2025-09-16 13:21   ` Christian König
2025-09-02  4:06 ` [PATCH 15/15] ttm: add support for a module option to disable memcg integration Dave Airlie
2025-09-16 13:23 ` drm/ttm/memcg/lru: enable memcg tracking for ttm and amdgpu driver (complete series v3) Christian König
  -- strict thread matches above, loose matches on Subject: below --
2025-07-22  1:43 Dave Airlie
2025-07-22  1:43 ` [PATCH 08/15] ttm: add a memcg accounting flag to the alloc/populate APIs Dave Airlie

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.