Needed some prerequisites: powerpc/64: Don't try to use radix MMU under a hypervisor powerpc/pseries: Fixes for the "ibm,architecture-vec-5" options powerpc/64: Enable use of radix MMU under hypervisor on POWER9 powerpc/pseries: Advertise HPT resizing support via CAS powerpc/pseries: Advertise Hot Plug Event support to firmware
** Also affects: linux (Ubuntu Zesty) Importance: Undecided Assignee: Taco Screen team (taco-screen-team) Status: New ** Changed in: linux (Ubuntu Zesty) Status: New => Fix Committed ** Changed in: linux (Ubuntu Zesty) Assignee: Taco Screen team (taco-screen-team) => Tim Gardner (timg-tpi) -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1670315 Title: Ubuntu 17.04: Guest does not reflect all the cpus hotplugged Status in linux package in Ubuntu: Fix Committed Status in linux source package in Zesty: Fix Committed Bug description: == Comment: #0 - Satheesh Rajendran <sathe...@in.ibm.com> - 2017-02-28 06:00:53 == ---Problem Description--- Guest does not reflect all the cpus hotplugged, Holpug vcpus using setvcpu with initial less number of cpus(1) to a greater cpus(~256), though setvcpu(libvirt) returns no error, guest does not reflect all cpus inside. Contact Information = sathe...@in.ibm.com ---uname output--- Linux ltc-test-ci1 4.10.0-9-generic #11-Ubuntu SMP Mon Feb 20 13:45:11 UTC 2017 ppc64le ppc64le ppc64le GNU/Linux Machine Type = power 8 ppc64le ---Debugger--- A debugger is not configured ---Steps to Reproduce--- 1. Start the guest(Ubuntu 17.04) with 1 current vcpu and 255 maxvcpus ... <vcpu placement='static' current='1'>255</vcpu> ... <cpu> <topology sockets='1' cores='255' threads='1'/> </cpu> .... # lscpu Architecture: ppc64le Byte Order: Little Endian CPU(s): 1 On-line CPU(s) list: 0 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 1 NUMA node(s): 1 Model: 2.1 (pvr 004b 0201) Model name: POWER8E (raw), altivec supported Hypervisor vendor: KVM Virtualization type: para L1d cache: 64K L1i cache: 32K NUMA node0 CPU(s): 0 2.# time virsh setvcpus virt-tests-vm1 255 --live --config real 0m4.460s user 0m0.012s sys 0m0.000s root@ltc-test-ci1:/var/lib/libvirt/images/workspace/runAvocadoFVTTest/avocado-fvt-wrapper# echo $? 0 3. Check inside the guest after some time (10-15 mins) ( dmesg of guest shows all the RTAS(255) events,but the guest showed only 90 vcpus(it consistent around ~ 100 always). root@ubuntu:~# lscpu Architecture: ppc64le Byte Order: Little Endian CPU(s): 97 On-line CPU(s) list: 0-96 Thread(s) per core: 1 Core(s) per socket: 97 Socket(s): 1 NUMA node(s): 1 Model: 2.1 (pvr 004b 0201) Model name: POWER8E (raw), altivec supported Hypervisor vendor: KVM Virtualization type: para L1d cache: 64K L1i cache: 32K NUMA node0 CPU(s): 0-96 root@ubuntu:~# tail /proc/cpuinfo processor : 96 cpu : POWER8E (raw), altivec supported clock : 3425.000000MHz revision : 2.1 (pvr 004b 0201) timebase : 512000000 platform : pSeries model : IBM pSeries (emulated by qemu) machine : CHRP IBM pSeries (emulated by qemu) Userspace tool common name: libvirt, qemu The userspace tool has the following bit modes: both Userspace rpm: qemu-kvm 1:2.8+dfsg- 2ubuntu1 ppc64el,ii libvirt-bin 2.5.0-3ubuntu2 ppc64el Userspace tool obtained from project website: na Guest Details: #cat /etc/os-release |grep VERSION= VERSION="17.04 (Zesty Zapus)" # uname -a Linux ubuntu 4.10.0-8-generic #10-Ubuntu SMP Mon Feb 13 14:00:06 UTC 2017 ppc64le ppc64le ppc64le GNU/Linux root@ubuntu:~# dpkg -l |grep rtas ii librtas-dev 2.0.0-2 ppc64el userspace RTAS library development files ii librtas2 2.0.0-2 ppc64el userspace RTAS library ii librtasevent-dev 2.0.0-2 ppc64el RTAS events library development files ii librtasevent2 2.0.0-2 ppc64el RTAS events library ii ppc64-diag 2.7.1-6 ppc64el Platform error log analysis tool and rtas_errd daemon *Additional Instructions for sathe...@in.ibm.com: -Post a private note with access information to the machine that the bug is occuring on. -Attach ltrace and strace of userspace application. == Comment: #9 - BHARATA BHASKER RAO <bharata....@in.ibm.com> - 2017-03-03 04:32:14 == When a large number of hotplug requests are generated too quickly, guest will miss the handling of a few RTAS events due to buffer overrun. Because of this, guest will not see all the hotplugged CPUs. This was raised earlier in bz 142499 with the following resolution: - We need in-kernel CPU hotplug feature in the guest for this to work. - Until in-kernel CPU hotplug is available in the guest kernel, user should be careful not to overload the guest with so many successive hotplug requests. I reproduced the problem with ubuntu-1704 guest (with default kernel) and was able to get over the problem with a self-compiled guest kernel from latest linux git that has in-kernel CPU hotplug. bharata@ubuntu-1704:~$ uname -a Linux ubuntu-1704 4.10.0+ #1 SMP Fri Mar 3 15:42:46 IST 2017 ppc64le ppc64le ppc64le GNU/Linux bharata@ubuntu-1704:~$ lscpu Architecture: ppc64le Byte Order: Little Endian CPU(s): 255 On-line CPU(s) list: 0-254 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 255 NUMA node(s): 1 Model: 2.0 (pvr 004d 0200) Model name: POWER8 (raw), altivec supported Hypervisor vendor: KVM Virtualization type: para L1d cache: 64K L1i cache: 32K NUMA node0 CPU(s): 0-254 == Comment: #10 - BHARATA BHASKER RAO <bharata....@in.ibm.com> - 2017-03-06 02:28:42 == commit 3dbbaf200f532e01e56168b8339f2981f2cb1d67 Author: Michael Roth <mdr...@linux.vnet.ibm.com> Date: Mon Feb 20 19:12:18 2017 -0600 powerpc/pseries: Advertise Hot Plug Event support to firmware With the inclusion of commit 333f7b76865b ("powerpc/pseries: Implement indexed-count hotplug memory add") and commit 753843471cbb ("powerpc/pseries: Implement indexed-count hotplug memory remove"), we now have complete handling of the RTAS hotplug event format as described by PAPR via ACR "PAPR Changes for Hotplug RTAS Events". This capability is indicated by byte 6, bit 2 (5 in IBM numbering) of architecture option vector 5, and allows for greater control over cpu/memory/pci hot plug/unplug operations. Existing pseries kernels will utilize this capability based on the existence of the /event-sources/hot-plug-events DT property, so we only need to advertise it via CAS and do not need a corresponding FW_FEATURE_* value to test for. Signed-off-by: Michael Roth <mdr...@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <m...@ellerman.id.au> $ git tag --contains 3dbbaf200 v4.11-rc1 $ Commit 3dbbaf200 is available upstream in kernel v4.11-rc1 onwards, thus missing from 1704 kernel. This commit is needed for memory unplug support. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670315/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp