From: David Howells <dhowells@redhat.com>
To: mingo@kernel.org
Cc: linux-arch@vger.kernel.org, dhowells@redhat.com,
linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 0/5] Consolidate init_task handling
Date: Thu, 20 Jul 2017 13:50:11 +0100 [thread overview]
Message-ID: <150055501157.20414.14957264566013145790.stgit@warthog.procyon.org.uk> (raw)
Hi Ingo,
Is this something that could be taken into the tip tree? It's a series of
patches that consolidate init_task handling:
(1) Alter the INIT_TASK_DATA linker script macro to set init_thread_union
and init_stack rather than defining these in C.
Insert init_task and init_thread_into into the init_stack area in the
linker script as appropriate to the configuration, with different
section markers so that they end up correctly ordered.
We can then get merge ia64's init_task.c into the main one.
We then have a bunch of single-use INIT_*() macros that seem only to be
macros because they used to be used per-arch. We can then unroll these in
place of the user and get rid of a few lines and a lot of backslashes.
(2) Unroll INIT_TASK().
(3) Unroll various small INIT_*() macros that are defined conditionally.
Unroll them and surround them by #if[n]def/#endif in the .c file as it
takes fewer lines.
(4) Unroll INIT_SIGNALS() and INIT_SIGHAND().
(5) Unroll INIT_STRUCT_PID.
The patches can be found here also:
http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=init_task
David
---
David Howells (5):
Construct init thread stack in the linker script rather than by union
Unroll INIT_TASK() in init/init_task.c
Unroll various INIT_* macros
Unroll the INIT_SIGNALS and INIT_SIGHAND macros
Unroll INIT_STRUCT_PID
arch/Kconfig | 4
arch/alpha/include/asm/thread_info.h | 3
arch/arc/include/asm/thread_info.h | 3
arch/arm/include/asm/thread_info.h | 3
arch/arm64/include/asm/thread_info.h | 2
arch/blackfin/include/asm/thread_info.h | 2
arch/c6x/include/asm/thread_info.h | 3
arch/cris/include/asm/processor.h | 2
arch/cris/include/asm/thread_info.h | 2
arch/frv/include/asm/thread_info.h | 3
arch/h8300/include/asm/thread_info.h | 3
arch/hexagon/include/asm/thread_info.h | 3
arch/ia64/Kconfig | 2
arch/ia64/Makefile | 2
arch/ia64/include/asm/thread_info.h | 4
arch/ia64/kernel/Makefile | 2
arch/ia64/kernel/init_task.c | 43 -----
arch/ia64/kernel/vmlinux.lds.S | 1
arch/m32r/include/asm/thread_info.h | 3
arch/m68k/include/asm/thread_info.h | 4
arch/metag/include/asm/thread_info.h | 3
arch/microblaze/include/asm/thread_info.h | 3
arch/mips/include/asm/thread_info.h | 3
arch/mn10300/include/asm/thread_info.h | 2
arch/nios2/include/asm/thread_info.h | 3
arch/openrisc/include/asm/processor.h | 2
arch/openrisc/include/asm/thread_info.h | 2
arch/parisc/include/asm/thread_info.h | 3
arch/powerpc/include/asm/thread_info.h | 3
arch/s390/include/asm/thread_info.h | 2
arch/score/include/asm/thread_info.h | 3
arch/sh/include/asm/thread_info.h | 3
arch/sparc/include/asm/thread_info_32.h | 3
arch/sparc/include/asm/thread_info_64.h | 3
arch/tile/include/asm/thread_info.h | 3
arch/um/include/asm/processor-generic.h | 2
arch/um/include/asm/thread_info.h | 9 -
arch/um/include/asm/vmlinux.lds.h | 2
arch/um/kernel/dyn.lds.S | 2
arch/um/kernel/um_arch.c | 2
arch/um/kernel/uml.lds.S | 2
arch/unicore32/include/asm/thread_info.h | 3
arch/x86/include/asm/thread_info.h | 2
arch/xtensa/include/asm/thread_info.h | 3
include/asm-generic/vmlinux.lds.h | 4
include/linux/ftrace.h | 12 -
include/linux/init_task.h | 264 +----------------------------
include/linux/irqflags.h | 2
include/linux/lockdep.h | 3
include/linux/sched.h | 9 +
init/Makefile | 2
init/init_task.c | 173 ++++++++++++++++++-
kernel/pid.c | 15 ++
53 files changed, 219 insertions(+), 427 deletions(-)
delete mode 100644 arch/ia64/kernel/init_task.c
create mode 100644 arch/um/include/asm/vmlinux.lds.h
next reply other threads:[~2017-07-20 12:50 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-20 12:50 David Howells [this message]
2017-07-20 12:50 ` [PATCH 1/5] Construct init thread stack in the linker script rather than by union David Howells
2017-07-20 12:50 ` [PATCH 2/5] Unroll INIT_TASK() in init/init_task.c David Howells
2017-07-20 12:50 ` [PATCH 3/5] Unroll various INIT_* macros David Howells
2017-07-20 12:50 ` [PATCH 4/5] Unroll the INIT_SIGNALS and INIT_SIGHAND macros David Howells
2017-07-20 12:50 ` [PATCH 5/5] Unroll INIT_STRUCT_PID David Howells
2017-11-24 15:31 [PATCH 0/5] Consolidate init_task handling David Howells
2017-11-25 2:18 ` Linus Torvalds
2017-11-25 22:38 ` David Howells
2017-11-25 22:47 ` David Howells
2017-11-26 23:08 ` Linus Torvalds
2017-11-26 23:44 ` David Howells
2017-11-26 23:50 ` Linus Torvalds
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=150055501157.20414.14957264566013145790.stgit@warthog.procyon.org.uk \
--to=dhowells@redhat.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.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).