Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1710883 > unrolled thread
| Started by | Catalin Marinas <catalin.marinas@arm.com> |
|---|---|
| First post | 2017-08-14 14:10 +0200 |
| Last post | 2017-08-14 15:20 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH 05/14] arm64: clean up THREAD_* definitions Catalin Marinas <catalin.marinas@arm.com> - 2017-08-14 14:10 +0200
Re: [PATCH 05/14] arm64: clean up THREAD_* definitions Mark Rutland <mark.rutland@arm.com> - 2017-08-14 15:20 +0200
| From | Catalin Marinas <catalin.marinas@arm.com> |
|---|---|
| Date | 2017-08-14 14:10 +0200 |
| Subject | Re: [PATCH 05/14] arm64: clean up THREAD_* definitions |
| Message-ID | <uemlX-3Zn-15@gated-at.bofh.it> |
On Mon, Aug 07, 2017 at 07:35:56PM +0100, Mark Rutland wrote: > Currently we define THREAD_SIZE and THREAD_SIZE order separately, with s/THREAD_SIZE order/THREAD_SIZE_ORDER/ > the latter dependent on particular CONFIG_ARM64_*K_PAGES definitions. > This is somewhat opaque, and will get in the way of future modifications > to THREAD_SIZE. > > This patch cleans this up, defining both in terms of a common > THREAD_SHIFT, and using PAGE_SHIFT to calculate THREAD_SIZE_ORDER, > rather than using a number of definitions dependent on config symbols. > Subsequent patches will make use of this to alter the stack size used in > some configurations. > > At the same time, these are moved into <asm/memory.h>, which will avoid > circular include issues in subsequent patches. To ensure that existing > code isn't adversely affected, <asm/thread_info.h> is updated to > transitively include these definitions. > > Signed-off-by: Mark Rutland <mark.rutland@arm.com> > Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> > Cc: Catalin Marinas <catalin.marinas@arm.com> > Cc: James Morse <james.morse@arm.com> > Cc: Laura Abbott <labbott@redhat.com> > Cc: Will Deacon <will.deacon@arm.com> > --- > arch/arm64/include/asm/memory.h | 8 ++++++++ > arch/arm64/include/asm/thread_info.h | 9 +-------- > 2 files changed, 9 insertions(+), 8 deletions(-) > > diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h > index 77d55dc..8ab4774 100644 > --- a/arch/arm64/include/asm/memory.h > +++ b/arch/arm64/include/asm/memory.h > @@ -102,6 +102,14 @@ > #define KASAN_SHADOW_SIZE (0) > #endif > > +#define THREAD_SHIFT 14 > + > +#if THREAD_SHIFT >= PAGE_SHIFT > +#define THREAD_SIZE_ORDER (THREAD_SHIFT - PAGE_SHIFT) > +#endif > + > +#define THREAD_SIZE (UL(1) << THREAD_SHIFT) I haven't tried the series to this patch but it seems to me that THREAD_SIZE_ORDER is undefined for a PAGE_SHIFT of 16. Without VMAP_STACKS, it may fail to build. -- Catalin
[toc] | [next] | [standalone]
| From | Mark Rutland <mark.rutland@arm.com> |
|---|---|
| Date | 2017-08-14 15:20 +0200 |
| Message-ID | <uenrJ-4CX-19@gated-at.bofh.it> |
| In reply to | #1710883 |
On Mon, Aug 14, 2017 at 12:59:59PM +0100, Catalin Marinas wrote: > On Mon, Aug 07, 2017 at 07:35:56PM +0100, Mark Rutland wrote: > > Currently we define THREAD_SIZE and THREAD_SIZE order separately, with > > s/THREAD_SIZE order/THREAD_SIZE_ORDER/ Whoops; I'll fix that up now. > > +#define THREAD_SHIFT 14 > > + > > +#if THREAD_SHIFT >= PAGE_SHIFT > > +#define THREAD_SIZE_ORDER (THREAD_SHIFT - PAGE_SHIFT) > > +#endif > > + > > +#define THREAD_SIZE (UL(1) << THREAD_SHIFT) > > I haven't tried the series to this patch but it seems to me that > THREAD_SIZE_ORDER is undefined for a PAGE_SHIFT of 16. That is already the case without these patches, as we have: #ifdef CONFIG_ARM64_4K_PAGES #define THREAD_SIZE_ORDER 2 #elif defined(CONFIG_ARM64_16K_PAGES) #define THREAD_SIZE_ORDER 0 #endif ... this is also deliberate, as we'd need an order of -2 with 16K stacks and 64K pages, and this doesn't make sense. THREAD_SIZE_ORDER only matters if THREAD_SIZE >= PAGE_SIZE (or if we're using a VMAP'd stack). For 64K pages && VMAP_STACK, we'll use a 64K stack, avoiding the problem. Thanks, Mark.
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web