Re: [PATCH] mm: remove offset check on page->compound_head and folio->lru

Wei Yang
2022-01-08T08:20:56Z

On Sat, Jan 08, 2022 at 12:49:53AM +0000, Matthew Wilcox wrote:
>On Fri, Jan 07, 2022 at 04:08:25PM -0800, Andrew Morton wrote:
>> On Fri, 7 Jan 2022 22:11:20 +0000 Matthew Wilcox <willy@infradead.org> wrote:
>>
>> > > Hi, Matthew
>> > >
>> > > Would you mind sharing some insight on this check?
>> >
>> > It's right there in the comments.
>>
>> Well I can't figure out which comment you're referring to?
>
> * WARNING: bit 0 of the first word is used for PageTail(). That
> * means the other users of this union MUST NOT use the bit to
> * avoid collision and false-positive PageTail().
>

I know this requirement on bit 0 of first word. But I don't see the connection
between this and the check of page->compound_head and folio->lru.

This is more like a internal requirement on struct page. There are 8 struct in
this five words union. And this requirement apply to bit 0 of first word of
all those five struct.

To me, if folio has the same layout of page, folio meets this requirement. I
still not catch the point why we need this check here.