qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Bharata B Rao <bharata.rao@gmail.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] -numa and -smp options
Date: Tue, 16 Aug 2011 14:36:30 +0530	[thread overview]
Message-ID: <CAGZKiBotWh62kBq+C30+PqFvNXk3bJhEoebXyDhMj5_ZpWNm1Q@mail.gmail.com> (raw)

Hi,

While trying out -numa and -smp command line options, I found that it
is possible to specify inconsistent or impossible or incomplete
topology specifications on qemu command line and have qemu silently
boot a VM with such a topology without complaining.

Example 1:  With "-numa node,nodeid=0,cpus=0-1 -numa
node,nodeid=1,cpus=2-3 -smp sockets=2,cores=2,threads=2", the topology
looks like this:

root@sqzy:~# lstopo
object intersection without inclusion!
Machine (1024MB)
  NUMANode #0 (phys=0 512MB)
    L2 #0 (4096KB) + Core #0
      L1 #0 (32KB) + PU #0 (phys=0)
      L1 #1 (32KB) + PU #1 (phys=1)
    Socket #0
      L2 #1 (4096KB) + Core #1
        L1 #2 (32KB) + PU #2 (phys=4)
        L1 #3 (32KB) + PU #3 (phys=5)
      L2 #2 (4096KB) + Core #2
        L1 #4 (32KB) + PU #4 (phys=6)
        L1 #5 (32KB) + PU #5 (phys=7)
  NUMANode #1 (phys=1 512MB) + L2 #3 (4096KB) + Core #3
    L1 #6 (32KB) + PU #6 (phys=2)
    L1 #7 (32KB) + PU #7 (phys=3)

Here the -numa specification was incomplete, but qemu chose to put
CPUs incorrectly in 2 nodes.

Example 2: node,nodeid=0,cpus=8-11 -numa node,nodeid=1,cpus=9-15 -smp
sockets=2,cores=2,threads=2

root@sqzy:~# lstopo
Machine (1024MB)
  NUMANode #0 (phys=0 512MB)
    Socket #0
      L2 #0 (4096KB) + Core #0
        L1 #0 (32KB) + PU #0 (phys=0)
        L1 #1 (32KB) + PU #1 (phys=1)
      L2 #1 (4096KB) + Core #1
        L1 #2 (32KB) + PU #2 (phys=2)
        L1 #3 (32KB) + PU #3 (phys=3)
    Socket #1
      L2 #2 (4096KB) + Core #2
        L1 #4 (32KB) + PU #4 (phys=4)
        L1 #5 (32KB) + PU #5 (phys=5)
      L2 #3 (4096KB) + Core #3
        L1 #6 (32KB) + PU #6 (phys=6)
        L1 #7 (32KB) + PU #7 (phys=7)
  NUMANode #1 (phys=1 512MB)

So looks like, what CPUs we specify in -numa doesn't matter and if its
wrong, VM will some up with some odd topology.
Shouldn't qemu check if the -numa and -smp specification are
compatible with each other ?

Regards,
Bharata.
-- 
http://bharata.sulekha.com/blog/posts.htm, http://raobharata.wordpress.com/

                 reply	other threads:[~2011-08-16  9:06 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=CAGZKiBotWh62kBq+C30+PqFvNXk3bJhEoebXyDhMj5_ZpWNm1Q@mail.gmail.com \
    --to=bharata.rao@gmail.com \
    --cc=qemu-devel@nongnu.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).