From: Michal Hocko <mhocko@kernel.org>
To: Matthew Wilcox <willy@infradead.org>
Cc: linux-mm@kvack.org
Subject: Re: [PATCH v2 00/15] Remove 'order' argument from many mm functions
Date: Mon, 13 May 2019 12:51:38 +0200 [thread overview]
Message-ID: <20190513105138.GF24036@dhcp22.suse.cz> (raw)
In-Reply-To: <20190510135038.17129-1-willy@infradead.org>
On Fri 10-05-19 06:50:23, Matthew Wilcox wrote:
> From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
>
> This is a little more serious attempt than v1, since nobody seems opposed
> to the concept of using GFP flags to pass the order around. I've split
> it up a bit better, and I've reversed the arguments of __alloc_pages_node
> to match the order of the arguments to other functions in the same family.
> alloc_pages_node() needs the same treatment, but there's about 70 callers,
> so I'm going to skip it for now.
>
> This is against current -mm. I'm seeing a text saving of 482 bytes from
> a tinyconfig vmlinux (1003785 reduced to 1003303). There are more
> savings to be had by combining together order and the gfp flags, for
> example in the scan_control data structure.
So what is the primary objective here? Reduce the code size? Reduce the
registers pressure? Please tell us more why changing the core allocator
API and make it more subtle is worth it.
> I think there are also cognitive savings to be had from eliminating
> some of the function variants which exist solely to take an 'order'.
>
> Matthew Wilcox (Oracle) (15):
> mm: Remove gfp_flags argument from rmqueue_pcplist
> mm: Pass order to __alloc_pages_nodemask in GFP flags
> mm: Pass order to __alloc_pages in GFP flags
> mm: Pass order to alloc_page_interleave in GFP flags
> mm: Pass order to alloc_pages_current in GFP flags
> mm: Pass order to alloc_pages_vma in GFP flags
> mm: Pass order to __alloc_pages_node in GFP flags
> mm: Pass order to __get_free_page in GFP flags
> mm: Pass order to prep_new_page in GFP flags
> mm: Pass order to rmqueue in GFP flags
> mm: Pass order to get_page_from_freelist in GFP flags
> mm: Pass order to __alloc_pages_cpuset_fallback in GFP flags
> mm: Pass order to prepare_alloc_pages in GFP flags
> mm: Pass order to try_to_free_pages in GFP flags
> mm: Pass order to node_reclaim() in GFP flags
>
> arch/ia64/kernel/uncached.c | 6 +-
> arch/ia64/sn/pci/pci_dma.c | 4 +-
> arch/powerpc/platforms/cell/ras.c | 5 +-
> arch/x86/events/intel/ds.c | 4 +-
> arch/x86/kvm/vmx/vmx.c | 4 +-
> drivers/misc/sgi-xp/xpc_uv.c | 5 +-
> include/linux/gfp.h | 59 +++++++++++--------
> include/linux/migrate.h | 2 +-
> include/linux/swap.h | 2 +-
> include/trace/events/vmscan.h | 28 ++++-----
> kernel/profile.c | 2 +-
> mm/filemap.c | 2 +-
> mm/gup.c | 4 +-
> mm/hugetlb.c | 5 +-
> mm/internal.h | 5 +-
> mm/khugepaged.c | 2 +-
> mm/mempolicy.c | 34 +++++------
> mm/migrate.c | 9 ++-
> mm/page_alloc.c | 98 +++++++++++++++----------------
> mm/shmem.c | 5 +-
> mm/slab.c | 3 +-
> mm/slob.c | 2 +-
> mm/slub.c | 2 +-
> mm/vmscan.c | 26 ++++----
> 24 files changed, 157 insertions(+), 161 deletions(-)
>
> --
> 2.20.1
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2019-05-13 10:51 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-10 13:50 [PATCH v2 00/15] Remove 'order' argument from many mm functions Matthew Wilcox
2019-05-10 13:50 ` [PATCH v2 01/15] mm: Remove gfp_flags argument from rmqueue_pcplist Matthew Wilcox
2019-05-10 13:50 ` [PATCH v2 02/15] mm: Pass order to __alloc_pages_nodemask in GFP flags Matthew Wilcox
2019-05-10 13:50 ` [PATCH v2 03/15] mm: Pass order to __alloc_pages " Matthew Wilcox
2019-05-10 13:50 ` [PATCH v2 04/15] mm: Pass order to alloc_page_interleave " Matthew Wilcox
2019-05-10 13:50 ` [PATCH v2 05/15] mm: Pass order to alloc_pages_current " Matthew Wilcox
2019-05-10 13:50 ` [PATCH v2 06/15] mm: Pass order to alloc_pages_vma " Matthew Wilcox
2019-05-10 13:50 ` [PATCH v2 07/15] mm: Pass order to __alloc_pages_node " Matthew Wilcox
2019-05-10 13:50 ` [PATCH v2 08/15] mm: Pass order to __get_free_page " Matthew Wilcox
2019-05-10 13:50 ` [PATCH v2 09/15] mm: Pass order to prep_new_page " Matthew Wilcox
2019-05-10 13:50 ` [PATCH v2 10/15] mm: Pass order to rmqueue " Matthew Wilcox
2019-05-10 13:50 ` [PATCH v2 11/15] mm: Pass order to get_page_from_freelist " Matthew Wilcox
2019-05-10 13:50 ` [PATCH v2 12/15] mm: Pass order to __alloc_pages_cpuset_fallback " Matthew Wilcox
2019-05-10 13:50 ` [PATCH v2 13/15] mm: Pass order to prepare_alloc_pages " Matthew Wilcox
2019-05-10 13:50 ` [PATCH v2 14/15] mm: Pass order to try_to_free_pages " Matthew Wilcox
2019-05-10 23:26 ` Ira Weiny
2019-05-10 13:50 ` [PATCH v2 15/15] mm: Pass order to node_reclaim() " Matthew Wilcox
2019-05-10 23:30 ` [PATCH v2 00/15] Remove 'order' argument from many mm functions Ira Weiny
2019-05-13 10:51 ` Michal Hocko [this message]
2019-05-13 11:21 ` Matthew Wilcox
2019-05-13 11:42 ` Michal Hocko
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=20190513105138.GF24036@dhcp22.suse.cz \
--to=mhocko@kernel.org \
--cc=linux-mm@kvack.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).