From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933123Ab2HPSUW (ORCPT ); Thu, 16 Aug 2012 14:20:22 -0400 Received: from cantor2.suse.de ([195.135.220.15]:40579 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932153Ab2HPSUR (ORCPT ); Thu, 16 Aug 2012 14:20:17 -0400 Date: Thu, 16 Aug 2012 20:20:15 +0200 From: Michal Hocko To: Will Deacon Cc: Hugh Dickins , Andrew Morton , Hillf Danton , Russell King , "linux-arch@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" Subject: Re: [PATCH] mm: hugetlb: flush dcache before returning zeroed huge page to userspace Message-ID: <20120816182015.GC12578@dhcp22.suse.cz> References: <20120710094513.GB9108@mudshark.cambridge.arm.com> <20120710104234.GI9108@mudshark.cambridge.arm.com> <20120711174802.GG13498@mudshark.cambridge.arm.com> <20120712111659.GF21013@tiehlicka.suse.cz> <20120712112645.GG2816@mudshark.cambridge.arm.com> <20120712115708.GG21013@tiehlicka.suse.cz> <20120807160337.GC16877@mudshark.cambridge.arm.com> <20120808162607.GA7885@dhcp22.suse.cz> <20120816160954.GA4330@mudshark.cambridge.arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20120816160954.GA4330@mudshark.cambridge.arm.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu 16-08-12 17:09:54, Will Deacon wrote: > On Wed, Aug 08, 2012 at 05:26:07PM +0100, Michal Hocko wrote: [...] > diff --git a/arch/ia64/include/asm/hugetlb.h b/arch/ia64/include/asm/hugetlb.h > index da55c63..2adaa60 100644 > --- a/arch/ia64/include/asm/hugetlb.h > +++ b/arch/ia64/include/asm/hugetlb.h > @@ -1,6 +1,7 @@ > #ifndef _ASM_IA64_HUGETLB_H > #define _ASM_IA64_HUGETLB_H > > +#include > #include > > > @@ -77,4 +78,9 @@ static inline void arch_release_hugepage(struct page *page) > { > } > > +static inline void arch_clear_hugepage_flags(struct page *page) > +{ > + flush_dcache_page(page); > +} > + Why do we need the hook for ia64? hugetlb_no_page calls clear_huge_page and that one calls flush_dcache_page (via clear_user_page), right? The same applies to copy_huge_page for COW. > diff --git a/arch/powerpc/include/asm/hugetlb.h b/arch/powerpc/include/asm/hugetlb.h > index dfdb95b..52696e6 100644 > --- a/arch/powerpc/include/asm/hugetlb.h > +++ b/arch/powerpc/include/asm/hugetlb.h > @@ -2,6 +2,7 @@ > #define _ASM_POWERPC_HUGETLB_H > > #ifdef CONFIG_HUGETLB_PAGE > +#include > #include > > extern struct kmem_cache *hugepte_cache; > @@ -151,6 +152,11 @@ static inline void arch_release_hugepage(struct page *page) > { > } > > +static inline void arch_clear_hugepage_flags(struct page *page) > +{ > + flush_dcache_page(page); > +} > + Same here -- Michal Hocko SUSE Labs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx122.postini.com [74.125.245.122]) by kanga.kvack.org (Postfix) with SMTP id 11CE06B0075 for ; Thu, 16 Aug 2012 14:20:18 -0400 (EDT) Date: Thu, 16 Aug 2012 20:20:15 +0200 From: Michal Hocko Subject: Re: [PATCH] mm: hugetlb: flush dcache before returning zeroed huge page to userspace Message-ID: <20120816182015.GC12578@dhcp22.suse.cz> References: <20120710094513.GB9108@mudshark.cambridge.arm.com> <20120710104234.GI9108@mudshark.cambridge.arm.com> <20120711174802.GG13498@mudshark.cambridge.arm.com> <20120712111659.GF21013@tiehlicka.suse.cz> <20120712112645.GG2816@mudshark.cambridge.arm.com> <20120712115708.GG21013@tiehlicka.suse.cz> <20120807160337.GC16877@mudshark.cambridge.arm.com> <20120808162607.GA7885@dhcp22.suse.cz> <20120816160954.GA4330@mudshark.cambridge.arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20120816160954.GA4330@mudshark.cambridge.arm.com> Sender: owner-linux-mm@kvack.org List-ID: To: Will Deacon Cc: Hugh Dickins , Andrew Morton , Hillf Danton , Russell King , "linux-arch@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" On Thu 16-08-12 17:09:54, Will Deacon wrote: > On Wed, Aug 08, 2012 at 05:26:07PM +0100, Michal Hocko wrote: [...] > diff --git a/arch/ia64/include/asm/hugetlb.h b/arch/ia64/include/asm/hugetlb.h > index da55c63..2adaa60 100644 > --- a/arch/ia64/include/asm/hugetlb.h > +++ b/arch/ia64/include/asm/hugetlb.h > @@ -1,6 +1,7 @@ > #ifndef _ASM_IA64_HUGETLB_H > #define _ASM_IA64_HUGETLB_H > > +#include > #include > > > @@ -77,4 +78,9 @@ static inline void arch_release_hugepage(struct page *page) > { > } > > +static inline void arch_clear_hugepage_flags(struct page *page) > +{ > + flush_dcache_page(page); > +} > + Why do we need the hook for ia64? hugetlb_no_page calls clear_huge_page and that one calls flush_dcache_page (via clear_user_page), right? The same applies to copy_huge_page for COW. > diff --git a/arch/powerpc/include/asm/hugetlb.h b/arch/powerpc/include/asm/hugetlb.h > index dfdb95b..52696e6 100644 > --- a/arch/powerpc/include/asm/hugetlb.h > +++ b/arch/powerpc/include/asm/hugetlb.h > @@ -2,6 +2,7 @@ > #define _ASM_POWERPC_HUGETLB_H > > #ifdef CONFIG_HUGETLB_PAGE > +#include > #include > > extern struct kmem_cache *hugepte_cache; > @@ -151,6 +152,11 @@ static inline void arch_release_hugepage(struct page *page) > { > } > > +static inline void arch_clear_hugepage_flags(struct page *page) > +{ > + flush_dcache_page(page); > +} > + Same here -- 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: email@kvack.org