All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
To: dri-devel@lists.freedesktop.org, christian.koenig@amd.com
Subject: [RFC] TTM shrinking revisited
Date: Fri, 30 Dec 2022 12:11:58 +0100	[thread overview]
Message-ID: <20221230111159.75410-1-thomas.hellstrom@linux.intel.com> (raw)

Hi, Christian, others.

I'm starting to take a look at the TTM shrinker again. We'll probably be
needing it at least for supporting integrated hardware with the xe driver.

So assuming that the last attempt failed because of the need to allocate
shmem pages and lack of writeback at shrink time, I was thinking of the
following approach: (A rough design sketch of the core support for the
last bullet is in patch 1/1. It of course needs polishing if the interface
is at all accepted by the mm people).

Before embarking on this, any feedback or comments would be greatly
appreciated:

*) Avoid TTM swapping when no swap space is available. Better to adjust the
   TTM swapout watermark, as no pages can be freed to the system anyway.
*) Complement the TTM swapout watermark with a shrinker.
   For cached pages, that may hopefully remove the need for the watermark.
   Possibly a watermark needs to remain for wc pages and / or dma pages,
   depending on how well shrinking them works.
*) Trigger immediate writeback of pages handed to the swapcache / shmem,
   at least when the shrinker is called from kswapd.
*) Hide ttm_tt_swap[out|in] details in the ttm_pool code. In the pool code
   we have more details about the backing pages and can split pages,
   transition caching state and copy as necessary. Also investigate the
   possibility of reusing pool pages in a smart way if copying is needed.
*) See if we can directly insert pages into the swap-cache instead of
   taking the shmem detour, something along with the attached patch 1 RFC.

Thanks,
Thomas


             reply	other threads:[~2022-12-30 11:12 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-30 11:11 Thomas Hellström [this message]
2022-12-30 11:11 ` [RFC PATCH 1/1] mm: Add interfaces to back up and recover folio contents using swap Thomas Hellström
2022-12-30 13:38   ` kernel test robot
2022-12-30 13:48   ` kernel test robot
2022-12-30 14:19   ` kernel test robot
2023-01-04 10:31 ` [RFC] TTM shrinking revisited Christian König
2023-01-09  9:14   ` Thomas Hellström
2023-01-09 19:49     ` Christian König
2023-01-23 14:59   ` Thomas Hellström
2023-01-23 16:07     ` Christian König
2023-01-23 16:15       ` Thomas Hellström

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=20221230111159.75410-1-thomas.hellstrom@linux.intel.com \
    --to=thomas.hellstrom@linux.intel.com \
    --cc=christian.koenig@amd.com \
    --cc=dri-devel@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.