From: Ingo Molnar <mingo@elte.hu>
To: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Lee Revell <rlrevell@joe-job.com>, Andrew Morton <akpm@osdl.org>,
linux-kernel@vger.kernel.org
Subject: Re: NFS client latencies
Date: Thu, 31 Mar 2005 09:15:04 +0200 [thread overview]
Message-ID: <20050331071504.GA15681@elte.hu> (raw)
In-Reply-To: <20050331065942.GA14952@elte.hu>
* Ingo Molnar <mingo@elte.hu> wrote:
> i think all it needs now is a lock-breaker in the main radix-lookup
> loop in nfs_scan_lock_dirty(), or a latency-oriented reduction in the
> npages argument, to make the loop bounded. [...]
can nfsi->req_lock be dropped within nfs_scan_dirty()? Or does the
scanning have to restart in that case? My guess would be the scanning
does not have to be restarted, since we drop the lock after scanning
anyway, so all it has to take care of is the consistency of the list
itself, and the fact that the whole index range got scanned in a certain
point in time.
Such a lock-breaker was hard before because we had a list 'cursor' which
could move away while we dropped the lock. But with the radix tree it's
an 'index position' now, which is much more invariant. The patch below
attempts this, ontop of your patch - but i'm not sure whether ->req_lock
is the only lock we hold at that point.
Ingo
--- linux/fs/nfs/pagelist.c.orig
+++ linux/fs/nfs/pagelist.c
@@ -291,6 +291,7 @@ nfs_scan_lock_dirty(struct nfs_inode *nf
res++;
}
}
+ cond_resched_lock(&nfsi->req_lock);
}
out:
return res;
next prev parent reply other threads:[~2005-03-31 7:15 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-29 23:04 NFS client latencies Lee Revell
2005-03-29 23:18 ` Trond Myklebust
2005-03-29 23:32 ` Lee Revell
2005-03-29 23:34 ` Trond Myklebust
2005-03-29 23:37 ` Lee Revell
2005-03-30 8:02 ` Ingo Molnar
2005-03-30 14:11 ` Trond Myklebust
2005-03-30 14:20 ` Ingo Molnar
2005-03-30 19:53 ` Andrew Morton
2005-03-30 14:26 ` Lee Revell
2005-03-30 14:50 ` Trond Myklebust
2005-03-30 19:50 ` Lee Revell
2005-03-30 19:56 ` Andrew Morton
2005-03-30 21:14 ` Trond Myklebust
2005-03-31 2:26 ` Lee Revell
2005-03-31 2:39 ` Andrew Morton
2005-03-31 2:47 ` Lee Revell
2005-03-31 3:48 ` Trond Myklebust
2005-03-31 6:59 ` Ingo Molnar
2005-03-31 7:15 ` Ingo Molnar [this message]
2005-03-31 7:18 ` Andrew Morton
2005-03-31 7:30 ` Ingo Molnar
2005-03-31 11:58 ` Trond Myklebust
2005-03-31 12:34 ` Trond Myklebust
2005-03-31 13:58 ` Ingo Molnar
2005-03-31 14:32 ` Trond Myklebust
2005-03-31 14:39 ` Ingo Molnar
2005-03-31 14:50 ` Ingo Molnar
2005-04-01 2:28 ` Lee Revell
2005-04-01 4:30 ` Ingo Molnar
2005-04-01 16:16 ` Orion Poplawski
2005-04-01 16:33 ` Trond Myklebust
2005-04-01 21:18 ` Lee Revell
2005-03-31 14:54 ` Ingo Molnar
2005-03-31 15:00 ` Trond Myklebust
2005-03-31 14:54 ` Trond Myklebust
2005-03-31 14:58 ` Ingo Molnar
2005-03-31 15:06 ` Trond Myklebust
2005-03-31 15:10 ` Ingo Molnar
2005-03-31 16:00 ` Trond Myklebust
2005-03-31 15:10 ` Ingo Molnar
2005-03-31 7:03 ` Ingo Molnar
2005-03-31 7:39 ` Ingo Molnar
2005-03-31 7:48 ` Ingo Molnar
2005-03-31 7:58 ` Ingo Molnar
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=20050331071504.GA15681@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rlrevell@joe-job.com \
--cc=trond.myklebust@fys.uio.no \
/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