From: Alexander Duyck <alexander.duyck@gmail.com> To: nitesh@redhat.com, kvm@vger.kernel.org, david@redhat.com, mst@redhat.com, dave.hansen@intel.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org Cc: yang.zhang.wz@gmail.com, pagupta@redhat.com, riel@surriel.com, konrad.wilk@oracle.com, lcapitulino@redhat.com, wei.w.wang@intel.com, aarcange@redhat.com, pbonzini@redhat.com, dan.j.williams@intel.com, alexander.h.duyck@linux.intel.com Subject: [PATCH v1 2/6] mm: Move set/get_pcppage_migratetype to mmzone.h Date: Wed, 19 Jun 2019 15:33:09 -0700 Message-ID: <20190619223309.1231.16506.stgit@localhost.localdomain> (raw) In-Reply-To: <20190619222922.1231.27432.stgit@localhost.localdomain> From: Alexander Duyck <alexander.h.duyck@linux.intel.com> In order to support page aeration it will be necessary to store and retrieve the migratetype of a page. To enable that I am moving the set and get operations for pcppage_migratetype into the mmzone header so that they can be used when adding or removing pages from the free lists. Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com> --- include/linux/mmzone.h | 18 ++++++++++++++++++ mm/page_alloc.c | 18 ------------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 4c07af2cfc2f..6f8fd5c1a286 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -95,6 +95,24 @@ static inline bool is_migrate_movable(int mt) get_pfnblock_flags_mask(page, page_to_pfn(page), \ PB_migrate_end, MIGRATETYPE_MASK) +/* + * A cached value of the page's pageblock's migratetype, used when the page is + * put on a pcplist. Used to avoid the pageblock migratetype lookup when + * freeing from pcplists in most cases, at the cost of possibly becoming stale. + * Also the migratetype set in the page does not necessarily match the pcplist + * index, e.g. page might have MIGRATE_CMA set but be on a pcplist with any + * other index - this ensures that it will be put on the correct CMA freelist. + */ +static inline int get_pcppage_migratetype(struct page *page) +{ + return page->index; +} + +static inline void set_pcppage_migratetype(struct page *page, int migratetype) +{ + page->index = migratetype; +} + struct free_area { struct list_head free_list[MIGRATE_TYPES]; unsigned long nr_free; diff --git a/mm/page_alloc.c b/mm/page_alloc.c index ec344ce46587..3e21e01f6165 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -136,24 +136,6 @@ struct pcpu_drain { int percpu_pagelist_fraction; gfp_t gfp_allowed_mask __read_mostly = GFP_BOOT_MASK; -/* - * A cached value of the page's pageblock's migratetype, used when the page is - * put on a pcplist. Used to avoid the pageblock migratetype lookup when - * freeing from pcplists in most cases, at the cost of possibly becoming stale. - * Also the migratetype set in the page does not necessarily match the pcplist - * index, e.g. page might have MIGRATE_CMA set but be on a pcplist with any - * other index - this ensures that it will be put on the correct CMA freelist. - */ -static inline int get_pcppage_migratetype(struct page *page) -{ - return page->index; -} - -static inline void set_pcppage_migratetype(struct page *page, int migratetype) -{ - page->index = migratetype; -} - #ifdef CONFIG_PM_SLEEP /* * The following functions are used by the suspend/hibernate code to temporarily
next prev parent reply index Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-19 22:32 [PATCH v1 0/6] mm / virtio: Provide support for paravirtual waste page treatment Alexander Duyck 2019-06-19 22:33 ` [PATCH v1 1/6] mm: Adjust shuffle code to allow for future coalescing Alexander Duyck 2019-06-25 7:55 ` David Hildenbrand 2019-06-28 19:49 ` Alexander Duyck 2019-06-25 18:25 ` Dave Hansen 2019-06-25 18:26 ` Dave Hansen 2019-06-19 22:33 ` Alexander Duyck [this message] 2019-06-25 18:28 ` [PATCH v1 2/6] mm: Move set/get_pcppage_migratetype to mmzone.h Dave Hansen 2019-06-28 19:55 ` Alexander Duyck 2019-06-19 22:33 ` [PATCH v1 3/6] mm: Use zone and order instead of free area in free_list manipulators Alexander Duyck 2019-06-25 18:36 ` Dave Hansen 2019-06-19 22:33 ` [PATCH v1 4/6] mm: Introduce "aerated" pages Alexander Duyck 2019-06-25 19:45 ` Dave Hansen 2019-07-08 17:32 ` Alexander Duyck 2019-06-19 22:33 ` [PATCH v1 5/6] mm: Add logic for separating "aerated" pages from "raw" pages Alexander Duyck 2019-06-25 20:24 ` Dave Hansen 2019-07-08 19:02 ` Alexander Duyck 2019-07-08 19:36 ` Dave Hansen 2019-07-08 22:02 ` Alexander Duyck 2019-06-19 22:33 ` [PATCH v1 6/6] virtio-balloon: Add support for aerating memory via hinting Alexander Duyck 2019-07-16 9:55 ` Michael S. Tsirkin 2019-07-16 14:00 ` Dave Hansen 2019-07-16 14:12 ` David Hildenbrand 2019-07-16 14:17 ` David Hildenbrand 2019-07-16 15:04 ` Michael S. Tsirkin 2019-07-16 14:41 ` Dave Hansen 2019-07-16 15:01 ` Wang, Wei W 2019-07-16 16:12 ` Michael S. Tsirkin 2019-07-16 15:02 ` David Hildenbrand 2019-07-16 15:37 ` Alexander Duyck 2019-07-16 16:07 ` Michael S. Tsirkin 2019-07-16 16:54 ` Alexander Duyck 2019-07-16 17:41 ` Michael S. Tsirkin 2019-07-16 21:06 ` Alexander Duyck 2019-07-17 10:28 ` Michael S. Tsirkin 2019-07-17 16:43 ` Alexander Duyck 2019-07-18 5:13 ` Michael S. Tsirkin 2019-07-18 15:34 ` Alexander Duyck 2019-07-18 16:03 ` Nitesh Narayan Lal 2019-07-18 20:27 ` Michael S. Tsirkin 2019-07-18 16:07 ` Michael S. Tsirkin 2019-07-18 20:29 ` Alexander Duyck 2019-07-18 20:37 ` Michael S. Tsirkin 2019-07-18 20:54 ` Alexander Duyck 2019-07-18 20:24 ` Michael S. Tsirkin 2019-07-18 20:34 ` Alexander Duyck 2019-07-18 20:48 ` Michael S. Tsirkin 2019-07-18 21:09 ` Alexander Duyck 2019-06-19 22:37 ` [PATCH v1 QEMU] QEMU: Provide a interface for hinting based off of the balloon infrastructure Alexander Duyck 2019-06-25 7:42 ` [PATCH v1 0/6] mm / virtio: Provide support for paravirtual waste page treatment David Hildenbrand 2019-06-25 14:10 ` Dave Hansen 2019-06-25 17:00 ` Alexander Duyck 2019-06-25 18:12 ` David Hildenbrand 2019-06-25 18:22 ` Dave Hansen 2019-07-15 9:41 ` David Hildenbrand 2019-07-15 14:57 ` Alexander Duyck 2019-06-25 16:09 ` Alexander Duyck 2019-06-26 9:01 ` Christophe de Dinechin 2019-06-26 9:12 ` David Hildenbrand
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=20190619223309.1231.16506.stgit@localhost.localdomain \ --to=alexander.duyck@gmail.com \ --cc=aarcange@redhat.com \ --cc=akpm@linux-foundation.org \ --cc=alexander.h.duyck@linux.intel.com \ --cc=dan.j.williams@intel.com \ --cc=dave.hansen@intel.com \ --cc=david@redhat.com \ --cc=konrad.wilk@oracle.com \ --cc=kvm@vger.kernel.org \ --cc=lcapitulino@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mst@redhat.com \ --cc=nitesh@redhat.com \ --cc=pagupta@redhat.com \ --cc=pbonzini@redhat.com \ --cc=riel@surriel.com \ --cc=wei.w.wang@intel.com \ --cc=yang.zhang.wz@gmail.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
KVM Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/kvm/0 kvm/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 kvm kvm/ https://lore.kernel.org/kvm \ kvm@vger.kernel.org public-inbox-index kvm Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.kvm AGPL code for this site: git clone https://public-inbox.org/public-inbox.git