[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <814579.1623838209@warthog.procyon.org.uk>
Date: Wed, 16 Jun 2021 11:10:09 +0100
From: David Howells <dhowells@...hat.com>
To: "Matthew Wilcox (Oracle)" <willy@...radead.org>
Cc: dhowells@...hat.com, akpm@...ux-foundation.org,
linux-fsdevel@...r.kernel.org, linux-mm@...ck.org,
linux-kernel@...r.kernel.org, Christoph Hellwig <hch@....de>,
Jeff Layton <jlayton@...nel.org>,
"Kirill A . Shutemov" <kirill.shutemov@...ux.intel.com>,
Vlastimil Babka <vbabka@...e.cz>,
William Kucharski <william.kucharski@...cle.com>
Subject: Re: [PATCH v11 16/33] mm/util: Add folio_mapping() and folio_file_mapping()
Matthew Wilcox (Oracle) <willy@...radead.org> wrote:
> These are the folio equivalent of page_mapping() and page_file_mapping().
> Add an out-of-line page_mapping() wrapper around folio_mapping()
> in order to prevent the page_folio() call from bloating every caller
> of page_mapping(). Adjust page_file_mapping() and page_mapping_file()
Confusingly named, but not the fault of this patch.
> to use folios internally. Rename __page_file_mapping() to
> swapcache_mapping() and change it to take a folio.
>
> This ends up saving 122 bytes of text overall. folio_mapping() is
> 45 bytes shorter than page_mapping() was, but the new page_mapping()
> wrapper is 30 bytes. The major reduction is a few bytes less in dozens
> of nfs functions (which call page_file_mapping()). Most of these appear
> to be a slight change in gcc's register allocation decisions, which allow:
>
> 48 8b 56 08 mov 0x8(%rsi),%rdx
> 48 8d 42 ff lea -0x1(%rdx),%rax
> 83 e2 01 and $0x1,%edx
> 48 0f 44 c6 cmove %rsi,%rax
>
> to become:
>
> 48 8b 46 08 mov 0x8(%rsi),%rax
> 48 8d 78 ff lea -0x1(%rax),%rdi
> a8 01 test $0x1,%al
> 48 0f 44 fe cmove %rsi,%rdi
>
> for a reduction of a single byte. Once the NFS client is converted to
> use folios, this entire sequence will disappear.
>
> Also add folio_mapping() documentation.
>
> Signed-off-by: Matthew Wilcox (Oracle) <willy@...radead.org>
> Reviewed-by: Christoph Hellwig <hch@....de>
> Acked-by: Jeff Layton <jlayton@...nel.org>
> Acked-by: Kirill A. Shutemov <kirill.shutemov@...ux.intel.com>
> Acked-by: Vlastimil Babka <vbabka@...e.cz>
> Reviewed-by: William Kucharski <william.kucharski@...cle.com>
Reviewed-by: David Howells <dhowells@...hat.com>
Powered by blists - more mailing lists