From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Christophe Leroy <christophe.leroy@c-s.fr>,
Paul Mackerras <paulus@samba.org>,
Michael Ellerman <mpe@ellerman.id.au>
Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v6 0/9] powerpc: Switch to CONFIG_THREAD_INFO_IN_TASK
Date: Mon, 08 Oct 2018 20:59:56 +1100 [thread overview]
Message-ID: <df8575fba80d19e6e58c16266350e9980c432ae1.camel@kernel.crashing.org> (raw)
In-Reply-To: <cover.1538954166.git.christophe.leroy@c-s.fr>
On Mon, 2018-10-08 at 09:16 +0000, Christophe Leroy wrote:
> The purpose of this serie is to activate CONFIG_THREAD_INFO_IN_TASK which
> moves the thread_info into task_struct.
We need to make sure we don't have code that assumes that we don't take
faults on TI access.
On ppc64, the stack SLB entries are bolted, which means the TI is too.
We might have code that assumes that we don't get SLB faults when
accessing TI. If not, we're fine but that needs a close look.
Ben.
> Moving thread_info into task_struct has the following advantages:
> - It protects thread_info from corruption in the case of stack
> overflows.
> - Its address is harder to determine if stack addresses are
> leaked, making a number of attacks more difficult.
>
> Changes since v5:
> - Fixed livepatch_sp setup by using end_of_stack() instead of hardcoding
> - Fixed PPC_BPF_LOAD_CPU() macro
>
> Changes since v4:
> - Fixed a build failure on 32bits SMP when include/generated/asm-offsets.h is not
> already existing, was due to spaces instead of a tab in the Makefile
>
> Changes since RFC v3: (based on Nick's review)
> - Renamed task_size.h to task_size_user64.h to better relate to what it contains.
> - Handling of the isolation of thread_info cpu field inside CONFIG_SMP #ifdefs moved to a separate patch.
> - Removed CURRENT_THREAD_INFO macro completely.
> - Added a guard in asm/smp.h to avoid build failure before _TASK_CPU is defined.
> - Added a patch at the end to rename 'tp' pointers to 'sp' pointers
> - Renamed 'tp' into 'sp' pointers in preparation patch when relevant
> - Fixed a few commit logs
> - Fixed checkpatch report.
>
> Changes since RFC v2:
> - Removed the modification of names in asm-offsets
> - Created a rule in arch/powerpc/Makefile to append the offset of current->cpu in CFLAGS
> - Modified asm/smp.h to use the offset set in CFLAGS
> - Squashed the renaming of THREAD_INFO to TASK_STACK in the preparation patch
> - Moved the modification of current_pt_regs in the patch activating CONFIG_THREAD_INFO_IN_TASK
>
> Changes since RFC v1:
> - Removed the first patch which was modifying header inclusion order in timer
> - Modified some names in asm-offsets to avoid conflicts when including asm-offsets in C files
> - Modified asm/smp.h to avoid having to include linux/sched.h (using asm-offsets instead)
> - Moved some changes from the activation patch to the preparation patch.
>
> Christophe Leroy (9):
> book3s/64: avoid circular header inclusion in mmu-hash.h
> powerpc: Only use task_struct 'cpu' field on SMP
> powerpc: Prepare for moving thread_info into task_struct
> powerpc: Activate CONFIG_THREAD_INFO_IN_TASK
> powerpc: regain entire stack space
> powerpc: 'current_set' is now a table of task_struct pointers
> powerpc/32: Remove CURRENT_THREAD_INFO and rename TI_CPU
> powerpc/64: Remove CURRENT_THREAD_INFO
> powerpc: clean stack pointers naming
>
> arch/powerpc/Kconfig | 1 +
> arch/powerpc/Makefile | 8 ++-
> arch/powerpc/include/asm/asm-prototypes.h | 4 +-
> arch/powerpc/include/asm/book3s/64/mmu-hash.h | 2 +-
> arch/powerpc/include/asm/exception-64s.h | 4 +-
> arch/powerpc/include/asm/irq.h | 14 ++---
> arch/powerpc/include/asm/livepatch.h | 7 ++-
> arch/powerpc/include/asm/processor.h | 39 +------------
> arch/powerpc/include/asm/ptrace.h | 2 +-
> arch/powerpc/include/asm/reg.h | 2 +-
> arch/powerpc/include/asm/smp.h | 17 +++++-
> arch/powerpc/include/asm/task_size_user64.h | 42 ++++++++++++++
> arch/powerpc/include/asm/thread_info.h | 19 -------
> arch/powerpc/kernel/asm-offsets.c | 10 ++--
> arch/powerpc/kernel/entry_32.S | 66 ++++++++--------------
> arch/powerpc/kernel/entry_64.S | 12 ++--
> arch/powerpc/kernel/epapr_hcalls.S | 5 +-
> arch/powerpc/kernel/exceptions-64e.S | 13 +----
> arch/powerpc/kernel/exceptions-64s.S | 2 +-
> arch/powerpc/kernel/head_32.S | 14 ++---
> arch/powerpc/kernel/head_40x.S | 4 +-
> arch/powerpc/kernel/head_44x.S | 8 +--
> arch/powerpc/kernel/head_64.S | 1 +
> arch/powerpc/kernel/head_8xx.S | 2 +-
> arch/powerpc/kernel/head_booke.h | 12 +---
> arch/powerpc/kernel/head_fsl_booke.S | 16 +++---
> arch/powerpc/kernel/idle_6xx.S | 8 +--
> arch/powerpc/kernel/idle_book3e.S | 2 +-
> arch/powerpc/kernel/idle_e500.S | 8 +--
> arch/powerpc/kernel/idle_power4.S | 2 +-
> arch/powerpc/kernel/irq.c | 77 +++++---------------------
> arch/powerpc/kernel/kgdb.c | 28 ----------
> arch/powerpc/kernel/machine_kexec_64.c | 6 +-
> arch/powerpc/kernel/misc_32.S | 17 +++---
> arch/powerpc/kernel/process.c | 17 +++---
> arch/powerpc/kernel/setup-common.c | 2 +-
> arch/powerpc/kernel/setup_32.c | 15 ++---
> arch/powerpc/kernel/setup_64.c | 41 ++++----------
> arch/powerpc/kernel/smp.c | 16 +++---
> arch/powerpc/kernel/trace/ftrace_64_mprofile.S | 6 +-
> arch/powerpc/kvm/book3s_hv_hmi.c | 1 +
> arch/powerpc/mm/hash_low_32.S | 14 ++---
> arch/powerpc/net/bpf_jit32.h | 5 +-
> arch/powerpc/sysdev/6xx-suspend.S | 5 +-
> arch/powerpc/xmon/xmon.c | 2 +-
> 45 files changed, 230 insertions(+), 368 deletions(-)
> create mode 100644 arch/powerpc/include/asm/task_size_user64.h
>
next prev parent reply other threads:[~2018-10-08 11:02 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-08 9:16 [PATCH v6 0/9] powerpc: Switch to CONFIG_THREAD_INFO_IN_TASK Christophe Leroy
2018-10-08 9:16 ` [PATCH v6 1/9] book3s/64: avoid circular header inclusion in mmu-hash.h Christophe Leroy
2018-10-08 9:16 ` [PATCH v6 2/9] powerpc: Only use task_struct 'cpu' field on SMP Christophe Leroy
2018-10-08 9:16 ` [PATCH v6 3/9] powerpc: Prepare for moving thread_info into task_struct Christophe Leroy
2018-10-08 9:16 ` [PATCH v6 4/9] powerpc: Activate CONFIG_THREAD_INFO_IN_TASK Christophe Leroy
2018-10-08 9:16 ` [PATCH v6 5/9] powerpc: regain entire stack space Christophe Leroy
2018-10-08 9:16 ` [PATCH v6 6/9] powerpc: 'current_set' is now a table of task_struct pointers Christophe Leroy
2018-10-08 9:16 ` [PATCH v6 7/9] powerpc/32: Remove CURRENT_THREAD_INFO and rename TI_CPU Christophe Leroy
2018-10-08 9:16 ` [PATCH v6 8/9] powerpc/64: Remove CURRENT_THREAD_INFO Christophe Leroy
2018-10-08 9:16 ` [PATCH v6 9/9] powerpc: clean stack pointers naming Christophe Leroy
2018-10-08 9:59 ` Benjamin Herrenschmidt [this message]
2018-10-09 10:54 ` [PATCH v6 0/9] powerpc: Switch to CONFIG_THREAD_INFO_IN_TASK Nicholas Piggin
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=df8575fba80d19e6e58c16266350e9980c432ae1.camel@kernel.crashing.org \
--to=benh@kernel.crashing.org \
--cc=christophe.leroy@c-s.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=paulus@samba.org \
/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: link
Be 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).