Activity log for bug #1404388

Date Who What changed Old value New value Message
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