Whamcloud - gitweb
Merge b_intent into b_md:
authorpschwan <pschwan>
Tue, 21 Jan 2003 18:02:27 +0000 (18:02 +0000)
committerpschwan <pschwan>
Tue, 21 Jan 2003 18:02:27 +0000 (18:02 +0000)
** You will need to update your kernel, Lustre patch version 8 **

Highlights:

- the MDS now returns a block count for non-regular files (for which it has
  the authoritative size information)
- we set a DCACHE_LUSTRE_INVALID flag on dentries when we alienate them; this
  flag is now used in the VFS to help us avoid a race condition with
  revalidate2 and dentry alienation
- remove the ldlm_lock_match CBPENDING flag, which severely violates a DLM
  invariant
- fix enqueue_ordered_lock matching
- we reintroduced bug 72 by accident; fixed again, with a better comment.
- small fixes to create.pl/rename.pl

lustre/tests/acceptance-metadata-single.sh [new file with mode: 0644]
lustre/tests/rename.pl

diff --git a/lustre/tests/acceptance-metadata-single.sh b/lustre/tests/acceptance-metadata-single.sh
new file mode 100644 (file)
index 0000000..77bddbe
--- /dev/null
@@ -0,0 +1,96 @@
+#!/bin/sh
+set -e
+
+#
+# Runs create.pl and rename.pl on a single mountpoint with increasing
+# load, varying debug levels
+#
+
+SRCDIR="`dirname $0`/"
+. $SRCDIR/common.sh
+
+MNT=${MNT:-/mnt/lustre}
+
+debug_client_on
+echo "create.pl, 1 mount, 1 thread, 10 ops, debug on"
+perl create.pl -- $MNT -1 10
+echo "create.pl, 1 mount, 1 thread, 100 ops, debug on"
+perl create.pl --silent -- $MNT -1 100
+echo "rename.pl, 1 mount, 1 thread, 10 ops, debug on"
+perl rename.pl $MNT 10
+echo "rename.pl, 1 mount, 1 thread, 100 ops, debug on"
+perl rename.pl --silent $MNT 100
+
+debug_client_off
+echo "create.pl, 1 mount, 1 thread, 1000 ops, debug off"
+perl create.pl --silent -- $MNT -1 1000
+echo "rename.pl, 1 mount, 1 thread, 1000 ops, debug off"
+perl rename.pl --silent $MNT 1000
+
+debug_client_on
+echo "create.pl, 1 mount, 2 threads, 100 ops, debug on"
+perl create.pl --silent -- $MNT -1 100 &
+perl create.pl --silent -- $MNT -1 100 &
+wait
+echo "rename.pl, 1 mount, 2 thread, 1000 ops, debug on"
+perl rename.pl --silent $MNT 1000 &
+perl rename.pl --silent $MNT 1000 &
+wait
+
+debug_client_off
+echo "create.pl, 1 mount, 2 threads, 2000 ops, debug off"
+perl create.pl --silent -- $MNT -1 2000 &
+perl create.pl --silent -- $MNT -1 2000 &
+wait
+echo "rename.pl, 1 mount, 2 threads, 2000 ops, debug off"
+perl rename.pl --silent $MNT 2000 &
+perl rename.pl --silent $MNT 2000 &
+wait
+
+debug_client_on
+echo "create.pl, 1 mount, 4 threads, 100 ops, debug on"
+for i in `seq 1 4`; do
+  perl create.pl --silent -- $MNT -1 100 &
+done
+wait
+echo "rename.pl, 1 mount, 4 threads, 2000 ops, debug on"
+for i in `seq 1 4`; do
+  perl rename.pl --silent $MNT 2000 &
+done
+wait
+
+debug_client_off
+echo "create.pl, 1 mount, 4 threads, 2000 ops, debug off"
+for i in `seq 1 4`; do
+  perl create.pl --silent -- $MNT -1 2000 &
+done
+wait
+echo "rename.pl, 1 mount, 4 threads, 2000 ops, debug off"
+for i in `seq 1 4`; do
+  perl rename.pl --silent $MNT 2000 &
+done
+wait
+
+debug_client_on
+echo "create.pl, 1 mount, 8 threads, 100 ops, debug on"
+for i in `seq 1 8`; do
+  perl create.pl --silent -- $MNT -1 100 &
+done
+wait
+echo "rename.pl, 1 mount, 8 threads, 2000 ops, debug on"
+for i in `seq 1 8`; do
+  perl rename.pl --silent $MNT 2000 &
+done
+wait
+
+debug_client_off
+echo "create.pl, 1 mount, 8 threads, 2000 ops, debug off"
+for i in `seq 1 8`; do
+  perl create.pl --silent -- $MNT -1 2000 &
+done
+wait
+echo "rename.pl, 1 mount, 8 threads, 2000 ops, debug off"
+for i in `seq 1 8`; do
+  perl rename.pl --silent $MNT 2000 &
+done
+wait
index b737bc5..47b8b44 100644 (file)
@@ -21,6 +21,7 @@ GetOptions("silent!"=> \$silent,
 
 my $mtpt = shift || usage();
 my $i = shift || usage();
+my $total = $i;
 my $files = 6;
 my $dirs = 3;
 my $mcreate = 0; # should we use mcreate or open?
@@ -41,7 +42,6 @@ while ($k--) {
     $j = $files;
     while ($j--) {
         `./mcreate $path/$j`;
-        print "mcreate $path/$j failed\n" if $?;
     }
 }
 
@@ -53,8 +53,11 @@ while ($i--) {
     $d = int(rand() * $dirs);
     $f1 = int(rand() * $files);
     $f2 = int(rand() * $files);
-    print "[$$] $mtpt$which/$d/$f1 $mtpt$which/$d/$f2 ...\n";
+    print "[$$] $mtpt$which/$d/$f1 $mtpt$which/$d/$f2 ...\n" if !$silent;
     my $rc = rename "$mtpt$which/$d/$f1", "$mtpt$which/$d/$f2";
     print "[$$] done: $rc\n" if !$silent;
+    if (($total - $i) % 100 == 0) {
+        print STDERR "[" . $$ . "]" . ($total - $i) . " operations\n";
+    }
 }
 print "Done.\n";