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] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 27 Jan 2016 18:43:36 +0000 (UTC)
From:	Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
To:	Josh Triplett <josh@...htriplett.org>
Cc:	Thomas Gleixner <tglx@...utronix.de>, Paul Turner <pjt@...gle.com>,
	Andrew Hunter <ahh@...gle.com>,
	Peter Zijlstra <peterz@...radead.org>,
	linux-kernel@...r.kernel.org,
	linux-api <linux-api@...r.kernel.org>,
	Andy Lutomirski <luto@...capital.net>,
	Andi Kleen <andi@...stfloor.org>,
	Dave Watson <davejwatson@...com>, Chris Lameter <cl@...ux.com>,
	Ingo Molnar <mingo@...hat.com>, Ben Maurer <bmaurer@...com>,
	rostedt <rostedt@...dmis.org>,
	"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
	Linus Torvalds <torvalds@...ux-foundation.org>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Russell King <linux@....linux.org.uk>,
	Catalin Marinas <catalin.marinas@....com>,
	Will Deacon <will.deacon@....com>,
	Michael Kerrisk <mtk.manpages@...il.com>
Subject: Re: [RFC PATCH v2 1/3] getcpu_cache system call: cache CPU number
 of running thread

----- On Jan 27, 2016, at 1:03 PM, Josh Triplett josh@...htriplett.org wrote:

> On Wed, Jan 27, 2016 at 05:36:48PM +0000, Mathieu Desnoyers wrote:
>> ----- On Jan 27, 2016, at 12:24 PM, Thomas Gleixner tglx@...utronix.de wrote:
>> > On Wed, 27 Jan 2016, Josh Triplett wrote:
>> >> With the dynamic allocation removed, this seems sensible to me.  One
>> >> minor nit: s/int32_t/uint32_t/g, since a location intended to hold a CPU
>> >> number should never need to hold a negative number.
>> > 
>> > You try to block the future of computing: https://lwn.net/Articles/638673/
>> 
>> Besides impossible architectures, there is actually a use-case for
>> signedness here. It makes it possible to initialize the cpu number
>> cache to a negative value, e.g. -1, in userspace. Then, a check for
>> value < 0 can be used to figure out cases where the getcpu_cache
>> system call is not implemented, and where a fallback (vdso or getcpu
>> syscall) needs to be used.
>> 
>> This is why I have chosen a signed type for the cpu cache so far.
> 
> If getcpu_cache doesn't exist, you'll get ENOSYS.  If getcpu_cache
> returns 0, then you can assume the kernel will give you a valid CPU
> number.

I'm referring to the code path that read the content of the cache.
This code don't call the getcpu_cache system call each time (this
would defeat the entire purpose of this cache), but still has to
know whether it can rely on the cache content to contain the current
CPU number. Seeing a "-1" there is a nice way to tell the fast path
that it needs to go through a fallback.

Or perhaps you have another mechanism in mind for that ? How do
you intend to communicate the ENOSYS from the kernel to all
eventual readers of the cache, without adding extra function
call overhead on the fast path ?

Thanks,

Mathieu

> 
> - Josh Triplett

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ