-sub cache_off () {
- $CACHEFILE = glob ("/proc/fs/lustre/llite/*/max_cached_mb");
- open(PTR, $CACHEFILE) || die "Cannot open $tempfile: $!\n";
- $CACHESZ = 0 + <PTR>;
- close PTR;
- system("echo 0 >> $CACHEFILE");
+# cache_mod subroutine sets global variable $CACHESZ and sets max_cached_mb
+# to 256 * system page size in MB.
+sub cache_mod () {
+ use POSIX qw(sysconf _SC_PAGESIZE);
+ $CACHESZ = `lctl get_param -n llite.$FSNAME-*.max_cached_mb`;
+ if ( $? ) {
+ die "Read llite.$FSNAME-*.max_cached_mb error: $?\n";
+ }
+
+ $CACHESZ = `echo "$CACHESZ" | grep max_cached_mb | awk '{print \$2}'`;
+ my $pagesize = sysconf(_SC_PAGESIZE);
+ $req_cache_mb = ($pagesize * 256)/ $MBSIZE;
+
+ system("lctl set_param -n llite.$FSNAME-*.max_cached_mb=$req_cache_mb");
+ if ( $? ) {
+ die "Set llite.$FSNAME-*.max_cached_mb error: $?\n";
+ }