From: vineet.gupta1@synopsys.com (Vineet Gupta)
To: linux-snps-arc@lists.infradead.org
Subject: ARC vs. generic sigaction (was Re: [PATCH 08/21] ARC: Linux Syscall Interface)
Date: Wed, 19 Dec 2018 09:58:34 -0800 [thread overview]
Message-ID: <05069752-0a66-d6ca-e249-5c702eec4e99@synopsys.com> (raw)
In-Reply-To: <5f512e48-e7fc-2233-febd-2e6a8bc2311b@synopsys.com>
On 12/18/18 6:39 PM, Vineet Gupta wrote:
>>> diff --git a/sysdeps/unix/sysv/linux/arc/sigaction.c b/sysdeps/unix/sysv/linux/arc/sigaction.c
>> Why do you need this, rather than using the unified version (possibly with
>> a few macros defined first)?
>
> The only syscall ABI requirement is that we pass our our own SA_RESTORER stub
> (rather than inject one in kernel, and deal with cache sync etc etc). Indeed the
> common code can be used - likely was not the case when I started with ARC port, or
> more likely the port that I started ARC port from ;-)
>
> I'll update this.
I took a stab at this but not really happy with taking this approach.
(1). Common code assumes disparate kernel and userland sigaction struct even
though there's no reason for a *new* port to be: its not like all glibc code is
shared/common although I agree it is best to do so as much as possible
So this requires explicit copy over of 1 struct into other, when it could have
been avoided altogether for some cases atleast (!SA_RESTORER).
(2) Linux kernel asm-generic syscall ABI expects sigset_t to be 2 words
| kernel: include/uapi/asm-generic/signal.h
|
| #define _NSIG 64
| typedef struct {
| unsigned long sig[_NSIG_WORDS];
| } sigset_t;
And that is what we pretend at the time of syscall itself, e.g. snippet below from
generic sigaction()
| /* XXX The size argument hopefully will have to be changed to the
| real size of the user-level sigset_t. */
| result = INLINE_SYSCALL_CALL (rt_sigaction, sig,
| act ? &kact : NULL,
| oact ? &koact : NULL, STUB(act) _NSIG / 8);
^^^^^^^^^
However glibc assumes sigset_to to be 128 words which is fine, however the memcpy
for 256 words seems pointless when kernel is not supposed to be even looking at
beyond 2nd word (although I realize my SA_RESTORE case was doing the implicit copy
as well)
(3) Consider me a micro-optimization freak :-) but this memcpy seems waste of
cycles and will atleast show up LMBench lat_sig <install> micro-benchmarks.
I don't have strong feelings either ways, but wanted to express my concerns anyways.
Thx,
-Vineet
next prev parent reply other threads:[~2018-12-19 17:58 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-18 21:04 [PATCH 00/21] glibc port to ARC processors Vineet Gupta
2018-12-18 21:04 ` [PATCH 01/21] longlong.h: sync from gcc to fix ARC inline asm constraints Vineet Gupta
2018-12-18 22:56 ` Joseph Myers
2018-12-18 23:11 ` Vineet Gupta
2018-12-21 18:46 ` Joseph Myers
2018-12-21 19:07 ` Vineet Gupta
2018-12-18 21:04 ` [PATCH 02/21] ARC: add definitions to elf/elf.h Vineet Gupta
2018-12-18 21:04 ` [PATCH 03/21] ARC: ABI Implementation Vineet Gupta
2018-12-18 23:09 ` Joseph Myers
2018-12-19 2:00 ` Vineet Gupta
2018-12-19 17:40 ` Joseph Myers
2018-12-19 20:20 ` Vineet Gupta
2018-12-19 20:37 ` Joseph Myers
2019-01-28 23:03 ` ARC binutils init/fini (was Re: [PATCH 03/21] ARC: ABI Implementation) Vineet Gupta
2019-01-28 23:13 ` Joseph Myers
2019-01-28 23:42 ` Vineet Gupta
2018-12-18 21:04 ` [PATCH 04/21] ARC: startup and dynamic linking code Vineet Gupta
2018-12-18 23:24 ` Joseph Myers
2018-12-19 0:52 ` Vineet Gupta
2018-12-18 21:04 ` [PATCH 05/21] ARC: Thread Local Storage support Vineet Gupta
2018-12-18 21:04 ` [PATCH 06/21] ARC: Atomics and Locking primitives Vineet Gupta
2018-12-18 23:15 ` Joseph Myers
2019-01-15 0:40 ` Vineet Gupta
2018-12-18 21:04 ` [PATCH 07/21] ARC: math soft float support Vineet Gupta
2018-12-18 23:23 ` Joseph Myers
2018-12-19 0:01 ` Joseph Myers
2018-12-20 21:35 ` Vineet Gupta
2018-12-21 1:08 ` Vineet Gupta
2018-12-21 1:19 ` Joseph Myers
2018-12-18 21:04 ` [PATCH 08/21] ARC: Linux Syscall Interface Vineet Gupta
2018-12-18 23:30 ` Joseph Myers
2018-12-19 2:39 ` Vineet Gupta
2018-12-19 17:58 ` Vineet Gupta [this message]
2018-12-19 18:07 ` ARC vs. generic sigaction (was Re: [PATCH 08/21] ARC: Linux Syscall Interface) Joseph Myers
2018-12-19 22:00 ` Adhemerval Zanella
2018-12-19 22:23 ` Vineet Gupta
2018-12-20 11:19 ` Adhemerval Zanella
2018-12-20 12:06 ` Arnd Bergmann
2018-12-20 19:25 ` Vineet Gupta
2018-12-20 12:40 ` Florian Weimer
2018-12-20 18:48 ` Vineet Gupta
2019-01-03 13:10 ` Florian Weimer
2018-12-20 19:23 ` Vineet Gupta
2018-12-20 20:06 ` Adhemerval Zanella
2018-12-20 20:46 ` Vineet Gupta
2018-12-21 12:05 ` Adhemerval Zanella
2019-01-09 21:49 ` Vineet Gupta
2018-12-18 21:04 ` [PATCH 09/21] ARC: Linux ABI Vineet Gupta
2018-12-18 23:38 ` Joseph Myers
2018-12-19 19:57 ` Vineet Gupta
2018-12-19 20:36 ` Joseph Myers
2018-12-21 23:06 ` Vineet Gupta
2018-12-18 21:04 ` [PATCH 10/21] ARC: Linux Startup and Dynamic Loading Vineet Gupta
2018-12-18 23:49 ` Joseph Myers
2018-12-19 20:26 ` Vineet Gupta
2018-12-18 21:04 ` [PATCH 11/21] ARC: ABI lists Vineet Gupta
2018-12-18 22:31 ` Andreas Schwab
2018-12-18 22:32 ` Vineet Gupta
2018-12-18 21:04 ` [PATCH 12/21] ARC: Update syscall-names.list for ARC specific syscalls Vineet Gupta
2018-12-18 21:26 ` Florian Weimer
2018-12-18 21:29 ` Vineet Gupta
2018-12-19 8:16 ` Florian Weimer
2018-12-18 21:04 ` [PATCH 13/21] ARC: Build Infrastructure Vineet Gupta
2018-12-18 23:44 ` Joseph Myers
2018-12-19 21:58 ` Vineet Gupta
2018-12-19 22:17 ` Joseph Myers
2018-12-20 23:21 ` Vineet Gupta
2018-12-20 23:24 ` Joseph Myers
2019-01-29 23:36 ` Vineet Gupta
2018-12-18 21:04 ` [PATCH 14/21] ARC: Enable __start as entry point vs. canonical _start Vineet Gupta
2018-12-18 21:28 ` Florian Weimer
2018-12-18 21:31 ` Vineet Gupta
2018-12-18 22:59 ` Joseph Myers
2018-12-18 23:08 ` Vineet Gupta
2018-12-19 20:36 ` Vineet Gupta
2018-12-18 21:04 ` [PATCH 15/21] ARC: testsuite fix: elf/check-initfini Vineet Gupta
2018-12-18 21:04 ` [PATCH 16/21] ARC: testsuite fix: sysvipc/* Vineet Gupta
2018-12-18 21:04 ` [PATCH 17/21] ARC: testsuite fix: stdlib/tst-makecontext Vineet Gupta
2018-12-18 22:36 ` Andreas Schwab
2019-01-21 22:32 ` Vineet Gupta
2018-12-18 21:04 ` [PATCH 18/21] ARC: testsuite fix: GD TLS issue Vineet Gupta
2018-12-18 21:04 ` [PATCH 19/21] ARC: fix several unwining and cancelation tests Vineet Gupta
2018-12-18 21:04 ` [PATCH 20/21] build-many-glibcs.py: Enable ARC builds Vineet Gupta
2018-12-18 21:04 ` [PATCH 21/21] NEWS: mention ARC port Vineet Gupta
2018-12-18 23:45 ` Joseph Myers
2018-12-19 18:30 ` Vineet Gupta
2018-12-18 22:52 ` [PATCH 00/21] glibc port to ARC processors Joseph Myers
2018-12-18 23:07 ` Vineet Gupta
2018-12-18 23:52 ` Joseph Myers
2018-12-21 1:55 ` Vineet Gupta
2018-12-21 14:32 ` Joseph Myers
2018-12-21 17:36 ` Vineet Gupta
2018-12-18 23:11 ` Joseph Myers
2018-12-19 23:45 ` Vineet Gupta
2018-12-20 0:14 ` Joseph Myers
2018-12-20 0:51 ` Vineet Gupta
2018-12-20 21:22 ` test related questions (was Re: [PATCH 00/21] glibc port to ARC processors) Vineet Gupta
2018-12-20 21:59 ` Joseph Myers
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=05069752-0a66-d6ca-e249-5c702eec4e99@synopsys.com \
--to=vineet.gupta1@synopsys.com \
--cc=linux-snps-arc@lists.infradead.org \
/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