2014-12-19 21:46:21 |
Richard Laager |
bug |
|
|
added bug |
2014-12-19 21:47:44 |
Richard Laager |
bug |
|
|
added subscriber Serge Hallyn |
2015-01-06 13:05:55 |
Richard Laager |
attachment added |
|
Cherrypicked patches https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1404388/+attachment/4292892/+files/numa-cgroups-fix-cpuset-mems-init.patch |
|
2015-01-06 16:18:15 |
Ubuntu Foundations Team Bug Bot |
tags |
|
patch |
|
2015-01-06 16:18:24 |
Ubuntu Foundations Team Bug Bot |
bug |
|
|
added subscriber Ubuntu Review Team |
2015-01-06 16:19:07 |
Serge Hallyn |
nominated for series |
|
Ubuntu Trusty |
|
2015-01-06 16:19:07 |
Serge Hallyn |
bug task added |
|
libvirt (Ubuntu Trusty) |
|
2015-01-06 16:19:15 |
Serge Hallyn |
libvirt (Ubuntu): status |
New |
Fix Released |
|
2015-01-06 16:19:20 |
Serge Hallyn |
libvirt (Ubuntu Trusty): status |
New |
Confirmed |
|
2015-01-06 16:19:25 |
Serge Hallyn |
libvirt (Ubuntu Trusty): importance |
Undecided |
High |
|
2015-01-06 16:19:30 |
Serge Hallyn |
libvirt (Ubuntu): importance |
Undecided |
High |
|
2015-01-06 19:39:35 |
Serge Hallyn |
description |
On Ubuntu Trusty, with libvirt 1.2.2, libvirt cannot start guests on NUMA node 1 (probably any node other than 0):
$ virsh start pen2.office.wiktel.com
error: Failed to start domain pen2.office.wiktel.com
error: internal error: process exited while connecting to monitor: kvm_init_vcpu failed: Cannot allocate memory
This worked on Ubuntu Precise with libvirt 0.9.8. Rebuilding libvirt 1.2.8 from vivid on Trusty works. It boots, and I've verified it allocates the memory from the correct NUMA node. Bisecting using released libvirt versions narrows it down to broken on 1.2.6 and working on 1.2.7.
There were a number of NUMA changes in 1.2.7, so it's not immediately clear which commit may be causing this. And it may take more than one commit being cherry-picked to address this.
So before I spend any more time bisecting, I'd like to know how you'd like to proceed on this. For example, if you just want to SRU libvirt 1.2.8 into Trusty, I won't bother narrowing it down further.
The relevant libvirt XML:
<vcpu placement='static' cpuset='6-11'>2</vcpu>
<numatune>
<memory mode='strict' nodeset='1'/>
</numatune>
The NUMA topology from virsh capabilities:
<topology>
<cells num='2'>
<cell id='0'>
<memory unit='KiB'>24682480</memory>
<cpus num='6'>
<cpu id='0' socket_id='0' core_id='0' siblings='0'/>
<cpu id='1' socket_id='0' core_id='1' siblings='1'/>
<cpu id='2' socket_id='0' core_id='2' siblings='2'/>
<cpu id='3' socket_id='0' core_id='8' siblings='3'/>
<cpu id='4' socket_id='0' core_id='9' siblings='4'/>
<cpu id='5' socket_id='0' core_id='10' siblings='5'/>
</cpus>
</cell>
<cell id='1'>
<memory unit='KiB'>16513168</memory>
<cpus num='6'>
<cpu id='6' socket_id='1' core_id='0' siblings='6'/>
<cpu id='7' socket_id='1' core_id='1' siblings='7'/>
<cpu id='8' socket_id='1' core_id='2' siblings='8'/>
<cpu id='9' socket_id='1' core_id='8' siblings='9'/>
<cpu id='10' socket_id='1' core_id='9' siblings='10'/>
<cpu id='11' socket_id='1' core_id='10' siblings='11'/>
</cpus>
</cell>
</cells>
</topology> |
=====================================================
SRU Justification:
Impact: libvirt cannot start on numa nodes other than 0
Test case: See the libvirt xml below, use it to start on numa node 1
Regression potential: this is a cherrypick of an upstream patch. However
it did require some backporting, introducing a greater chance for error.
=====================================================
On Ubuntu Trusty, with libvirt 1.2.2, libvirt cannot start guests on NUMA node 1 (probably any node other than 0):
$ virsh start pen2.office.wiktel.com
error: Failed to start domain pen2.office.wiktel.com
error: internal error: process exited while connecting to monitor: kvm_init_vcpu failed: Cannot allocate memory
This worked on Ubuntu Precise with libvirt 0.9.8. Rebuilding libvirt 1.2.8 from vivid on Trusty works. It boots, and I've verified it allocates the memory from the correct NUMA node. Bisecting using released libvirt versions narrows it down to broken on 1.2.6 and working on 1.2.7.
There were a number of NUMA changes in 1.2.7, so it's not immediately clear which commit may be causing this. And it may take more than one commit being cherry-picked to address this.
So before I spend any more time bisecting, I'd like to know how you'd like to proceed on this. For example, if you just want to SRU libvirt 1.2.8 into Trusty, I won't bother narrowing it down further.
The relevant libvirt XML:
<vcpu placement='static' cpuset='6-11'>2</vcpu>
<numatune>
<memory mode='strict' nodeset='1'/>
</numatune>
The NUMA topology from virsh capabilities:
<topology>
<cells num='2'>
<cell id='0'>
<memory unit='KiB'>24682480</memory>
<cpus num='6'>
<cpu id='0' socket_id='0' core_id='0' siblings='0'/>
<cpu id='1' socket_id='0' core_id='1' siblings='1'/>
<cpu id='2' socket_id='0' core_id='2' siblings='2'/>
<cpu id='3' socket_id='0' core_id='8' siblings='3'/>
<cpu id='4' socket_id='0' core_id='9' siblings='4'/>
<cpu id='5' socket_id='0' core_id='10' siblings='5'/>
</cpus>
</cell>
<cell id='1'>
<memory unit='KiB'>16513168</memory>
<cpus num='6'>
<cpu id='6' socket_id='1' core_id='0' siblings='6'/>
<cpu id='7' socket_id='1' core_id='1' siblings='7'/>
<cpu id='8' socket_id='1' core_id='2' siblings='8'/>
<cpu id='9' socket_id='1' core_id='8' siblings='9'/>
<cpu id='10' socket_id='1' core_id='9' siblings='10'/>
<cpu id='11' socket_id='1' core_id='10' siblings='11'/>
</cpus>
</cell>
</cells>
</topology> |
|
2015-01-06 19:39:42 |
Serge Hallyn |
bug |
|
|
added subscriber Ubuntu Stable Release Updates Team |
2015-01-07 17:51:47 |
Chris J Arges |
libvirt (Ubuntu Trusty): status |
Confirmed |
Fix Committed |
|
2015-01-07 17:51:50 |
Chris J Arges |
bug |
|
|
added subscriber SRU Verification |
2015-01-07 17:51:54 |
Chris J Arges |
tags |
patch |
patch verification-needed |
|
2015-01-09 00:37:22 |
Richard Laager |
tags |
patch verification-needed |
patch verification-done |
|
2015-01-29 18:46:32 |
Launchpad Janitor |
libvirt (Ubuntu Trusty): status |
Fix Committed |
Fix Released |
|
2015-01-29 18:46:53 |
Brian Murray |
removed subscriber Ubuntu Stable Release Updates Team |
|
|
|