revert sg segment size ifdefs
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Tue, 18 Sep 2007 10:14:37 +0000 (12:14 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Tue, 16 Oct 2007 09:24:44 +0000 (11:24 +0200)
This reverts sg segment size ifdefs that the current code has in order
to provide a way to reduce sgpool memory consumption.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
drivers/scsi/scsi_lib.c

index b6e6d801768b140235d7e0c565753c4f4bb78a29..1a7e8d811a08799c3fb08aa13375d117e99636f3 100644 (file)
 #define SG_MEMPOOL_NR          ARRAY_SIZE(scsi_sg_pools)
 #define SG_MEMPOOL_SIZE                2
 
+/*
+ * The maximum number of SG segments that we will put inside a scatterlist
+ * (unless chaining is used). Should ideally fit inside a single page, to
+ * avoid a higher order allocation.
+ */
+#define SCSI_MAX_SG_SEGMENTS   128
+
 struct scsi_host_sg_pool {
        size_t          size;
        char            *name;
@@ -45,9 +52,15 @@ struct scsi_host_sg_pool {
 static struct scsi_host_sg_pool scsi_sg_pools[] = {
        SP(8),
        SP(16),
+#if (SCSI_MAX_SG_SEGMENTS > 16)
        SP(32),
+#if (SCSI_MAX_SG_SEGMENTS > 32)
        SP(64),
+#if (SCSI_MAX_SG_SEGMENTS > 64)
        SP(128),
+#endif
+#endif
+#endif
 };
 #undef SP
 
@@ -684,13 +697,6 @@ static struct scsi_cmnd *scsi_end_request(struct scsi_cmnd *cmd, int uptodate,
        return NULL;
 }
 
-/*
- * The maximum number of SG segments that we will put inside a scatterlist
- * (unless chaining is used). Should ideally fit inside a single page, to
- * avoid a higher order allocation.
- */
-#define SCSI_MAX_SG_SEGMENTS   128
-
 /*
  * Like SCSI_MAX_SG_SEGMENTS, but for archs that have sg chaining. This limit
  * is totally arbitrary, a setting of 2048 will get you at least 8mb ios.
@@ -708,15 +714,21 @@ static inline unsigned int scsi_sgtable_index(unsigned short nents)
        case 9 ... 16:
                index = 1;
                break;
+#if (SCSI_MAX_SG_SEGMENTS > 16)
        case 17 ... 32:
                index = 2;
                break;
+#if (SCSI_MAX_SG_SEGMENTS > 32)
        case 33 ... 64:
                index = 3;
                break;
-       case 65 ... SCSI_MAX_SG_SEGMENTS:
+#if (SCSI_MAX_SG_SEGMENTS > 64)
+       case 65 ... 128:
                index = 4;
                break;
+#endif
+#endif
+#endif
        default:
                printk(KERN_ERR "scsi: bad segment count=%d\n", nents);
                BUG();