On 3/25/22 15:38, Helge Deller wrote: > Switch away from the own cpu topology code to common code which is used > by ARM64 and RISCV. That allows us to enable hotplug later on too. With this series I was able to use CPU hotplugging on the PA-RISC machines. I sucessfully tested it on qemu (32bit kernel) and on a 2-way C8000 (64bit kernel). For qemu the patch I committed today is required: https://github.com/hdeller/seabios-hppa/commit/5cec13f11d3917cf3bceaf68ce23e9fa5f206a35 There is still some issue with the irq balancing on qemu with the emulated GSC, e.g. in this example with 3 CPUs you can only disable CPU0 or CPU2, which both don't use any IRQs. During shutdown of CPU1 the irqs 17-20 needs to be moved to another CPU which doesn't work reliable yet. Example: root@debian:~# cat /proc/interrupts CPU0 CPU1 CPU2 17: 0 0 0 GSC-ASIC parport0 18: 0 1759 0 GSC-PCI ttyS0 19: 0 3572 0 GSC-PCI sym53c8xx 20: 0 2359 0 GSC-PCI enp0s1 64: 224 148358 128518 CPU timer 65: 16 4224 677 CPU IPI 66: 0 0 0 CPU lasi 67: 0 8758 0 CPU Dino STK: 2240 6080 3072 Kernel stack usage root@debian:~# chcpu -d 2 # disables CPU2 CPU 2 disabled root@debian:~# cat /proc/interrupts CPU0 CPU1 17: 0 0 GSC-ASIC parport0 18: 0 1843 GSC-PCI ttyS0 19: 0 3662 GSC-PCI sym53c8xx 20:... root@debian:~# chcpu -e 2 # enable CPU2 [ 6.466714] Releasing cpu 2 now, hpa=fffb2000 CPU 2 enabled root@debian:~# cat /proc/interrupts CPU0 CPU1 CPU2 17: 0 0 0 GSC-ASIC parport0 18: 0 1915 0 GSC-PCI ttyS0 19: 0 3668 0 GSC-PCI sym53c8xx ... CPU hotplugging on the C8000 seems to work reliable. Helge