qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 2.1 00/28] Current state of NUMA series, and hos


From: Andreas Färber
Subject: Re: [Qemu-devel] [PATCH 2.1 00/28] Current state of NUMA series, and hostmem improvements
Date: Wed, 05 Mar 2014 12:05:06 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0

Am 04.03.2014 15:00, schrieb Paolo Bonzini:
> This series includes all the pending work on QOMifying the memory
> backends.
[snip]

There's also a recent RFC from Chen Fan about how to model the
association between NUMA nodes and CPU socket/core/thread that
would/should influence this series if we're aiming for 2.1 now.

I didn't review it in-depth yet, but minor technical issues apart, I
think we need to keep NUMA and CPU separate, which then brings up the
question Chen Fan asked about whether we need to support splitting CPU
threads of one core or CPU cores of one socket onto different NUMA
nodes. If we can stop supporting this, 2.0 would be a good point in time
to catch this with an error message at least, even if the remodeling
depending on it happens post-2.0.

For example, assuming associativity at CPU socket level, I'd imagine:

/machine
  /numa-node[0]
    cpu[0] -> /machine/unassigned/device[0]
  /unassigned
    /device[0]
      /core[0]
        /thread[0]

I.e. the CPU socket is a self-contained object in /machine/unassigned
when machine-created or in /machine/peripheral when device_add'ed.

Hotplug will need a link<> property somewhere, and for a standard PC
this can be on /machine (Qseven modules, SoCs etc. would require it a
level down on their container but we don't support those yet). Having
the link<cpu>s on the NUMA nodes corresponds to having multiple buses in
the qdev world.

Compare that to:

/machine
  /node[0] # This is not really telling!
    /socket[0]
      /core[0]
        /thread[0] # So CPUState != thread?
          cpu -> /machine/unassigned/device[0]
  /unassigned
    /device[0]

Note that according to my interpretation of QOM ABI stability rules we
can't just turn a link<cpu> into a child<cpu> without renaming, thus
trying to be forward-looking for where we want to go design-wise.

Regards,
Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



reply via email to

[Prev in Thread] Current Thread [Next in Thread]