From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linutronix.de (193.142.43.55:993) by crypto-ml.lab.linutronix.de with IMAP4-SSL for ; 27 Feb 2020 07:08:29 -0000 Received: from mail.kernel.org ([198.145.29.99]) by Galois.linutronix.de with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1j7DHW-000448-MM for speck@linutronix.de; Thu, 27 Feb 2020 08:08:28 +0100 Date: Thu, 27 Feb 2020 08:08:16 +0100 From: Greg KH Subject: [MODERATED] Re: [PATCH v2 1/2] v2: more sampling fun 1 Message-ID: <20200227070816.GA291276@kroah.com> References: <20200226110737.GB17448@zn.tnic> <20200226171103.GA114268@mtg-dev.jf.intel.com> <20200226211310.GT160988@tassilo.jf.intel.com> <87pne1nh33.fsf@nanos.tec.linutronix.de> MIME-Version: 1.0 In-Reply-To: <87pne1nh33.fsf@nanos.tec.linutronix.de> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit To: speck@linutronix.de List-ID: On Wed, Feb 26, 2020 at 11:01:36PM +0100, speck for Thomas Gleixner wrote: > speck for Andi Kleen writes: > > >> > > I implemented this in the way I did to avoid modifying x86_cpu_id as > >> > > that structure is an exported ABI and any change would impact user mode > >> > > code using the structure. > >> > > >> > Exported ABI? Which usermode code uses this? The module loading tools? > >> > >> Yeah, Andi pointed it out to me on an internal review. I don't know what tool > >> is using it. > > > > Yes it's modprobe to find which module to load. > > > > All of mod_devicetable.h is ABI > > That's simply not true. > > mod_devicetable.h is a kernel internal header which gets analyzed by the > kernel internal tool modpost which uses this header to generate the > ALIAS entries in the .modinfo section of the .ko elf file. > > The ALIAS entries are user space ABI but not the header file. To be pedantic, it's a string sent to userspace, _but_ not really an ABI as it depeneds entirely on the kernel that is running at the time. It's only used to pass back into a tool like modprobe to try to figure out what module to load for that specific kernel. So that string can change structure, with no side affects at all as it is explicitly tied to that kernel version anyway. thanks, greg k-h