Description: lfs setstripe enhancement
Details : Make lfs setstripe understand 'k', 'm' and 'g' for stripe size.
+Severity : normal
+Bugzilla : 12398
+Description: testing performance impact of enabling checksumming
+Details : enable checksum by default, allow --disable-checksum
+ configure option and "-o nochecksum" mount option
+
--------------------------------------------------------------------------------
2007-08-10 Cluster File Systems, Inc. <info@clusterfs.com>
])
#
+# LC_CONFIG_CHECKSUM
+#
+# do checksum of bulk data between client and OST
+#
+AC_DEFUN([LC_CONFIG_CHECKSUM],
+[AC_MSG_CHECKING([whether to enable data checksum support])
+AC_ARG_ENABLE([checksum],
+ AC_HELP_STRING([--disable-checksum],
+ [disable data checksum support]),
+ [],[enable_checksum='yes'])
+AC_MSG_RESULT([$enable_checksum])
+if test x$enable_checksum != xno ; then
+ AC_DEFINE(ENABLE_CHECKSUM, 1, do data checksums)
+fi
+])
+
+#
# LC_CONFIG_HEALTH_CHECK_WRITE
#
# Turn off the actual write to the disk
LC_CONFIG_BACKINGFS
fi
LC_CONFIG_PINGER
+LC_CONFIG_CHECKSUM
LC_CONFIG_LIBLUSTRE_RECOVERY
LC_CONFIG_QUOTA
LC_CONFIG_HEALTH_CHECK_WRITE
spin_lock_init(&cli->cl_write_page_hist.oh_lock);
spin_lock_init(&cli->cl_read_offset_hist.oh_lock);
spin_lock_init(&cli->cl_write_offset_hist.oh_lock);
+#ifdef ENABLE_CHECKSUM
+ cli->cl_checksum = 1;
+#endif
/* This value may be changed at connect time in
ptlrpc_connect_interpret. */
list_add_tail(&sbi->ll_list, &ll_super_blocks);
spin_unlock(&ll_sb_lock);
+#ifdef ENABLE_CHECKSUM
+ sbi->ll_flags |= LL_SBI_CHECKSUM;
+#endif
+
#ifdef HAVE_EXPORT___IGET
INIT_LIST_HEAD(&sbi->ll_deathrow);
spin_lock_init(&sbi->ll_deathrow_lock);
#endif
- for (i = 0; i <= LL_PROCESS_HIST_MAX; i++) {
+ for (i = 0; i <= LL_PROCESS_HIST_MAX; i++) {
spin_lock_init(&sbi->ll_rw_extents_info.pp_extents[i].pp_r_hist.oh_lock);
spin_lock_init(&sbi->ll_rw_extents_info.pp_extents[i].pp_w_hist.oh_lock);
}
struct obd_connect_data *data = NULL;
struct lustre_md lmd;
obd_valid valid;
- int size, err;
+ int size, err, checksum;
ENTRY;
obd = class_name2obd(md);
GOTO(out_root, err);
}
+ checksum = sbi->ll_flags & LL_SBI_CHECKSUM;
+ err = obd_set_info_async(sbi->ll_dt_exp, strlen("checksum"),"checksum",
+ sizeof(checksum), &checksum, NULL);
+
/* making vm readahead 0 for 2.4.x. In the case of 2.6.x,
backing dev info assigned to inode mapping is used for
determining maximal readahead. */
goto next;
}
+ tmp = ll_set_opt("checksum", s1, LL_SBI_CHECKSUM);
+ if (tmp) {
+ *flags |= tmp;
+ goto next;
+ }
+ tmp = ll_set_opt("nochecksum", s1, LL_SBI_CHECKSUM);
+ if (tmp) {
+ *flags &= ~tmp;
+ goto next;
+ }
+
LCONSOLE_ERROR_MSG(0x152, "Unknown option '%s', won't mount.\n",
s1);
RETURN(-EINVAL);