linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: Keith Packard <keithpac@amazon.com>
Cc: linux-kernel@vger.kernel.org,
	"Abbott Liu" <liuwenliang@huawei.com>,
	"Alexei Starovoitov" <ast@kernel.org>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Andrii Nakryiko" <andrii@kernel.org>,
	"Anshuman Khandual" <anshuman.khandual@arm.com>,
	"Ard Biesheuvel" <ardb@kernel.org>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Ben Segall" <bsegall@google.com>,
	"Bjorn Andersson" <bjorn.andersson@linaro.org>,
	bpf@vger.kernel.org, "Christoph Lameter" <cl@linux.com>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	"Daniel Bristot de Oliveira" <bristot@redhat.com>,
	"Dennis Zhou" <dennis@kernel.org>,
	devicetree@vger.kernel.org,
	"Dietmar Eggemann" <dietmar.eggemann@arm.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Frank Rowand" <frowand.list@gmail.com>,
	"Geert Uytterhoeven" <geert+renesas@glider.be>,
	"Ingo Molnar" <mingo@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Jens Axboe" <axboe@kernel.dk>, "Joe Perches" <joe@perches.com>,
	"John Fastabend" <john.fastabend@gmail.com>,
	"Juri Lelli" <juri.lelli@redhat.com>,
	"KP Singh" <kpsingh@kernel.org>,
	kvm@vger.kernel.org, "Linus Walleij" <linus.walleij@linaro.org>,
	linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-mm@kvack.org, "Manivannan Sadhasivam" <mani@kernel.org>,
	"Marc Zyngier" <maz@kernel.org>,
	"Martin KaFai Lau" <kafai@fb.com>, "Mel Gorman" <mgorman@suse.de>,
	"Michael Ellerman" <mpe@ellerman.id.au>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Miguel Ojeda" <ojeda@kernel.org>,
	"Mike Rapoport" <rppt@kernel.org>,
	netdev@vger.kernel.org,
	"Nick Desaulniers" <ndesaulniers@google.com>,
	"Nick Desaulniers" <ndesaulniers@gooogle.com>,
	"Nicolas Pitre" <nico@fluxnic.net>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Russell King" <linux@armlinux.org.uk>,
	"Song Liu" <songliubraving@fb.com>,
	"Srikar Dronamraju" <srikar@linux.vnet.ibm.com>,
	"Steven Rostedt" <rostedt@goodmis.org>,
	"Tejun Heo" <tj@kernel.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Valentin Schneider" <valentin.schneider@arm.com>,
	"Vincent Guittot" <vincent.guittot@linaro.org>,
	virtualization@lists.linux-foundation.org,
	"Wolfram Sang (Renesas)" <wsa+renesas@sang-engineering.com>,
	"YiFei Zhu" <yifeifz2@illinois.edu>, "Yonghong Song" <yhs@fb.com>
Subject: Re: [PATCH v4 4/7] Make sure task_struct is available for raw_smp_processor_id
Date: Fri, 10 Sep 2021 15:20:55 -0500	[thread overview]
Message-ID: <YTu+JyNyQH7v+1Yx@robh.at.kernel.org> (raw)
In-Reply-To: <20210908190605.419064-5-keithpac@amazon.com>

On Wed, Sep 08, 2021 at 12:06:02PM -0700, Keith Packard wrote:
> To allow architectures to use the 'cpu' field in task_struct for cpu
> identification, the task_struct must be visible whereever the
> raw_smp_processor_id macro is used. It would be simplest to include
> linux/sched.h from the relevant asm/smp.h file, but that file is
> included from linux/sched.h, and the recursive include ends up with
> several declarations in the wrong order.
> 
> To avoid this, the PowerPC architecture code has this ugly hack:
> 
> 	#define raw_smp_processor_id() \
> 		(*(unsigned int *)((void *)current + _TASK_CPU))
> 
> As an alternative, placing includes of linux/sched.h in a few files
> that are used along with asm/smp.h means we can use the task_struct
> field directly.
> 
> Signed-off-by: Keith Packard <keithpac@amazon.com>
> ---
>  arch/arm/mm/proc-v7-bugs.c     | 1 +
>  drivers/vhost/vhost.c          | 1 +
>  drivers/vhost/vhost.h          | 1 +
>  include/asm-generic/irq_regs.h | 1 +
>  include/linux/of_address.h     | 1 +

Where does the DT code use raw_smp_processor_id()? The header itself 
certainly doesn't and the headers should only include what the headers 
use directly.

In general this seems pretty terrible pulling in all of sched.h (and 
then everything else it includes) for just raw_smp_processor_id().

>  include/linux/random.h         | 1 +
>  include/linux/topology.h       | 1 +
>  init/calibrate.c               | 1 +
>  kernel/bpf/bpf_lru_list.h      | 1 +
>  kernel/bpf/percpu_freelist.h   | 1 +
>  kernel/sched/cpuacct.c         | 2 +-
>  lib/irq_regs.c                 | 1 +
>  12 files changed, 12 insertions(+), 1 deletion(-)

  reply	other threads:[~2021-09-10 20:21 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <id:20210907220038.91021-1-keithpac@amazon.com>
2021-09-08 19:05 ` [PATCH v4 0/7] ARM: support THREAD_INFO_IN_TASK Keith Packard
2021-09-08 19:05   ` [PATCH v4 1/7] ARM: Pass cpu number to secondary_start_kernel Keith Packard
2021-09-08 19:06   ` [PATCH v4 2/7] ARM: Pass task " Keith Packard
2021-09-08 19:06   ` [PATCH v4 3/7] ARM: Use smp_processor_id() in vfp_pm_suspend instead of ti->cpu Keith Packard
2021-09-08 19:06   ` [PATCH v4 4/7] Make sure task_struct is available for raw_smp_processor_id Keith Packard
2021-09-10 20:20     ` Rob Herring [this message]
2021-09-08 19:06   ` [PATCH v4 5/7] ARM: Stop using TPIDRPRW to hold per_cpu_offset Keith Packard
2021-09-08 19:06   ` [PATCH v4 6/7] ARM: Use TPIDRPRW for current Keith Packard
2021-09-08 19:06   ` [PATCH v4 7/7] ARM: Move thread_info into task_struct (v7 only) Keith Packard

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=YTu+JyNyQH7v+1Yx@robh.at.kernel.org \
    --to=robh@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=andrii@kernel.org \
    --cc=anshuman.khandual@arm.com \
    --cc=ardb@kernel.org \
    --cc=arnd@arndb.de \
    --cc=ast@kernel.org \
    --cc=axboe@kernel.dk \
    --cc=bjorn.andersson@linaro.org \
    --cc=bpf@vger.kernel.org \
    --cc=bristot@redhat.com \
    --cc=bsegall@google.com \
    --cc=cl@linux.com \
    --cc=daniel@iogearbox.net \
    --cc=dennis@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dietmar.eggemann@arm.com \
    --cc=f.fainelli@gmail.com \
    --cc=frowand.list@gmail.com \
    --cc=geert+renesas@glider.be \
    --cc=jasowang@redhat.com \
    --cc=joe@perches.com \
    --cc=john.fastabend@gmail.com \
    --cc=juri.lelli@redhat.com \
    --cc=kafai@fb.com \
    --cc=keithpac@amazon.com \
    --cc=kpsingh@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux@armlinux.org.uk \
    --cc=liuwenliang@huawei.com \
    --cc=mani@kernel.org \
    --cc=maz@kernel.org \
    --cc=mgorman@suse.de \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=mst@redhat.com \
    --cc=ndesaulniers@google.com \
    --cc=ndesaulniers@gooogle.com \
    --cc=netdev@vger.kernel.org \
    --cc=nico@fluxnic.net \
    --cc=ojeda@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=rppt@kernel.org \
    --cc=songliubraving@fb.com \
    --cc=srikar@linux.vnet.ibm.com \
    --cc=tglx@linutronix.de \
    --cc=tj@kernel.org \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=valentin.schneider@arm.com \
    --cc=vincent.guittot@linaro.org \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=wsa+renesas@sang-engineering.com \
    --cc=yhs@fb.com \
    --cc=yifeifz2@illinois.edu \
    --subject='Re: [PATCH v4 4/7] Make sure task_struct is available for raw_smp_processor_id' \
    /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

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).