From: Michal Hocko <mhocko@suse.cz> To: Tony Lu <zlu@tilera.com> Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "linux-mm@kvack.org" <linux-mm@kvack.org>, Andrew Morton <akpm@linux-foundation.org>, "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>, Hillf Danton <dhillf@gmail.com>, KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>, Chris Metcalf <cmetcalf@tilera.com> Subject: Re: [PATCH 1/1] mm/hugetlb: Set PTE as huge in hugetlb_change_protection Date: Mon, 21 Jan 2013 11:04:10 +0100 [thread overview] Message-ID: <20130121100410.GE7798@dhcp22.suse.cz> (raw) In-Reply-To: <BAB94DBB0E89D8409949BC28AC95914C47B123D2@USMAExch1.tad.internal.tilera.com> On Mon 21-01-13 04:13:07, Tony Lu wrote: > From da8432aafd231e7cdcda9d15484829def4663cb0 Mon Sep 17 00:00:00 2001 > From: Zhigang Lu <zlu@tilera.com> > Date: Mon, 21 Jan 2013 11:23:26 +0800 > Subject: [PATCH 1/1] mm/hugetlb: Set PTE as huge in hugetlb_change_protection > > When setting a huge PTE, besides calling pte_mkhuge(), we also need > to call arch_make_huge_pte(), which we indeed do in make_huge_pte(), > but we forget to do in hugetlb_change_protection(). I guess you also need it in remove_migration_pte. This calls for a helper which would do both pte_mkhuge() and arch_make_huge_pte. Besides that, tile seem to be the only arch which implements this arch hook (introduced by 621b1955 in 3.5) so this should be considered for stable. > > Signed-off-by: Zhigang Lu <zlu@tilera.com> > Signed-off-by: Chris Metcalf <cmetcalf@tilera.com> > --- > mm/hugetlb.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 4f3ea0b..546db81 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -3033,6 +3033,7 @@ unsigned long hugetlb_change_protection(struct vm_area_struct *vma, > if (!huge_pte_none(huge_ptep_get(ptep))) { > pte = huge_ptep_get_and_clear(mm, address, ptep); > pte = pte_mkhuge(pte_modify(pte, newprot)); > + pte = arch_make_huge_pte(pte, vma, NULL, 0); > set_huge_pte_at(mm, address, ptep, pte); > pages++; > } > -- > 1.7.10.3 -- Michal Hocko SUSE Labs
WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@suse.cz> To: Tony Lu <zlu@tilera.com> Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "linux-mm@kvack.org" <linux-mm@kvack.org>, Andrew Morton <akpm@linux-foundation.org>, "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>, Hillf Danton <dhillf@gmail.com>, KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>, Chris Metcalf <cmetcalf@tilera.com> Subject: Re: [PATCH 1/1] mm/hugetlb: Set PTE as huge in hugetlb_change_protection Date: Mon, 21 Jan 2013 11:04:10 +0100 [thread overview] Message-ID: <20130121100410.GE7798@dhcp22.suse.cz> (raw) In-Reply-To: <BAB94DBB0E89D8409949BC28AC95914C47B123D2@USMAExch1.tad.internal.tilera.com> On Mon 21-01-13 04:13:07, Tony Lu wrote: > From da8432aafd231e7cdcda9d15484829def4663cb0 Mon Sep 17 00:00:00 2001 > From: Zhigang Lu <zlu@tilera.com> > Date: Mon, 21 Jan 2013 11:23:26 +0800 > Subject: [PATCH 1/1] mm/hugetlb: Set PTE as huge in hugetlb_change_protection > > When setting a huge PTE, besides calling pte_mkhuge(), we also need > to call arch_make_huge_pte(), which we indeed do in make_huge_pte(), > but we forget to do in hugetlb_change_protection(). I guess you also need it in remove_migration_pte. This calls for a helper which would do both pte_mkhuge() and arch_make_huge_pte. Besides that, tile seem to be the only arch which implements this arch hook (introduced by 621b1955 in 3.5) so this should be considered for stable. > > Signed-off-by: Zhigang Lu <zlu@tilera.com> > Signed-off-by: Chris Metcalf <cmetcalf@tilera.com> > --- > mm/hugetlb.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 4f3ea0b..546db81 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -3033,6 +3033,7 @@ unsigned long hugetlb_change_protection(struct vm_area_struct *vma, > if (!huge_pte_none(huge_ptep_get(ptep))) { > pte = huge_ptep_get_and_clear(mm, address, ptep); > pte = pte_mkhuge(pte_modify(pte, newprot)); > + pte = arch_make_huge_pte(pte, vma, NULL, 0); > set_huge_pte_at(mm, address, ptep, pte); > pages++; > } > -- > 1.7.10.3 -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2013-01-21 10:04 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-01-21 4:13 [PATCH 1/1] mm/hugetlb: Set PTE as huge in hugetlb_change_protection Tony Lu 2013-01-21 10:04 ` Michal Hocko [this message] 2013-01-21 10:04 ` Michal Hocko 2013-01-22 2:37 ` Tony Lu 2013-01-22 10:21 ` Michal Hocko 2013-01-22 10:21 ` Michal Hocko 2013-01-22 13:50 ` Hillf Danton 2013-01-22 13:50 ` Hillf Danton 2013-01-23 1:56 ` [PATCH v2] " Tony Lu 2013-01-23 4:56 ` [PATCH v2] mm/hugetlb: Set PTE as huge in hugetlb_change_protection and remove_migration_pte Tony Lu
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=20130121100410.GE7798@dhcp22.suse.cz \ --to=mhocko@suse.cz \ --cc=akpm@linux-foundation.org \ --cc=aneesh.kumar@linux.vnet.ibm.com \ --cc=cmetcalf@tilera.com \ --cc=dhillf@gmail.com \ --cc=kamezawa.hiroyu@jp.fujitsu.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=zlu@tilera.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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.