Received: by 10.223.185.116 with SMTP id b49csp1583858wrg; Fri, 23 Feb 2018 23:23:35 -0800 (PST) X-Google-Smtp-Source: AH8x224AuhA/zCjcjWNHQkdYfsaOM5hwqoOwLuXnMSCFOo7UP9Dg+nKjVE+QqX/kfQ79Wc7zlsq+ X-Received: by 10.98.157.199 with SMTP id a68mr4205513pfk.59.1519457015717; Fri, 23 Feb 2018 23:23:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519457015; cv=none; d=google.com; s=arc-20160816; b=YhZNT4xnjPXOyc9LMaqipMKEztdqydEm6BllB7eh1vLJAwWuKe3oQi8qtytRk0m9Px Ms10NBNFFcfGqOoevU5lhhVYJZ8Rfs+spIDwNrgZzkywQnP1XQi0acEpPgWY20lI4TmP p1xkHR2m7GK6d3bGiws7/J35z7POK5lQAlkeKNvF5EmDHTUlYV/KTYpJAEIUQGkszMOh MXj/8PtXmaw2/WL+bnyTwyf4xLODbrDlQ6Xy4ETER0oQXa5LkLfKZis4cwW1Bp70sgYK 07wNFDGAqa+2GgREi4ZOMa1RULlM5dt/Grw5F2mucCUnPW8+v0MbFrC1KROPYSXCUDC0 uuWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :organization:references:in-reply-to:message-id:subject:cc:to:from :date:dkim-signature:arc-authentication-results; bh=9yeTJUvkf7bn5is8DiNYNmH3gb/n8+EDnCeiI1Vwni8=; b=KhvncUF3hpQrEXCOy+IC4UOpu2lr3rzW/dkczNQEb4O1QhYeT7IUain1IMKng6O3aZ StdpUw7YSH7q8gT/eK0zKvUhD1Ta7SBMLf+NtZwc4k6uy9Q2QUoFIGkQ7Q4u0rAq4VA9 SNXa5PgRZoMyiEDGoe7j21qCBDkmryOPi2pcBd/UaTWQYfM3zIL8PHkWfTDy99PSDPTw ay1TCNUqA6FLwfwOTwvr2n9nDIZoWS+WIF9Q5pEB/SIzUY0lSKq6CZqqRrz9sjSwGblP gQa1pB4syJ4D7LBqCYvM7pXb4AKyDopgCU3hqJv/xkRetBMecU73rpkE7YWvEwMmBp8L QH7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=HMwBq06r; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o184si2601569pga.245.2018.02.23.23.23.21; Fri, 23 Feb 2018 23:23:35 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=HMwBq06r; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751346AbeBXHWn (ORCPT + 99 others); Sat, 24 Feb 2018 02:22:43 -0500 Received: from mail-pl0-f66.google.com ([209.85.160.66]:42127 "EHLO mail-pl0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750737AbeBXHWl (ORCPT ); Sat, 24 Feb 2018 02:22:41 -0500 Received: by mail-pl0-f66.google.com with SMTP id 31so6229358ple.9 for ; Fri, 23 Feb 2018 23:22:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:in-reply-to:references :organization:mime-version:content-transfer-encoding; bh=9yeTJUvkf7bn5is8DiNYNmH3gb/n8+EDnCeiI1Vwni8=; b=HMwBq06rS+Z2FsL8eesApxwUjK5uOssCLwThem5MMG+yWhx83g4USYxUwEM6braIER dTH77M95jmjpmSXQlMyWT2kwPTt1aJbC5JKJ8CrdYcqroBoW9jDb/3K0OlI5iNGQbD2y OLEr4A7NBabqHZHHxd+SS41uLsg/oIab9jDY7GhbjYoNXP0eyPyUUWIMtNKxCLs7vcg8 JaMm0esKRAEhxjTfFU9BL2ZWMnkCbIXUfDOiv1QzBTDQ33NFHE5MM1CnvfE02PW9Kb0g lKn7xR27+dqQAmPM9JQvMVbqlXWLZgtQdVw2VTdrvlHrIZoAMPfA+rjDZqXlaSYJW2e8 k0pQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:organization:mime-version:content-transfer-encoding; bh=9yeTJUvkf7bn5is8DiNYNmH3gb/n8+EDnCeiI1Vwni8=; b=HTCEthmSFy3pLDAfup9RV5kimR2AuoRxUkxjhShCIjbPfBx7d5FVI4k9Utk9XKh6MV W6nrE6jaVIV1fExDKbFbfQ4Q0ZiVrRTQblwH2FxQvbiRxtw/fxnfFZ6Y2ObS8CxwF60w ROtDHL1UTHB/Hmfm/wULSxpAUbo1UW+HOaBoT91tT9s3v+ZIee2xOwgXCJ8sbhGAPEhu 6xhWkwjaS6RQDZH0TgY7Iya1Htl1tpgNhqalQSuYActxCqUh8aaDEZtKYYC0s9Od/dq8 n7Qa7lodV0Pnzweuxz+BQDFsw7LustFt7W7AoiXkfTdsTAX4891KOQck2Dx1Mft3cL93 b8kg== X-Gm-Message-State: APf1xPDf/gAAV7OYRj6f9mouxnMgi+kCRejD8USobAOb4TFq3F20lm/a SsqgeIuXhL7/FPxQVaSoHUHnhA== X-Received: by 2002:a17:902:768b:: with SMTP id m11-v6mr547368pll.185.1519456961390; Fri, 23 Feb 2018 23:22:41 -0800 (PST) Received: from roar.ozlabs.ibm.com (115-64-218-172.tpgi.com.au. [115.64.218.172]) by smtp.gmail.com with ESMTPSA id r62sm11337758pfi.52.2018.02.23.23.22.37 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 23 Feb 2018 23:22:40 -0800 (PST) Date: Sat, 24 Feb 2018 17:22:26 +1000 From: Nicholas Piggin To: Christophe Leroy Cc: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Scott Wood , aneesh.kumar@linux.vnet.ibm.com, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Subject: Re: [PATCH v5 2/6] powerpc/mm/slice: create header files dedicated to slices Message-ID: <20180224172226.777c78bd@roar.ozlabs.ibm.com> In-Reply-To: References: <455276187b369bf019e91715b7488e86cd932d49.1519305410.git.christophe.leroy@c-s.fr> Organization: IBM X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 22 Feb 2018 15:27:22 +0100 (CET) Christophe Leroy wrote: > In preparation for the following patch which will enhance 'slices' > for supporting PPC32 in order to fix an issue on hugepages on 8xx, > this patch takes out of page*.h all bits related to 'slices' and put > them into newly created slice.h header files. > While common parts go into asm/slice.h, subarch specific > parts go into respective books3s/64/slice.c and nohash/64/slice.c > 'slices' > > Signed-off-by: Christophe Leroy I don't see a problem with this. Even by itself it seems like a good cleanup. Reviewed-by: Nicholas Piggin > --- > v5: new - come from a split of patch 2 of v4 > > arch/powerpc/include/asm/book3s/64/slice.h | 27 ++++++++++++++ > arch/powerpc/include/asm/nohash/64/slice.h | 12 ++++++ > arch/powerpc/include/asm/page.h | 1 + > arch/powerpc/include/asm/page_64.h | 59 ------------------------------ > arch/powerpc/include/asm/slice.h | 40 ++++++++++++++++++++ > 5 files changed, 80 insertions(+), 59 deletions(-) > create mode 100644 arch/powerpc/include/asm/book3s/64/slice.h > create mode 100644 arch/powerpc/include/asm/nohash/64/slice.h > create mode 100644 arch/powerpc/include/asm/slice.h > > diff --git a/arch/powerpc/include/asm/book3s/64/slice.h b/arch/powerpc/include/asm/book3s/64/slice.h > new file mode 100644 > index 000000000000..db0dedab65ee > --- /dev/null > +++ b/arch/powerpc/include/asm/book3s/64/slice.h > @@ -0,0 +1,27 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#ifndef _ASM_POWERPC_BOOK3S_64_SLICE_H > +#define _ASM_POWERPC_BOOK3S_64_SLICE_H > + > +#ifdef CONFIG_PPC_MM_SLICES > + > +#define SLICE_LOW_SHIFT 28 > +#define SLICE_LOW_TOP (0x100000000ul) > +#define SLICE_NUM_LOW (SLICE_LOW_TOP >> SLICE_LOW_SHIFT) > +#define GET_LOW_SLICE_INDEX(addr) ((addr) >> SLICE_LOW_SHIFT) > + > +#define SLICE_HIGH_SHIFT 40 > +#define SLICE_NUM_HIGH (H_PGTABLE_RANGE >> SLICE_HIGH_SHIFT) > +#define GET_HIGH_SLICE_INDEX(addr) ((addr) >> SLICE_HIGH_SHIFT) > + > +#else /* CONFIG_PPC_MM_SLICES */ > + > +#define get_slice_psize(mm, addr) ((mm)->context.user_psize) > +#define slice_set_user_psize(mm, psize) \ > +do { \ > + (mm)->context.user_psize = (psize); \ > + (mm)->context.sllp = SLB_VSID_USER | mmu_psize_defs[(psize)].sllp; \ > +} while (0) > + > +#endif /* CONFIG_PPC_MM_SLICES */ > + > +#endif /* _ASM_POWERPC_BOOK3S_64_SLICE_H */ > diff --git a/arch/powerpc/include/asm/nohash/64/slice.h b/arch/powerpc/include/asm/nohash/64/slice.h > new file mode 100644 > index 000000000000..ad0d6e3cc1c5 > --- /dev/null > +++ b/arch/powerpc/include/asm/nohash/64/slice.h > @@ -0,0 +1,12 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#ifndef _ASM_POWERPC_NOHASH_64_SLICE_H > +#define _ASM_POWERPC_NOHASH_64_SLICE_H > + > +#ifdef CONFIG_PPC_64K_PAGES > +#define get_slice_psize(mm, addr) MMU_PAGE_64K > +#else /* CONFIG_PPC_64K_PAGES */ > +#define get_slice_psize(mm, addr) MMU_PAGE_4K > +#endif /* !CONFIG_PPC_64K_PAGES */ > +#define slice_set_user_psize(mm, psize) do { BUG(); } while (0) > + > +#endif /* _ASM_POWERPC_NOHASH_64_SLICE_H */ > diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h > index 8da5d4c1cab2..d5f1c41b7dba 100644 > --- a/arch/powerpc/include/asm/page.h > +++ b/arch/powerpc/include/asm/page.h > @@ -344,5 +344,6 @@ typedef struct page *pgtable_t; > > #include > #endif /* __ASSEMBLY__ */ > +#include > > #endif /* _ASM_POWERPC_PAGE_H */ > diff --git a/arch/powerpc/include/asm/page_64.h b/arch/powerpc/include/asm/page_64.h > index 56234c6fcd61..af04acdb873f 100644 > --- a/arch/powerpc/include/asm/page_64.h > +++ b/arch/powerpc/include/asm/page_64.h > @@ -86,65 +86,6 @@ extern u64 ppc64_pft_size; > > #endif /* __ASSEMBLY__ */ > > -#ifdef CONFIG_PPC_MM_SLICES > - > -#define SLICE_LOW_SHIFT 28 > -#define SLICE_HIGH_SHIFT 40 > - > -#define SLICE_LOW_TOP (0x100000000ul) > -#define SLICE_NUM_LOW (SLICE_LOW_TOP >> SLICE_LOW_SHIFT) > -#define SLICE_NUM_HIGH (H_PGTABLE_RANGE >> SLICE_HIGH_SHIFT) > - > -#define GET_LOW_SLICE_INDEX(addr) ((addr) >> SLICE_LOW_SHIFT) > -#define GET_HIGH_SLICE_INDEX(addr) ((addr) >> SLICE_HIGH_SHIFT) > - > -#ifndef __ASSEMBLY__ > -struct mm_struct; > - > -extern unsigned long slice_get_unmapped_area(unsigned long addr, > - unsigned long len, > - unsigned long flags, > - unsigned int psize, > - int topdown); > - > -extern unsigned int get_slice_psize(struct mm_struct *mm, > - unsigned long addr); > - > -extern void slice_set_user_psize(struct mm_struct *mm, unsigned int psize); > -extern void slice_set_range_psize(struct mm_struct *mm, unsigned long start, > - unsigned long len, unsigned int psize); > - > -#endif /* __ASSEMBLY__ */ > -#else > -#define slice_init() > -#ifdef CONFIG_PPC_BOOK3S_64 > -#define get_slice_psize(mm, addr) ((mm)->context.user_psize) > -#define slice_set_user_psize(mm, psize) \ > -do { \ > - (mm)->context.user_psize = (psize); \ > - (mm)->context.sllp = SLB_VSID_USER | mmu_psize_defs[(psize)].sllp; \ > -} while (0) > -#else /* !CONFIG_PPC_BOOK3S_64 */ > -#ifdef CONFIG_PPC_64K_PAGES > -#define get_slice_psize(mm, addr) MMU_PAGE_64K > -#else /* CONFIG_PPC_64K_PAGES */ > -#define get_slice_psize(mm, addr) MMU_PAGE_4K > -#endif /* !CONFIG_PPC_64K_PAGES */ > -#define slice_set_user_psize(mm, psize) do { BUG(); } while(0) > -#endif /* CONFIG_PPC_BOOK3S_64 */ > - > -#define slice_set_range_psize(mm, start, len, psize) \ > - slice_set_user_psize((mm), (psize)) > -#endif /* CONFIG_PPC_MM_SLICES */ > - > -#ifdef CONFIG_HUGETLB_PAGE > - > -#ifdef CONFIG_PPC_MM_SLICES > -#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA > -#endif > - > -#endif /* !CONFIG_HUGETLB_PAGE */ > - > #define VM_DATA_DEFAULT_FLAGS \ > (is_32bit_task() ? \ > VM_DATA_DEFAULT_FLAGS32 : VM_DATA_DEFAULT_FLAGS64) > diff --git a/arch/powerpc/include/asm/slice.h b/arch/powerpc/include/asm/slice.h > new file mode 100644 > index 000000000000..17c5a5d8c418 > --- /dev/null > +++ b/arch/powerpc/include/asm/slice.h > @@ -0,0 +1,40 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#ifndef _ASM_POWERPC_SLICE_H > +#define _ASM_POWERPC_SLICE_H > + > +#ifdef CONFIG_PPC_BOOK3S_64 > +#include > +#else > +#include > +#endif > + > +#ifdef CONFIG_PPC_MM_SLICES > + > +#ifdef CONFIG_HUGETLB_PAGE > +#define HAVE_ARCH_HUGETLB_UNMAPPED_AREA > +#endif > +#define HAVE_ARCH_UNMAPPED_AREA > +#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN > + > +#ifndef __ASSEMBLY__ > + > +struct mm_struct; > + > +unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, > + unsigned long flags, unsigned int psize, > + int topdown); > + > +unsigned int get_slice_psize(struct mm_struct *mm, unsigned long addr); > + > +void slice_set_user_psize(struct mm_struct *mm, unsigned int psize); > +void slice_set_range_psize(struct mm_struct *mm, unsigned long start, > + unsigned long len, unsigned int psize); > +#endif /* __ASSEMBLY__ */ > + > +#else /* CONFIG_PPC_MM_SLICES */ > + > +#define slice_set_range_psize(mm, start, len, psize) \ > + slice_set_user_psize((mm), (psize)) > +#endif /* CONFIG_PPC_MM_SLICES */ > + > +#endif /* _ASM_POWERPC_SLICE_H */