lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 06 Nov 2020 21:20:05 +0000 From: Valentin Schneider <valentin.schneider@....com> To: Aubrey Li <aubrey.li@...ux.intel.com> Cc: mingo@...hat.com, peterz@...radead.org, juri.lelli@...hat.com, vincent.guittot@...aro.org, dietmar.eggemann@....com, rostedt@...dmis.org, bsegall@...gle.com, mgorman@...e.de, tim.c.chen@...ux.intel.com, linux-kernel@...r.kernel.org, Aubrey Li <aubrey.li@...el.com>, Qais Yousef <qais.yousef@....com>, Jiang Biao <benbjiang@...il.com> Subject: Re: [RFC PATCH v3] sched/fair: select idle cpu from idle cpumask for task wakeup On 21/10/20 16:03, Aubrey Li wrote: > From: Aubrey Li <aubrey.li@...el.com> > > Added idle cpumask to track idle cpus in sched domain. When a CPU > enters idle, its corresponding bit in the idle cpumask will be set, > and when the CPU exits idle, its bit will be cleared. > > When a task wakes up to select an idle cpu, scanning idle cpumask > has low cost than scanning all the cpus in last level cache domain, > especially when the system is heavily loaded. > FWIW I gave this a spin on my arm64 desktop (Ampere eMAG, 32 core). I get some barely noticeable (AIUI not statistically significant for bench sched) changes for 100 iterations of: | bench | metric | mean | std | q90 | q99 | |------------------------------------+----------+--------+---------+--------+--------| | hackbench --loops 5000 --groups 1 | duration | -1.07% | -2.23% | -0.88% | -0.25% | | hackbench --loops 5000 --groups 2 | duration | -0.79% | +30.60% | -0.49% | -0.74% | | hackbench --loops 5000 --groups 4 | duration | -0.54% | +6.99% | -0.21% | -0.12% | | perf bench sched pipe -T -l 100000 | ops/sec | +1.05% | -2.80% | -0.17% | +0.39% | q90 & q99 being the 90th and 99th percentile. Base was tip/sched/core at: d8fcb81f1acf ("sched/fair: Check for idle core in wake_affine") > v2->v3: > - change setting idle cpumask to every idle entry, otherwise schbench > has a regression of 99th percentile latency. > - change clearing idle cpumask to nohz_balancer_kick(), so updating > idle cpumask is ratelimited in the idle exiting path. > - set SCHED_IDLE cpu in idle cpumask to allow it as a wakeup target. > > v1->v2: > - idle cpumask is updated in the nohz routines, by initializing idle > cpumask with sched_domain_span(sd), nohz=off case remains the original > behavior. > > Cc: Mel Gorman <mgorman@...e.de> > Cc: Vincent Guittot <vincent.guittot@...aro.org> > Cc: Qais Yousef <qais.yousef@....com> > Cc: Valentin Schneider <valentin.schneider@....com> > Cc: Jiang Biao <benbjiang@...il.com> > Cc: Tim Chen <tim.c.chen@...ux.intel.com> > Signed-off-by: Aubrey Li <aubrey.li@...ux.intel.com>
Powered by blists - more mailing lists