linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Hugh Dickins <hughd@google.com>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>,
	willy@infradead.org, wangkefeng.wang@huawei.com,
	chrisl@kernel.org, ying.huang@intel.com, 21cnbao@gmail.com,
	ryan.roberts@arm.com, shy828301@gmail.com, ziy@nvidia.com,
	ioworker0@gmail.com, da.gomez@samsung.com, p.raghav@samsung.com,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Andrew Bresticker <abrestic@rivosinc.com>
Subject: Re: [PATCH v2 0/9] support large folio swap-out and swap-in for shmem
Date: Thu, 20 Jun 2024 08:41:51 +0200	[thread overview]
Message-ID: <a14632e8-6f60-43f0-b80d-fea98491975c@redhat.com> (raw)
In-Reply-To: <5f8a6e2e-8a51-dcad-a8a1-37e44349b716@google.com>

On 20.06.24 05:59, Hugh Dickins wrote:
> On Wed, 19 Jun 2024, Andrew Morton wrote:
>> On Wed, 19 Jun 2024 01:16:42 -0700 (PDT) Hugh Dickins <hughd@google.com> wrote:
>>> On Wed, 19 Jun 2024, Baolin Wang wrote:
>>>> On 2024/6/19 04:05, Andrew Morton wrote:
>>>>> On Tue, 18 Jun 2024 14:54:12 +0800 Baolin Wang
>>>>> <baolin.wang@linux.alibaba.com> wrote:
>>>>>
>>>>>> Shmem will support large folio allocation [1] [2] to get a better
>>>>>> performance,
>>>>>> however, the memory reclaim still splits the precious large folios when
>>>>>> trying
>>>>>> to swap-out shmem, which may lead to the memory fragmentation issue and can
>>>>>> not
>>>>>> take advantage of the large folio for shmeme.
>>>>>>
>>>>>> Moreover, the swap code already supports for swapping out large folio
>>>>>> without
>>>>>> split, and large folio swap-in[3] series is queued into mm-unstable branch.
>>>>>> Hence this patch set also supports the large folio swap-out and swap-in for
>>>>>> shmem.
>>>>>
>>>>> I'll add this to mm-unstable for some exposure, but I wonder how much
>>>>> testing it will have recieved by the time the next merge window opens?
>>>>
>>>> Thanks Andrew. I am fine with this series going to 6.12 if you are concerned
>>>> about insufficient testing (and let's also wait for Hugh's comments). Since we
>>>> (Daniel and I) have some follow-up patches that will rely on this swap series,
>>>> hope this series can be tested as extensively as possible to ensure its
>>>> stability in the mm branch.
>>>
>>> Thanks for giving it the exposure, Andrew, but please drop it from
>>> mm-unstable until the next cycle.
>>
>> Thanks, dropped.
> 
> Thanks. I'll add a little more info in other mail, against the further
> 2024-06-18 problems I reported, but tl;dr is they are still a mystery:
> I cannot yet say "drop this" or "drop that" or "here's a fix".
> 
>>
>>> p.s. I think Andrew Bresticker's do_set_pmd() fix has soaked
>>> long enough, and deserves promotion to hotfix and Linus soon.
>>
>> Oh, OK, done.
>>
>> And it's cc:stable.  I didn't get any sens of urgency for this one -
>> what is your thinking here?
> 
> I thought you were right to add the cc:stable. The current v6.8..v6.10
> state does not result in any crashes or warnings, but it totally (well,
> 511 times out of 512, in some workloads anyway) defeats the purpose of
> shmem+file huge pages - the kernel is going to all the trouble of trying
> to allocate those huge pages, but then refuses to map them by PMD unless
> the fault happens to occur within the first 4096 bytes (talking x86_64).
> 
> I imagine that this causes a significant performance degradation in
> some workloads which ask for and are used to getting huge pages there;
> and they might also exceed their memory quotas, since a page table has
> to be allocated where a PMD-mapping needs none (anon THPs reserve a page
> table anyway, to rely on later if splitting, but shmem+file THPs do not).
> And it's surprising that no tests were reported as failing.

Exactly my thinking. Either lack of tests or it doesn't really happen 
that often where khugepaged doesn't fix it up.

After all it's been two kernel releases ....

-- 
Cheers,

David / dhildenb



  reply	other threads:[~2024-06-20  6:42 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-18  6:54 Baolin Wang
2024-06-18  6:54 ` [PATCH v2 1/9] mm: vmscan: add validation before spliting shmem large folio Baolin Wang
2024-06-20  6:12   ` Yu Zhao
2024-06-20  8:26     ` Baolin Wang
2024-06-18  6:54 ` [PATCH v2 2/9] mm: swap: extend swap_shmem_alloc() to support batch SWAP_MAP_SHMEM flag setting Baolin Wang
2024-06-18  6:54 ` [PATCH v2 3/9] mm: shmem: extend shmem_partial_swap_usage() to support large folio swap Baolin Wang
2024-06-18  6:54 ` [PATCH v2 4/9] mm: shmem: return number of pages beeing freed in shmem_free_swap Baolin Wang
2024-06-18  6:54 ` [PATCH v2 5/9] mm: filemap: use xa_get_order() to get the swap entry order Baolin Wang
2024-06-18  6:54 ` [PATCH v2 6/9] mm: shmem: use swap_free_nr() to free shmem swap entries Baolin Wang
2024-06-18  6:54 ` [PATCH v2 7/9] mm: shmem: support large folio allocation for shmem_replace_folio() Baolin Wang
2024-06-18  6:54 ` [PATCH v2 8/9] mm: shmem: drop folio reference count using 'nr_pages' in shmem_delete_from_page_cache() Baolin Wang
2024-06-18  6:54 ` [PATCH v2 9/9] mm: shmem: support large folio swap out Baolin Wang
2024-06-18 20:05 ` [PATCH v2 0/9] support large folio swap-out and swap-in for shmem Andrew Morton
2024-06-19  1:28   ` Baolin Wang
2024-06-19  8:16     ` Hugh Dickins
2024-06-19  8:58       ` Baolin Wang
2024-06-20  1:33       ` Andrew Morton
2024-06-20  3:59         ` Hugh Dickins
2024-06-20  6:41           ` David Hildenbrand [this message]
2024-06-20  4:42       ` Hugh Dickins
2024-06-20  6:52         ` David Hildenbrand
2024-06-20 16:27           ` Hugh Dickins
2024-06-20 16:51             ` David Hildenbrand
2024-06-25  4:54         ` Hugh Dickins

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=a14632e8-6f60-43f0-b80d-fea98491975c@redhat.com \
    --to=david@redhat.com \
    --cc=21cnbao@gmail.com \
    --cc=abrestic@rivosinc.com \
    --cc=akpm@linux-foundation.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=chrisl@kernel.org \
    --cc=da.gomez@samsung.com \
    --cc=hughd@google.com \
    --cc=ioworker0@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=p.raghav@samsung.com \
    --cc=ryan.roberts@arm.com \
    --cc=shy828301@gmail.com \
    --cc=wangkefeng.wang@huawei.com \
    --cc=willy@infradead.org \
    --cc=ying.huang@intel.com \
    --cc=ziy@nvidia.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