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

Re: [Xen-devel] [PATCH v2 4/7] x86: add support for COS/CBM manangement



>>> On 23.03.15 at 09:47, <chao.p.peng@xxxxxxxxxxxxxxx> wrote:
> On Fri, Mar 20, 2015 at 05:13:44PM +0000, Jan Beulich wrote:
>> >>> On 19.03.15 at 11:41, <chao.p.peng@xxxxxxxxxxxxxxx> wrote:
>> > +static unsigned int get_socket_cpu(unsigned int socket)
>> > +{
>> > +    unsigned int cpu;
>> > +
>> > +    for_each_online_cpu ( cpu )
>> > +       if ( cpu_to_socket(cpu) == socket )
>> > +           return cpu;
>> > +    return nr_cpu_ids;
>> > +}
>> 
>> This can be a rather long loop for a huge system. I think you need to
>> find some better solution for this.
> 
> Maintain a socket_cpu_map for each socket? Sounds no existed way.

Perhaps your per-socket data structure could store a pointer to
a suitable cpu_sibling_mask instance (and then the function above
could simply be cpumask_any() on that mask). Of course it'll need
updating when the owning CPU goes down, but thanks to you
having the very sibling mask in your hands at that point, finding
a replacement should be trivial.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.