Re: [PATCH] export cpu_sibling_map

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Tony,

On Wed, Sep 20, 2006 at 01:29:35PM -0700, Luck, Tony wrote:
> On Wed, Sep 20, 2006 at 09:23:25PM +0100, Christoph Hellwig wrote:
> > On Wed, Sep 20, 2006 at 12:53:47PM -0700, Stephane Eranian wrote:
> > > Hello Tony,
> > > 
> > > For Montecito PMU support, I need to determine, in a kernel module, whether
> > > or not threads are enabled. The only reliable way of doing this is to
> > > compute the bit-weight of cpu_sibling_map[]. This symbol is exported on
> > > x86 systems, but not on IA-64 so far. This patch exports the symbol.
> > 
> > Exporting global variables is a very bad thing, and we only do it if we
> > can't avoid it at all.  In this case it could be easily avoided by
> > exporting a nr_siblings_per_cpu() helper.
> 
> I also have my doubts about this in terms of hotplug cpu ... what
> do you do if not all of the cpus have their siblings on-line?  The
> question "Are threads enabled?" doesn't seem to have a simple yes/no
> answer.  At best you might ask "Does cpu N have any online siblings?"
> but the answer to that question could change before you could make
> use of the information.
> 

I think you bring up an interesting issue. because of HOTPLUG, I need to
register a cpu hotplug  notifier to make sure I get called to take
the appropriate action. As Christoph is suggesting, it is probably
best to hide the variable behind a helper function. Of course, there is
still a race between  the insertion of the module and a hotplug event.
Maybe there is a lock I could grab to serialize this?

This reminds me that I have a similar hotplug issue on P4.

Thanks

-- 
-Stephane
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Sparc Linux]     [DCCP]     [Linux ARM]     [Yosemite News]     [Linux SCSI]     [Linux x86_64]     [Linux for Ham Radio]

  Powered by Linux