public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ulrich Drepper <drepper@redhat.com>
To: Eric Dumazet <dada1@cosmosbay.com>,
	Linux Kernel <linux-kernel@vger.kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Subject: second, bigger problem with private futexes
Date: Mon, 21 May 2007 10:26:00 -0700	[thread overview]
Message-ID: <4651D628.1070206@redhat.com> (raw)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This one is a big problem:

If I understand the code correctly, a FUTEX_CMP_REQUEUE from a private
futex will add the waiters to the other futex as a private futex.  And
similarly for shared.

I.e., it is not possible to have one futex private and the other shared.
 This is a huge problem.  The shared/private status of a conditional
variable and the mutex used with it don't have to match.  But this is
where FUTEX_CMP_REQUEUE is used.

If this is not changed (assuming I'm right with my analysis of the
kernel code) this means mutexes and condvars will not be able to use
private futexes.

What would be needed is an additional parameter for FUTEX_CMP_REQUEUE
and FUTEX_CMP_REQUEUE_PI which specifies the state (shared/private) of
the target futex.  The original futex' state is encoded in the command
(the FUTEX_PRIVATE_FLAG ORed to FUTEX_CMP_REQUEUE*).

- --
➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, CA ❖
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iD8DBQFGUdYo2ijCOnn/RHQRArmXAKCdW9a/nuJun/0KjftIcMrsURNnrwCgzCf8
XGi6EzPV88DEIwHfnMfKdNg=
=0hVr
-----END PGP SIGNATURE-----

             reply	other threads:[~2007-05-21 17:27 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-21 17:26 Ulrich Drepper [this message]
2007-05-21 18:15 ` second, bigger problem with private futexes Eric Dumazet
2007-05-21 18:26   ` Ulrich Drepper
2007-05-21 18:48     ` Eric Dumazet
2007-05-21 19:26       ` Eric Dumazet
2007-05-21 19:43         ` Ulrich Drepper
2007-05-21 19:55           ` Eric Dumazet

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=4651D628.1070206@redhat.com \
    --to=drepper@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=dada1@cosmosbay.com \
    --cc=linux-kernel@vger.kernel.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