From: Jonas Bonn <jonas.bonn@gmail.com>
To: Vineet Gupta <Vineet.Gupta1@synopsys.com>
Cc: "linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"arnd@arndb.de" <arnd@arndb.de>
Subject: Re: [RFC PATCH v1 08/31] ARC: Fundamental ARCH data-types/defines
Date: Thu, 8 Nov 2012 21:36:34 +0100 [thread overview]
Message-ID: <CACM3HyHAKgJ2aTGjidZr5T9WFL3m+FTbUz_1QtO2gAgSFQm8fA@mail.gmail.com> (raw)
In-Reply-To: <C2D7FE5348E1B147BCA15975FBA230750D9863@in01wembx1.internal.synopsys.com>
On 8 November 2012 19:52, Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:
> On 7 November 2012 10:47, Vineet Gupta <Vineet.Gupta1@synopsys.com> wrote:
>> I'd recommend not exporting the pt_regs structure to userspace. This
>> struct is used heavily within the kernel and it's nice to have the
>> leeway to be able to modify it as things evolve. GDB doesn't need to
>> know about this struct anymore as it should be using regset's for any
>> recent architectures anyway, so it's the regset layout that should be
>> ABI stable instead of pt_regs.
>>
>> You can check the openrisc architecture as an example of how to do this.
>
> Hi Jonas,
>
> thanks for your review comment. I completely agree that pt_regs should not be exported and very recently a change in pt_regs forced a gdbserver change too (ABI incompatibility) which goes along what you are recommending. Infact the ptrace patch for kernel (which will follow in series #2) provides a stable regset ABI - extracting information from pt_regs.
>
> However our current gdb/gdbserver is 6.8 based and making it switch to regset interface might not be possible for this release of tools. Since customers are already using our stuff, we can not have a broken ABI. We do have ABI versioning, so in next release we can fix gdb and remove this.
For generic syscalls it was generally decided that the upstream kernel
would drop support for legacy syscalls, _even though_ userspace bits
like uClibc required them. For _new_ architectures, userspace would
need to adapt to the _mainline_ kernel; and as a stop-gap for existing
software, external patches could be carried in an external git
repository where _non-mainline_ kernel patches could be carried to
provide a working kernel until userspace could catch up.
I'd say the same applies here: GDB 6.8 may continue work with a
mainline kernel plus a patch that restores the export of pt_regs, but
GDB 7.2 (or whatever version you move on to) would be the one that
fully supports an unpatched mainline.
>
> Please note that an additional reason for exporting pt_regs is due to the fact that it is part of sigcontext. Keeping it exactly same as pt_regs helps us do batch save/restore of user context in signal handling (please look at my signal handling patch) but the flip side is that userspace SA_SIGINFO needs to be able to have access to sigcontext and hence we explicitly need pt_regs. We could arguably opencode pt_regs there - but that won't be clean IMHO.
It's not really pt_regs you need here, but the userspace equivalent
thereof. On OpenRISC, for example, we have user_regs_struct which is
an ABI stable version of pt_regs. These may even be identical to
begin with, but at least the distinction can be made now between the
kernel-internal struct and the ABI stable one.
/Jonas
next prev parent reply other threads:[~2012-11-08 20:36 UTC|newest]
Thread overview: 146+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-07 9:47 [RFC Patch v1 00/31] Synopsys ARC Linux kernel Port Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 01/31] ARC: Generic Headers Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 02/31] ARC: irqflags Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-12 19:50 ` Thomas Gleixner
2012-11-12 19:50 ` Thomas Gleixner
2013-01-01 7:44 ` Vineet Gupta
2013-01-01 7:44 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 03/31] ARC: atomic/bitops/cmpxchg/barriers Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 04/31] asm-generic headers: uaccess.h to conditionally define segment_eq() Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 05/31] ARC: uaccess friends Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 06/31] asm-generic headers: Allow yet more arch overrides in checksum.h Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 07/31] ARC: checksum/byteorder/swab routines Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 08/31] ARC: Fundamental ARCH data-types/defines Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-08 7:10 ` Jonas Bonn
2012-11-08 18:52 ` Vineet Gupta
2012-11-08 20:36 ` Jonas Bonn [this message]
2012-11-12 13:58 ` Vineet Gupta
2012-11-12 14:12 ` Arnd Bergmann
2012-11-07 9:47 ` [RFC PATCH v1 09/31] ARC: spinlock/rwlock/mutex primitives Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 10/31] ARC: string library Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 11/31] ARC: Low level IRQ/Trap/Exception(non-MMU) Handling Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-16 4:58 ` Al Viro
2012-11-16 4:58 ` Al Viro
2012-12-27 9:00 ` Vineet Gupta
2012-12-27 13:29 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 12/31] ARC: Interrupt Handling Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-12 20:08 ` Thomas Gleixner
2012-11-12 20:08 ` Thomas Gleixner
2013-01-01 10:46 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 13/31] ARC: Non-MMU Exception Handling Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 14/31] ARC: syscall support Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 14:21 ` Arnd Bergmann
2012-11-09 9:50 ` James Hogan
2012-11-13 11:41 ` James Hogan
2012-11-13 12:01 ` Jonas Bonn
2012-11-13 12:01 ` Jonas Bonn
2012-11-13 12:11 ` James Hogan
2012-11-14 12:23 ` Arnd Bergmann
2012-11-14 12:31 ` James Hogan
2012-11-13 10:13 ` Gilad Ben-Yossef
2012-11-13 10:37 ` Arnd Bergmann
2012-11-15 6:15 ` Vineet Gupta
2012-11-15 6:15 ` Vineet Gupta
2012-11-15 12:35 ` Arnd Bergmann
2013-01-17 5:13 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 15/31] ARC: Process/scheduling/clock/Timers/Delay Management Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-12 20:29 ` Thomas Gleixner
2013-01-02 7:13 ` Vineet Gupta
2013-01-02 8:45 ` Vineet Gupta
2013-01-04 13:01 ` Frederic Weisbecker
2012-11-07 9:47 ` [RFC PATCH v1 16/31] ARC: Signal handling Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-16 5:26 ` Al Viro
2012-12-28 12:34 ` Vineet Gupta
2012-12-28 12:34 ` Vineet Gupta
2012-12-28 12:42 ` [PATCH 1/2] ARC: [Review] Preparing to fix incorrect syscall restarts due to signals Vineet Gupta
2012-12-28 12:42 ` [PATCH 2/2] ARC: [Review] Prevent incorrect syscall restarts Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 17/31] ARC: Cache Flush Management Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 18/31] ARC: Page Table Management Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 19/31] ARC: MMU Context Management Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 20/31] ARC: MMU Exception Handling Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 21/31] ARC: TLB flush Handling Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 22/31] ARC: Page Fault handling (incl uaccess fixup) Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 23/31] ARC: I/O and DMA Mappings Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 24/31] ARC: startup #1: low-level, setup_arch(), /proc/cpuinfo, mem init Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 25/31] ARC: [plat-arcfpga] Hooking up platform to ARC UART Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 14:16 ` Arnd Bergmann
2012-11-07 14:16 ` Arnd Bergmann
2013-01-07 13:10 ` Vineet Gupta
2013-01-07 13:46 ` Arnd Bergmann
2013-01-07 14:04 ` Vineet Gupta
2013-01-07 14:36 ` Arnd Bergmann
2013-01-14 7:35 ` early init dt for earlyprintk (was Re: [RFC PATCH v1 25/31] ARC: [plat-arcfpga] Hooking up platform to ARC UART) Vineet Gupta
2013-01-14 9:48 ` James Hogan
2013-01-14 10:09 ` Vineet Gupta
2013-01-14 10:54 ` Arnd Bergmann
2013-01-17 7:29 ` [RFC PATCH v1 25/31] ARC: [plat-arcfpga] Hooking up platform to ARC UART Vineet Gupta
2013-01-17 10:52 ` Arnd Bergmann
2012-11-07 9:47 ` [RFC PATCH v1 26/31] ARC: Build system: Makefiles, Kconfig, Linker script Vineet Gupta
2012-11-07 14:13 ` Arnd Bergmann
[not found] ` <50E4449A.7010606@synopsys.com>
[not found] ` <201301021448.20119.arnd@arndb.de>
2013-01-03 7:58 ` Vineet Gupta
2013-01-03 8:25 ` Arnd Bergmann
2013-01-03 8:25 ` Arnd Bergmann
2013-03-11 12:29 ` SYSV IPC broken for no-legacy syscall kernels (was Re: [RFC PATCH v1 26/31] ARC: Build system: Makefiles, Kconfig, Linker script) Vineet Gupta
2013-03-11 12:44 ` James Hogan
2013-03-11 12:56 ` Vineet Gupta
2013-03-11 13:07 ` James Hogan
2013-03-11 13:30 ` Arnd Bergmann
2013-03-11 13:48 ` Vineet Gupta
2013-03-11 13:48 ` Vineet Gupta
2013-03-11 14:50 ` Arnd Bergmann
2012-11-15 17:49 ` [RFC PATCH v1 26/31] ARC: Build system: Makefiles, Kconfig, Linker script James Hogan
2012-11-15 17:49 ` James Hogan
2012-11-15 19:30 ` Ralf Baechle
2012-11-16 6:36 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 27/31] ARC: Last bits (stubs) to get to a running kernel with UART Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 28/31] ARC: split ret_from_fork, simplify kernel_thread() Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 29/31] ARC: switch to generic kernel_thread() Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 30/31] ARC: switch to generic kernel_execve() and sys_execve() Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-16 4:08 ` Al Viro
2012-11-16 4:08 ` Al Viro
2012-11-17 14:01 ` Vineet Gupta
2012-11-07 9:47 ` [RFC PATCH v1 31/31] ARC: [plat-arcfpga] defconfig Vineet Gupta
2012-11-07 9:47 ` Vineet Gupta
2012-11-07 14:06 ` Arnd Bergmann
2012-11-12 14:18 ` James Hogan
2012-11-12 14:21 ` Arnd Bergmann
2012-11-07 14:36 ` [RFC Patch v1 00/31] Synopsys ARC Linux kernel Port Arnd Bergmann
2012-11-08 19:09 ` Vineet Gupta
2012-11-07 20:46 ` Gilad Ben-Yossef
2012-11-07 20:46 ` Gilad Ben-Yossef
2012-11-20 13:47 ` Pavel Machek
2012-11-20 13:49 ` Vineet Gupta
2012-11-20 13:59 ` Pavel Machek
2012-11-20 14:17 ` Vineet Gupta
2013-01-18 19:46 ` Pavel Machek
2013-01-18 22:17 ` Arnd Bergmann
2013-01-19 10:15 ` Pavel Machek
2013-01-19 12:32 ` Vineet Gupta
2013-01-19 17:02 ` Pavel Machek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CACM3HyHAKgJ2aTGjidZr5T9WFL3m+FTbUz_1QtO2gAgSFQm8fA@mail.gmail.com \
--to=jonas.bonn@gmail.com \
--cc=Vineet.Gupta1@synopsys.com \
--cc=arnd@arndb.de \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).