Subject: Re: [PATCH 2/3] powerpc/numa: Early request for home node associativity

From: Srikar Dronamraju <[email-masked]>
Date: Tue, 27 Aug 2019 12:27:17 +0530

Hi Satheesh,

> > Currently the kernel detects if its running on a shared lpar platform
> > and requests home node associativity before the scheduler sched_domains
> > are setup. However between the time NUMA setup is initialized and the
> > request for home node associativity, workqueue initializes its per node
> > cpumask. The per node workqueue possible cpumask may turn invalid
> > after home node associativity resulting in weird situations like
> > workqueue possible cpumask being a subset of workqueue online cpumask.
> 
> Env:
> HW: Power8
> Host/Guest Kernel: 5.3.0-rc5-00172-g13e3f1076e29 (linux master + this series)
> Qemu: 4.0.90 (v4.1.0-rc3)
> 
> Guest Config:
> ..
>  <vcpu placement='static' current='2'>4</vcpu>
> ...
>     <kernel>/home/kvmci/linux/vmlinux</kernel>
>     <cmdline>root=/dev/sda2 rw console=tty0 console=ttyS0,115200 init=/sbin/init  initcall_debug numa=debug crashkernel=1024M selinux=0</cmdline>
> ...
>   <topology sockets='1' cores='2' threads='2'/>
>     <numa>
>       <cell id='0' cpus='0-1' memory='2097152' unit='KiB'/>
>       <cell id='1' cpus='2-3' memory='2097152' unit='KiB'/>
>     </numa>
> 
> Event: 
> vcpu hotplug
> 
> [root@atest-guest ~]# [   41.447170] random: crng init done
> [   41.448153] random: 7 urandom warning(s) missed due to ratelimiting
> [   51.727256] VPHN hcall succeeded. Reset polling...
> [   51.826301] adding cpu 2 to node 1
> [   51.856238] WARNING: workqueue cpumask: online intersect > possible intersect
> [   51.916297] VPHN hcall succeeded. Reset polling...
> [   52.036272] adding cpu 3 to node 1
> 

Thanks for testing.

The fix for this patch series was to make sure per node workqueue possible
cpus is updated correctly at boot. However Node hotplug on KVM guests and
dlpar on PowerVM lpars aren't covered by this patch series. On systems that
support shared processor, the associativity of the possible cpus is not
known at boot time. Hence we will not be able to update the per node
workquque possible cpumask.

-- 
Thanks and Regards
Srikar Dronamraju