<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <!--Converted with LaTeX2HTML 98.2 beta6 (August 14th, 1998) original version by: Nikos Drakos, CBLU, University of Leeds * revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan * with significant contributions from: Jens Lippmann, Marek Rouchal, Martin Wilck and others --> <HTML> <HEAD> <TITLE>Linux Client with Linux Kernel-Space NFS server</TITLE> <META NAME="description" CONTENT="Linux Client with Linux Kernel-Space NFS server"> <META NAME="keywords" CONTENT="nfs"> <META NAME="resource-type" CONTENT="document"> <META NAME="distribution" CONTENT="global"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <LINK REL="STYLESHEET" HREF="nfs.css"> <LINK REL="next" HREF="node25.html"> <LINK REL="previous" HREF="node21.html"> <LINK REL="up" HREF="nfs.html"> <LINK REL="next" HREF="node25.html"> </HEAD> <BODY > <!--Navigation Panel--> <A NAME="tex2html275" HREF="node25.html"> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="/usr/lib/latex2html/icons.png/next_motif.png"></A> <A NAME="tex2html273" HREF="nfs.html"> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="/usr/lib/latex2html/icons.png/up_motif.png"></A> <A NAME="tex2html267" HREF="node23.html"> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="/usr/lib/latex2html/icons.png/previous_motif.png"></A> <BR> <B> Next:</B> <A NAME="tex2html276" HREF="node25.html">About this document ...</A> <B> Up:</B> <A NAME="tex2html274" HREF="nfs.html">NFS server in Linux:</A> <B> Previous:</B> <A NAME="tex2html268" HREF="node23.html">Solaris 7/x86 client</A> <BR> <BR> <!--End of Navigation Panel--> <H1><A NAME="SECTION00090000000000000000"></A> <A NAME="linux"></A> <BR> Linux Client with Linux Kernel-Space NFS server </H1> <P> Here is the Connectathon testsuites on Linux client. <P> <PRE> Start tests on path /mnt/nfstest/osmium.test [y/n]? sh ./runtests -a -t /mnt/nfstest/osmium.test Starting BASIC tests: test directory /mnt/nfstest/osmium.test (arg: -t) test1: File and directory creation test created 155 files 62 directories 5 levels deep in 1.6 seconds test1 ok. test2: File and directory removal test removed 155 files 62 directories 5 levels deep in 0.24 seconds test2 ok. test3: lookups across mount point 500 getcwd and stat calls in 0.0 seconds test3 ok. test4: setattr, getattr, and lookup 1000 chmods and stats on 10 files in 1.13 seconds test4 ok. test5: read and write wrote 1048576 byte file 10 times in 1.95 seconds (5365632 bytes/sec) read 1048576 byte file 10 times in 0.3 seconds (281572502 bytes/sec) test5 ok. test6: readdir 20500 entries read, 200 files in 0.59 seconds test6 ok. test7: link and rename 200 renames and links on 10 files in 0.33 seconds test7 ok. test8: symlink and readlink 400 symlinks and readlinks on 10 files in 0.43 seconds test8 ok. test9: statfs 1500 statfs calls in 0.65 seconds test9 ok. Congratulations, you passed the basic tests! GENERAL TESTS: directory /mnt/nfstest/osmium.test cd /mnt/nfstest/osmium.test; rm -f Makefile runtests runtests.wrk *.sh *.c mkdummy rmdummy nroff.in makefile.tst cp Makefile runtests runtests.wrk *.sh *.c mkdummy rmdummy nroff.in makefile.tst /mnt/nfstest/osmium.test Small Compile File: "smcomp.time" Size: 661 Filetype: Regular File Mode: (0666/-rw-rw-rw-) Uid: (10000/ spec) Gid: (10000/ spec) Device: 0,12 Inode: 12303 Links: 1 Access: Mon Jun 21 16:03:57 1999(00000.00:00:01) Modify: Mon Jun 21 16:03:58 1999(00000.00:00:00) Change: Mon Jun 21 16:03:58 1999(00000.00:00:00) Tbl File: "tbl.time" Size: 1625 Filetype: Regular File Mode: (0666/-rw-rw-rw-) Uid: (10000/ spec) Gid: (10000/ spec) Device: 0,12 Inode: 12306 Links: 1 Access: Mon Jun 21 16:03:58 1999(00000.00:00:00) Modify: Mon Jun 21 16:03:58 1999(00000.00:00:00) Change: Mon Jun 21 16:03:58 1999(00000.00:00:00) Nroff File: "nroff.time" Size: 654 Filetype: Regular File Mode: (0666/-rw-rw-rw-) Uid: (10000/ spec) Gid: (10000/ spec) Device: 0,12 Inode: 12308 Links: 1 Access: Mon Jun 21 16:03:58 1999(00000.00:00:00) Modify: Mon Jun 21 16:03:58 1999(00000.00:00:00) Change: Mon Jun 21 16:03:58 1999(00000.00:00:00) Large Compile File: "lrgcomp.time" Size: 1595 Filetype: Regular File Mode: (0666/-rw-rw-rw-) Uid: (10000/ spec) Gid: (10000/ spec) Device: 0,12 Inode: 12305 Links: 1 Access: Mon Jun 21 16:03:58 1999(00000.00:00:02) Modify: Mon Jun 21 16:04:00 1999(00000.00:00:00) Change: Mon Jun 21 16:04:00 1999(00000.00:00:00) Four simultaneous large compiles File: "4lrg.time" Size: 4460 Filetype: Regular File Mode: (0666/-rw-rw-rw-) Uid: (10000/ spec) Gid: (10000/ spec) Device: 0,12 Inode: 12307 Links: 1 Access: Mon Jun 21 16:04:00 1999(00000.00:00:02) Modify: Mon Jun 21 16:04:02 1999(00000.00:00:00) Change: Mon Jun 21 16:04:02 1999(00000.00:00:00) Makefile File: "makefile.time" Size: 645 Filetype: Regular File Mode: (0666/-rw-rw-rw-) Uid: (10000/ spec) Gid: (10000/ spec) Device: 0,12 Inode: 12359 Links: 1 Access: Mon Jun 21 16:04:02 1999(00000.00:00:02) Modify: Mon Jun 21 16:04:03 1999(00000.00:00:01) Change: Mon Jun 21 16:04:03 1999(00000.00:00:01) General tests complete SPECIAL TESTS: directory /mnt/nfstest/osmium.test cd /mnt/nfstest/osmium.test; rm -f runtests runtests.wrk READWIN.txt Makefile op_unlk op_ren op_chmod dupreq excltest negseek rename holey truncate nfsidem nstat stat stat2 touchn fstat rewind telldir bigfile freesp cp runtests runtests.wrk READWIN.txt Makefile op_unlk op_ren op_chmod dupreq excltest negseek rename holey truncate nfsidem nstat stat stat2 touchn fstat rewind telldir bigfile freesp /mnt/nfstest/osmium.test check for proper open/unlink operation nfsjunk files before unlink: ./nfsfMUDri open; unlink ret = 0 nfsjunk files after unlink: -rw-rw-rw- 1 spec spec 0 Jun 21 16:04 .nfs000030190000000f data compare ok nfsjunk files after close: test completed successfully. check for proper open/rename operation nfsjunk files before rename: ./nfsbebYkBv open; rename ret = 0 nfsjunk files after rename: -rwxrwxrwx 1 spec spec 0 Jun 21 16:04 .nfs0000301a00000010 data compare ok nfsjunk files after close: test completed successfully. check for proper open/chmod 0 operation testfile before chmod: -rw-rw-rw- 1 spec spec 0 Jun 21 16:04 ./nfslxPegn ./nfslxPegn open; chmod ret = 0 testfile after chmod: ---------- 1 spec spec 0 Jun 21 16:04 ./nfslxPegn data compare ok testfile after write/read: ---------- 1 spec spec 100 Jun 21 16:04 ./nfslxPegn test completed successfully. check for lost reply on non-idempotent requests 100 tries test exclusive create. test negative seek, you should get: read: Invalid argument or lseek: Invalid argument test rename test truncate truncate succeeded test holey file support Holey file test ok second check for lost reply on non-idempotent requests testing 50 idempotencies in directory "testdir" test rewind support test telldir cookies (slow) write/read 30 MB file test freesp and file size fcntl(...F_FREESP...) not available on this platform. Special tests complete Starting LOCKING tests: test directory /mnt/nfstest/osmium.test (arg: -t) Testing native pre-LFS locking Creating parent/child synchronization pipes. Test #1 - Test regions of an unlocked file. Parent: 1.1 - F_TEST [ 0, 1] PASSED. Parent: 1.2 - F_TEST [ 0, ENDING] PASSED. Parent: 1.3 - F_TEST [ 0,7fffffff] PASSED. Parent: 1.4 - F_TEST [ 1, 1] PASSED. Parent: 1.5 - F_TEST [ 1, ENDING] PASSED. Parent: 1.6 - F_TEST [ 1,7fffffff] PASSED. Parent: 1.7 - F_TEST [7fffffff, 1] PASSED. Parent: 1.8 - F_TEST [7fffffff, ENDING] PASSED. Parent: 1.9 - F_TEST [7fffffff,7fffffff] PASSED. Test #2 - Try to lock the whole file. Parent: 2.0 - F_TLOCK [ 0, ENDING] PASSED. Child: 2.1 - F_TEST [ 0, 1] PASSED. Child: 2.2 - F_TEST [ 0, ENDING] PASSED. Child: 2.3 - F_TEST [ 0,7fffffff] PASSED. Child: 2.4 - F_TEST [ 1, 1] PASSED. Child: 2.5 - F_TEST [ 1, ENDING] PASSED. Child: 2.6 - F_TEST [ 1,7fffffff] PASSED. Child: 2.7 - F_TEST [7fffffff, 1] PASSED. Child: 2.8 - F_TEST [7fffffff, ENDING] PASSED. Child: 2.9 - F_TEST [7fffffff,7fffffff] PASSED. Parent: 2.10 - F_ULOCK [ 0, ENDING] PASSED. Test #3 - Try to lock just the 1st byte. Parent: 3.0 - F_TLOCK [ 0, 1] PASSED. Child: 3.1 - F_TEST [ 0, 1] PASSED. Child: 3.2 - F_TEST [ 0, ENDING] PASSED. Child: 3.3 - F_TEST [ 1, 1] PASSED. Child: 3.4 - F_TEST [ 1, ENDING] PASSED. Parent: 3.5 - F_ULOCK [ 0, 1] PASSED. Test #4 - Try to lock the 2nd byte, test around it. Parent: 4.0 - F_TLOCK [ 1, 1] PASSED. Child: 4.1 - F_TEST [ 0, 1] PASSED. Child: 4.2 - F_TEST [ 0, 2] PASSED. Child: 4.3 - F_TEST [ 0, ENDING] PASSED. Child: 4.4 - F_TEST [ 1, 1] PASSED. Child: 4.5 - F_TEST [ 1, 2] PASSED. Child: 4.6 - F_TEST [ 1, ENDING] PASSED. Child: 4.7 - F_TEST [ 2, 1] PASSED. Child: 4.8 - F_TEST [ 2, 2] PASSED. Child: 4.9 - F_TEST [ 2, ENDING] PASSED. Parent: 4.10 - F_ULOCK [ 1, 1] PASSED. Test #5 - Try to lock 1st and 2nd bytes, test around them. Parent: 5.0 - F_TLOCK [ 0, 1] PASSED. Parent: 5.1 - F_TLOCK [ 2, 1] PASSED. Child: 5.2 - F_TEST [ 0, 1] PASSED. Child: 5.3 - F_TEST [ 0, 2] PASSED. Child: 5.4 - F_TEST [ 0, ENDING] PASSED. Child: 5.5 - F_TEST [ 1, 1] PASSED. Child: 5.6 - F_TEST [ 1, 2] PASSED. Child: 5.7 - F_TEST [ 1, ENDING] PASSED. Child: 5.8 - F_TEST [ 2, 1] PASSED. Child: 5.9 - F_TEST [ 2, 2] PASSED. Child: 5.10 - F_TEST [ 2, ENDING] PASSED. Child: 5.11 - F_TEST [ 3, 1] PASSED. Child: 5.12 - F_TEST [ 3, 2] PASSED. Child: 5.13 - F_TEST [ 3, ENDING] PASSED. Parent: 5.14 - F_ULOCK [ 0, 1] PASSED. Parent: 5.15 - F_ULOCK [ 2, 1] PASSED. Test #6 - Try to lock the MAXEOF byte. Parent: 6.0 - F_TLOCK [7fffffff, 1] PASSED. Child: 6.1 - F_TEST [7ffffffe, 1] PASSED. Child: 6.2 - F_TEST [7ffffffe, 2] PASSED. Child: 6.3 - F_TEST [7ffffffe, ENDING] PASSED. Child: 6.4 - F_TEST [7fffffff, 1] PASSED. Child: 6.5 - F_TEST [7fffffff, 2] PASSED. Child: 6.6 - F_TEST [7fffffff, ENDING] PASSED. Child: 6.7 - F_TEST [80000000, ENDING] PASSED. Child: 6.8 - F_TEST [80000000, 1] PASSED. Child: 6.9 - F_TEST [80000000,7fffffff] PASSED. Child: 6.10 - F_TEST [80000000,80000000] PASSED. Parent: 6.11 - F_ULOCK [7fffffff, 1] PASSED. Test #7 - Test parent/child mutual exclusion. Parent: 7.0 - F_TLOCK [ 0, 4] PASSED. Parent: Wrote 'aaaa' to testfile [ 0, 4 ]. Parent: Now free child to run, should block on lock. Parent: Check data in file to insure child blocked. Parent: Read 'aaaa' from testfile [ 0, 4 ]. Parent: 7.1 - COMPARE [ 0, 4] PASSED. Parent: Now unlock region so child will unblock. Parent: 7.2 - F_ULOCK [ 0, 4] PASSED. Child: 7.3 - F_LOCK [ 0, 4] PASSED. Child: Write child's version of the data and release lock. Parent: Now try to regain lock, parent should block. Child: Wrote 'bbbb' to testfile [ 0, 4 ]. Child: 7.4 - F_ULOCK [ 0, 4] PASSED. Parent: 7.5 - F_LOCK [ 0, 4] PASSED. Parent: Check data in file to insure child unblocked. Parent: Read 'bbbb' from testfile [ 0, 4 ]. Parent: 7.6 - COMPARE [ 0, 4] PASSED. Parent: 7.7 - F_ULOCK [ 0, 4] PASSED. Test #8 - Rate test performing lock/unlock cycles. Parent: Performed 1000 lock/unlock cycles in 710 msecs. [169014 lpm]. Test #10 - Make sure a locked region is split properly. Parent: 10.0 - F_TLOCK [ 0, 3] PASSED. Parent: 10.1 - F_ULOCK [ 1, 1] PASSED. Child: 10.2 - F_TEST [ 0, 1] PASSED. Child: 10.3 - F_TEST [ 2, 1] PASSED. Child: 10.4 - F_TEST [ 3, ENDING] PASSED. Child: 10.5 - F_TEST [ 1, 1] PASSED. Parent: 10.6 - F_ULOCK [ 0, 1] PASSED. Parent: 10.7 - F_ULOCK [ 2, 1] PASSED. Child: 10.8 - F_TEST [ 0, 3] PASSED. Parent: 10.9 - F_ULOCK [ 0, 1] PASSED. Parent: 10.10 - F_TLOCK [ 1, 3] PASSED. Parent: 10.11 - F_ULOCK [ 2, 1] PASSED. Child: 10.12 - F_TEST [ 1, 1] PASSED. Child: 10.13 - F_TEST [ 3, 1] PASSED. Child: 10.14 - F_TEST [ 4, ENDING] PASSED. Child: 10.15 - F_TEST [ 2, 1] PASSED. Child: 10.16 - F_TEST [ 0, 1] PASSED. Test #11 - Make sure close() releases the process's locks. Parent: 11.0 - F_TLOCK [ 0, ENDING] PASSED. Parent: Closed testfile. Child: 11.1 - F_TLOCK [ 0, ENDING] PASSED. Child: 11.2 - F_ULOCK [ 0, ENDING] PASSED. Parent: 11.3 - F_TLOCK [ 1d, 5b7] PASSED. Parent: 11.4 - F_TLOCK [ 2000, 57] PASSED. Parent: Closed testfile. Child: 11.5 - F_TLOCK [ 0, ENDING] PASSED. Child: 11.6 - F_ULOCK [ 0, ENDING] PASSED. Parent: Wrote '123456789abcdef' to testfile [ 0, 16 ]. Parent: 11.7 - F_TLOCK [ 0, ENDING] PASSED. Parent: Wrote '123456789abcdef' to testfile [ 13, 16 ]. Parent: Closed testfile. Child: 11.8 - F_TLOCK [ 0, ENDING] PASSED. Child: 11.9 - F_ULOCK [ 0, ENDING] PASSED. Parent: Wrote '123456789abcdef' to testfile [ 0, 16 ]. Parent: 11.10 - F_TLOCK [ 0, ENDING] PASSED. Parent: Truncated testfile. Parent: Closed testfile. Child: 11.11 - F_TLOCK [ 0, ENDING] PASSED. Child: 11.12 - F_ULOCK [ 0, ENDING] PASSED. Test #12 - Signalled process should release locks. Child: 12.0 - F_TLOCK [ 0, ENDING] PASSED. Parent: Killed child process. Parent: 12.1 - F_TLOCK [ 0, ENDING] PASSED. Test #13 - Check locking and mmap semantics. Parent: 13.0 - F_TLOCK [ ffe, ENDING] PASSED. Parent: 13.1 - mmap [ 0, 1000] WARNING! Parent: **** Expected EAGAIN, returned success... Parent: 13.2 - F_ULOCK [ 0, ENDING] PASSED. Parent: unmap testfile. Parent: 13.3 - mmap [ 0, 1000] PASSED. Parent: 13.4 - F_TLOCK [ ffe, ENDING] PASSED. ** PARENT pass 1 results: 44/44 pass, 1/1 warn, 0/0 fail (pass/total). ** CHILD pass 1 results: 64/64 pass, 0/0 warn, 0/0 fail (pass/total). Congratulations, you passed the locking tests! All tests completed </PRE> <P> <BR><HR> <ADDRESS> <I>H.J. Lu</I> <BR><I>1999-08-15</I> </ADDRESS> </BODY> </HTML>