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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20241009130530.GO17263@noisy.programming.kicks-ass.net>
Date: Wed, 9 Oct 2024 15:05:30 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Zhongqiu Han <quic_zhonhan@...cinc.com>
Cc: mingo@...hat.com, juri.lelli@...hat.com, vincent.guittot@...aro.org,
	dietmar.eggemann@....com, rostedt@...dmis.org, bsegall@...gle.com,
	mgorman@...e.de, vschneid@...hat.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH RESEND] sched: idle: Optimize the generic idle loop by
 removing needless memory barrier

On Wed, Oct 09, 2024 at 05:37:45PM +0800, Zhongqiu Han wrote:
> The memory barrier rmb() in generic idle loop do_idle() function is not
> needed, it doesn't order any load instruction, just remove it as needless
> rmb() can cause performance impact.
> 
> The rmb() was introduced by the tglx/history.git commit f2f1b44c75c4
> ("[PATCH] Remove RCU abuse in cpu_idle()") to order the loads between
> cpu_idle_map and pm_idle. It pairs with wmb() in function cpu_idle_wait().
> 
> And then with the removal of cpu_idle_state in function cpu_idle() and
> wmb() in function cpu_idle_wait() in commit 783e391b7b5b ("x86: Simplify
> cpu_idle_wait"), rmb() no longer has a reason to exist.
> 
> After that, commit d16699123434 ("idle: Implement generic idle function")
> implemented a generic idle function cpu_idle_loop() which resembles the
> functionality found in arch/. And it retained the rmb() in generic idle
> loop in file kernel/cpu/idle.c.
> 
> And at last, commit cf37b6b48428 ("sched/idle: Move cpu/idle.c to
> sched/idle.c") moved cpu/idle.c to sched/idle.c. And commit c1de45ca831a
> ("sched/idle: Add support for tasks that inject idle") renamed function
> cpu_idle_loop() to do_idle().
> 
> Signed-off-by: Zhongqiu Han <quic_zhonhan@...cinc.com>
> History Tree: https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git

Thanks!

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ