* NFS broken in latest 2.6.37-rcX @ 2010-12-22 21:34 Guy Martin 2010-12-22 21:53 ` Carlos O'Donell 0 siblings, 1 reply; 5+ messages in thread From: Guy Martin @ 2010-12-22 21:34 UTC (permalink / raw) To: linux-parisc Hi all, It seems that NFS got broken recently. I've bisected this to babddc72a9468884ce1a23db3c3d54b0afa299f0. Both NFS version 2 and 3 are affected. I haven't tested NFS 4. I've been able to reproduce with both 32bit and 64bit kernels using gcc-4.5.1 with the fix for PR46915 included. To reproduce, simply mount an NFS share and try to list the files with ls. When listing the directory, the code seem to be looping in the commit I mentioned. The network traffic goes high and you always see the same packets flowing. In current HEAD, the behavior is slightly different. The process uses 100% and either you get a kernel panic or if you are lucky, you get something like "memory exhausted". I'm not sure how to troubleshoot this further. Any idea ? Guy ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: NFS broken in latest 2.6.37-rcX 2010-12-22 21:34 NFS broken in latest 2.6.37-rcX Guy Martin @ 2010-12-22 21:53 ` Carlos O'Donell 2011-01-05 17:36 ` James Bottomley 0 siblings, 1 reply; 5+ messages in thread From: Carlos O'Donell @ 2010-12-22 21:53 UTC (permalink / raw) To: Guy Martin; +Cc: linux-parisc On Wed, Dec 22, 2010 at 4:34 PM, Guy Martin <gmsoft@tuxicoman.be> wrote: > It seems that NFS got broken recently. > I've bisected this to babddc72a9468884ce1a23db3c3d54b0afa299f0. > > Both NFS version 2 and 3 are affected. I haven't tested NFS 4. > > I've been able to reproduce with both 32bit and 64bit kernels using > gcc-4.5.1 with the fix for PR46915 included. > > To reproduce, simply mount an NFS share and try to list the files with > ls. > > When listing the directory, the code seem to be looping in the commit I > mentioned. The network traffic goes high and you always see the same > packets flowing. > > In current HEAD, the behavior is slightly different. The process uses > 100% and either you get a kernel panic or if you are lucky, you get > something like "memory exhausted". > > > I'm not sure how to troubleshoot this further. > > Any idea ? You need to understand the failure mode. I would do two things: (a) Revert the patch on HEAD and see if it works. This is usually convincing proof that something is broken and the patch interacts badly with our arch. (c) Put printfs in the code to see where it's looping and under what conditions. Once you have a better grasp of the failure mode you can contact the author of the patch and tell them about the breakage, CC linux-parisc, and ask for help. That would be me plan of attack. Cheers, Carlos. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: NFS broken in latest 2.6.37-rcX 2010-12-22 21:53 ` Carlos O'Donell @ 2011-01-05 17:36 ` James Bottomley 2011-01-05 18:31 ` Guy Martin 0 siblings, 1 reply; 5+ messages in thread From: James Bottomley @ 2011-01-05 17:36 UTC (permalink / raw) To: Carlos O'Donell; +Cc: Guy Martin, linux-parisc On Wed, 2010-12-22 at 16:53 -0500, Carlos O'Donell wrote: > On Wed, Dec 22, 2010 at 4:34 PM, Guy Martin <gmsoft@tuxicoman.be> wrote: > > It seems that NFS got broken recently. > > I've bisected this to babddc72a9468884ce1a23db3c3d54b0afa299f0. > > > > Both NFS version 2 and 3 are affected. I haven't tested NFS 4. > > > > I've been able to reproduce with both 32bit and 64bit kernels using > > gcc-4.5.1 with the fix for PR46915 included. > > > > To reproduce, simply mount an NFS share and try to list the files with > > ls. > > > > When listing the directory, the code seem to be looping in the commit I > > mentioned. The network traffic goes high and you always see the same > > packets flowing. > > > > In current HEAD, the behavior is slightly different. The process uses > > 100% and either you get a kernel panic or if you are lucky, you get > > something like "memory exhausted". > > > > > > I'm not sure how to troubleshoot this further. > > > > Any idea ? > > You need to understand the failure mode. > > I would do two things: > > (a) Revert the patch on HEAD and see if it works. This is usually > convincing proof that something is broken and the patch interacts > badly with our arch. > > (c) Put printfs in the code to see where it's looping and under what > conditions. > > Once you have a better grasp of the failure mode you can contact the > author of the patch and tell them about the breakage, CC linux-parisc, > and ask for help. > > That would be me plan of attack. Arm ran into this as well http://marc.info/?t=129372938100002 It looks to be an inequivalent aliasing problem caused by writes via the kernel direct mapping, and reads via vmalloc space. James ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: NFS broken in latest 2.6.37-rcX 2011-01-05 17:36 ` James Bottomley @ 2011-01-05 18:31 ` Guy Martin 2011-01-05 18:47 ` James Bottomley 0 siblings, 1 reply; 5+ messages in thread From: Guy Martin @ 2011-01-05 18:31 UTC (permalink / raw) To: James Bottomley; +Cc: Carlos O'Donell, linux-parisc James, Thanks for pointing me to the thread. I reached similar conclusion as well. After adding lots of printk, I could see that the page where the skb buff is copied is not or partially updated when being read by xdr_page_filler. Cheers, Guy On Wed, 05 Jan 2011 11:36:01 -0600 James Bottomley <James.Bottomley@HansenPartnership.com> wrote: > On Wed, 2010-12-22 at 16:53 -0500, Carlos O'Donell wrote: > > On Wed, Dec 22, 2010 at 4:34 PM, Guy Martin <gmsoft@tuxicoman.be> > > wrote: > > > It seems that NFS got broken recently. > > > I've bisected this to babddc72a9468884ce1a23db3c3d54b0afa299f0. > > > > > > Both NFS version 2 and 3 are affected. I haven't tested NFS 4. > > > > > > I've been able to reproduce with both 32bit and 64bit kernels > > > using gcc-4.5.1 with the fix for PR46915 included. > > > > > > To reproduce, simply mount an NFS share and try to list the files > > > with ls. > > > > > > When listing the directory, the code seem to be looping in the > > > commit I mentioned. The network traffic goes high and you always > > > see the same packets flowing. > > > > > > In current HEAD, the behavior is slightly different. The process > > > uses 100% and either you get a kernel panic or if you are lucky, > > > you get something like "memory exhausted". > > > > > > > > > I'm not sure how to troubleshoot this further. > > > > > > Any idea ? > > > > You need to understand the failure mode. > > > > I would do two things: > > > > (a) Revert the patch on HEAD and see if it works. This is usually > > convincing proof that something is broken and the patch interacts > > badly with our arch. > > > > (c) Put printfs in the code to see where it's looping and under what > > conditions. > > > > Once you have a better grasp of the failure mode you can contact the > > author of the patch and tell them about the breakage, CC > > linux-parisc, and ask for help. > > > > That would be me plan of attack. > > Arm ran into this as well > > http://marc.info/?t=129372938100002 > > It looks to be an inequivalent aliasing problem caused by writes via > the kernel direct mapping, and reads via vmalloc space. > > James > > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: NFS broken in latest 2.6.37-rcX 2011-01-05 18:31 ` Guy Martin @ 2011-01-05 18:47 ` James Bottomley 0 siblings, 0 replies; 5+ messages in thread From: James Bottomley @ 2011-01-05 18:47 UTC (permalink / raw) To: Guy Martin; +Cc: Carlos O'Donell, linux-parisc On Wed, 2011-01-05 at 19:31 +0100, Guy Martin wrote: > James, > > Thanks for pointing me to the thread. > > I reached similar conclusion as well. After adding lots of printk, I > could see that the page where the skb buff is copied is not or > partially updated when being read by xdr_page_filler. So does this fix it? James --- diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 996dd89..37d7347 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -1783,6 +1783,7 @@ static int nfs_symlink(struct inode *dir, struct dentry *dentry, const char *sym memcpy(kaddr, symname, pathlen); if (pathlen < PAGE_SIZE) memset(kaddr + pathlen, 0, PAGE_SIZE - pathlen); + flush_kernel_dcache_page(page); kunmap_atomic(kaddr, KM_USER0); error = NFS_PROTO(dir)->symlink(dir, dentry, page, pathlen, &attr); diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 4435e5e..9a6bfea 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -205,6 +205,7 @@ static void nfs4_setup_readdir(u64 cookie, __be32 *verifier, struct dentry *dent readdir->pgbase = (char *)p - (char *)start; readdir->count -= readdir->pgbase; + flush_kernel_dcache_page(*readdir->pages); kunmap_atomic(start, KM_USER0); } ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-01-05 18:47 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-12-22 21:34 NFS broken in latest 2.6.37-rcX Guy Martin 2010-12-22 21:53 ` Carlos O'Donell 2011-01-05 17:36 ` James Bottomley 2011-01-05 18:31 ` Guy Martin 2011-01-05 18:47 ` James Bottomley
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.