All of lore.kernel.org
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@fieldses.org>
To: Simon Kirby <sim@hostway.ca>
Cc: linux-nfs@vger.kernel.org, Greg Banks <gnb-xTcybq6BZ68@public.gmane.org>
Subject: Re: kernel NULL pointer dereference in rpcb_getport_done (2.6.29.4)
Date: Mon, 10 Aug 2009 19:55:36 -0400	[thread overview]
Message-ID: <20090810235536.GA11617@fieldses.org> (raw)
In-Reply-To: <20090710223408.GR10700@fieldses.org>

On Fri, Jul 10, 2009 at 06:34:08PM -0400, bfields wrote:
> On Thu, Jul 09, 2009 at 10:27:39AM -0700, Simon Kirby wrote:
> > Hello,
> > 
> > It seems this email to Greg Banks is bouncing (no longer works at SGI),
> 
> Yes, I've cc'd his new address.  (But he's on vacation.)
> 
> > and I see git commit 59a252ff8c0f2fa32c896f69d56ae33e641ce7ad is still
> > in HEAD (and still causing problems for our load).
> > 
> > Can somebody else eyeball this, please?  I don't understand enough about
> > this particular change to fix the request latency / queue backlogging
> > that this patch seems to introduce.
> > 
> > It would seem to me that this patch is flawed because svc_xprt_enqueue()
> > is edge-triggered upon the arrival of packets, but the NFS threads
> > themselves cannot then pull another request off of the socket queue. 
> > This patch likely helps with the particular benchmark, but not in our
> > load case where there is a heavy mix of cached and uncached NFS requests.
> 
> That sounds plausible.  I'll need to take some time to look at it.

Looking back at that commit--I'm now confused about how it was meant to
work.  In the case where the woken-up thread is waiting inside of
svc_recv(), ->nwaking doesn't get decremented at all until the request
is processed and svc_recv() is called again--effectively limiting the
number of concurrent requests to 5 per pool, so, if I read the code
correctly, likely to cause problems if your workload would benefit from
lots of requests being able to wait on io simultaneously (e.g. if you
have a large working set and more than 5 spindles per pool).

The nwaking count probably also leaks in some cases (e.g. if a thread
exits?)

I'm inclined to revert the patch and take another look at Greg's
original problem.

--b.

  reply	other threads:[~2009-08-10 23:55 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-19 22:54 kernel NULL pointer dereference in rpcb_getport_done (2.6.29.4) Simon Kirby
2009-06-20 19:57 ` Trond Myklebust
     [not found]   ` <1245527855.5182.33.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-06-21  5:09     ` Simon Kirby
2009-06-22 21:11       ` Simon Kirby
2009-07-09 17:27         ` Simon Kirby
2009-07-10 22:34           ` J. Bruce Fields
2009-08-10 23:55             ` J. Bruce Fields [this message]
2009-08-11 17:17               ` Simon Kirby
2009-10-15 21:46                 ` Simon Kirby
2009-10-15 22:52                   ` J. Bruce Fields

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=20090810235536.GA11617@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=gnb-xTcybq6BZ68@public.gmane.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=sim@hostway.ca \
    /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.