2001-10-04 09:52:41

by Nicolas Mailhot

[permalink] [raw]
Subject: [BUG] Symlinks broken on 2.4.10-ac[3-4] nfs

Hi,

I've found out much to my sorrow that the latest
ac's do not handle symlinks over nfs well.
For example, I get that kind of results :

lrwxrwxrwx 1 nim cvs 92 oct 4 11:47
release.xml -> ../antbui
ld/init/release.xml?Q?*U!?M~?W???0>?%?????????]??v??????JO#b????G?\??1????B??;??
?HT
lrwxrwxrwx 1 nim cvs 387 oct 4 11:47 xml
-> ../antbuild/init/
xml??????w?z?$?E??%J?4?<?B??Y`L??>=1??>?????????????????????q]?4?G????????:?J]??
??7???xx?Z&?z??{??^?9L??|m?ש]?4??i???NL?[#?|???cHh;??r??$?E?I$?F?y???y???????W9
m?1<FA?v*@KG??ܰ?d?l8????F?,??&?l?ݬ??S?Z???M?iUi?b??c??x.????j??g??f.f!???p?G??
????Q?AbwV1?2??1?L?QK?????@??a????????????,??u)?uR??&T??

after a
[nim@ulysse ant]$ln -s ../antbuild/init/*xml .
[nim@ulysse ant]$ls -l

This is over an nfs mounted directory, server and client
2.4.40-ac4 nfs3, server-side fs : ext2

That's pretty ugly isn't it ?

--
Nicolas Mailhot


2001-10-04 10:15:01

by Andrey Nekrasov

[permalink] [raw]
Subject: 2.4.11-pre2-xfs

Hello.

1. hardware Intel ISP1100 (BX/1GB RAM/IDE DISK)
2. kernel 2.4.11-pre2-xfs, with highmem support

3. create ramdisk 512Mb and run "tiotest -c -f 110"
4.

__alloc_pages: 0-order allocation failed (gfp=0x3d0/0) from c0127fe9
__alloc_pages: 0-order allocation failed (gfp=0x2f0/0) from c0127fe9
__alloc_pages: 0-order allocation failed (gfp=0x70/0) from c0127fe9
__alloc_pages: 0-order allocation failed (gfp=0x2f0/0) from c0127fe9
__alloc_pages: 0-order allocation failed (gfp=0x70/0) from c0127fe9
__alloc_pages: 0-order allocation failed (gfp=0x2f0/0) from c0127fe9
__alloc_pages: 0-order allocation failed (gfp=0x70/0) from c0127fe9
__alloc_pages: 0-order allocation failed (gfp=0x3f0/0) from c0127fe9
__alloc_pages: 0-order allocation failed (gfp=0x3f0/0) from c0127fe9
__alloc_pages: 0-order allocation failed (gfp=0x3f0/0) from c0127fe9
__alloc_pages: 0-order allocation failed (gfp=0x70/0) from c0127fe9
__alloc_pages: 0-order allocation failed (gfp=0x2f0/0) from c0127fe9
__alloc_pages: 0-order allocation failed (gfp=0x2f0/0) from c0127fe9
__alloc_pages: 0-order allocation failed (gfp=0x70/0) from c0127fe9

5. kernel compiled with gdb & have serial console.

--
bye.
Andrey Nekrasov, SpyLOG.

2001-10-04 11:02:18

by Trond Myklebust

[permalink] [raw]
Subject: Re: [BUG] Symlinks broken on 2.4.10-ac[3-4] nfs


It's a known bug in the 2.4.10 NFS server code. The following patch
fixes it...

Cheers,
Trond

diff -u --recursive --new-file linux-2.4.10/fs/nfsd/nfs3xdr.c linux-2.4.10-symlinks/fs/nfsd/nfs3xdr.c
--- linux-2.4.10/fs/nfsd/nfs3xdr.c Mon Sep 24 00:33:20 2001
+++ linux-2.4.10-symlinks/fs/nfsd/nfs3xdr.c Thu Oct 4 12:59:49 2001
@@ -99,7 +99,7 @@
char *name;
int i;

- if ((p = xdr_decode_string_inplace(p, namp, lenp, NFS3_MAXPATHLEN)) != NULL) {
+ if ((p = xdr_decode_string(p, namp, lenp, NFS3_MAXPATHLEN)) != NULL) {
for (i = 0, name = *namp; i < *lenp; i++, name++) {
if (*name == '\0')
return NULL;

2001-10-04 14:01:56

by Steve Lord

[permalink] [raw]
Subject: Re: 2.4.11-pre2-xfs

> Hello.
>
> 1. hardware Intel ISP1100 (BX/1GB RAM/IDE DISK)
> 2. kernel 2.4.11-pre2-xfs, with highmem support
>
> 3. create ramdisk 512Mb and run "tiotest -c -f 110"

And what type of filesystems were used? I am presuming XFS.

> 4.
>
> __alloc_pages: 0-order allocation failed (gfp=0x3d0/0) from c0127fe9
> __alloc_pages: 0-order allocation failed (gfp=0x2f0/0) from c0127fe9
> __alloc_pages: 0-order allocation failed (gfp=0x70/0) from c0127fe9
> __alloc_pages: 0-order allocation failed (gfp=0x2f0/0) from c0127fe9
> __alloc_pages: 0-order allocation failed (gfp=0x70/0) from c0127fe9
> __alloc_pages: 0-order allocation failed (gfp=0x2f0/0) from c0127fe9
> __alloc_pages: 0-order allocation failed (gfp=0x70/0) from c0127fe9
> __alloc_pages: 0-order allocation failed (gfp=0x3f0/0) from c0127fe9
> __alloc_pages: 0-order allocation failed (gfp=0x3f0/0) from c0127fe9
> __alloc_pages: 0-order allocation failed (gfp=0x3f0/0) from c0127fe9
> __alloc_pages: 0-order allocation failed (gfp=0x70/0) from c0127fe9
> __alloc_pages: 0-order allocation failed (gfp=0x2f0/0) from c0127fe9
> __alloc_pages: 0-order allocation failed (gfp=0x2f0/0) from c0127fe9
> __alloc_pages: 0-order allocation failed (gfp=0x70/0) from c0127fe9

Can you map that address onto a symbol by any chance?

Steve

p.s. [email protected] is a good place to mail things like this,
messages posted to just linux-kernel tend to get lost in the noise.

>
> 5. kernel compiled with gdb & have serial console.
>
> --
> bye.
> Andrey Nekrasov, SpyLOG.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>


2001-10-04 14:39:28

by Keith Owens

[permalink] [raw]
Subject: Re: 2.4.11-pre2-xfs

On Thu, 04 Oct 2001 09:01:36 -0500,
Steve Lord <[email protected]> wrote:
>> __alloc_pages: 0-order allocation failed (gfp=0x3d0/0) from c0127fe9
>Can you map that address onto a symbol by any chance?

ksymoops -A c0127fe9, using ksymoops >= 2.4.3.

2001-10-04 20:54:01

by Eric Sandeen

[permalink] [raw]
Subject: Re: 2.4.11-pre2-xfs

Hm, it works for me...

[root@iotest ramdisk]# uname -a
Linux iotest 2.4.11-pre2-xfs #1 SMP Thu Oct 4 14:17:48 CDT 2001 i686 unknown
[root@iotest /root]# free
total used free shared buffers cached
Mem: 1028964 56752 972212 0 2092 24800
-/+ buffers/cache: 29860 999104
Swap: 530136 0 530136
[root@iotest /root]# modprobe rd rd_size=600000 rd_blocksize=512
[root@iotest /root]# mkfs.xfs -q -f /dev/ram
[root@iotest /root]# mount /dev/ram /mnt/ramdisk/
[root@iotest /root]# cd /mnt/ramdisk/
[root@iotest ramdisk]# /root/tiobench-0.3.1/tiotest -c -f 110
Tiotest results for 4 concurrent io threads:

,----------------------------------------------------------------------.
| Item | Time | Rate | Usr CPU | Sys CPU |
+-----------------------+----------+--------------+----------+---------+
| Write 440 MBs | 5.3 s | 83.600 MB/s | 2.3 % | 193.4 % |
| Random Write 16 MBs | 0.2 s | 103.333 MB/s | 0.0 % | 198.4 % |
| Read 440 MBs | 3.9 s | 114.117 MB/s | 146.5 % | 52.9 % |
| Random Read 16 MBs | 0.1 s | 107.574 MB/s | 151.5 % | 41.3 % |
`----------------------------------------------------------------------'

Andrey Nekrasov <[email protected]> wrote:

> Hello.
>
> 1. hardware Intel ISP1100 (BX/1GB RAM/IDE DISK)
> 2. kernel 2.4.11-pre2-xfs, with highmem support
>
> 3. create ramdisk 512Mb and run "tiotest -c -f 110"
> 4.
>
> __alloc_pages: 0-order allocation failed (gfp=0x3d0/0) from c0127fe9

--
Eric Sandeen XFS for Linux http://oss.sgi.com/projects/xfs
[email protected] SGI, Inc.


2001-10-04 22:22:07

by Andrey Nekrasov

[permalink] [raw]
Subject: Re: 2.4.11-pre2-xfs

Hello Steve Lord,

> > 2. kernel 2.4.11-pre2-xfs, with highmem support
> > 3. create ramdisk 512Mb and run "tiotest -c -f 110"
>
> And what type of filesystems were used? I am presuming XFS.

ext2 & xfs , but whis test with ext2

> > 4.
> > __alloc_pages: 0-order allocation failed (gfp=0x3d0/0) from c0127fe9
> > __alloc_pages: 0-order allocation failed (gfp=0x2f0/0) from c0127fe9
> > __alloc_pages: 0-order allocation failed (gfp=0x70/0) from c0127fe9
> > __alloc_pages: 0-order allocation failed (gfp=0x2f0/0) from c0127fe9
> > __alloc_pages: 0-order allocation failed (gfp=0x70/0) from c0127fe9

> Can you map that address onto a symbol by any chance?

#/ksymoops-2.4.3/ksymoops -A c0127fe9 -m /boot/System.map
...

Adhoc c0127fe8 <_alloc_pages+18/20>

6.

...
swap_dup: Bad swap file entry 3f41e02c
VM: killing process forwarderng
swap_free: Bad swap offset entry 3ce50000
swap_free: Bad swap file entry 3f41e02c
swap_free: Bad swap offset entry 38bb5000
...

What is it? Kernel or may be my hardware problem?



7. Interesting result (xfs speed):

buran:~ # cat ram_disk_ext2
buran:/ramdisk0/tiobench-0.3.1 # while (true) do ./tiotest -c -f 110 ;
sleep
60; done
Tiotest results for 4 concurrent io threads:

,----------------------------------------------------------------------.
| Item | Time | Rate | Usr CPU | Sys CPU |
+-----------------------+----------+--------------+----------+---------+
| Write 440 MBs | 17.9 s | 24.646 MB/s | 0.7 % | 60.8 % |
| Random Write 16 MBs | 0.5 s | 28.593 MB/s | 1.8 % | 60.4 % |
| Read 440 MBs | 14.1 s | 31.167 MB/s | 28.3 % | 43.6 % |
| Random Read 16 MBs | 0.5 s | 33.751 MB/s | 30.2 % | 51.8 % |
----------------------------------------------------------------------'

buran:~ # cat ram_disk_xfs
buran:/ramdisk0/tiobench-0.3.1 # while (true) do ./tiotest -c -f 110 ;
sleep
60; done
Tiotest results for 4 concurrent io threads:

,----------------------------------------------------------------------.
| Item | Time | Rate | Usr CPU | Sys CPU |
+-----------------------+----------+--------------+----------+---------+
| Write 440 MBs | 7.9 s | 55.974 MB/s | 1.8 % | 71.4 % |
| Random Write 16 MBs | 0.3 s | 45.764 MB/s | 0.0 % | 55.6 % |
| Read 440 MBs | 11.1 s | 39.529 MB/s | 38.0 % | 34.3 % |
| Random Read 16 MBs | 0.5 s | 32.868 MB/s | 27.3 % | 42.1 % |
----------------------------------------------------------------------'






--
bye.
Andrey Nekrasov, SpyLOG.

2001-10-05 14:20:59

by Steve Lord

[permalink] [raw]
Subject: Re: 2.4.11-pre2-xfs

> Hello Steve Lord,
>
> > > 2. kernel 2.4.11-pre2-xfs, with highmem support
> > > 3. create ramdisk 512Mb and run "tiotest -c -f 110"
> >
> > And what type of filesystems were used? I am presuming XFS.
>
> ext2 & xfs , but whis test with ext2

OK, in which case I doubt that the changes XFS has in the kernel will
be influencing things - except xfs filesystems elsewhere on the system
will have hold of memory, although it should be reclaimable from ext2
just fine.

>
> > > 4.
> > > __alloc_pages: 0-order allocation failed (gfp=0x3d0/0) from c0127fe9
> > > __alloc_pages: 0-order allocation failed (gfp=0x2f0/0) from c0127fe9
> > > __alloc_pages: 0-order allocation failed (gfp=0x70/0) from c0127fe9
> > > __alloc_pages: 0-order allocation failed (gfp=0x2f0/0) from c0127fe9
> > > __alloc_pages: 0-order allocation failed (gfp=0x70/0) from c0127fe9
>
> > Can you map that address onto a symbol by any chance?
>
> #/ksymoops-2.4.3/ksymoops -A c0127fe9 -m /boot/System.map
> ...
>
> Adhoc c0127fe8 <_alloc_pages+18/20>

Oh well, thats really useful, maybe __alloc_pages should report on its
caller's caller.

>
> 6.
>
> ...
> swap_dup: Bad swap file entry 3f41e02c
> VM: killing process forwarderng
> swap_free: Bad swap offset entry 3ce50000
> swap_free: Bad swap file entry 3f41e02c
> swap_free: Bad swap offset entry 38bb5000
> ...
>
> What is it? Kernel or may be my hardware problem?


Probably kernel, but I am not really an expert on this part of the system,
is your swap a device or a file on a filesystem?

>
>
>
> 7. Interesting result (xfs speed):
>
> buran:~ # cat ram_disk_ext2
> buran:/ramdisk0/tiobench-0.3.1 # while (true) do ./tiotest -c -f 110 ;
> sleep
> 60; done
> Tiotest results for 4 concurrent io threads:
>
> ,----------------------------------------------------------------------.
> | Item | Time | Rate | Usr CPU | Sys CPU |
> +-----------------------+----------+--------------+----------+---------+
> | Write 440 MBs | 17.9 s | 24.646 MB/s | 0.7 % | 60.8 % |
> | Random Write 16 MBs | 0.5 s | 28.593 MB/s | 1.8 % | 60.4 % |
> | Read 440 MBs | 14.1 s | 31.167 MB/s | 28.3 % | 43.6 % |
> | Random Read 16 MBs | 0.5 s | 33.751 MB/s | 30.2 % | 51.8 % |
> ----------------------------------------------------------------------'
>
> buran:~ # cat ram_disk_xfs
> buran:/ramdisk0/tiobench-0.3.1 # while (true) do ./tiotest -c -f 110 ;
> sleep
> 60; done
> Tiotest results for 4 concurrent io threads:
>
> ,----------------------------------------------------------------------.
> | Item | Time | Rate | Usr CPU | Sys CPU |
> +-----------------------+----------+--------------+----------+---------+
> | Write 440 MBs | 7.9 s | 55.974 MB/s | 1.8 % | 71.4 % |
> | Random Write 16 MBs | 0.3 s | 45.764 MB/s | 0.0 % | 55.6 % |
> | Read 440 MBs | 11.1 s | 39.529 MB/s | 38.0 % | 34.3 % |
> | Random Read 16 MBs | 0.5 s | 32.868 MB/s | 27.3 % | 42.1 % |
> ----------------------------------------------------------------------'
>
>

That's good to see,

Thanks

Steve

>
>
>
>
> --
> bye.
> Andrey Nekrasov, SpyLOG.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>


2001-10-05 17:32:20

by Andrey Nekrasov

[permalink] [raw]
Subject: Re: 2.4.11-pre2-xfs

Hello Steve Lord,

> Oh well, thats really useful, maybe __alloc_pages should report on its
> caller's caller.

I am use gcc gcc version 2.95.2 19991024 (release).
May be with egcs will be better result?


> > ...
> > swap_dup: Bad swap file entry 3f41e02c
> > VM: killing process forwarderng
> > swap_free: Bad swap offset entry 3ce50000
> > swap_free: Bad swap file entry 3f41e02c
> > swap_free: Bad swap offset entry 38bb5000
> > ...
> >
> > What is it? Kernel or may be my hardware problem?


> Probably kernel, but I am not really an expert on this part of the system,
> is your swap a device or a file on a filesystem?

/dev/hdg1 1 4145 2089048+ 82 Linux swap


--
bye.
Andrey Nekrasov, SpyLOG.