All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hubertus Franke <frankeh@watson.ibm.com>
To: "Bill Abt" <babt@us.ibm.com>
Cc: drepper@redhat.com, linux-kernel@vger.kernel.org,
	Martin.Wirth@dlr.de, pwaechtler@loewe-Komp.de,
	Rusty Russell <rusty@rustcorp.com.au>
Subject: Re: [PATCH] Futex Generalization Patch
Date: Wed, 10 Apr 2002 16:14:36 -0400	[thread overview]
Message-ID: <20020410211348.AB5E93FE06@smtp.linux.ibm.com> (raw)
In-Reply-To: <OF6ED1E5D5.39630DC3-ON85256B97.006D2F99@raleigh.ibm.com>

On Wednesday 10 April 2002 03:59 pm, Bill Abt wrote:
> On 04/10/2002 at 02:47:50 PM AST, Hubertus Franke <frankeh@watson.ibm.com>
>
> wrote:
> > The current interface is
> >
> > (A)
> > async wait:
> >    sys_futex (uaddr, FUTEX_AWAIT, value, (struct timespec*) sig);
> > upon signal handling
> >    sys_futex(uaddrs[], FUTEX_WAIT, size, NULL);
> >    to retrieve the uaddrs that got woken up...
>
> This is actually the preferred way.  I must've misinterpeted what you said
> earlier.  I believe this is actually a more generic way of handling.  A
> thread package can specify the signal to used much in the way the current
> LinuxThreads pre-allocates and uses certain real-time signals...
>
> > I am mainly concerned that SIGIO can be overloaded in a thread package ?
> > How would you know whether a SIGIO came from the futex or from other file
> >
> > handle.
>
> By keep with the original interface, we don't have to contend with this
> problem.  The thread package can use the signal that most suits its'
> implementation...
>
> Make sense?
>

I wasn't precise... 
There are ++ and -- for the file descriptors approach
++)
(a) it automatically cleans up the notify queue associated with the FD.
     [ notify queue could still be global, if we want that ]
     when the process disappears, no callback required in do_exit()
--) There is more overhead in the wakeup and the wait because I need to 
     move from the fd to the filestruct which is always some lookup and
     I have to verify that the file descriptor is actually a valid /dev/futex
     file (yikes).    

Another problem I see is that we only have one additional 
argument (void *utime) to piggyback the fd and the signal on. 

What could be done is the following.
Make utime a (void *utime) argument
In FUTEX_WAIT   interpret it as a pointer <struct timespec>
In FUTEX_AWAIT  inteprest it as { short fd, short sig };
There should be no limitation by casting it to shorts ?

Comments, anyone....

I suggest, we leave it as is right now until more comments come.

> Regards,
>       Bill Abt
>       Senior Software Engineer
>       Next Generation POSIX Threading for Linux
>       IBM Cambridge, MA, USA 02142
>       Ext: +(00)1 617-693-1591
>       T/L: 693-1591 (M/W/F)
>       T/L: 253-9938 (T/Th/Eves.)
>       Cell: +(00)1 617-803-7514
>       babt@us.ibm.com or abt@us.ibm.com
>       http://oss.software.ibm.com/developerworks/opensource/pthreads

-- 
-- Hubertus Franke  (frankeh@watson.ibm.com)

  reply	other threads:[~2002-04-10 21:14 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-04-10 19:59 [PATCH] Futex Generalization Patch Bill Abt
2002-04-10 20:14 ` Hubertus Franke [this message]
2002-04-11 13:55   ` Rusty Russell
  -- strict thread matches above, loose matches on Subject: below --
2002-04-15 14:49 Bill Abt
2002-04-15 16:22 ` Hubertus Franke
2002-04-15 20:57   ` Mark Mielke
2002-04-15 20:46     ` Hubertus Franke
2002-04-16 20:03   ` Peter Wächtler
2002-04-10 19:30 Bill Abt
2002-04-10 18:47 ` Hubertus Franke
2002-04-12 15:36   ` Peter Wächtler
2002-04-12 18:48     ` Hubertus Franke
2002-04-13 13:52       ` Peter Wächtler
2002-04-15 13:28         ` Hubertus Franke
2002-04-10 18:09 Bill Abt
2002-04-10 18:10 ` Hubertus Franke
2002-04-04  7:52 Rusty Russell
2002-04-04 16:28 ` Hubertus Franke
2002-04-06  9:48   ` Rusty Russell
2002-04-10 14:24     ` Hubertus Franke
2002-04-10 16:37       ` Rusty Russell
2002-04-10 16:37         ` Hubertus Franke

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=20020410211348.AB5E93FE06@smtp.linux.ibm.com \
    --to=frankeh@watson.ibm.com \
    --cc=Martin.Wirth@dlr.de \
    --cc=babt@us.ibm.com \
    --cc=drepper@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pwaechtler@loewe-Komp.de \
    --cc=rusty@rustcorp.com.au \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.