From: Song Liu <songliubraving@fb.com>
To: William Kucharski <william.kucharski@oracle.com>
Cc: "ceph-devel@vger.kernel.org" <ceph-devel@vger.kernel.org>,
"linux-afs@lists.infradead.org" <linux-afs@lists.infradead.org>,
"linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>,
lkml <linux-kernel@vger.kernel.org>,
Linux-MM <linux-mm@kvack.org>,
Networking <netdev@vger.kernel.org>, "Chris Mason" <clm@fb.com>,
"David S. Miller" <davem@davemloft.net>,
"David Sterba" <dsterba@suse.com>,
"Josef Bacik" <josef@toxicpanda.com>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
"Bob Kasten" <robert.a.kasten@intel.com>,
"Mike Kravetz" <mike.kravetz@oracle.com>,
"Chad Mynhier" <chad.mynhier@oracle.com>,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
"Johannes Weiner" <jweiner@fb.com>,
"Matthew Wilcox" <willy@infradead.org>,
"Dave Airlie" <airlied@redhat.com>,
"Vlastimil Babka" <vbabka@suse.cz>,
"Keith Busch" <keith.busch@intel.com>,
"Ralph Campbell" <rcampbell@nvidia.com>,
"Steve Capper" <steve.capper@arm.com>,
"Dave Chinner" <dchinner@redhat.com>,
"Sean Christopherson" <sean.j.christopherson@intel.com>,
"Hugh Dickins" <hughd@google.com>,
"Ilya Dryomov" <idryomov@gmail.com>,
"Alexander Duyck" <alexander.h.duyck@linux.intel.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Jérôme Glisse" <jglisse@redhat.com>,
"Amir Goldstein" <amir73il@gmail.com>,
"Jason Gunthorpe" <jgg@ziepe.ca>,
"Michal Hocko" <mhocko@suse.com>, "Jann Horn" <jannh@google.com>,
"David Howells" <dhowells@redhat.com>,
"John Hubbard" <jhubbard@nvidia.com>,
"Souptick Joarder" <jrdr.linux@gmail.com>,
"john.hubbard@gmail.com" <john.hubbard@gmail.com>,
"Jan Kara" <jack@suse.cz>,
"Andrey Konovalov" <andreyknvl@google.com>,
"Arun KS" <arunks@codeaurora.org>,
"Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
"Jeff Layton" <jlayton@kernel.org>,
"Yangtao Li" <tiny.windzz@gmail.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Robin Murphy" <robin.murphy@arm.com>,
"Mike Rapoport" <rppt@linux.ibm.com>,
"David Rientjes" <rientjes@google.com>,
"Andrey Ryabinin" <aryabinin@virtuozzo.com>,
"Yafang Shao" <laoar.shao@gmail.com>,
"Huang Shijie" <sjhuang@iluvatar.ai>,
"Yang Shi" <yang.shi@linux.alibaba.com>,
"Miklos Szeredi" <mszeredi@redhat.com>,
"Pavel Tatashin" <pasha.tatashin@oracle.com>,
"Kirill Tkhai" <ktkhai@virtuozzo.com>,
"Sage Weil" <sage@redhat.com>, "Ira Weiny" <ira.weiny@intel.com>,
"Dan Williams" <dan.j.williams@intel.com>,
"Darrick J. Wong" <darrick.wong@oracle.com>,
"Gao Xiang" <hsiangkao@aol.com>,
"Bartlomiej Zolnierkiewicz" <b.zolnierkie@samsung.com>,
"Ross Zwisler" <zwisler@google.com>
Subject: Re: [PATCH v2 2/2] mm,thp: Add experimental config option RO_EXEC_FILEMAP_HUGE_FAULT_THP
Date: Tue, 30 Jul 2019 19:14:47 +0000 [thread overview]
Message-ID: <1D97995B-E3A6-4397-AA99-2E7B90534559@fb.com> (raw)
In-Reply-To: <ffbdd056-e80c-41f4-37c4-c8b758fb59e7@oracle.com>
> On Jul 30, 2019, at 7:11 AM, William Kucharski <william.kucharski@oracle.com> wrote:
>
>
>
> On 7/29/19 4:51 PM, Song Liu wrote:
>
>>
>>> +#define HPAGE_PMD_OFFSET (HPAGE_PMD_SIZE - 1)
>> ^ space vs. tab difference here.
>
> Thanks, good catch!
>
>>> +#define HPAGE_PMD_MASK (~(HPAGE_PMD_OFFSET))
>>> +
>>> +#define HPAGE_PUD_SHIFT PUD_SHIFT
>>> +#define HPAGE_PUD_SIZE ((1UL) << HPAGE_PUD_SHIFT)
>>> +#define HPAGE_PUD_OFFSET (HPAGE_PUD_SIZE - 1)
>
> Saw this one, too.
>
>> Should HPAGE_PMD_OFFSET and HPAGE_PUD_OFFSET include bits for
>> PAGE_OFFSET? I guess we can just keep huge_mm.h as-is and use
>> ~HPAGE_PMD_MASK.
>
> That's what I had intended; would you rather see those macros
> omit the unneeded for the larger page size bits?
I think using ~HPAGE_PMD_MASK is common practice. Let's keep it
that way.
>
>>> - * - FGP_PMD: If FGP_CREAT is specified, attempt to allocate a PMD-sized page.
>>> + * - FGP_PMD: If FGP_CREAT is specified, attempt to allocate a PMD-sized page
>
> No - this came in as part of patch 1/2 and I missed dropping the period at the end of the line that caused this to be a diff, so I will put it
> back. :-)
>
>> We have been using name "xas" for "struct xa_state *". Let's keep using it?
>
> Thanks, done.
>
>>> + if (unlikely(!(PageCompound(new_page)))) {
>> What condition triggers this case
> I wanted a check to make sure that __page_cacke_alloc() returned a large page. I don't recall if the mechanism guarantees that when you ask for
> a large page, you get one, so I wanted to handle that case.
>
> If you prefer, I could make this a VM_BUG_ON_PAGE() instead, but I
> wanted it to fallback gracefully if it can't get a properly sized
> page.
I think __page_cache_alloc() guarantees compound page. If not, it
should return NULL.
>
>>> +#ifndef COMPOUND_PAGES_HEAD_ONLY
>> Where do we define COMPOUND_PAGES_HEAD_ONLY?
>
> At present, we do not.
>
> I used this so I could include the code that would be needed once
> Matthew's "store only head pages in page cache" changes go back in,
> which looks like it may not be until 5.4-rc1. Matthew recommended I
We don't have to wait until 5.4-rc1. We could develop based on this
patch once it lands in mm tree.
Thanks,
Song
prev parent reply other threads:[~2019-07-30 19:15 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-29 21:09 [PATCH v2 0/2] mm,thp: Add filemap_huge_fault() for THP William Kucharski
2019-07-29 21:09 ` [PATCH v2 1/2] mm: Allow the page cache to allocate large pages William Kucharski
2019-07-29 22:03 ` Song Liu
2019-07-30 20:26 ` Matthew Wilcox
2019-07-30 21:13 ` Song Liu
2019-07-29 21:09 ` [PATCH v2 2/2] mm,thp: Add experimental config option RO_EXEC_FILEMAP_HUGE_FAULT_THP William Kucharski
2019-07-29 22:47 ` Dan Williams
2019-07-30 19:18 ` Matthew Wilcox
2019-07-29 22:51 ` Song Liu
2019-07-30 14:11 ` William Kucharski
2019-07-30 19:14 ` Song Liu [this message]
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=1D97995B-E3A6-4397-AA99-2E7B90534559@fb.com \
--to=songliubraving@fb.com \
--cc=airlied@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=alexander.h.duyck@linux.intel.com \
--cc=amir73il@gmail.com \
--cc=andreyknvl@google.com \
--cc=aneesh.kumar@linux.ibm.com \
--cc=arunks@codeaurora.org \
--cc=aryabinin@virtuozzo.com \
--cc=b.zolnierkie@samsung.com \
--cc=ceph-devel@vger.kernel.org \
--cc=chad.mynhier@oracle.com \
--cc=clm@fb.com \
--cc=dan.j.williams@intel.com \
--cc=darrick.wong@oracle.com \
--cc=dave.hansen@linux.intel.com \
--cc=davem@davemloft.net \
--cc=dchinner@redhat.com \
--cc=dhowells@redhat.com \
--cc=dsterba@suse.com \
--cc=hsiangkao@aol.com \
--cc=hughd@google.com \
--cc=idryomov@gmail.com \
--cc=ira.weiny@intel.com \
--cc=jack@suse.cz \
--cc=jannh@google.com \
--cc=jgg@ziepe.ca \
--cc=jglisse@redhat.com \
--cc=jhubbard@nvidia.com \
--cc=jlayton@kernel.org \
--cc=john.hubbard@gmail.com \
--cc=josef@toxicpanda.com \
--cc=jrdr.linux@gmail.com \
--cc=jweiner@fb.com \
--cc=keith.busch@intel.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=ktkhai@virtuozzo.com \
--cc=laoar.shao@gmail.com \
--cc=linux-afs@lists.infradead.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.com \
--cc=mike.kravetz@oracle.com \
--cc=mszeredi@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pasha.tatashin@oracle.com \
--cc=rcampbell@nvidia.com \
--cc=rientjes@google.com \
--cc=robert.a.kasten@intel.com \
--cc=robin.murphy@arm.com \
--cc=rppt@linux.ibm.com \
--cc=sage@redhat.com \
--cc=sean.j.christopherson@intel.com \
--cc=sjhuang@iluvatar.ai \
--cc=steve.capper@arm.com \
--cc=tglx@linutronix.de \
--cc=tiny.windzz@gmail.com \
--cc=vbabka@suse.cz \
--cc=william.kucharski@oracle.com \
--cc=willy@infradead.org \
--cc=yang.shi@linux.alibaba.com \
--cc=zwisler@google.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