unofficial mirror of libc-alpha@sourceware.org
 help / color / mirror / Atom feed
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
> 

  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).