All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sudeep Holla <sudeep.holla@arm.com>
To: Rob Herring <robh@kernel.org>
Cc: Atish Patra <atishp@atishpatra.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Atish Patra <atishp@rivosinc.com>,
	Sudeep Holla <sudeep.holla@arm.com>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Morten Rasmussen <morten.rasmussen@arm.com>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Qing Wang <wangqing@vivo.com>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	linux-riscv <linux-riscv@lists.infradead.org>
Subject: Re: [PATCH v2 8/8] arch_topology: Add support to build llc_sibling on DT platforms
Date: Fri, 20 May 2022 16:06:52 +0100	[thread overview]
Message-ID: <20220520150652.n6cfl7qpzbjrjh2f@bogus> (raw)
In-Reply-To: <20220520143620.GA3788938-robh@kernel.org>

On Fri, May 20, 2022 at 09:36:20AM -0500, Rob Herring wrote:
> On Fri, May 20, 2022 at 01:59:59PM +0100, Sudeep Holla wrote:
> > On Thu, May 19, 2022 at 01:10:51PM -0500, Rob Herring wrote:
> > > On Wed, May 18, 2022 at 4:34 AM Sudeep Holla <sudeep.holla@arm.com> wrote:
> > > >
> > > > ACPI PPTT provides cache identifiers and especially the last level cache
> > > > identifier is used in obtaining last level cache siblings amongst CPUs.
> > > >
> > > > While we have the cpu map representing all the CPUs sharing last level
> > > > cache in the cacheinfo driver, it is populated quite late in the boot
> > > > while the information is needed to build scheduler domains quite early.
> > >
> > > Late is because it's a device_initcall() rather than late in the cpu
> > > hotplug state machine, right?
> > 
> > Right. The expectation is to run in on each online CPU in CPU hotplug state
> > machine for some architectures. We may not need that on arm64 especially
> > since we get all info from DT or ACPI, but e.g. x86 uses cpuid which needs
> > to be executed on that CPU.
> 
> That's a separate issue. I'm not suggesting changing that part (that 
> would just be an optimization).
> 
> > > The late aspect is for sysfs presumably,but I think we could decouple that.
> > 
> > OK, not sure when this sched_domain info is actually needed. It think it
> > could be decoupled if we can wait until all the cpus are online.
> 
> No need to wait for all cpus to be online. I think you keep doing 
> it as part of cpu hotplug. The device_initcall() is used because you 
> cannot have struct device or sysfs calls before the driver core is 
> initialized. If we run the cacheinfo code earlier (I think the arch code 
> will have to call it) just like the topology code and skip the sysfs 
> parts, then you can use it.
>

Yes I was thinking something on similar lines, though I didn't think of
pushing code to arch. Let me check, must be possible.

> > > Do all the firmware cache parsing early and then populate the sysfs parts
> > > later.
> > 
> > Yes that may work on DT/ACPI based systems, as I said x86 relies on cpuid.
> 
> I'd assume using cpuid works at any time?
>

I think so, I can't recall the details since I looked at that about 5 years
ago. I have to check again anyways to explore early initialisation.

-- 
Regards,
Sudeep

WARNING: multiple messages have this Message-ID (diff)
From: Sudeep Holla <sudeep.holla@arm.com>
To: Rob Herring <robh@kernel.org>
Cc: Atish Patra <atishp@atishpatra.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Atish Patra <atishp@rivosinc.com>,
	Sudeep Holla <sudeep.holla@arm.com>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Morten Rasmussen <morten.rasmussen@arm.com>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Qing Wang <wangqing@vivo.com>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	linux-riscv <linux-riscv@lists.infradead.org>
Subject: Re: [PATCH v2 8/8] arch_topology: Add support to build llc_sibling on DT platforms
Date: Fri, 20 May 2022 16:06:52 +0100	[thread overview]
Message-ID: <20220520150652.n6cfl7qpzbjrjh2f@bogus> (raw)
In-Reply-To: <20220520143620.GA3788938-robh@kernel.org>

On Fri, May 20, 2022 at 09:36:20AM -0500, Rob Herring wrote:
> On Fri, May 20, 2022 at 01:59:59PM +0100, Sudeep Holla wrote:
> > On Thu, May 19, 2022 at 01:10:51PM -0500, Rob Herring wrote:
> > > On Wed, May 18, 2022 at 4:34 AM Sudeep Holla <sudeep.holla@arm.com> wrote:
> > > >
> > > > ACPI PPTT provides cache identifiers and especially the last level cache
> > > > identifier is used in obtaining last level cache siblings amongst CPUs.
> > > >
> > > > While we have the cpu map representing all the CPUs sharing last level
> > > > cache in the cacheinfo driver, it is populated quite late in the boot
> > > > while the information is needed to build scheduler domains quite early.
> > >
> > > Late is because it's a device_initcall() rather than late in the cpu
> > > hotplug state machine, right?
> > 
> > Right. The expectation is to run in on each online CPU in CPU hotplug state
> > machine for some architectures. We may not need that on arm64 especially
> > since we get all info from DT or ACPI, but e.g. x86 uses cpuid which needs
> > to be executed on that CPU.
> 
> That's a separate issue. I'm not suggesting changing that part (that 
> would just be an optimization).
> 
> > > The late aspect is for sysfs presumably,but I think we could decouple that.
> > 
> > OK, not sure when this sched_domain info is actually needed. It think it
> > could be decoupled if we can wait until all the cpus are online.
> 
> No need to wait for all cpus to be online. I think you keep doing 
> it as part of cpu hotplug. The device_initcall() is used because you 
> cannot have struct device or sysfs calls before the driver core is 
> initialized. If we run the cacheinfo code earlier (I think the arch code 
> will have to call it) just like the topology code and skip the sysfs 
> parts, then you can use it.
>

Yes I was thinking something on similar lines, though I didn't think of
pushing code to arch. Let me check, must be possible.

> > > Do all the firmware cache parsing early and then populate the sysfs parts
> > > later.
> > 
> > Yes that may work on DT/ACPI based systems, as I said x86 relies on cpuid.
> 
> I'd assume using cpuid works at any time?
>

I think so, I can't recall the details since I looked at that about 5 years
ago. I have to check again anyways to explore early initialisation.

-- 
Regards,
Sudeep

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

WARNING: multiple messages have this Message-ID (diff)
From: Sudeep Holla <sudeep.holla@arm.com>
To: Rob Herring <robh@kernel.org>
Cc: Atish Patra <atishp@atishpatra.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Atish Patra <atishp@rivosinc.com>,
	Sudeep Holla <sudeep.holla@arm.com>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Morten Rasmussen <morten.rasmussen@arm.com>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Qing Wang <wangqing@vivo.com>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	linux-riscv <linux-riscv@lists.infradead.org>
Subject: Re: [PATCH v2 8/8] arch_topology: Add support to build llc_sibling on DT platforms
Date: Fri, 20 May 2022 16:06:52 +0100	[thread overview]
Message-ID: <20220520150652.n6cfl7qpzbjrjh2f@bogus> (raw)
In-Reply-To: <20220520143620.GA3788938-robh@kernel.org>

On Fri, May 20, 2022 at 09:36:20AM -0500, Rob Herring wrote:
> On Fri, May 20, 2022 at 01:59:59PM +0100, Sudeep Holla wrote:
> > On Thu, May 19, 2022 at 01:10:51PM -0500, Rob Herring wrote:
> > > On Wed, May 18, 2022 at 4:34 AM Sudeep Holla <sudeep.holla@arm.com> wrote:
> > > >
> > > > ACPI PPTT provides cache identifiers and especially the last level cache
> > > > identifier is used in obtaining last level cache siblings amongst CPUs.
> > > >
> > > > While we have the cpu map representing all the CPUs sharing last level
> > > > cache in the cacheinfo driver, it is populated quite late in the boot
> > > > while the information is needed to build scheduler domains quite early.
> > >
> > > Late is because it's a device_initcall() rather than late in the cpu
> > > hotplug state machine, right?
> > 
> > Right. The expectation is to run in on each online CPU in CPU hotplug state
> > machine for some architectures. We may not need that on arm64 especially
> > since we get all info from DT or ACPI, but e.g. x86 uses cpuid which needs
> > to be executed on that CPU.
> 
> That's a separate issue. I'm not suggesting changing that part (that 
> would just be an optimization).
> 
> > > The late aspect is for sysfs presumably,but I think we could decouple that.
> > 
> > OK, not sure when this sched_domain info is actually needed. It think it
> > could be decoupled if we can wait until all the cpus are online.
> 
> No need to wait for all cpus to be online. I think you keep doing 
> it as part of cpu hotplug. The device_initcall() is used because you 
> cannot have struct device or sysfs calls before the driver core is 
> initialized. If we run the cacheinfo code earlier (I think the arch code 
> will have to call it) just like the topology code and skip the sysfs 
> parts, then you can use it.
>

Yes I was thinking something on similar lines, though I didn't think of
pushing code to arch. Let me check, must be possible.

> > > Do all the firmware cache parsing early and then populate the sysfs parts
> > > later.
> > 
> > Yes that may work on DT/ACPI based systems, as I said x86 relies on cpuid.
> 
> I'd assume using cpuid works at any time?
>

I think so, I can't recall the details since I looked at that about 5 years
ago. I have to check again anyways to explore early initialisation.

-- 
Regards,
Sudeep

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-05-20 15:07 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-18  9:33 [PATCH v2 0/8] arch_topology: Updates to add socket support and fix cluster ids Sudeep Holla
2022-05-18  9:33 ` Sudeep Holla
2022-05-18  9:33 ` Sudeep Holla
2022-05-18  9:33 ` [PATCH v2 1/8] arch_topology: Don't set cluster identifier as physical package identifier Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-20 12:31   ` Dietmar Eggemann
2022-05-20 12:31     ` Dietmar Eggemann
2022-05-20 12:31     ` Dietmar Eggemann
2022-05-20 13:13     ` Sudeep Holla
2022-05-20 13:13       ` Sudeep Holla
2022-05-20 13:13       ` Sudeep Holla
2022-05-18  9:33 ` [PATCH v2 2/8] arch_topology: Set thread sibling cpumask only within the cluster Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-20 12:32   ` Dietmar Eggemann
2022-05-20 12:32     ` Dietmar Eggemann
2022-05-20 12:32     ` Dietmar Eggemann
2022-05-20 13:20     ` Sudeep Holla
2022-05-20 13:20       ` Sudeep Holla
2022-05-20 13:20       ` Sudeep Holla
2022-05-18  9:33 ` [PATCH v2 3/8] arch_topology: Set cluster identifier in each core/thread from /cpu-map Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-19 16:55   ` Ionela Voinescu
2022-05-19 16:55     ` Ionela Voinescu
2022-05-19 16:55     ` Ionela Voinescu
2022-05-20 12:33     ` Dietmar Eggemann
2022-05-20 12:33       ` Dietmar Eggemann
2022-05-20 12:33       ` Dietmar Eggemann
2022-05-20 13:54       ` Sudeep Holla
2022-05-20 13:54         ` Sudeep Holla
2022-05-20 13:54         ` Sudeep Holla
2022-05-20 15:27     ` Sudeep Holla
2022-05-20 15:27       ` Sudeep Holla
2022-05-20 15:27       ` Sudeep Holla
2022-05-18  9:33 ` [PATCH v2 4/8] arch_topology: Add support for parsing sockets in /cpu-map Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-18  9:33 ` [PATCH v2 5/8] arch_topology: Check for non-negative value rather than -1 for IDs validity Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-18  9:33 ` [PATCH v2 6/8] arch_topology: Avoid parsing through all the CPUs once a outlier CPU is found Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-18  9:33 ` [PATCH v2 7/8] of: base: add support to get the device node for the CPU's last level cache Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-18  9:33 ` [PATCH v2 8/8] arch_topology: Add support to build llc_sibling on DT platforms Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-18  9:33   ` Sudeep Holla
2022-05-19 18:10   ` Rob Herring
2022-05-19 18:10     ` Rob Herring
2022-05-19 18:10     ` Rob Herring
2022-05-20 12:59     ` Sudeep Holla
2022-05-20 12:59       ` Sudeep Holla
2022-05-20 12:59       ` Sudeep Holla
2022-05-20 14:36       ` Rob Herring
2022-05-20 14:36         ` Rob Herring
2022-05-20 14:36         ` Rob Herring
2022-05-20 15:06         ` Sudeep Holla [this message]
2022-05-20 15:06           ` Sudeep Holla
2022-05-20 15:06           ` Sudeep Holla
2022-05-20 12:33   ` Dietmar Eggemann
2022-05-20 12:33     ` Dietmar Eggemann
2022-05-20 12:33     ` Dietmar Eggemann
2022-05-20 14:56     ` Sudeep Holla
2022-05-20 14:56       ` Sudeep Holla
2022-05-20 14:56       ` Sudeep Holla
2022-05-19 16:32 ` [PATCH v2 0/8] arch_topology: Updates to add socket support and fix cluster ids Ionela Voinescu
2022-05-19 16:32   ` Ionela Voinescu
2022-05-19 16:32   ` Ionela Voinescu
2022-05-20 15:33   ` Sudeep Holla
2022-05-20 15:33     ` Sudeep Holla
2022-05-20 15:33     ` Sudeep Holla

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=20220520150652.n6cfl7qpzbjrjh2f@bogus \
    --to=sudeep.holla@arm.com \
    --cc=atishp@atishpatra.org \
    --cc=atishp@rivosinc.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=morten.rasmussen@arm.com \
    --cc=robh@kernel.org \
    --cc=vincent.guittot@linaro.org \
    --cc=wangqing@vivo.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.