Thank you very much ! Thanks to your tools, I now understand how to trace some variable in the source code.But I still don't know what is HT siblings or HT and core siblings?Could you explain it a little more detail? Thanks again! On Thu, Mar 21, 2013 at 8:12 PM, George Dunlap wrote: > On Thu, Mar 21, 2013 at 9:53 AM, Demon King wrote: > > I am a new comer of xen-devel. When I read the source code of > > sched_credit.c. I was confused by such codes below: > > > > if ( cpumask_test_cpu(cpu, per_cpu(cpu_core_mask, nxt)) ) > > { > > /* We're on the same socket, so check the busy-ness of > threads. > > * Migrate if # of idlers is less at all */ > > ASSERT( cpumask_test_cpu(nxt, per_cpu(cpu_core_mask, cpu)) ); > > migrate_factor = 1; > > cpumask_and(&cpu_idlers, &idlers, per_cpu(cpu_sibling_mask, > > cpu)); > > cpumask_and(&nxt_idlers, &idlers, per_cpu(cpu_sibling_mask, > > nxt)); > > } > > > > I don't know much about xen or linux. So I get confused in the per cpu > > variable: cpu_core_mask and cpu_sibling_mask > > Is anyone willing to tell me? Thank you! And may I ask you where to get > > answers about this kind of question? > > A handy tool for looking through the hypervisor source code is as follows: > > $ find . -name "*.[cSh]" | xargs grep -H [rexexp] > > This will look for [regexp] in every .c, .h, and .S file. > > Doing this with "cpu_sibling_mask" turns up a couple of places, one of > which is: > > xen/arch/x86/smpboot.c > > Which has the following comments: > > /* representing HT siblings of each logical CPU */ > DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_sibling_mask); > /* representing HT and core siblings of each logical CPU */ > DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_mask); > > So if per_cpu(cpu_core_mask, cpu1) has bit cpu2 set, then cpu2 is a > 'core sibling' of cpu1. Same with cpu_sibling_mask, except then it's > hyperthreads. > > To be honest, the code you're looking at now is very complicated and > not very well commented, so it's not surprising you found it difficult > to understand. I had a plan at some point to update the comments to > make it easier to follow. > > -George >