On Sat, 29 Mar 2008 14:09:29 -0400 Douglas Gilbert <dougg@xxxxxxxxxx> wrote: > FUJITA Tomonori wrote: > > Currently, the maximum amount of RAM that scsi_debug can allocate is > > 4GB. This patch increases it to 2TB; scsi_debug can allocates 2TB > > memory and export it as if it were 2TB scsi disk. > > > > Signed-off-by: FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> > > Cc: Douglas Gilbert <dougg@xxxxxxxxxx> > > Cc: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> > > --- > > drivers/scsi/scsi_debug.c | 6 +++--- > > 1 files changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c > > index c98559e..1b6a6d8 100644 > > --- a/drivers/scsi/scsi_debug.c > > +++ b/drivers/scsi/scsi_debug.c > > @@ -1949,7 +1949,7 @@ static void __init init_all_queued(void) > > } > > > > static void __init sdebug_build_parts(unsigned char *ramp, > > - unsigned int store_size) > > + unsigned long store_size) > > { > > struct partition * pp; > > int starts[SDEBUG_MAX_PARTS + 2]; > > @@ -2476,14 +2476,14 @@ static void do_remove_driverfs_files(void) > > > > static int __init scsi_debug_init(void) > > { > > - unsigned int sz; > > + unsigned long sz; > > int host_to_add; > > int k; > > int ret; > > > > if (scsi_debug_dev_size_mb < 1) > > scsi_debug_dev_size_mb = 1; /* force minimum 1 MB ramdisk */ > > - sz = (unsigned int)scsi_debug_dev_size_mb * 1048576; > > + sz = (unsigned long)scsi_debug_dev_size_mb * 1048576; > > sdebug_store_sectors = sz / SECT_SIZE; > > sdebug_capacity = get_sdebug_capacity(); > > > > Tomo, > Unsigned long is 32 bits on i386 (and 64 bits in the LP64 > data model). Don't you want 64 bits in all cases? Either > unsigned long long, uint64_t or one of those crappy > kernel typedefs for 64 bits. I don't think that u64 is useful. scsi_debug uses vmalloc for logical unit's contents. so u32 is large enough for 32-bit systems. Even if we change scsi_debug use alloc_pages to allocate multiple pages, 32-bit systems can have only several GB memory at most. So u32 is large enough for them in most cases. The advantage of vmalloc, a continuous memory area, making the driver simpler a bit, is nice. vmalloc takes unsigned long so I changed 'unsigned int' to 'unsigned long' here. In the end, you need a 64-bit system if you want scsi_debug use huge amount memory. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html