From: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com> To: Fengguang Wu <fengguang.wu@intel.com>, Andrew Morton <akpm@linux-foundation.org> Cc: Linux Memory Management List <linux-mm@kvack.org>, Yao Yuan <yuan.yao@intel.com>, kvm@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>, Fan Du <fan.du@intel.com>, Peng Dong <dongx.peng@intel.com>, Huang Ying <ying.huang@intel.com>, Liu Jingqi <jingqi.liu@intel.com>, Dong Eddie <eddie.dong@intel.com>, Dave Hansen <dave.hansen@intel.com>, Zhang Yi <yi.z.zhang@linux.intel.com>, Dan Williams <dan.j.williams@intel.com> Subject: Re: [RFC][PATCH v2 11/21] kvm: allocate page table pages from DRAM Date: Tue, 01 Jan 2019 14:53:07 +0530 [thread overview] Message-ID: <87pntg7mv8.fsf@linux.ibm.com> (raw) In-Reply-To: <20181226133351.703380444@intel.com> Fengguang Wu <fengguang.wu@intel.com> writes: > From: Yao Yuan <yuan.yao@intel.com> > > Signed-off-by: Yao Yuan <yuan.yao@intel.com> > Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> > --- > arch/x86/kvm/mmu.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > --- linux.orig/arch/x86/kvm/mmu.c 2018-12-26 20:54:48.846720344 +0800 > +++ linux/arch/x86/kvm/mmu.c 2018-12-26 20:54:48.842719614 +0800 > @@ -950,6 +950,16 @@ static void mmu_free_memory_cache(struct > kmem_cache_free(cache, mc->objects[--mc->nobjs]); > } > > +static unsigned long __get_dram_free_pages(gfp_t gfp_mask) > +{ > + struct page *page; > + > + page = __alloc_pages(GFP_KERNEL_ACCOUNT, 0, numa_node_id()); > + if (!page) > + return 0; > + return (unsigned long) page_address(page); > +} > + May be it is explained in other patches. What is preventing the allocation from pmem here? Is it that we are not using the memory policy prefered node id and hence the zone list we built won't have the PMEM node? > static int mmu_topup_memory_cache_page(struct kvm_mmu_memory_cache *cache, > int min) > { > @@ -958,7 +968,7 @@ static int mmu_topup_memory_cache_page(s > if (cache->nobjs >= min) > return 0; > while (cache->nobjs < ARRAY_SIZE(cache->objects)) { > - page = (void *)__get_free_page(GFP_KERNEL_ACCOUNT); > + page = (void *)__get_dram_free_pages(GFP_KERNEL_ACCOUNT); > if (!page) > return cache->nobjs >= min ? 0 : -ENOMEM; > cache->objects[cache->nobjs++] = page; -aneesh
WARNING: multiple messages have this Message-ID (diff)
From: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com> To: Fengguang Wu <fengguang.wu@intel.com>, Andrew Morton <akpm@linux-foundation.org> Cc: Linux Memory Management List <linux-mm@kvack.org>, Yao Yuan <yuan.yao@intel.com>, Fengguang Wu <fengguang.wu@intel.com>, kvm@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>, Fan Du <fan.du@intel.com>, Peng Dong <dongx.peng@intel.com>, Huang Ying <ying.huang@intel.com>, Liu Jingqi <jingqi.liu@intel.com>, Dong Eddie <eddie.dong@intel.com>, Dave Hansen <dave.hansen@intel.com>, Zhang Yi <yi.z.zhang@linux.intel.com>, Dan Williams <dan.j.williams@intel.com> Subject: Re: [RFC][PATCH v2 11/21] kvm: allocate page table pages from DRAM Date: Tue, 01 Jan 2019 14:53:07 +0530 [thread overview] Message-ID: <87pntg7mv8.fsf@linux.ibm.com> (raw) Message-ID: <20190101092307.7a_HrJd1NGwwAT9SmLqJRcfSBPNpGChUwzLS2rfYwe0@z> (raw) In-Reply-To: <20181226133351.703380444@intel.com> Fengguang Wu <fengguang.wu@intel.com> writes: > From: Yao Yuan <yuan.yao@intel.com> > > Signed-off-by: Yao Yuan <yuan.yao@intel.com> > Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> > --- > arch/x86/kvm/mmu.c | 12 +++++++++++- > 1 file changed, 11 insertions(+), 1 deletion(-) > > --- linux.orig/arch/x86/kvm/mmu.c 2018-12-26 20:54:48.846720344 +0800 > +++ linux/arch/x86/kvm/mmu.c 2018-12-26 20:54:48.842719614 +0800 > @@ -950,6 +950,16 @@ static void mmu_free_memory_cache(struct > kmem_cache_free(cache, mc->objects[--mc->nobjs]); > } > > +static unsigned long __get_dram_free_pages(gfp_t gfp_mask) > +{ > + struct page *page; > + > + page = __alloc_pages(GFP_KERNEL_ACCOUNT, 0, numa_node_id()); > + if (!page) > + return 0; > + return (unsigned long) page_address(page); > +} > + May be it is explained in other patches. What is preventing the allocation from pmem here? Is it that we are not using the memory policy prefered node id and hence the zone list we built won't have the PMEM node? > static int mmu_topup_memory_cache_page(struct kvm_mmu_memory_cache *cache, > int min) > { > @@ -958,7 +968,7 @@ static int mmu_topup_memory_cache_page(s > if (cache->nobjs >= min) > return 0; > while (cache->nobjs < ARRAY_SIZE(cache->objects)) { > - page = (void *)__get_free_page(GFP_KERNEL_ACCOUNT); > + page = (void *)__get_dram_free_pages(GFP_KERNEL_ACCOUNT); > if (!page) > return cache->nobjs >= min ? 0 : -ENOMEM; > cache->objects[cache->nobjs++] = page; -aneesh
next prev parent reply other threads:[~2019-01-01 9:23 UTC|newest] Thread overview: 99+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-12-26 13:14 [RFC][PATCH v2 00/21] PMEM NUMA node and hotness accounting/migration Fengguang Wu 2018-12-26 13:14 ` Fengguang Wu 2018-12-26 13:14 ` [RFC][PATCH v2 01/21] e820: cheat PMEM as DRAM Fengguang Wu 2018-12-26 13:14 ` Fengguang Wu 2018-12-27 3:41 ` Matthew Wilcox 2018-12-27 4:11 ` Fengguang Wu 2018-12-27 5:13 ` Dan Williams 2018-12-27 5:13 ` Dan Williams 2018-12-27 19:32 ` Yang Shi 2018-12-27 19:32 ` Yang Shi 2018-12-28 3:27 ` Fengguang Wu 2018-12-26 13:14 ` [RFC][PATCH v2 02/21] acpi/numa: memorize NUMA node type from SRAT table Fengguang Wu 2018-12-26 13:14 ` Fengguang Wu 2018-12-26 13:14 ` [RFC][PATCH v2 03/21] x86/numa_emulation: fix fake NUMA in uniform case Fengguang Wu 2018-12-26 13:14 ` Fengguang Wu 2018-12-26 13:14 ` [RFC][PATCH v2 04/21] x86/numa_emulation: pass numa node type to fake nodes Fengguang Wu 2018-12-26 13:14 ` Fengguang Wu 2018-12-26 13:14 ` [RFC][PATCH v2 05/21] mmzone: new pgdat flags for DRAM and PMEM Fengguang Wu 2018-12-26 13:14 ` Fengguang Wu 2018-12-26 13:14 ` [RFC][PATCH v2 06/21] x86,numa: update numa node type Fengguang Wu 2018-12-26 13:14 ` Fengguang Wu 2018-12-26 13:14 ` [RFC][PATCH v2 07/21] mm: export node type {pmem|dram} under /sys/bus/node Fengguang Wu 2018-12-26 13:14 ` Fengguang Wu 2018-12-26 13:14 ` [RFC][PATCH v2 08/21] mm: introduce and export pgdat peer_node Fengguang Wu 2018-12-26 13:14 ` Fengguang Wu 2018-12-27 20:07 ` Christopher Lameter 2018-12-27 20:07 ` Christopher Lameter 2018-12-28 2:31 ` Fengguang Wu 2018-12-26 13:14 ` [RFC][PATCH v2 09/21] mm: avoid duplicate peer target node Fengguang Wu 2018-12-26 13:14 ` Fengguang Wu 2018-12-26 13:14 ` [RFC][PATCH v2 10/21] mm: build separate zonelist for PMEM and DRAM node Fengguang Wu 2018-12-26 13:14 ` Fengguang Wu 2019-01-01 9:14 ` Aneesh Kumar K.V 2019-01-01 9:14 ` Aneesh Kumar K.V 2019-01-07 9:57 ` Fengguang Wu 2019-01-07 14:09 ` Aneesh Kumar K.V 2018-12-26 13:14 ` [RFC][PATCH v2 11/21] kvm: allocate page table pages from DRAM Fengguang Wu 2018-12-26 13:14 ` Fengguang Wu 2019-01-01 9:23 ` Aneesh Kumar K.V [this message] 2019-01-01 9:23 ` Aneesh Kumar K.V 2019-01-02 0:59 ` Yuan Yao 2019-01-02 16:47 ` Dave Hansen 2019-01-07 10:21 ` Fengguang Wu 2018-12-26 13:14 ` [RFC][PATCH v2 12/21] x86/pgtable: " Fengguang Wu 2018-12-26 13:14 ` Fengguang Wu 2018-12-26 13:14 ` [RFC][PATCH v2 13/21] x86/pgtable: dont check PMD accessed bit Fengguang Wu 2018-12-26 13:14 ` Fengguang Wu 2018-12-26 13:15 ` [RFC][PATCH v2 14/21] kvm: register in mm_struct Fengguang Wu 2018-12-26 13:15 ` Fengguang Wu 2019-02-02 6:57 ` Peter Xu 2019-02-02 10:50 ` Fengguang Wu 2019-02-04 10:46 ` Paolo Bonzini 2018-12-26 13:15 ` [RFC][PATCH v2 15/21] ept-idle: EPT walk for virtual machine Fengguang Wu 2018-12-26 13:15 ` Fengguang Wu 2018-12-26 13:15 ` [RFC][PATCH v2 16/21] mm-idle: mm_walk for normal task Fengguang Wu 2018-12-26 13:15 ` Fengguang Wu 2018-12-26 13:15 ` [RFC][PATCH v2 17/21] proc: introduce /proc/PID/idle_pages Fengguang Wu 2018-12-26 13:15 ` Fengguang Wu 2018-12-26 13:15 ` [RFC][PATCH v2 18/21] kvm-ept-idle: enable module Fengguang Wu 2018-12-26 13:15 ` Fengguang Wu 2018-12-26 13:15 ` [RFC][PATCH v2 19/21] mm/migrate.c: add move_pages(MPOL_MF_SW_YOUNG) flag Fengguang Wu 2018-12-26 13:15 ` Fengguang Wu 2018-12-26 13:15 ` [RFC][PATCH v2 20/21] mm/vmscan.c: migrate anon DRAM pages to PMEM node Fengguang Wu 2018-12-26 13:15 ` Fengguang Wu 2018-12-26 13:15 ` [RFC][PATCH v2 21/21] mm/vmscan.c: shrink anon list if can migrate to PMEM Fengguang Wu 2018-12-26 13:15 ` Fengguang Wu 2018-12-27 20:31 ` [RFC][PATCH v2 00/21] PMEM NUMA node and hotness accounting/migration Michal Hocko 2018-12-28 5:08 ` Fengguang Wu 2018-12-28 8:41 ` Michal Hocko 2018-12-28 9:42 ` Fengguang Wu 2018-12-28 12:15 ` Michal Hocko 2018-12-28 13:15 ` Fengguang Wu 2018-12-28 13:15 ` Fengguang Wu 2018-12-28 19:46 ` Michal Hocko 2018-12-28 13:31 ` Fengguang Wu 2018-12-28 18:28 ` Yang Shi 2018-12-28 18:28 ` Yang Shi 2018-12-28 19:52 ` Michal Hocko 2019-01-02 12:21 ` Jonathan Cameron 2019-01-02 12:21 ` Jonathan Cameron 2019-01-08 14:52 ` Michal Hocko 2019-01-10 15:53 ` Jerome Glisse 2019-01-10 15:53 ` Jerome Glisse 2019-01-10 16:42 ` Michal Hocko 2019-01-10 17:42 ` Jerome Glisse 2019-01-10 17:42 ` Jerome Glisse 2019-01-10 18:26 ` Jonathan Cameron 2019-01-10 18:26 ` Jonathan Cameron 2019-01-28 17:42 ` Jonathan Cameron 2019-01-28 17:42 ` Jonathan Cameron 2019-01-29 2:00 ` Fengguang Wu 2019-01-03 10:57 ` Mel Gorman 2019-01-10 16:25 ` Jerome Glisse 2019-01-10 16:25 ` Jerome Glisse 2019-01-10 16:50 ` Michal Hocko 2019-01-10 18:02 ` Jerome Glisse 2019-01-10 18:02 ` Jerome Glisse 2019-01-02 18:12 ` Dave Hansen 2019-01-08 14:53 ` 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=87pntg7mv8.fsf@linux.ibm.com \ --to=aneesh.kumar@linux.ibm.com \ --cc=akpm@linux-foundation.org \ --cc=dan.j.williams@intel.com \ --cc=dave.hansen@intel.com \ --cc=dongx.peng@intel.com \ --cc=eddie.dong@intel.com \ --cc=fan.du@intel.com \ --cc=fengguang.wu@intel.com \ --cc=jingqi.liu@intel.com \ --cc=kvm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=yi.z.zhang@linux.intel.com \ --cc=ying.huang@intel.com \ --cc=yuan.yao@intel.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: linkBe 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).