[OpenAFS-devel] reproducible problem during cache flush

Neulinger, Nathan nneul@umr.edu
Tue, 30 Jul 2002 13:41:31 -0500


Looks like this now:

    EBP       EIP         Function(args)
0xd6d51a74 0xc0114444 schedule+0x1d4 (0xd6d50000, 0x0, 0xc03d6000, 0x0,
0x0)
                               kernel .text 0xc0100000 0xc0114270
0xc01145f0
           0xe0a13c9f [libafs-2.4.19-rc3]afs_osi_SleepSig+0x9b
(0xe1110d51, 0xc016e6fd, 0xd8a08e40, 0xe0a13e4e)
                               libafs-2.4.19-rc3 .text 0xe09cb060
0xe0a13c04 0xe0a13cd8
           0xe0a13d18 [libafs-2.4.19-rc3]afs_osi_Sleep+0x40 (0xe1110d51,
0xe0a89ab0, 0xe111166c, 0xe09d7ca2, 0xe1111691)
                               libafs-2.4.19-rc3 .text 0xe09cb060
0xe0a13cd8 0xe0a13d58
           0xe09db060 [libafs-2.4.19-rc3]Afs_Lock_Obtain+0x168
(0xe1110d50, 0x4, 0x7, 0x1, 0x1)
                               libafs-2.4.19-rc3 .text 0xe09cb060
0xe09daef8 0xe09db0a4
           0xe09def8f [libafs-2.4.19-rc3]afs_StoreAllSegments+0xb9b
(0xd8a08e40, 0xe0b1f648, 0xe0b1f648, 0x1000, 0xe0b1f648)
                               libafs-2.4.19-rc3 .text 0xe09cb060
0xe09de3f4 0xe09e0110
0xd6d51cd4 0xc0149c91 iput+0x41 (0xe0b1f648, 0xd6d51dec, 0x0,
0xe118c098, 0x0)
                               kernel .text 0xc0100000 0xc0149c50
0xc0149e30
           0xe0a166c3 [libafs-2.4.19-rc3]afs_linux_writepage_sync+0xb7
(0xd87631a0, 0xc143ead0, 0x0, 0x1000, 0x1000)
                               libafs-2.4.19-rc3 .text 0xe09cb060
0xe0a1660c 0xe0a16774
           0xc012ae47 generic_file_write+0x507 (0xd87631a0, 0x40200000,
0x1000, 0xd87631c0, 0xe09f120c)
                               kernel .text 0xc0100000 0xc012a940
0xc012b0b0
           0xe0a14dd2 [libafs-2.4.19-rc3]afs_linux_write+0x5e6
(0xd87631a0, 0x40200000, 0x1000, 0xd87631c0, 0xde71fe20)
                               libafs-2.4.19-rc3 .text 0xe09cb060
0xe0a147ec 0xe0a14e1c
0xd6d51fbc 0xc0136132 sys_write+0xc2 (0x3, 0x40200000, 0x1000, 0x1000,
0x40200000)
                               kernel .text 0xc0100000 0xc0136070
0xc0136170
           0xc0108ea3 system_call+0x33

(that's the hung iozone process)


bash-2.04# /usr/afsws/etc/kdump | grep -i DirtyCh
                36 cacheMaxDirtyChunks
                37 cacheCurrDirtyChunks


-- Nathan

------------------------------------------------------------
Nathan Neulinger                       EMail:  nneul@umr.edu
University of Missouri - Rolla         Phone: (573) 341-4841
Computing Services                       Fax: (573) 341-4216


> -----Original Message-----
> From: Neulinger, Nathan=20
> Sent: Tuesday, July 30, 2002 1:36 PM
> Cc: openafs-devel@openafs.org
> Subject: RE: [OpenAFS-devel] reproducible problem during cache flush=20
>=20
>=20
> Behavior is different though... The kdump output no longer indicates
> cache as full, or waiting for drain.
>=20
> -- Nathan
>=20
> ------------------------------------------------------------
> Nathan Neulinger                       EMail:  nneul@umr.edu
> University of Missouri - Rolla         Phone: (573) 341-4841
> Computing Services                       Fax: (573) 341-4216
>=20
>=20
> > -----Original Message-----
> > From: Neulinger, Nathan=20
> > Sent: Tuesday, July 30, 2002 1:34 PM
> > Cc: openafs-devel@openafs.org
> > Subject: RE: [OpenAFS-devel] reproducible problem during=20
> cache flush=20
> >=20
> >=20
> > Applying this (with hand fixes to get it to apply on the=20
> > trunk + protos
> > branches, which have some locking+dcache changes in that=20
> > vicinity) does
> > NOT appear to fix the problem for me.
> >=20
> > Were you able to reproduce failure+success with this?
> >=20
> > -- Nathan
> >=20
> > ------------------------------------------------------------
> > Nathan Neulinger                       EMail:  nneul@umr.edu
> > University of Missouri - Rolla         Phone: (573) 341-4841
> > Computing Services                       Fax: (573) 341-4216
> >=20
> >=20
> > > -----Original Message-----
> > > From: chas williams [mailto:chas@cmf.nrl.navy.mil]=20
> > > Sent: Tuesday, July 30, 2002 1:15 PM
> > > Cc: Nickolai Zeldovich; openafs-devel@openafs.org
> > > Subject: Re: [OpenAFS-devel] reproducible problem during=20
> > cache flush=20
> > >=20
> > >=20
> > > >if we remove the AFS_VM_RDWR_ENV from particular places in=20
> > > afs_vnop_read.c
> > > >we should get prefetch on linux as well?
> > >=20
> > > something like the following:
> > >=20
> > > Index: src/afs/VNOPS/afs_vnop_read.c
> > >=20
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > > RCS file: /cvs/openafs/src/afs/VNOPS/afs_vnop_read.c,v
> > > retrieving revision 1.5.4.1
> > > diff -u -d -b -w -r1.5.4.1 afs_vnop_read.c
> > > --- src/afs/VNOPS/afs_vnop_read.c	2002/07/10 20:04:36	1.5.4.1
> > > +++ src/afs/VNOPS/afs_vnop_read.c	2002/07/30 18:13:50
> > > @@ -263,7 +263,7 @@
> > >       * to it in case we need to do a prefetch.
> > >       */
> > >      if (tdc) {
> > > -#ifndef	AFS_VM_RDWR_ENV
> > > +#if !defined(AFS_VM_RDWR_ENV) || defined(AFS_LINUX22_ENV)
> > >  	/* try to queue prefetch, if needed */
> > >  	if (!(tdc->flags & DFNextStarted) && !noLock) {
> > >  	    afs_PrefetchChunk(avc, tdc, acred, &treq);
> > > @@ -446,7 +446,7 @@
> > >  	    hadd32(afs_indexCounter, 1);
> > > =20
> > >  	    if (!noLock) {
> > > -#ifndef	AFS_VM_RDWR_ENV
> > > +#if !defined(AFS_VM_RDWR_ENV) || defined(AFS_LINUX22_ENV)
> > >  		if (!(code =3D afs_InitReq(&treq, acred))&&=20
> > > (!(tdc->flags & DFNextStarted)))
> > >  		    afs_PrefetchChunk(avc, tdc, acred, &treq);
> > >  #endif
> > > Index: src/afs/VNOPS/afs_vnop_write.c
> > >=20
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> > > RCS file: /cvs/openafs/src/afs/VNOPS/afs_vnop_write.c,v
> > > retrieving revision 1.8.2.7
> > > diff -u -d -b -w -r1.8.2.7 afs_vnop_write.c
> > > --- src/afs/VNOPS/afs_vnop_write.c	2002/07/22=20
> 23:14:54	1.8.2.7
> > > +++ src/afs/VNOPS/afs_vnop_write.c	2002/07/30 18:13:50
> > > @@ -283,7 +283,7 @@
> > >  	if (filePos > avc->m.Length)
> > >  	    avc->m.Length =3D filePos;
> > >  #endif
> > > -#ifndef AFS_VM_RDWR_ENV
> > > +#if !defined(AFS_VM_RDWR_ENV) || defined(AFS_LINUX22_ENV)
> > >  	/*
> > >  	 * If write is implemented via VM, afs_DoPartialWrite()=20
> > > is called from
> > >  	 * the high-level write op.
> > > @@ -580,7 +580,7 @@
> > >  	}
> > >  #endif
> > >  	osi_UFSClose(tfile);
> > > -#ifndef	AFS_VM_RDWR_ENV
> > > +#if !defined(AFS_VM_RDWR_ENV) || defined(AFS_LINUX22_ENV)
> > >  	/*
> > >  	 * If write is implemented via VM, afs_DoPartialWrite()=20
> > > is called from
> > >  	 * the high-level write op.
> > > _______________________________________________
> > > OpenAFS-devel mailing list
> > > OpenAFS-devel@openafs.org
> > > https://lists.openafs.org/mailman/listinfo/openafs-devel
> > >=20
> > _______________________________________________
> > OpenAFS-devel mailing list
> > OpenAFS-devel@openafs.org
> > https://lists.openafs.org/mailman/listinfo/openafs-devel
> >=20
> _______________________________________________
> OpenAFS-devel mailing list
> OpenAFS-devel@openafs.org
> https://lists.openafs.org/mailman/listinfo/openafs-devel
>=20