public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Martin Wirth <Martin.Wirth@dlr.de>
To: Hubertus Franke <frankeh@watson.ibm.com>,
	linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] Lightweight userspace semphores...
Date: Wed, 27 Feb 2002 18:17:41 +0100	[thread overview]
Message-ID: <3C7D14B5.1020702@dlr.de> (raw)
In-Reply-To: <3C7C9C41.5080400@dlr.de> <20020227102446.A838@elinux01.watson.ibm.com>

Hubertus Franke wrote:

> Again, the trick is to not
> sync the state of the kernel and the user level. It comes naturally 
> if you properly separate the duties.
> 

Your code for usema_down is simply:

int usema_down(ulock_t *ulock)
{
	if (!__ulock_down(ulock)) {
		return 0;
	}
	return ulock_wait(ulock,0);
}

This means you do not recheck if the usema is really available after you 
return form ulock_wait(), but you may have the following situtation:

Process 1             Process 2                        Process 3
  down

                       down
                         -> call usema_wait
                         but gets preempted shortly
                         before it
                         can enter kernel mode

  up
   (kernel sema is free)

                                                          down -> got it


                       resume execution,
                       thinks its also got it
                       because kernel sema is free!

Now you have two owners!!


Martin Wirth





  reply	other threads:[~2002-02-27 17:20 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
2002-02-27 19:04     ` Hubertus Franke
     [not found]       ` <3C7FDF76.9040903@dlr.de>
2002-03-02 14:08         ` [PATCH] Lightweight userspace semaphores Hubertus Franke
2002-03-03 22:13           ` [Lse-tech] " Paul Jackson
2002-03-04  6:13             ` Rusty Russell
2002-03-04 16:07             ` 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=3C7D14B5.1020702@dlr.de \
    --to=martin.wirth@dlr.de \
    --cc=frankeh@watson.ibm.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