Re: WARNING: at arch/x86/kernel/smpboot.c:310topology_sane.clone.1+0x6e/0x81()

From: Andreas Herrmann
Date: Tue May 29 2012 - 13:48:11 EST


On Tue, May 29, 2012 at 07:25:19PM +0200, Peter Zijlstra wrote:
> On Tue, 2012-05-29 at 19:13 +0200, Borislav Petkov wrote:
> >
> > > As it stands I think we should discuss the definition for the generic
> > > topology bits (drivers/base/topology.c), because I think your
> > > Magny-Cours thing does the wrong thing here.
> >
> > "wrong" is such a strong word :-) Please elaborate and I'll have a look.
>
> Right, so I meant LLC is the useful mask, and in my mind LLC is what
> makes a multi-core, without shared cache its just SMP. So core_siblings
> to me would mean LLC sharing cores.
>
> But its all very subjective I guess, but using strong words gets the
> discussion going better ;-)
>
> > > The core span in a phys_id is all nice and such, but what does it mean?
> >
> > AFAICT, this is the physical package id to which the cores belong, i.e.
> > physical socket.
> >
> > > IOW what would you do with it?
> >
> > Shoot empty cans with it... :-)
>
> Right, I actually came up with proper use-case, physical hotplug :-)
>
> Its not immediately obvious the sysfs topo bits have the llc mask, which
> is the more 'useful' one IMO.
>
> Another funny case I don't see represented well is where there's
> multiple sockets to a node -- I know this is like ancient tech and
> unlikely in these days of multi-node sockets, but still ;-)
>
> I guess what I'm asking is what is the purpose of the sys topo bits?

You mean the topology directory for each CPU in sysfs?

Where else do you find reliable/complete CPU topology information for
you system? (And yes I know that the info provided in this directory
is already incomplete for AMD multi-node CPUs.)

AFAIK hwloc relies on this information. (Together with cache topology
information in the cache sub-directory for each CPU.)

And if the question was why does it matter to know which cores belong
to which physical socket. What if you want to pin all your tasks to
both nodes of the same socket on AMD mult-node CPUs? Use
core_siblings/core_siblings_list provided in sysfs, use it as
parameter for a tool like taskset and you are done with it.


Andreas


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/