From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Carstens Subject: Re: [RFC PATCH v2 1/3] getcpu_cache system call: cache CPU number of running thread Date: Thu, 28 Jan 2016 12:12:38 +0100 Message-ID: <20160128111238.GA5418@osiris> References: <1453913683-28915-1-git-send-email-mathieu.desnoyers@efficios.com> <1453913683-28915-2-git-send-email-mathieu.desnoyers@efficios.com> <671969438.6129.1453915918933.JavaMail.zimbra@efficios.com> <974364259.6329.1453930475174.JavaMail.zimbra@efficios.com> <20160127221142.GA8935@cloud> <75735238.6347.1453934857246.JavaMail.zimbra@efficios.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <75735238.6347.1453934857246.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org> Sender: linux-api-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Mathieu Desnoyers Cc: Josh Triplett , Thomas Gleixner , Paul Turner , Andrew Hunter , Peter Zijlstra , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-api , Andy Lutomirski , Andi Kleen , Dave Watson , Chris Lameter , Ingo Molnar , Ben Maurer , rostedt , "Paul E. McKenney" , Linus Torvalds , Andrew Morton , Russell King , Catalin Marinas , Will Deacon , Michael Kerrisk List-Id: linux-api@vger.kernel.org On Wed, Jan 27, 2016 at 10:47:37PM +0000, Mathieu Desnoyers wrote: > ----- On Jan 27, 2016, at 5:11 PM, Josh Triplett josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org wrote: > > > On Wed, Jan 27, 2016 at 09:34:35PM +0000, Mathieu Desnoyers wrote: > >> ----- On Jan 27, 2016, at 12:37 PM, Thomas Gleixner tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org wrote: > >> > >> > On Wed, 27 Jan 2016, Thomas Gleixner wrote: > >> > > >> >> On Wed, 27 Jan 2016, Mathieu Desnoyers wrote: > >> >> > ----- On Jan 27, 2016, at 12:22 PM, Thomas Gleixner tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org wrote: > >> >> > Sounds fair. What is the recommended typing for "ptr" then ? > >> >> > uint32_t ** or uint32_t * ? > >> >> > > >> >> > It would be expected to pass a "uint32_t *" for the set > >> >> > operation, but the "get" operation requires a "uint32_t **". > >> >> > >> >> Well, you can't change the types depending on the opcode, so you need to stick > >> >> with **. > >> > > >> > Alternatively you make it: > >> > > >> > (opcode, *newptr, **oldptr, flags); > >> > >> I'm tempted to stick to (opcode, **ptr, flags), because > >> other syscalls that have "*newptr", "**oldptr" > >> typically have them because they save the current state > >> into oldptr, and set the new state, which is really > >> not the case here. To eliminate any risk of confusion, > >> I am tempted to keep a single "**ptr". > >> > >> Unless someone has a better idea... > > > > Either that or you could define it as "void *" and interpret it based on > > flags, but that seems unfortunate; let's not imitate ioctl-style > > typeless parameters. I'd stick with the double pointer and the current > > behavior. > > Allright, will do! Thanks for the feedback :) Please don't forget that you also need to implement compat handling since the size of the pointer that is being pointed to is only four bytes for compat tasks. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S967319AbcA1LND (ORCPT ); Thu, 28 Jan 2016 06:13:03 -0500 Received: from e06smtp12.uk.ibm.com ([195.75.94.108]:34690 "EHLO e06smtp12.uk.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964950AbcA1LM6 (ORCPT ); Thu, 28 Jan 2016 06:12:58 -0500 X-IBM-Helo: d06dlp03.portsmouth.uk.ibm.com X-IBM-MailFrom: heiko.carstens@de.ibm.com X-IBM-RcptTo: linux-api@vger.kernel.org;linux-kernel@vger.kernel.org Date: Thu, 28 Jan 2016 12:12:38 +0100 From: Heiko Carstens To: Mathieu Desnoyers Cc: Josh Triplett , Thomas Gleixner , Paul Turner , Andrew Hunter , Peter Zijlstra , linux-kernel@vger.kernel.org, linux-api , Andy Lutomirski , Andi Kleen , Dave Watson , Chris Lameter , Ingo Molnar , Ben Maurer , rostedt , "Paul E. McKenney" , Linus Torvalds , Andrew Morton , Russell King , Catalin Marinas , Will Deacon , Michael Kerrisk Subject: Re: [RFC PATCH v2 1/3] getcpu_cache system call: cache CPU number of running thread Message-ID: <20160128111238.GA5418@osiris> References: <1453913683-28915-1-git-send-email-mathieu.desnoyers@efficios.com> <1453913683-28915-2-git-send-email-mathieu.desnoyers@efficios.com> <671969438.6129.1453915918933.JavaMail.zimbra@efficios.com> <974364259.6329.1453930475174.JavaMail.zimbra@efficios.com> <20160127221142.GA8935@cloud> <75735238.6347.1453934857246.JavaMail.zimbra@efficios.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <75735238.6347.1453934857246.JavaMail.zimbra@efficios.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16012811-0009-0000-0000-0000076F6FDF Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jan 27, 2016 at 10:47:37PM +0000, Mathieu Desnoyers wrote: > ----- On Jan 27, 2016, at 5:11 PM, Josh Triplett josh@joshtriplett.org wrote: > > > On Wed, Jan 27, 2016 at 09:34:35PM +0000, Mathieu Desnoyers wrote: > >> ----- On Jan 27, 2016, at 12:37 PM, Thomas Gleixner tglx@linutronix.de wrote: > >> > >> > On Wed, 27 Jan 2016, Thomas Gleixner wrote: > >> > > >> >> On Wed, 27 Jan 2016, Mathieu Desnoyers wrote: > >> >> > ----- On Jan 27, 2016, at 12:22 PM, Thomas Gleixner tglx@linutronix.de wrote: > >> >> > Sounds fair. What is the recommended typing for "ptr" then ? > >> >> > uint32_t ** or uint32_t * ? > >> >> > > >> >> > It would be expected to pass a "uint32_t *" for the set > >> >> > operation, but the "get" operation requires a "uint32_t **". > >> >> > >> >> Well, you can't change the types depending on the opcode, so you need to stick > >> >> with **. > >> > > >> > Alternatively you make it: > >> > > >> > (opcode, *newptr, **oldptr, flags); > >> > >> I'm tempted to stick to (opcode, **ptr, flags), because > >> other syscalls that have "*newptr", "**oldptr" > >> typically have them because they save the current state > >> into oldptr, and set the new state, which is really > >> not the case here. To eliminate any risk of confusion, > >> I am tempted to keep a single "**ptr". > >> > >> Unless someone has a better idea... > > > > Either that or you could define it as "void *" and interpret it based on > > flags, but that seems unfortunate; let's not imitate ioctl-style > > typeless parameters. I'd stick with the double pointer and the current > > behavior. > > Allright, will do! Thanks for the feedback :) Please don't forget that you also need to implement compat handling since the size of the pointer that is being pointed to is only four bytes for compat tasks.