From: Tom Zanussi <zanussi@comcast.net>
To: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>,
jens.axboe@oracle.com, linux-kernel@vger.kernel.org
Subject: Re: [PROBLEM] hard-lock with kmemtrace, relayfs, and splice
Date: Mon, 13 Oct 2008 23:03:51 -0500 [thread overview]
Message-ID: <1223957031.10883.7.camel@charm-linux> (raw)
In-Reply-To: <1223881068.31587.1.camel@penberg-laptop>
Hi Pekka,
On Mon, 2008-10-13 at 09:57 +0300, Pekka Enberg wrote:
> Hi Tom,
>
> On Fri, 2008-10-10 at 23:58 -0500, Tom Zanussi wrote:
> > It looks like you hit the same problem as described here:
> >
> > commit 8191ecd1d14c6914c660dfa007154860a7908857
> >
> > splice: fix infinite loop in generic_file_splice_read()
> >
> > relay uses the same loop but it never got noticed or fixed. Can you try
> > the following patch:
> >
> > diff --git a/kernel/relay.c b/kernel/relay.c
> > index 8d13a78..6a4d439 100644
> > --- a/kernel/relay.c
> > +++ b/kernel/relay.c
> > @@ -1318,12 +1318,9 @@ static ssize_t relay_file_splice_read(struct file *in,
> > if (ret < 0)
> > break;
> > else if (!ret) {
> > - if (spliced)
> > - break;
> > - if (flags & SPLICE_F_NONBLOCK) {
> > + if (flags & SPLICE_F_NONBLOCK)
> > ret = -EAGAIN;
> > - break;
> > - }
> > + break;
> > }
> >
> > *ppos += ret;
> >
>
> Indeed. That fixes the deadlock.
>
> However, now I don't get anything to the cpu*.out files if I run
> kmemtraced with kmemtrace disabled. If I enable kmemtrace manually and
> then run kmemtraced, I do receive some data. I did apply the
> kmemtrace-user patch as well.
>
> Hmm?
To me, that sounds like how it should work - if kmemtrace is disabled,
it shouldn't be logging anything, and that's in fact what I saw when
debugging this - it started out disabled and therefore nothing being
logged to relay (printks confirmed that). When I wrote 1 to the enabled
file, data started getting logged to relay and to the *.out files.
So I don't know why the enabled state behaves the way it does, or if
it's unexpected, but that anyway doesn't seem like a relay problem to
me.
Tom
>
> Pekka
>
next prev parent reply other threads:[~2008-10-14 4:04 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-23 21:29 [ANNOUNCE] kmemtrace-user repo update Eduard - Gabriel Munteanu
[not found] ` <1223386477.28348.42.camel@penberg-laptop>
[not found] ` <1223623191.8959.26.camel@penberg-laptop>
[not found] ` <1223628687.8959.37.camel@penberg-laptop>
[not found] ` <1223629803.8959.40.camel@penberg-laptop>
2008-10-10 9:42 ` [PROBLEM] hard-lock with kmemtrace, relayfs, and splice Pekka Enberg
2008-10-10 11:51 ` Eduard - Gabriel Munteanu
2008-10-11 4:58 ` Tom Zanussi
2008-10-11 18:17 ` Eduard - Gabriel Munteanu
2008-10-13 6:57 ` Pekka Enberg
2008-10-14 4:03 ` Tom Zanussi [this message]
2008-10-14 5:13 ` Pekka Enberg
2008-10-14 5:46 ` Tom Zanussi
2008-10-14 6:58 ` Pekka Enberg
2008-10-14 7:30 ` Eduard - Gabriel Munteanu
2008-10-14 7:05 ` Pekka Enberg
2008-10-24 4:44 ` Peter Teoh
2008-10-24 14:15 ` Pekka Enberg
2008-10-25 0:56 ` Peter Teoh
2008-10-25 14:04 ` Eduard - Gabriel Munteanu
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=1223957031.10883.7.camel@charm-linux \
--to=zanussi@comcast.net \
--cc=eduard.munteanu@linux360.ro \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=penberg@cs.helsinki.fi \
/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.