Re: NFS client latencies

2005-04-01 Thread Lee Revell
On Fri, 2005-04-01 at 06:30 +0200, Ingo Molnar wrote: > * Lee Revell <[EMAIL PROTECTED]> wrote: > > > > > ah - cool! This was a 100 MB writeout so having 3.7 msecs to process > > > > 20K+ pages is not unreasonable. To break the latency, can i just do a > > > > simple lock-break, via the patch be

Re: NFS client latencies

2005-04-01 Thread Trond Myklebust
fr den 01.04.2005 Klokka 09:16 (-0700) skreiv Orion Poplawski: > Just a question - would these changes be expected to improve NFS client > *read* access at all, or just write? Just write. Cheers, Trond -- Trond Myklebust <[EMAIL PROTECTED]> - To unsubscribe from this list: send the line "un

Re: NFS client latencies

2005-04-01 Thread Orion Poplawski
Ingo Molnar wrote: * Lee Revell <[EMAIL PROTECTED]> wrote: This fixes all the NFS related latency problems I was seeing. Now the longest latency from an NFS kernel compile with "make -j64" is 391 usecs in get_swap_page. great! The latest patches (-42-08 and later) have the reworked nfs_scan_li

Re: NFS client latencies

2005-03-31 Thread Ingo Molnar
* Lee Revell <[EMAIL PROTECTED]> wrote: > > > ah - cool! This was a 100 MB writeout so having 3.7 msecs to process > > > 20K+ pages is not unreasonable. To break the latency, can i just do a > > > simple lock-break, via the patch below? > > > > with this patch the worst-case latency during NFS

Re: NFS client latencies

2005-03-31 Thread Lee Revell
On Thu, 2005-03-31 at 16:50 +0200, Ingo Molnar wrote: > * Ingo Molnar <[EMAIL PROTECTED]> wrote: > > > > So the overhead you are currently seeing should just be that of > > > iterating through the list, locking said requests and adding them to > > > our private list. > > > > ah - cool! This was

Re: NFS client latencies

2005-03-31 Thread Trond Myklebust
to den 31.03.2005 Klokka 17:10 (+0200) skreiv Ingo Molnar: > * Trond Myklebust <[EMAIL PROTECTED]> wrote: > > > > would it be safe to collect locked entries into a separate, local list, > > > so that the restart would only see newly added entries? Then once the > > > moving of all entries has be

Re: NFS client latencies

2005-03-31 Thread Ingo Molnar
* Ingo Molnar <[EMAIL PROTECTED]> wrote: > > The good news, though, is that because requests on the "commit" list > > do not remain locked for long without being removed from the list, you > > should rarely have to skip them. IOW restarting from the head of the > > list is pretty much the same

Re: NFS client latencies

2005-03-31 Thread Ingo Molnar
* Trond Myklebust <[EMAIL PROTECTED]> wrote: > > would it be safe to collect locked entries into a separate, local list, > > so that the restart would only see newly added entries? Then once the > > moving of all entries has been done, all the locked entries could be > > added back to the comm

Re: NFS client latencies

2005-03-31 Thread Trond Myklebust
to den 31.03.2005 Klokka 16:58 (+0200) skreiv Ingo Molnar: > would it be safe to collect locked entries into a separate, local list, > so that the restart would only see newly added entries? Then once the > moving of all entries has been done, all the locked entries could be > added back to th

Re: NFS client latencies

2005-03-31 Thread Trond Myklebust
to den 31.03.2005 Klokka 16:54 (+0200) skreiv Ingo Molnar: > i think it's incorrect in its current form, because 'pos' is not > necessarily safe and might be removed from the commit_list? Right. > the whole loop could be a "while (!list_empty(head))" thing, if it wasnt > for the possibility fo

Re: NFS client latencies

2005-03-31 Thread Ingo Molnar
* Trond Myklebust <[EMAIL PROTECTED]> wrote: > Errm... That looks a bit unsafe. What is there then to stop another > process from removing "pos" while you are scheduling? It seems to me > that you should really start afresh in that case. yeah. > The good news, though, is that because requests

Re: NFS client latencies

2005-03-31 Thread Trond Myklebust
to den 31.03.2005 Klokka 16:39 (+0200) skreiv Ingo Molnar: > * Trond Myklebust <[EMAIL PROTECTED]> wrote: > > > > your patch works fine here - but there are still latencies in > > > nfs_scan_commit()/nfs_scan_list(): see the attached 3.7 msec latency > > > trace. It happened during a simple big-

Re: NFS client latencies

2005-03-31 Thread Ingo Molnar
* Ingo Molnar <[EMAIL PROTECTED]> wrote: > [...] To break the latency, can i just do a simple lock-break, via the > patch below? i think it's incorrect in its current form, because 'pos' is not necessarily safe and might be removed from the commit_list? the whole loop could be a "while (!list

Re: NFS client latencies

2005-03-31 Thread Ingo Molnar
* Ingo Molnar <[EMAIL PROTECTED]> wrote: > > So the overhead you are currently seeing should just be that of > > iterating through the list, locking said requests and adding them to > > our private list. > > ah - cool! This was a 100 MB writeout so having 3.7 msecs to process > 20K+ pages is

Re: NFS client latencies

2005-03-31 Thread Ingo Molnar
* Trond Myklebust <[EMAIL PROTECTED]> wrote: > > your patch works fine here - but there are still latencies in > > nfs_scan_commit()/nfs_scan_list(): see the attached 3.7 msec latency > > trace. It happened during a simple big-file writeout and is easily > > reproducible. Could the nfsi->commi

Re: NFS client latencies

2005-03-31 Thread Trond Myklebust
to den 31.03.2005 Klokka 15:58 (+0200) skreiv Ingo Molnar: > * Trond Myklebust <[EMAIL PROTECTED]> wrote: > > > > + int res; > > ^^^ Should be "int res = 0;" > > your patch works fine here - but there are still latencies in > nfs_scan_commit()/nfs_scan_list(): see the attached 3.7 msec

Re: NFS client latencies

2005-03-31 Thread Ingo Molnar
* Trond Myklebust <[EMAIL PROTECTED]> wrote: > > + int res; > ^^^ Should be "int res = 0;" your patch works fine here - but there are still latencies in nfs_scan_commit()/nfs_scan_list(): see the attached 3.7 msec latency trace. It happened during a simple big-file writeout and i

Re: NFS client latencies

2005-03-31 Thread Trond Myklebust
to den 31.03.2005 Klokka 06:58 (-0500) skreiv Trond Myklebust: > > @@ -563,11 +566,14 @@ static int > nfs_scan_commit(struct inode *inode, struct list_head *dst, unsigned long > idx_start, unsigned int npages) > { > struct nfs_inode *nfsi = NFS_I(inode); > - int res; > - res

Re: NFS client latencies

2005-03-31 Thread Trond Myklebust
to den 31.03.2005 Klokka 09:30 (+0200) skreiv Ingo Molnar: > > And presumably that list-based code rarely hits the worst-case, else > > it would have been changed by now. > > that was my other point in a previous mail: most write benchmarks do > continuous append writes, and CPU overhead easily

Re: NFS client latencies

2005-03-31 Thread Ingo Molnar
* Ingo Molnar <[EMAIL PROTECTED]> wrote: > ok, find a new latency trace attached (1.6 msecs). I generated write > loads, and the nfs_scan_list_dirty() latency is gone and indeed > nfs_scan_list() generates the worst latency - while processing 8535 > pages in one critical section. here's a mor

Re: NFS client latencies

2005-03-31 Thread Ingo Molnar
* Ingo Molnar <[EMAIL PROTECTED]> wrote: > could you check the -41-23 -RT kernel at the usual place: > >http://redhat.com/~mingo/realtime-preempt/ > > i've added Trond's radix lookup code, plus the lockbreaker patch. > > (one thing that is not covered yet is nfs_scan_list() - that still sc

Re: NFS client latencies

2005-03-30 Thread Ingo Molnar
* Lee Revell <[EMAIL PROTECTED]> wrote: > > Yes. Together with the radix tree-based sorting of dirty requests, > > that's pretty much what I've spent most of today doing. Lee, could you > > see how the attached combined patch changes your latency numbers? > > Different code path, and the latency

Re: NFS client latencies

2005-03-30 Thread Ingo Molnar
* Andrew Morton <[EMAIL PROTECTED]> wrote: > Well. The radix-tree approach's best-case is probably quite a lot > worse than the list-based approach's best-case. It hits a lot more > cachelines and involves a lot more code. The list-based approach's best-case are large continuous append write

Re: NFS client latencies

2005-03-30 Thread Andrew Morton
Ingo Molnar <[EMAIL PROTECTED]> wrote: > > > * Trond Myklebust <[EMAIL PROTECTED]> wrote: > > > > The 7 ms are spent in this loop: > > > > Which is basically confirming what the guys from Bull already told me, > > namely that the radix tree tag stuff is much less efficient that what > > w

Re: NFS client latencies

2005-03-30 Thread Ingo Molnar
* Ingo Molnar <[EMAIL PROTECTED]> 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 do

Re: NFS client latencies

2005-03-30 Thread Ingo Molnar
* Lee Revell <[EMAIL PROTECTED]> wrote: > > Is a bunch of gobbledygook. Hows about you interpret it for us? > > Sorry. When I summarized them before, Ingo just asked for the full > verbose trace. please send non-verbose traces if possible. The verbose traces are useful when it's not clear w

Re: NFS client latencies

2005-03-30 Thread Ingo Molnar
* Trond Myklebust <[EMAIL PROTECTED]> wrote: > > The 7 ms are spent in this loop: > > Which is basically confirming what the guys from Bull already told me, > namely that the radix tree tag stuff is much less efficient that what > we've got now. I never saw their patches, though, so I was curio

Re: NFS client latencies

2005-03-30 Thread Trond Myklebust
on den 30.03.2005 Klokka 21:47 (-0500) skreiv Lee Revell: > On Wed, 2005-03-30 at 18:39 -0800, Andrew Morton wrote: > > Lee Revell <[EMAIL PROTECTED]> wrote: > > > > > > > Yes. Together with the radix tree-based sorting of dirty requests, > > > > that's pretty much what I've spent most of today do

Re: NFS client latencies

2005-03-30 Thread Lee Revell
On Wed, 2005-03-30 at 18:39 -0800, Andrew Morton wrote: > Lee Revell <[EMAIL PROTECTED]> wrote: > > > > > Yes. Together with the radix tree-based sorting of dirty requests, > > > that's pretty much what I've spent most of today doing. Lee, could you > > > see how the attached combined patch chang

Re: NFS client latencies

2005-03-30 Thread Andrew Morton
Lee Revell <[EMAIL PROTECTED]> wrote: > > > Yes. Together with the radix tree-based sorting of dirty requests, > > that's pretty much what I've spent most of today doing. Lee, could you > > see how the attached combined patch changes your latency numbers? > > > > Different code path, and the

Re: NFS client latencies

2005-03-30 Thread Lee Revell
On Wed, 2005-03-30 at 16:14 -0500, Trond Myklebust wrote: > on den 30.03.2005 Klokka 11:56 (-0800) skreiv Andrew Morton: > > > That's normal and cannot be avoided: when writing, we have to look for > > > the existence of old nfs_page requests. The reason is that if one does > > > exist, we must eit

Re: NFS client latencies

2005-03-30 Thread Trond Myklebust
on den 30.03.2005 Klokka 11:56 (-0800) skreiv Andrew Morton: > > That's normal and cannot be avoided: when writing, we have to look for > > the existence of old nfs_page requests. The reason is that if one does > > exist, we must either coalesce our new dirty area into it or if we > > can't, we mus

Re: NFS client latencies

2005-03-30 Thread Andrew Morton
Trond Myklebust <[EMAIL PROTECTED]> wrote: > > on den 30.03.2005 Klokka 09:26 (-0500) skreiv Lee Revell: > > On Tue, 2005-03-29 at 18:18 -0500, Trond Myklebust wrote: > > > ty den 29.03.2005 Klokka 18:04 (-0500) skreiv Lee Revell: > > > > I am seeing long latencies in the NFS client code. Attached

Re: NFS client latencies

2005-03-30 Thread Andrew Morton
Ingo Molnar <[EMAIL PROTECTED]> wrote: > > > No. Coalescing on the client makes tons of sense. The overhead of > > sending 8 RPC requests for 4k writes instead of sending 1 RPC request > > for a single 32k write is huge: among other things, you end up tying up > > 8 RPC slots on the client + 8 n

Re: NFS client latencies

2005-03-30 Thread Lee Revell
On Wed, 2005-03-30 at 09:50 -0500, Trond Myklebust wrote: > on den 30.03.2005 Klokka 09:26 (-0500) skreiv Lee Revell: > > On Tue, 2005-03-29 at 18:18 -0500, Trond Myklebust wrote: > > > ty den 29.03.2005 Klokka 18:04 (-0500) skreiv Lee Revell: > > > > I am seeing long latencies in the NFS client co

Re: NFS client latencies

2005-03-30 Thread Trond Myklebust
on den 30.03.2005 Klokka 09:26 (-0500) skreiv Lee Revell: > On Tue, 2005-03-29 at 18:18 -0500, Trond Myklebust wrote: > > ty den 29.03.2005 Klokka 18:04 (-0500) skreiv Lee Revell: > > > I am seeing long latencies in the NFS client code. Attached is a ~1.9 > > > ms latency trace. > > > > What kind

Re: NFS client latencies

2005-03-30 Thread Lee Revell
On Tue, 2005-03-29 at 18:18 -0500, Trond Myklebust wrote: > ty den 29.03.2005 Klokka 18:04 (-0500) skreiv Lee Revell: > > I am seeing long latencies in the NFS client code. Attached is a ~1.9 > > ms latency trace. > > What kind of workload are you using to produce these numbers? > Here is the o

Re: NFS client latencies

2005-03-30 Thread Ingo Molnar
* Trond Myklebust <[EMAIL PROTECTED]> wrote: > > the comment suggests that this is optimized for append writes (which is > > quite common, but by far not the only write workload) - but the > > worst-case behavior of this code is very bad. How about disabling this > > sorting altogether and ben

Re: NFS client latencies

2005-03-30 Thread Trond Myklebust
on den 30.03.2005 Klokka 10:02 (+0200) skreiv Ingo Molnar: > the comment suggests that this is optimized for append writes (which is > quite common, but by far not the only write workload) - but the > worst-case behavior of this code is very bad. How about disabling this > sorting altogether an

Re: NFS client latencies

2005-03-30 Thread Ingo Molnar
* Trond Myklebust <[EMAIL PROTECTED]> wrote: > ty den 29.03.2005 Klokka 18:32 (-0500) skreiv Lee Revell: > > On Tue, 2005-03-29 at 18:18 -0500, Trond Myklebust wrote: > > > ty den 29.03.2005 Klokka 18:04 (-0500) skreiv Lee Revell: > > > > I am seeing long latencies in the NFS client code. Attach

Re: NFS client latencies

2005-03-29 Thread Lee Revell
On Tue, 2005-03-29 at 18:34 -0500, Trond Myklebust wrote: > ty den 29.03.2005 Klokka 18:32 (-0500) skreiv Lee Revell: > > On Tue, 2005-03-29 at 18:18 -0500, Trond Myklebust wrote: > > > ty den 29.03.2005 Klokka 18:04 (-0500) skreiv Lee Revell: > > > > I am seeing long latencies in the NFS client co

Re: NFS client latencies

2005-03-29 Thread Trond Myklebust
ty den 29.03.2005 Klokka 18:32 (-0500) skreiv Lee Revell: > On Tue, 2005-03-29 at 18:18 -0500, Trond Myklebust wrote: > > ty den 29.03.2005 Klokka 18:04 (-0500) skreiv Lee Revell: > > > I am seeing long latencies in the NFS client code. Attached is a ~1.9 > > > ms latency trace. > > > > What kind

Re: NFS client latencies

2005-03-29 Thread Lee Revell
On Tue, 2005-03-29 at 18:18 -0500, Trond Myklebust wrote: > ty den 29.03.2005 Klokka 18:04 (-0500) skreiv Lee Revell: > > I am seeing long latencies in the NFS client code. Attached is a ~1.9 > > ms latency trace. > > What kind of workload are you using to produce these numbers? > Just a kernel

Re: NFS client latencies

2005-03-29 Thread Trond Myklebust
ty den 29.03.2005 Klokka 18:04 (-0500) skreiv Lee Revell: > I am seeing long latencies in the NFS client code. Attached is a ~1.9 > ms latency trace. What kind of workload are you using to produce these numbers? Cheers, Trond -- Trond Myklebust <[EMAIL PROTECTED]> - To unsubscribe from this