linux-um archives
 help / color / mirror / Atom feed
From: Blaisorblade <blaisorblade@yahoo.it>
To: user-mode-linux-devel@lists.sourceforge.net
Cc: "Sven Köhler" <skoehler@upb.de>, "Rob Landley" <rob@landley.net>,
	"Antoine Martin" <antoine@nagafix.co.uk>
Subject: Re: [uml-devel] Re: tls: set_thread_area failed
Date: Wed, 14 Dec 2005 13:21:48 +0100	[thread overview]
Message-ID: <200512141321.49910.blaisorblade@yahoo.it> (raw)
In-Reply-To: <439F8C0A.2000302@upb.de>

On Wednesday 14 December 2005 04:05, Sven Köhler wrote:
> > e2fsprogs-1.38/misc/fsck.c:check_all() repeatedly invokes fsck_device(),
> > which invokes execute(), which does a perfectly normal fork()/exec().
> > No threads here. Nor is there use of aio_*(), which might use threads
> > (well, POSIX allows it).
>
> Sorry, and what's the conclusion?
>
> fork() calles set_thread_area()?

Interesting... yep, it could.

Ok, picture down:

a) in NPTL, getpid() caches the result of the syscall in the TLS - so each new 
process at startup (i.e. after exec!) calls set_thread_area(). But that's 
normal.

b) I know that in clone()*, and I presume that in fork(), the pid cache must 
be invalidated / updated. So while fork() maybe doesn't use set_thread_area 
(and it could, seeing that no TLS setup has been done, and retrying) it wants 
to puzzle with the TLS content.

* We know that as glibc once didn't and UML was the one user of clone() + 
getpid(), and we discovered the hard way that glibc forgot that. Workarounded 
with a real getpid().

At bug report time we got an angry Ulrich saying "it's already fixed in latest 
version", luckily.
-- 
Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!".
Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ 215621894)
http://www.user-mode-linux.org/~blaisorblade

		
___________________________________ 
Yahoo! Messenger: chiamate gratuite in tutto il mondo 
http://it.messenger.yahoo.com



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37&alloc_id\x16865&opÌk
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

      reply	other threads:[~2005-12-14 12:22 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-08  2:13 [uml-devel] tls: set_thread_area failed Antoine Martin
2005-12-09 17:52 ` Blaisorblade
2005-12-09 18:39   ` Antoine Martin
2005-12-10 14:26     ` Blaisorblade
2005-12-10 16:31       ` Antoine Martin
2005-12-11  6:34     ` Rob Landley
2005-12-11 16:01       ` Blaisorblade
2005-12-13 22:45         ` Nix
2005-12-14  3:05           ` [uml-devel] " Sven Köhler
2005-12-14 12:21             ` Blaisorblade [this message]

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=200512141321.49910.blaisorblade@yahoo.it \
    --to=blaisorblade@yahoo.it \
    --cc=antoine@nagafix.co.uk \
    --cc=rob@landley.net \
    --cc=skoehler@upb.de \
    --cc=user-mode-linux-devel@lists.sourceforge.net \
    /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