public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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;

  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