From: Sudeep Holla <sudeep.holla@arm.com>
To: James Morse <james.morse@arm.com>, Brice Goglin <brice.goglin@gmail.com>
Cc: Jeffrey Hugo <jhugo@codeaurora.org>,
Sudeep Holla <sudeep.holla@arm.com>,
Jeremy Linton <jeremy.linton@arm.com>,
rjw@rjwysocki.net, linux-acpi@vger.kernel.org,
linux-kernel@vger.kernel.org, vkilari@codeaurora.org
Subject: Re: [PATCH] ACPI/PPTT: Handle architecturally unknown cache types
Date: Thu, 13 Sep 2018 11:35:25 +0100 [thread overview]
Message-ID: <20180913103525.GA7777@e107155-lin> (raw)
In-Reply-To: <c7e74980-eb5d-1b2a-8ebb-7210b4f507a2@arm.com>
On Thu, Sep 13, 2018 at 10:39:10AM +0100, James Morse wrote:
> Hi Brice,
>
> On 13/09/18 06:51, Brice Goglin wrote:
> > Le 12/09/2018 à 11:49, Sudeep Holla a écrit :
> >>> Yes. Without this change, we hit the lscpu error in the commit message,
> >>> and get zero output about the system. We don't even get information
> >>> about the caches which are architecturally specified or how many cpus
> >>> are present. With this change, we get what we expect out of lscpu (and
> >>> also lstopo) including the cache(s) which are not architecturally
> >>> specified.
> >>>
> >> lscpu and lstopo are so broken. They just assume everything on CPU0.
> >> If you hotplug them out, you start seeing issues. So reading and file
> >> that doesn't exist and then bail out on other essential info though they
> >> are present, hmmm ...
> >
> > Can you elaborate?
> >
> > I am not sure cpu0 is supposed to be offlineable on Linux. There's no
> > "online" file in /sys/devices/system/cpu/cpu0. That's why former lstopo
> > doesn't like CPU0 being hotplugged out. We are actually making that case
> > work for another non-standard corner case. But offlining "cpu0" this is
> > considered "normal", somebody must add that missing "online" sysfs
> > attribute for "cpu0" (change
> > https://elixir.bootlin.com/linux/latest/source/drivers/base/cpu.c#L375).
>
> On x86 you can't normally offline CPU0, its something to do with certain
> interrupts always being routed to CPU0, (oh, and hibernate).
> You should be able to enable this behaviour with 'cpu0_hotplug' on the kernel
> command line.
>
> (Kconfig's CONFIG_BOOTPARAM_HOTPLUG_CPU0 and CONFIG_DEBUG_HOTPLUG_CPU0 are also
> worth a look)
>
> On arm64 at least, cpu0 is just like the others, and can be offlined.
>
Thanks James, for providing all the details.
To add to the issues I spotted with lscpu/lstopo around topology, it ignores
the updates to topology sibling masks when CPUs are hotplugged in and out.
We have following in lscpu:
add_summary_n(tb, _("Core(s) per socket:"),
cores_per_socket ?: desc->ncores / desc->nsockets);
Now when cores_per_socket = 1, (i.e when we don't have procfs entry),
if ncores = (ncores_max - few_cpus_hotplugged_out), core(s) per socket
will get computed as less than the actual number.
IMO lscpu should be used only when all CPUs are online and it should have
a warning when all cores are not online.
> > By the way, did anybody actually see an error with lstopo when there's
> > no "type" attribute for L3? I can't reproduce any issue, we just skip
> > that specific cache entirely, but everything else appears. If you guys
> > want to make that "no_cache" cache appear, I'll make it a Unified cache
> > unless you tell me what to show :)
IIUC, Jeffrey Hugo did see error as per his initial message:
"
This fixes the following lscpu issue where only the cache type sysfs file
is missing which results in no output providing a poor user experience in
the above system configuration.
lscpu: cannot open /sys/devices/system/cpu/cpu0/cache/index3/type: No such
file or directory
"
--
Regards,
Sudeep
[1] https://www.spinics.net/lists/arm-kernel/msg661101.html
next prev parent reply other threads:[~2018-09-13 10:35 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-11 19:32 [PATCH] ACPI/PPTT: Handle architecturally unknown cache types Jeffrey Hugo
2018-09-11 20:16 ` Jeremy Linton
2018-09-11 20:38 ` Jeffrey Hugo
2018-09-11 21:25 ` Jeremy Linton
2018-09-12 14:41 ` Jeffrey Hugo
2018-09-12 15:27 ` Sudeep Holla
2018-09-12 15:38 ` Sudeep Holla
2018-09-12 15:57 ` Jeffrey Hugo
2018-09-12 16:15 ` Sudeep Holla
2018-09-12 16:25 ` Jeffrey Hugo
2018-09-12 15:39 ` Jeremy Linton
2018-09-12 16:06 ` Jeffrey Hugo
2018-09-12 10:49 ` Sudeep Holla
2018-09-12 14:48 ` Jeffrey Hugo
2018-09-12 15:32 ` Sudeep Holla
2018-09-13 5:51 ` Brice Goglin
2018-09-13 9:39 ` James Morse
2018-09-13 10:35 ` Sudeep Holla [this message]
2018-09-13 11:53 ` Brice Goglin
2018-09-13 15:10 ` Jeffrey Hugo
2018-09-13 15:16 ` Sudeep Holla
2018-09-12 10:37 ` 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=20180913103525.GA7777@e107155-lin \
--to=sudeep.holla@arm.com \
--cc=brice.goglin@gmail.com \
--cc=james.morse@arm.com \
--cc=jeremy.linton@arm.com \
--cc=jhugo@codeaurora.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rjw@rjwysocki.net \
--cc=vkilari@codeaurora.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 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.