Re: [PATCH 4/5] scsi_debug: support large non-fake virtual disk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux