From: Adhemerval Zanella via Libc-alpha <libc-alpha@sourceware.org>
To: Vineet Gupta <Vineet.Gupta1@synopsys.com>,
"libc-alpha@sourceware.org" <libc-alpha@sourceware.org>
Cc: "linux-snps-arc@lists.infradead.org"
<linux-snps-arc@lists.infradead.org>
Subject: Re: [PATCH v6 07/13] ARC: Linux Syscall Interface
Date: Wed, 3 Jun 2020 17:04:28 -0300 [thread overview]
Message-ID: <f5e57119-d034-c220-4235-4e57a3bae015@linaro.org> (raw)
In-Reply-To: <b047f6c9-58e5-c78f-d949-52ca288d3fa5@synopsys.com>
On 03/06/2020 16:46, Vineet Gupta wrote:
> On 5/29/20 9:49 AM, Adhemerval Zanella via Libc-alpha wrote:
>>> + ; ----- child starts here ---------
>>> +
>>> + ; Setup TP register (only recent kernels v4.19+ do that)
>>> + and.f 0, r12, CLONE_SETTLS
>>> + mov.nz r25, r9
>> Do you still need to set it since the minimum supported kernel
>> for ARC is 5.1 ?
>
> Right.
>
>> It should be safe for internal glibc usage, since for both pthread
>> and posix_spawn it blocks all signals including SIGCANCEL and SIGXID.
>> However this is still small race window if this is called directly
>> with pthread cancellation or g*uid in multithread.
>
> I'm not sure what you mean above. Do you mean not doing this in glibc and even if
> kernel support didn't exist should be safe internally ?
At least for internal clone usage with CLONE_VM within glibc we explicit
disable all signals (posix_spawn and pthread_create).
>
> fwiw as mentioned above kernel sets up TP for clone (SETTLS). I detested doing
> that for a long time, give ABI implications but ended up doing it anyways due to
> an actual race hit when running uClibc tst-kill6 [1]
We explicit disable all signals during the create_thread call in pthread_create
(b3cae39dcbfa2432b3f3aa28854d8ac57f0de1b8), so it should not happen on glibc
anymore. However it is still an issue if application calls clone itself.
>
> [1] http://lists.infradead.org/pipermail/linux-snps-arc/2018-October/004480.html
>
next prev parent reply other threads:[~2020-06-03 20:04 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-23 1:41 [PATCH v6 00/13] glibc port to ARC processors Vineet Gupta via Libc-alpha
2020-04-23 1:41 ` [PATCH v6 01/13] ARC: ABI Implementation Vineet Gupta via Libc-alpha
2020-05-27 18:26 ` Adhemerval Zanella via Libc-alpha
2020-05-27 22:15 ` Vineet Gupta via Libc-alpha
2020-05-29 13:56 ` Adhemerval Zanella via Libc-alpha
2020-06-03 20:05 ` Vineet Gupta via Libc-alpha
2020-06-04 9:04 ` Florian Weimer via Libc-alpha
2020-06-04 19:01 ` Vineet Gupta via Libc-alpha
2020-06-04 23:56 ` Vineet Gupta via Libc-alpha
2020-04-23 1:41 ` [PATCH v6 02/13] ARC: startup and dynamic linking code Vineet Gupta via Libc-alpha
2020-05-27 19:05 ` Adhemerval Zanella via Libc-alpha
2020-05-28 1:14 ` Vineet Gupta via Libc-alpha
2020-04-23 1:41 ` [PATCH v6 03/13] ARC: Thread Local Storage support Vineet Gupta via Libc-alpha
2020-05-27 19:17 ` Adhemerval Zanella via Libc-alpha
2020-05-28 1:36 ` Vineet Gupta via Libc-alpha
2020-06-01 18:53 ` Adhemerval Zanella via Libc-alpha
2020-04-23 1:41 ` [PATCH v6 04/13] ARC: Atomics and Locking primitives Vineet Gupta via Libc-alpha
2020-04-23 17:20 ` Adhemerval Zanella via Libc-alpha
2020-04-24 7:23 ` Vineet Gupta via Libc-alpha
2020-04-27 21:59 ` [PATCH] semaphore: consolidate arch headers into a generic one Vineet Gupta via Libc-alpha
2020-04-27 22:13 ` Vineet Gupta via Libc-alpha
2020-05-05 21:02 ` Adhemerval Zanella via Libc-alpha
2020-05-04 21:21 ` Vineet Gupta via Libc-alpha
2020-05-05 19:05 ` Adhemerval Zanella via Libc-alpha
2020-05-05 19:38 ` Vineet Gupta via Libc-alpha
2020-05-05 21:37 ` Adhemerval Zanella via Libc-alpha
2020-05-05 22:59 ` Vineet Gupta via Libc-alpha
2020-05-08 13:32 ` Adhemerval Zanella via Libc-alpha
2020-04-23 1:41 ` [PATCH v6 05/13] ARC: math soft float support Vineet Gupta via Libc-alpha
2020-05-29 14:02 ` Adhemerval Zanella via Libc-alpha
2020-05-29 23:57 ` Vineet Gupta via Libc-alpha
2020-04-23 1:41 ` [PATCH v6 06/13] ARC: hardware floating point support Vineet Gupta via Libc-alpha
2020-05-29 14:12 ` Adhemerval Zanella via Libc-alpha
2020-05-29 22:28 ` Vineet Gupta via Libc-alpha
2020-05-29 23:50 ` Vineet Gupta via Libc-alpha
2020-06-02 0:50 ` static inline math functions (was Re: [PATCH v6 06/13] ARC: hardware floating point support) Vineet Gupta via Libc-alpha
2020-06-02 18:13 ` Joseph Myers
2020-06-02 18:35 ` Adhemerval Zanella via Libc-alpha
2020-06-02 17:51 ` [PATCH v6 06/13] ARC: hardware floating point support Joseph Myers
2020-06-05 4:44 ` Vineet Gupta via Libc-alpha
2020-06-05 17:22 ` Adhemerval Zanella via Libc-alpha
2020-06-02 17:48 ` Joseph Myers
2020-04-23 1:41 ` [PATCH v6 07/13] ARC: Linux Syscall Interface Vineet Gupta via Libc-alpha
2020-05-29 16:49 ` Adhemerval Zanella via Libc-alpha
2020-05-30 2:02 ` Vineet Gupta via Libc-alpha
2020-06-03 19:46 ` Vineet Gupta via Libc-alpha
2020-06-03 20:04 ` Adhemerval Zanella via Libc-alpha [this message]
2020-06-03 20:17 ` Vineet Gupta via Libc-alpha
2020-06-04 11:06 ` Adhemerval Zanella via Libc-alpha
2020-04-23 1:41 ` [PATCH v6 08/13] ARC: Linux ABI Vineet Gupta via Libc-alpha
2020-05-29 17:05 ` Adhemerval Zanella via Libc-alpha
2020-05-30 0:16 ` Vineet Gupta via Libc-alpha
2020-04-23 1:41 ` [PATCH v6 09/13] ARC: Linux Startup and Dynamic Loading Vineet Gupta via Libc-alpha
2020-06-03 18:02 ` Adhemerval Zanella via Libc-alpha
2020-04-23 1:41 ` [PATCH v6 10/13] ARC: ABI lists Vineet Gupta via Libc-alpha
2020-06-03 19:29 ` Adhemerval Zanella via Libc-alpha
2020-06-05 2:22 ` Vineet Gupta via Libc-alpha
2020-06-05 18:02 ` Adhemerval Zanella via Libc-alpha
2020-06-05 21:14 ` Vineet Gupta via Libc-alpha
2020-06-08 4:12 ` Vineet Gupta via Libc-alpha
2020-06-08 8:44 ` Florian Weimer via Libc-alpha
2020-06-08 18:17 ` Adhemerval Zanella via Libc-alpha
2020-04-23 1:41 ` [PATCH v6 11/13] ARC: Build Infrastructure Vineet Gupta via Libc-alpha
2020-06-03 19:58 ` Adhemerval Zanella via Libc-alpha
2020-06-04 15:25 ` Vineet Gupta via Libc-alpha
2020-06-04 17:05 ` Adhemerval Zanella via Libc-alpha
2020-06-08 4:18 ` Vineet Gupta via Libc-alpha
2020-04-23 1:41 ` [PATCH v6 12/13] build-many-glibcs.py: Enable ARC builds Vineet Gupta via Libc-alpha
2020-06-04 12:08 ` Adhemerval Zanella via Libc-alpha
2020-04-23 1:41 ` [PATCH v6 13/13] Documentation for ARC port Vineet Gupta via Libc-alpha
2020-06-04 12:16 ` Adhemerval Zanella via Libc-alpha
2020-06-04 15:36 ` Vineet Gupta via Libc-alpha
2020-05-04 21:21 ` [PATCH v6 00/13] glibc port to ARC processors Vineet Gupta via Libc-alpha
2020-05-15 0:45 ` Vineet Gupta via Libc-alpha
2020-05-27 1:49 ` Vineet Gupta via Libc-alpha
2020-05-27 16:41 ` Adhemerval Zanella via Libc-alpha
2020-05-27 18:38 ` Vineet Gupta via Libc-alpha
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
List information: https://www.gnu.org/software/libc/involved.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f5e57119-d034-c220-4235-4e57a3bae015@linaro.org \
--to=libc-alpha@sourceware.org \
--cc=Vineet.Gupta1@synopsys.com \
--cc=adhemerval.zanella@linaro.org \
--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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).