From: Gilad Ben-Yossef <gilad@codefidence.com>
To: qemu-devel@nongnu.org
Cc: kvm-devel@lists.sourceforge.net, glommer@gmail.com,
chrisw@sous-sol.org, Glauber Costa <gcosta@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] use a thread id variable
Date: Sun, 09 Mar 2008 16:52:31 +0200 [thread overview]
Message-ID: <47D3F9AF.2030408@codefidence.com> (raw)
In-Reply-To: <20080309115826.GA8077@shareable.org>
Jamie Lokier wrote:
> Gilad Ben-Yossef wrote:
>> Glauber Costa wrote:
>>> This patch introduces a "thread_id" variable to CPUState.
>>> It's duty will be to hold the process, or more generally, thread
>>> id of the current executing cpu
>>>
>>> env->nb_watchpoints = 0;
>>> +#ifdef __WIN32
>>> + env->thread_id = GetCurrentProcessId();
>>> +#else
>>> + env->thread_id = getpid();
>>> +#endif
>>> *penv = env;
>> hmm... maybe I'm missing something, but in Linux at least I think you
>> would prefer this to be gettid() rather then getpid as each CPU has it's
>> own thread, not a different process.
>
> On most platforms, getpid() returns the same value for all threads, so
> it's not useful as a thread id.
Of course it does - this what POSIX says it should do (Linux 2.4 in
compliance not withstanding). Which is why I suggested to use on Linux
the non standard gettid() rather then getpid
>
> On Linux, it depends which version of threads. The old package,
> LinuxThreads, has different getpid() for each thread. The current one,
> NPTL, has them all the same.
LinuxThreads behavior is wrong according to the POSIX standard. Of
course, nothing else was possible with 2.4 kernels, so this is not an
error on LinuxThreads coders part.
> What you're supposed to do with pthreads in general is use pthread_self().
Unfortunately, AFAIK the opaque handle that pthread_self() returns is
not quite meaningless outside of the process whereas what the non
standard gettid() returns can actually be used to identify a thread from
"outside" the process, like the shell.
Gilad
--
Gilad Ben-Yossef <gilad@codefidence.com>
Chief Coffee Drinker
Codefidence Ltd. | Web: http://codefidence.com
Work: +972-3-7515563 ext. 201 | Mobile: +972-52-8260388
"Your hovercraft is full of eels. For information on
emptying your hovercraft, turn to Section 2.6.a.17
of your hovercraft user manual".
- The Monty Python technical writer
next prev parent reply other threads:[~2008-03-09 14:52 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-05 20:01 [Qemu-devel] [PATCH 0/3] Expose thread id through info cpus Glauber Costa
2008-03-05 20:01 ` [Qemu-devel] [PATCH] use a thread id variable Glauber Costa
2008-03-05 20:01 ` [Qemu-devel] [PATCH] augment info cpus Glauber Costa
2008-03-05 20:01 ` [Qemu-devel] [PATCH] KVM: use actual thread id for vcpus Glauber Costa
2008-03-09 9:26 ` [Qemu-devel] [PATCH] use a thread id variable Gilad Ben-Yossef
2008-03-09 11:58 ` Jamie Lokier
2008-03-09 14:52 ` Gilad Ben-Yossef [this message]
2008-03-09 16:12 ` M. Warner Losh
2008-03-17 17:55 ` Glauber Costa
2008-03-09 16:09 ` M. Warner Losh
2008-03-09 20:01 ` Jamie Lokier
2008-03-09 16:23 ` [kvm-devel] " Daniel P. Berrange
2008-03-05 20:07 ` [Qemu-devel] Re: [PATCH 0/3] Expose thread id through info cpus Glauber Costa
2008-03-06 6:55 ` Avi Kivity
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=47D3F9AF.2030408@codefidence.com \
--to=gilad@codefidence.com \
--cc=chrisw@sous-sol.org \
--cc=gcosta@redhat.com \
--cc=glommer@gmail.com \
--cc=kvm-devel@lists.sourceforge.net \
--cc=qemu-devel@nongnu.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 NNTP newsgroup(s).