All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty@rustcorp.com.au>
To: Hubertus Franke <frankeh@watson.ibm.com>
Cc: torvalds@transmeta.com, matthew@hairy.beasts.org,
	bcrl@redhat.com, david@mysql.com, wli@holomorphy.com,
	linux-kernel@vger.kernel.org, lse-tech@lists.sourceforge.net
Subject: Re: [PATCH] Lightweight userspace semaphores...
Date: Tue, 5 Mar 2002 15:41:23 +1100	[thread overview]
Message-ID: <20020305154123.078f0865.rusty@rustcorp.com.au> (raw)
In-Reply-To: <20020304115143.B1116@elinux01.watson.ibm.com>
In-Reply-To: <E16eT9h-0000kE-00@wagner.rustcorp.com.au> <20020225100025.A1163@elinux01.watson.ibm.com> <20020227112417.3a302d31.rusty@rustcorp.com.au> <20020302095031.A1381@elinux01.watson.ibm.com> <20020304003040.21ac02b7.rusty@rustcorp.com.au> <20020304115143.B1116@elinux01.watson.ibm.com>

On Mon, 4 Mar 2002 11:51:43 -0500
Hubertus Franke <frankeh@watson.ibm.com> wrote:
> > This is a definite advantage: my old fd-based code never looked at the
> > userspace counter: it had a kernel sempahore to sleep on for each
> > userspace lock. OTOH, this involves kernel allocation, with the complexity
> > that brings.
> > 
> 
> ???, kernel allocation is only required in under contention. If you take a look 
> at how I used the atomic word for semaphores and for rwlock_t, its different. 
> If you recheck in the kernel you need to know how this is used.
> In my approach I simply allocated two queues on demand.

Yes, but no allocation is even better than on-demand allocation, if you can
get away with it.

> I am OK with only supplying semaphores and rwlocks, if there is a general consent
> about it. Nevertheless, I think the multiqueue approach is somewhat more elegant
> and expandable.

Well, it's pretty easy to allow other values than -1/1 later as required.
I don't think the switch() overhead will be measurable for the first dozen
lock types 8).

> > > (h) how do you deal with signals ? E.g. SIGIO or something like it.
> > 
> > They're interruptible, so you'll get -ERESTARTSYS.  Should be fine.
> >  
> 
> That's what I did too, but some folks pointed out they might want to 
> interrupt a waking task, so that it can get back into user space and
> fail with EAGAIN or so and do not automatically restart the syscall.

Sorry, my bad.  I use -EINTR, so they don't get restarted, for exactly that
reason (eg. implementing timeouts on mutexes).

Cheers!
Rusty.
-- 
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.

  reply	other threads:[~2002-03-05  4:38 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-23  3:47 [PATCH] Lightweight userspace semaphores Rusty Russell
2002-02-23 15:03 ` Ingo Molnar
2002-02-23 18:20   ` Linus Torvalds
2002-02-23 18:28     ` Larry McVoy
2002-02-23 20:31       ` Ingo Molnar
2002-02-23 21:22       ` Alan Cox
2002-02-26 16:09     ` Hubertus Franke
2002-02-24 23:29   ` Rusty Russell
2002-02-24 23:48     ` Linus Torvalds
2002-02-25  1:10       ` Rusty Russell
2002-02-25  1:23         ` Linus Torvalds
2002-02-25 13:14           ` Alan Cox
2002-02-25 16:11             ` Linus Torvalds
2002-02-25 16:39               ` Alan Cox
2002-02-25 16:32                 ` Benjamin LaHaise
2002-02-25 17:42                   ` Alan Cox
2002-02-25 18:23                   ` Hubertus Franke
2002-02-25 20:57                     ` Hubertus Franke
2002-03-03  7:07                   ` Rusty Russell
2002-02-25 17:06                 ` Linus Torvalds
2002-02-25 17:31                   ` Alan Cox
2002-02-25 17:20                     ` Linus Torvalds
2002-02-25 17:50                       ` Alan Cox
2002-02-25 17:44                         ` Linus Torvalds
2002-02-25 18:06                           ` Alan Cox
2002-02-25 19:31                             ` Linus Torvalds
2002-02-24  4:57                               ` Daniel Phillips
2002-02-25 19:51                             ` Hubertus Franke
2002-02-26 12:15                       ` [PATCH] 2.5.5 IDE clean 14 Martin Dalecki
2002-02-26 21:49                         ` Keith Owens
2002-02-27 10:08                           ` Martin Dalecki
2002-03-01  4:56           ` [PATCH] Lightweight userspace semaphores Eric W. Biederman
2002-03-02 14:54       ` Pavel Machek
2002-02-25 15:00 ` Hubertus Franke
2002-02-27  0:24   ` Rusty Russell
2002-02-27 15:53     ` Hubertus Franke
2002-03-01  0:24       ` Richard Henderson
2002-03-01  2:00         ` Hubertus Franke
2002-02-27 16:29     ` Hubertus Franke
2002-03-02 14:50     ` Hubertus Franke
2002-03-03 13:30       ` Rusty Russell
2002-03-04 16:51         ` Hubertus Franke
2002-03-05  4:41           ` Rusty Russell [this message]
2002-03-01  4:44   ` Eric W. Biederman
  -- strict thread matches above, loose matches on Subject: below --
2002-02-27  8:43 [PATCH] Lightweight userspace semphores Martin Wirth
2002-02-27 15:24 ` Hubertus Franke
2002-02-27 17:17   ` Martin Wirth
2002-02-27 19:04     ` Hubertus Franke
     [not found]       ` <3C7FDF76.9040903@dlr.de>
2002-03-02 14:08         ` [PATCH] Lightweight userspace semaphores Hubertus Franke
     [not found] <20020227163834.GF322@reload.nmd.msu.ru>
2002-02-27 16:58 ` Hubertus Franke
     [not found]   ` <20020227173307.GH322@reload.nmd.msu.ru>
2002-02-27 22:09     ` 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=20020305154123.078f0865.rusty@rustcorp.com.au \
    --to=rusty@rustcorp.com.au \
    --cc=bcrl@redhat.com \
    --cc=david@mysql.com \
    --cc=frankeh@watson.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lse-tech@lists.sourceforge.net \
    --cc=matthew@hairy.beasts.org \
    --cc=torvalds@transmeta.com \
    --cc=wli@holomorphy.com \
    /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.