From: Linus Torvalds <torvalds@linux-foundation.org>
To: Josh Triplett <josh@joshtriplett.org>
Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>,
Akemi Yagi <toracat@elrepo.org>, DJ Delorie <dj@redhat.com>,
David Sterba <dsterba@suse.cz>,
David Howells <dhowells@redhat.com>,
Eric Biggers <ebiggers@kernel.org>,
Al Viro <viro@zeniv.linux.org.uk>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>,
Vincent Guittot <vincent.guittot@linaro.org>
Subject: Re: [PATCH 0/2] pipe: Fixes [ver #2]
Date: Wed, 18 Dec 2019 16:51:27 -0800 [thread overview]
Message-ID: <CAHk-=wgMiTbRPp6Fx_A4YV+9xL7dc2j0Dj3NTFDPRfjsjLQTWw@mail.gmail.com> (raw)
In-Reply-To: <20191219001446.GA49812@localhost>
On Wed, Dec 18, 2019 at 4:14 PM Josh Triplett <josh@joshtriplett.org> wrote:
>
> Er, wrong file. That's the original patch; the attached patch is the
> right one.
This looks correct to me.
If I were to actually commit it, the "split into two waitqueues" would
be a separate patch from the "use wait_event_interruptible_exclusive()
and add "wake_next_reader/writer logic", but for testing purposes the
unified patch was simpler, and your forward port looks good to me.
I ran the original patch for a couple of days, and didn't see any
other issues than the 'make' thing in F30. It was all good with my
self-build make.
But that "ran for a couple of days" wasn't all that stress-full. I did
do the "verify that the thundering herd is gone" test - including that
silly test-case here again:
#include <unistd.h>
int main(int argc, char **argv)
{
int fd[2], counters[2];
pipe(fd);
counters[0] = 0;
counters[1] = -1;
write(fd[1], counters, sizeof(counters));
/* 64 processes */
fork(); fork(); fork(); fork(); fork(); fork();
do {
int i;
read(fd[0], &i, sizeof(i));
if (i < 0)
continue;
counters[0] = i+1;
write(fd[1], counters, (1+(i & 1)) *sizeof(int));
} while (counters[0] < 1000000);
return 0;
}
where you can tweak the numbers - add another fork() or two to create
even more pipe waiters, and maybe change the final count exit value to
match whatever hw performance you have.
Linus
next prev parent reply other threads:[~2019-12-19 0:51 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-05 22:30 [PATCH 0/2] pipe: Fixes [ver #2] David Howells
2019-12-05 22:30 ` [PATCH 1/2] pipe: Remove assertion from pipe_poll() " David Howells
2019-12-05 22:30 ` [PATCH 2/2] pipe: Fix missing mask update after pipe_wait() " David Howells
2019-12-05 23:58 ` Linus Torvalds
2019-12-06 13:56 ` [PATCH 0/2] pipe: Fixes " David Sterba
2019-12-06 17:09 ` Linus Torvalds
2019-12-06 17:42 ` Linus Torvalds
2019-12-06 18:59 ` Linus Torvalds
2019-12-07 21:31 ` Akemi Yagi
2019-12-08 16:45 ` Akemi Yagi
2019-12-08 18:04 ` Linus Torvalds
2019-12-09 3:07 ` Linus Torvalds
2019-12-06 20:28 ` Linus Torvalds
2019-12-06 21:04 ` Linus Torvalds
2019-12-07 3:50 ` Linus Torvalds
2019-12-07 4:01 ` Linus Torvalds
2019-12-07 22:47 ` Linus Torvalds
2019-12-09 9:53 ` Vincent Guittot
2019-12-09 17:48 ` Linus Torvalds
2019-12-09 17:57 ` Akemi Yagi
2019-12-09 18:18 ` Linus Torvalds
2019-12-09 18:24 ` Linus Torvalds
2019-12-18 20:59 ` Josh Triplett
2019-12-10 2:58 ` DJ Delorie
2019-12-10 14:38 ` Vincent Guittot
2019-12-10 17:39 ` Linus Torvalds
2019-12-11 18:09 ` DJ Delorie
2019-12-11 18:59 ` Linus Torvalds
2019-12-12 10:18 ` Konstantin Khlebnikov
2019-12-18 22:51 ` Linus Torvalds
2019-12-19 0:03 ` Josh Triplett
2019-12-19 0:14 ` Josh Triplett
2019-12-19 0:51 ` Linus Torvalds [this message]
2019-12-19 0:54 ` Linus Torvalds
2019-12-19 7:56 ` David Howells
2019-12-19 16:35 ` Linus Torvalds
2019-12-11 20:55 ` David Howells
2019-12-12 1:28 ` Linus Torvalds
2019-12-12 7:34 ` David Howells
2019-12-09 14:55 ` David Sterba
2019-12-06 21:26 ` David Howells
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='CAHk-=wgMiTbRPp6Fx_A4YV+9xL7dc2j0Dj3NTFDPRfjsjLQTWw@mail.gmail.com' \
--to=torvalds@linux-foundation.org \
--cc=dhowells@redhat.com \
--cc=dj@redhat.com \
--cc=dsterba@suse.cz \
--cc=ebiggers@kernel.org \
--cc=josh@joshtriplett.org \
--cc=khlebnikov@yandex-team.ru \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=toracat@elrepo.org \
--cc=vincent.guittot@linaro.org \
--cc=viro@zeniv.linux.org.uk \
/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;
as well as URLs for NNTP newsgroup(s).