Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-22 Thread Peter Zijlstra
On Fri, May 22, 2020 at 02:28:54PM +0100, Mel Gorman wrote: > Is something like this on top of your patch what you had in mind? All under the assumption that is makes it go faster of course ;-) > ---8<--- static inline bool ttwu_queue_cond() { /* * If the CPU does not share

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-22 Thread Mel Gorman
On Thu, May 21, 2020 at 01:41:32PM +0200, Peter Zijlstra wrote: > On Thu, May 21, 2020 at 11:38:16AM +0100, Mel Gorman wrote: > > IIUC, this patch front-loads as much work as possible before checking if > > the task is on_rq and then the waker/wakee shares a cache, queue task on > > the wake_list

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-22 Thread Mel Gorman
On Fri, May 22, 2020 at 09:09:50AM +0800, Hillf Danton wrote: > > On Thu, 21 May 2020 17:04:08 +0100 Mel Gorman wrote: > > On Thu, May 21, 2020 at 10:09:31PM +0800, Hillf Danton wrote: > > > > I'm ignoring the coding style of c++ comments but minimally that should > > > > be fixed. More

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-21 Thread Mel Gorman
On Thu, May 21, 2020 at 10:09:31PM +0800, Hillf Danton wrote: > > I'm ignoring the coding style of c++ comments but minimally that should > > be fixed. More importantly, node_type can be one of node_overloaded, > > node_has_spare or node_fully busy and this is checking if there is a > > mismatch.

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-21 Thread Peter Zijlstra
On Thu, May 21, 2020 at 11:38:16AM +0100, Mel Gorman wrote: > IIUC, this patch front-loads as much work as possible before checking if > the task is on_rq and then the waker/wakee shares a cache, queue task on > the wake_list and otherwise do a direct wakeup. > > The advantage is that spinning is

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-21 Thread Mel Gorman
On Wed, May 20, 2020 at 03:58:01PM +0200, Jirka Hladky wrote: > Hi Hillf, Mel and all, > > thanks for the patch! It has produced really GOOD results. > > 1) It has fixed performance problems with 5.7 vanilla kernel for > single-tenant workload and low system load scenarios, without > performance

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-21 Thread Mel Gorman
On Fri, May 15, 2020 at 04:24:44PM +0200, Peter Zijlstra wrote: > On Fri, May 15, 2020 at 01:17:32PM +0200, Peter Zijlstra wrote: > > On Fri, May 15, 2020 at 09:47:40AM +0100, Mel Gorman wrote: > > > > > However, the wakeups are so rapid that the wakeup > > > happens while the server is

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-20 Thread Jirka Hladky
I have an update on netperf-cstate-small-cross-socket results. Reported performance degradation of 2.5% for the UDP stream throughput and 0.6% for the TCP throughput is for message size of 16kB. For smaller message sizes, the performance drop is higher - up to 5% for UDP throughput for a message

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-20 Thread Jirka Hladky
Hi Hillf, Mel and all, thanks for the patch! It has produced really GOOD results. 1) It has fixed performance problems with 5.7 vanilla kernel for single-tenant workload and low system load scenarios, without performance degradation for the multi-tenant tasks. It's producing the same results as

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-18 Thread Jirka Hladky
Hi Hillf, thanks a lot for your patch! Compared to 5.7 rc4 vanilla, we observe the following: * Single-tenant jobs show improvement up to 15% for SPECjbb2005 and up to 100% for NAS in low thread mode. In other words, it fixes all the problems we have reported in this thread. * Multitenancy

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-15 Thread Jirka Hladky
> Complete shot in the dark but restore adjust_numa_imbalance() and try > this > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 1a9983da4408..0b31f4468d5b 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -2393,7 +2393,7 @@ static void ttwu_queue(struct

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-15 Thread Peter Zijlstra
On Fri, May 15, 2020 at 01:17:32PM +0200, Peter Zijlstra wrote: > On Fri, May 15, 2020 at 09:47:40AM +0100, Mel Gorman wrote: > > > However, the wakeups are so rapid that the wakeup > > happens while the server is descheduling. That forces the waker to spin > > on smp_cond_load_acquire for

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-15 Thread Peter Zijlstra
> > In that case, we potentially avoid spinning on on_rq for wakeups between > > tasks that do not share CPU but it's not clear why it would be specific to > > remote tasks. > > The thinking was that we can avoid spinning on ->on_cpu, and let the CPU > get on with things. Rik had a workload

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-15 Thread Peter Zijlstra
On Fri, May 15, 2020 at 02:03:46PM +0100, Mel Gorman wrote: > On Fri, May 15, 2020 at 01:17:32PM +0200, Peter Zijlstra wrote: > > On Fri, May 15, 2020 at 09:47:40AM +0100, Mel Gorman wrote: > > +static bool ttwu_queue_remote(struct task_struct *p, int cpu, int > > wake_flags) > > +{ > > + if

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-15 Thread Mel Gorman
On Fri, May 15, 2020 at 01:17:32PM +0200, Peter Zijlstra wrote: > On Fri, May 15, 2020 at 09:47:40AM +0100, Mel Gorman wrote: > > > However, the wakeups are so rapid that the wakeup > > happens while the server is descheduling. That forces the waker to spin > > on smp_cond_load_acquire for

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-15 Thread Peter Zijlstra
On Fri, May 15, 2020 at 01:22:31PM +0100, Mel Gorman wrote: > On Fri, May 15, 2020 at 01:28:15PM +0200, Peter Zijlstra wrote: > > > + if (val & _TIF_POLLING_NRFLAG) > > > + goto activate; > > > > I'm completely confused... the result here is that if you're

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-15 Thread Mel Gorman
On Fri, May 15, 2020 at 01:28:15PM +0200, Peter Zijlstra wrote: > On Fri, May 15, 2020 at 09:47:40AM +0100, Mel Gorman wrote: > > sched: Wake cache-local tasks via wake_list if wakee CPU is polling > > > > There are two separate method for waking a task from idle, one for > > tasks running on

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-15 Thread Peter Zijlstra
On Fri, May 15, 2020 at 09:47:40AM +0100, Mel Gorman wrote: > sched: Wake cache-local tasks via wake_list if wakee CPU is polling > > There are two separate method for waking a task from idle, one for > tasks running on CPUs that share a cache and one for when the caches are > separate. The

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-15 Thread Peter Zijlstra
On Fri, May 15, 2020 at 09:47:40AM +0100, Mel Gorman wrote: > However, the wakeups are so rapid that the wakeup > happens while the server is descheduling. That forces the waker to spin > on smp_cond_load_acquire for longer. In this case, it can be cheaper to > add the task to the rq->wake_list

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-15 Thread Mel Gorman
On Thu, May 14, 2020 at 05:31:22PM +0200, Peter Zijlstra wrote: > On Wed, May 13, 2020 at 04:30:23PM +0100, Mel Gorman wrote: > > Complete shot in the dark but restore adjust_numa_imbalance() and try > > this > > > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > > index

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-14 Thread Peter Zijlstra
On Wed, May 13, 2020 at 04:30:23PM +0100, Mel Gorman wrote: > Complete shot in the dark but restore adjust_numa_imbalance() and try > this > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 1a9983da4408..0b31f4468d5b 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c >

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-14 Thread Jirka Hladky
THANK YOU! On Thu, May 14, 2020 at 1:50 PM Mel Gorman wrote: > > On Thu, May 14, 2020 at 12:22:05PM +0200, Jirka Hladky wrote: > > Thanks! > > > > Do you have a link? I cannot find it on github > > (https://github.com/gormanm/mmtests, searched for > >

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-14 Thread Mel Gorman
On Thu, May 14, 2020 at 12:22:05PM +0200, Jirka Hladky wrote: > Thanks! > > Do you have a link? I cannot find it on github > (https://github.com/gormanm/mmtests, searched for > config-network-netperf-cstate-small-cross-socket) >

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-14 Thread Jirka Hladky
Thanks! Do you have a link? I cannot find it on github (https://github.com/gormanm/mmtests, searched for config-network-netperf-cstate-small-cross-socket) On Thu, May 14, 2020 at 12:08 PM Mel Gorman wrote: > > On Thu, May 14, 2020 at 11:58:36AM +0200, Jirka Hladky wrote: > > Thank you, Mel! >

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-14 Thread Mel Gorman
On Thu, May 14, 2020 at 11:58:36AM +0200, Jirka Hladky wrote: > Thank you, Mel! > > We are using netperf as well, but AFAIK it's running on two different > hosts. I will check with colleagues, if they can > add network-netperf-unbound run on the localhost. > > Is this the right config? >

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-14 Thread Mel Gorman
On Wed, May 13, 2020 at 06:20:53PM +0200, Jirka Hladky wrote: > Thank you, Mel! > > I think I have to make sure we cover the scenario you have targeted > when developing adjust_numa_imbalance: > > === >

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-13 Thread Jirka Hladky
Thank you, Mel! I think I have to make sure we cover the scenario you have targeted when developing adjust_numa_imbalance: ===

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-13 Thread Mel Gorman
On Wed, May 13, 2020 at 04:57:15PM +0200, Jirka Hladky wrote: > Hi Mel, > > we have tried the kernel with adjust_numa_imbalance() crippled to just > return the imbalance it's given. > > It has solved all the performance problems I have reported. > Performance is the same as with 5.6 kernel

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-13 Thread Jirka Hladky
Hi Mel, we have tried the kernel with adjust_numa_imbalance() crippled to just return the imbalance it's given. It has solved all the performance problems I have reported. Performance is the same as with 5.6 kernel (before the patch was applied). * solved the performance drop upto 20% with

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-08 Thread Jirka Hladky
Hi Mel, thanks for hints! We will try it. @Phil - could you please prepare a kernel build for me to test? Thank you! Jirka On Fri, May 8, 2020 at 11:22 AM Mel Gorman wrote: > > On Thu, May 07, 2020 at 06:29:44PM +0200, Jirka Hladky wrote: > > Hi Mel, > > > > we are not targeting just OMP

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-08 Thread Mel Gorman
On Thu, May 07, 2020 at 06:29:44PM +0200, Jirka Hladky wrote: > Hi Mel, > > we are not targeting just OMP applications. We see the performance > degradation also for other workloads, like SPECjbb2005 and > SPECjvm2008. Even worse, it also affects a higher number of threads. > For example,

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-07 Thread Phil Auld
On Thu, May 07, 2020 at 06:29:44PM +0200 Jirka Hladky wrote: > Hi Mel, > > we are not targeting just OMP applications. We see the performance > degradation also for other workloads, like SPECjbb2005 and > SPECjvm2008. Even worse, it also affects a higher number of threads. > For example,

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-07 Thread Jirka Hladky
Hi Mel, we are not targeting just OMP applications. We see the performance degradation also for other workloads, like SPECjbb2005 and SPECjvm2008. Even worse, it also affects a higher number of threads. For example, comparing 5.7.0-0.rc2 against 5.6 kernel, on 4 NUMA server with 2x AMD 7351 CPU,

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-07 Thread Mel Gorman
On Thu, May 07, 2020 at 05:24:17PM +0200, Jirka Hladky wrote: > Hi Mel, > > > > Yes, it's indeed OMP. With low threads count, I mean up to 2x number of > > > NUMA nodes (8 threads on 4 NUMA node servers, 16 threads on 8 NUMA node > > > servers). > > > > Ok, so we know it's within the imbalance

Re: [PATCH 00/13] Reconcile NUMA balancing decisions with the load balancer v6

2020-05-07 Thread Jirka Hladky
Hi Mel, > > Yes, it's indeed OMP. With low threads count, I mean up to 2x number of > > NUMA nodes (8 threads on 4 NUMA node servers, 16 threads on 8 NUMA node > > servers). > > Ok, so we know it's within the imbalance threshold where a NUMA node can > be left idle. we have discussed today with