linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Christophe Leroy <christophe.leroy@csgroup.eu>
To: Ard Biesheuvel <ardb@kernel.org>, linux-kernel@vger.kernel.org
Cc: Peter Zijlstra <peterz@infradead.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Paul Mackerras <paulus@samba.org>,
	linux-riscv@lists.infradead.org, Will Deacon <will@kernel.org>,
	linux-s390@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
	Russell King <linux@armlinux.org.uk>,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Ingo Molnar <mingo@redhat.com>, Albert Ou <aou@eecs.berkeley.edu>,
	Kees Cook <keescook@chromium.org>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Heiko Carstens <hca@linux.ibm.com>,
	Keith Packard <keithpac@amazon.com>,
	Borislav Petkov <bp@alien8.de>, Andy Lutomirski <luto@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [RFC PATCH 0/8] Move task_struct::cpu back into thread_info
Date: Tue, 14 Sep 2021 15:49:08 +0200	[thread overview]
Message-ID: <c21d9ee9-d0a1-a572-dda0-6ae90b417e10@csgroup.eu> (raw)
In-Reply-To: <20210914121036.3975026-1-ardb@kernel.org>



Le 14/09/2021 à 14:10, Ard Biesheuvel a écrit :
> Commit c65eacbe290b ("sched/core: Allow putting thread_info into
> task_struct") mentions that, along with moving thread_info into
> task_struct, the cpu field is moved out of the former into the latter,
> but does not explain why.

I think it does explain why (init/Kconfig): "an arch will need to remove 
all thread_info fields except flags".

IIUC initially the intention with THREAD_INFO_IN_TASK was to remove 
everything from thread_info, but at the end it didn't happen it seems.

> 
> While collaborating with Keith on adding THREAD_INFO_IN_TASK support to
> ARM, we noticed that keeping CPU in task_struct is problematic for
> architectures that define raw_smp_processor_id() in terms of this field,
> as it requires linux/sched.h to be included, which causes a lot of pain
> in terms of circular dependencies (or 'header soup', as the original
> commit refers to it).
> 
> For examples of how existing architectures work around this, please
> refer to patches #6 or #7. In the former case, it uses an awful
> asm-offsets hack to index thread_info/current without using its type
> definition. The latter approach simply keeps a copy of the task_struct
> CPU field in thread_info, and keeps it in sync at context switch time.

It was a pain when implementing that on powerpc, so I really like your 
idea, the series looks good to me.


> 
> Patch #8 reverts this latter approach for ARM, but this code is still
> under review so it does not currently apply to mainline.
> 
> We also discussed introducing yet another Kconfig symbol to indicate
> that the arch has THREAD_INFO_IN_TASK enabled but still prefers to keep
> its CPU field in thread_info, but simply keeping it in thread_info in
> all cases seems to be the cleanest approach here.

Yes, if we can avoid yet another config, that's better. We already have 
so many configs that are supposed to be temporary and have lasted for 
years if not decades.

Christophe

  parent reply	other threads:[~2021-09-14 13:49 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-14 12:10 [RFC PATCH 0/8] Move task_struct::cpu back into thread_info Ard Biesheuvel
2021-09-14 12:10 ` [RFC PATCH 1/8] arm64: add CPU field to struct thread_info Ard Biesheuvel
2021-09-14 15:41   ` Linus Torvalds
2021-09-14 15:42     ` Ard Biesheuvel
2021-09-16 14:41   ` Catalin Marinas
2021-09-21 12:04     ` Ard Biesheuvel
2021-09-14 12:10 ` [RFC PATCH 2/8] x86: " Ard Biesheuvel
2021-09-21 12:54   ` Borislav Petkov
2021-09-14 12:10 ` [RFC PATCH 3/8] s390: " Ard Biesheuvel
2021-09-28 13:52   ` Ard Biesheuvel
2021-09-14 12:10 ` [RFC PATCH 4/8] powerpc: " Ard Biesheuvel
2021-09-27 15:12   ` Ard Biesheuvel
2021-09-27 23:13     ` Michael Ellerman
2021-09-28  0:16       ` Michael Ellerman
2021-09-28 13:18         ` Ard Biesheuvel
2021-09-29 22:46           ` Michael Ellerman
2021-09-29 23:10             ` Kees Cook
2021-09-30 17:47             ` Kees Cook
2021-10-05  1:55               ` Michael Ellerman
2021-09-14 12:10 ` [RFC PATCH 5/8] sched: move CPU field back into thread_info if THREAD_INFO_IN_TASK=y Ard Biesheuvel
2021-09-14 15:46   ` Linus Torvalds
2021-09-14 15:52     ` Ard Biesheuvel
2021-09-14 15:58       ` Linus Torvalds
2021-09-14 16:10         ` Ard Biesheuvel
2021-09-21 13:12   ` Catalin Marinas
2021-09-14 12:10 ` [RFC PATCH 6/8] powerpc: smp: remove hack to obtain offset of task_struct::cpu Ard Biesheuvel
2021-09-14 12:10 ` [RFC PATCH 7/8] riscv: rely on core code to keep thread_info::cpu updated Ard Biesheuvel
2021-09-28 22:07   ` Palmer Dabbelt
2021-09-14 12:10 ` [RFC PATCH 8/8] ARM: " Ard Biesheuvel
2021-09-14 13:49 ` Christophe Leroy [this message]
2021-09-14 13:55 ` [RFC PATCH 0/8] Move task_struct::cpu back into thread_info Mark Rutland
2021-09-21 12:06   ` Ard Biesheuvel

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=c21d9ee9-d0a1-a572-dda0-6ae90b417e10@csgroup.eu \
    --to=christophe.leroy@csgroup.eu \
    --cc=aou@eecs.berkeley.edu \
    --cc=ardb@kernel.org \
    --cc=arnd@arndb.de \
    --cc=borntraeger@de.ibm.com \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=keescook@chromium.org \
    --cc=keithpac@amazon.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=luto@kernel.org \
    --cc=mingo@redhat.com \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=will@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).