so I was able to upgrade to the indicated versions. Had to go to Fedora 25, since it natively supports these versions, and centos doesn't. upgrading centos proved to be unreasonably difficult for me.

After upgrading I added the syntax as described in the docs. I have configured 4 vcpus and 2 numa nodes. Node 0 has vcpus 0-1 and node 1 has vcpus 2-3. Configured two pci-expander-buses: index 1 assigned to node 0 and index 2 assigned to node 1.

I use these indices for the bus values in the interfaces. But on booting up the system, only the interfaces connected to node 1 are visible to the guest OS.

Not sure why that would be.

If there are any ideas, that would be great.

Happy thanksgiving to the US folks.

On 22 November 2016 at 08:04, Amir Shehata <amir.shehata.whamcloud@gmail.com> wrote:
Laine,

Thanks. You're correct that I haven't gotten to use the new pci bus yet.

I'm currently trying to upgrade to the versions you specified. Just having a bunch of problems... I'll let you know the results of the experiment once I sort them out.

thanks
amir

On 21 November 2016 at 14:06, Laine Stump <laine@laine.org> wrote:
On 11/21/2016 04:48 PM, Amir Shehata wrote:
Laine,

Thank you for your response.

I did use the numa element instead of using qemu commandline and that worked:

 16   <cpu mode='custom' match='exact'>
...
 34     <numa>
 35       <cell id='0' cpus='0-1' memory='1048576' unit='KiB'/>
 36       <cell id='1' cpus='2-3' memory='1048576' unit='KiB'/>
 37     </numa>
 38   </cpu>

However, whenever I try to use the pci-expander-bus I get:
error: XML document failed to validate against schema: Unable to validate doc against /usr/share/libvirt/schemas/domain.rng
Extra element devices in interleave
Element domain failed to validate content

Sorry, I forgot to mention that pci-expander-bus is a fairly recent addition to libvirt and qemu. For libvirt support of that controller, you'll need at least libvirt 1.3.4, and qemu 2.4.0. Anything earlier than that and the guest OS won't have any visibility to the NUMA node of specific devices.



I tried the following

 93     <controller type='pci' index='1' model='pci-expander-bus'>
 94       <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/>
 95     </controller>

and

 93     <controller type='pci' index='1' model='pci-expander-bus'>
 94       <target busNr='254'>
 95         <node>1</node>
 96       </target>
 97       <address type='pci' domain='0x0000' bus='0x00' slot='0x0b' function='0x0'/>
 98     </controller>


I got the syntax from: https://www.redhat.com/archives/libvir-list/2016-March/msg01224.html

Just to give you a bit more info. This is running on:
Linux ashehata-DellPE 3.19.0-51-generic #58-Ubuntu SMP Fri Feb 26 21:22:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux


below is a dump of the working XML file I'm using

I notice you don't have any device with pci bus='1'. I'm assuming you just hadn't gotten to that part of the experiment yet, correct?