Whamcloud - gitweb
Branch b1_6
authorjohann <johann>
Mon, 21 Jul 2008 15:07:00 +0000 (15:07 +0000)
committerjohann <johann>
Mon, 21 Jul 2008 15:07:00 +0000 (15:07 +0000)
b=9945
i=bzzz
i=adilger

add warning when underlying device queue is not tuned to for large I/O
requests.

lustre/obdfilter/filter.c

index 1e991ba..333c6a2 100644 (file)
@@ -1684,6 +1684,7 @@ int filter_common_setup(struct obd_device *obd, obd_count len, void *buf,
         __u8 *uuid_ptr;
         char *str, *label;
         char ns_name[48];
+        request_queue_t *q;
         int rc;
         ENTRY;
 
@@ -1786,6 +1787,15 @@ int filter_common_setup(struct obd_device *obd, obd_count len, void *buf,
         if (rc)
                 GOTO(err_post, rc);
 
+        q = bdev_get_queue(mnt->mnt_sb->s_bdev);
+        if (q->max_sectors < q->max_hw_sectors &&
+            q->max_sectors < PTLRPC_MAX_BRW_SIZE >> 9)
+                LCONSOLE_INFO("%s: underlying device %s should be tuned "
+                              "for larger I/O requests: max_sectors = %u "
+                              "could be up to max_hw_sectors=%u\n",
+                              obd->obd_name, mnt->mnt_sb->s_id,
+                              q->max_sectors, q->max_hw_sectors);
+
         uuid_ptr = fsfilt_uuid(obd, obd->u.obt.obt_sb);
         if (uuid_ptr != NULL) {
                 class_uuid_unparse(uuid_ptr, &uuid);