public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <andrewm@uow.edu.au>
To: Andrea Arcangeli <andrea@suse.de>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>, linux-kernel@vger.kernel.org
Subject: Re: Linux 2.2.19pre2
Date: Thu, 21 Dec 2000 01:57:15 +1100	[thread overview]
Message-ID: <3A40C8CB.D063E337@uow.edu.au> (raw)
In-Reply-To: <E147MkJ-00036t-00@the-village.bc.nu>, <E147MkJ-00036t-00@the-village.bc.nu>; from alan@lxorguk.ukuu.org.uk on Sat, Dec 16, 2000 at 07:11:47PM +0000 <20001220142858.A7381@athlon.random>

Andrea Arcangeli wrote:
> 
> > o     wake_one semantics for accept()                 (Andrew Morton)
> 
> I dislike the implementation. I stick with my faster and nicer implementation
> that was just included in aa kernels for some time (2.2.18aa2 included it for
> example). Andrew, I guess you didn't noticed I just implemented the wakeone for
> accept. (I just ported it on top of 2.2.19pre2 after backing out the wakeone in
> pre2)

Yes, I noticed your implementation a few weeks back.

'fraid I never liked the use of the TASK_EXCLUSIVE bit in
task_struct.state.  It's an enumerated state, not an aggregation
of flags.  Most of the kernel treats it as an enumerated state
and so will happily clear the TASK_EXCLUSIVE bit without masking it
off.  Fragile.

If a task is on two waitqueues at the same time it becomes a bug:
if the outer waitqueue is non-exclusive and the inner is exclusive,
the task suddenly becomes exclusive on the outer one and converts
it from wake-all to wake-some!

Is it faster?  Not sure.  You've saved a cacheline read in __wake_up
(which was in fact a preload, if you look at what comes later) at the
cost of having to mask out the bit in current->state every time
we schedule().

Anyway, it's academic.  davem would prefer that we do it properly
and move the `exclusive' flag into the waitqueue head to avoid the 
task-on-two-waitqueues problem, as was done in 2.4.  I think he's
right.  Do you?

-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

  reply	other threads:[~2000-12-20 15:23 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-12-16 19:11 Linux 2.2.19pre2 Alan Cox
2000-12-17 10:56 ` Petri Kaukasoina
2000-12-17 15:38   ` Kurt Garloff
2000-12-20 10:32     ` Petri Kaukasoina
2000-12-20 10:44       ` Kurt Garloff
2000-12-20 13:28 ` Andrea Arcangeli
2000-12-20 14:57   ` Andrew Morton [this message]
2000-12-20 15:24     ` Andrea Arcangeli
2000-12-20 17:48       ` Rik van Riel
2000-12-20 18:09         ` Andrea Arcangeli
2000-12-21 10:38       ` Andrew Morton
2000-12-21 15:19         ` Andrea Arcangeli
2000-12-21 17:07           ` Rik van Riel
2000-12-21 17:44             ` Andrea Arcangeli
2000-12-21 17:55               ` Rik van Riel
2000-12-22  7:33           ` Andrew Morton
2000-12-22 13:19             ` Andrea Arcangeli
2000-12-23  6:56               ` Andrew Morton
2000-12-23 18:11                 ` Andrea Arcangeli
2000-12-24  0:23                   ` Andrew Morton
2000-12-24  0:53                     ` Andrea Arcangeli
2000-12-24  2:28                       ` Andrew Morton
2000-12-24  4:21                         ` Andrea Arcangeli
2000-12-24  5:17                           ` Andrew Morton
2000-12-24 14:43                             ` Andrea Arcangeli
2000-12-24 15:40                     ` Andrea Arcangeli
2000-12-29 17:09                       ` wake-one-3 bug (affected 2.2.19pre3aa[123]) Andrea Arcangeli
2000-12-21 20:23   ` Linux 2.2.19pre2 Andrea Arcangeli

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=3A40C8CB.D063E337@uow.edu.au \
    --to=andrewm@uow.edu.au \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=andrea@suse.de \
    --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