From: George Dunlap <george.dunlap@eu.citrix.com>
To: Demon King <kdmxen@gmail.com>
Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Subject: Re: what the meaning of the per cpu variable cpu_core_mask and cpu_sibling_mask?
Date: Thu, 21 Mar 2013 14:26:41 +0000 [thread overview]
Message-ID: <514B18A1.7070607@eu.citrix.com> (raw)
In-Reply-To: <CAH+sev=sK5i3m8xq=TGatgJaJGYC3jAq9DfQr8UGd08CXmuesw@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 2755 bytes --]
On 21/03/13 13:49, Demon King wrote:
> 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!
Please don't top-post.
Hyperthreads (HT) in the same core are siblings, and cores in the same
socket / numa node are siblings.
-George
>
>
> On Thu, Mar 21, 2013 at 8:12 PM, George Dunlap
> <George.Dunlap@eu.citrix.com <mailto:George.Dunlap@eu.citrix.com>> wrote:
>
> On Thu, Mar 21, 2013 at 9:53 AM, Demon King <kdmxen@gmail.com
> <mailto:kdmxen@gmail.com>> 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
>
>
[-- Attachment #1.2: Type: text/html, Size: 5636 bytes --]
[-- Attachment #2: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2013-03-21 14:26 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-21 9:53 what the meaning of the per cpu variable cpu_core_mask and cpu_sibling_mask? Demon King
2013-03-21 12:12 ` George Dunlap
2013-03-21 13:49 ` Demon King
2013-03-21 14:26 ` George Dunlap [this message]
2013-03-23 3:17 ` Dario Faggioli
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=514B18A1.7070607@eu.citrix.com \
--to=george.dunlap@eu.citrix.com \
--cc=kdmxen@gmail.com \
--cc=xen-devel@lists.xen.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).