From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
To: Matthew Wilcox <willy@infradead.org>,
Mel Gorman <mgorman@techsingularity.net>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Andrea Arcangeli <aarcange@redhat.com>,
Dan Williams <dan.j.williams@intel.com>,
Dave Hansen <dave.hansen@intel.com>,
David Hildenbrand <david@redhat.com>,
Michal Hocko <mhocko@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Alex Williamson <alex.williamson@redhat.com>
Subject: Re: [RFC PATCH 4/4] mm: Add PG_zero support
Date: Mon, 13 Apr 2020 08:11:59 -0700 [thread overview]
Message-ID: <5eb37d79-6420-fcb9-2b4c-6cc6194afcd9@linux.intel.com> (raw)
In-Reply-To: <20200412101223.GK21484@bombadil.infradead.org>
On 4/12/2020 3:12 AM, Matthew Wilcox wrote:
> On Sun, Apr 12, 2020 at 05:09:49AM -0400, liliangleo wrote:
>> Zero out the page content usually happens when allocating pages,
>> this is a time consuming operation, it makes pin and mlock
>> operation very slowly, especially for a large batch of memory.
>>
>> This patch introduce a new feature for zero out pages before page
>> allocation, it can help to speed up page allocation.
>>
>> The idea is very simple, zero out free pages when the system is
>> not busy and mark the page with PG_zero, when allocating a page,
>> if the page need to be filled with zero, check the flag in the
>> struct page, if it's marked as PG_zero, zero out can be skipped,
>> it can save cpu time and speed up page allocation.
>
> We are very short on bits in the page flags. If we can implement this
> feature without using another one, this would be good.
>
> If the bit is only set on pages which are PageBuddy(), we can definitely
> find space for it as an alias of another bit.
I had considered doing something similar several months back because one
of the side effects in the VM is that most of the pages appear to have
been zeroed by page reporting. However the problem is that in order to
handle the zeroing case you have to push the flag outside the PageBuddy
region, and you cannot guarantee that the page is even expected to be
zeroed since it might have been zeroed before it was freed, so it is
just adding work of having to clear an extra flag some time after
allocation.
In addition, unlike madvising the page away there is a pretty
significant performance penalty for having to clear the page a second
time when the page is split or merged.
next prev parent reply other threads:[~2020-04-13 15:12 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-12 9:09 [RFC PATCH 4/4] mm: Add PG_zero support liliangleo
2020-04-12 10:12 ` Matthew Wilcox
2020-04-13 15:11 ` Alexander Duyck [this message]
2020-04-13 21:05 ` Andrew Morton
2020-04-22 14:09 ` Vlastimil Babka
2020-04-24 0:37 ` Andrew Morton
2020-04-24 0:41 ` Matthew Wilcox
2020-04-24 7:28 ` David Hildenbrand
2020-04-24 7:55 ` Vlastimil Babka
2020-04-24 7:57 ` David Hildenbrand
2020-04-15 5:15 ` [mm] 5ae8a9d7c8: will-it-scale.per_thread_ops -2.1% regression kernel test robot
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=5eb37d79-6420-fcb9-2b4c-6cc6194afcd9@linux.intel.com \
--to=alexander.h.duyck@linux.intel.com \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=alex.williamson@redhat.com \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@intel.com \
--cc=david@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=mhocko@kernel.org \
--cc=willy@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).