Bug 13143 - scsi_debug doesn't manage more than 1Tb
Summary: scsi_debug doesn't manage more than 1Tb
Status: RESOLVED CODE_FIX
Alias: None
Product: SCSI Drivers
Classification: Unclassified
Component: Other (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: scsi_drivers-other
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-04-21 16:07 UTC by Thierry Vignaud
Modified: 2009-10-06 20:51 UTC (History)
2 users (show)

See Also:
Kernel Version: 2.6.29.1
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Thierry Vignaud 2009-04-21 16:07:08 UTC
While debugging a partitionner software that has issues with disks bigger than 1Tb, I found out that scsi_debug doesn't manage more than 1Tb:

# modprobe scsi_debug virtual_gb=1000
# cat /proc/partitions |fgrep sdc
   8       32 1048576000 sdc
# rmmod scsi_debug
# modprobe scsi_debug virtual_gb=1100
# cat /proc/partitions |fgrep sdc
   8       32 9223372035860725760 sdc


dmesg shows that the additionnal 100Gb makes it loose sight:
sd 16:0:0:0: [sdc] 2097152000 512-byte hardware sectors: (1.07 TB/1000 GiB)
versus:
sd 15:0:0:0: [sdc] 18446744071721451520 512-byte hardware sectors: (18.4 EB/15.9 EiB)
Comment 1 Cheng Renquan 2009-04-24 11:07:32 UTC
it seems invalid that you tested linux 2.5 ?

And could you describe it more detailed as in REPORTING-BUGS ?

I have also ITB disks and it cannot reproduce. Thanks.
Comment 2 Anonymous Emailer 2009-04-24 18:25:45 UTC
Reply-To: dgilbert@interlog.com

FUJITA Tomonori wrote:
> On Tue, 21 Apr 2009 16:07:08 GMT
> bugzilla-daemon@bugzilla.kernel.org wrote:
> 
>> http://bugzilla.kernel.org/show_bug.cgi?id=13143
>>
>>            Summary: scsi_debug doesn't manage more than 1Tb
>>            Product: SCSI Drivers
>>            Version: 2.5
>>           Platform: All
>>         OS/Version: Linux
>>               Tree: Mainline
>>             Status: NEW
>>           Severity: normal
>>           Priority: P1
>>          Component: Other
>>         AssignedTo: scsi_drivers-other@kernel-bugs.osdl.org
>>         ReportedBy: tvignaud@mandriva.com
>>         Regression: No
>>
>>
>> While debugging a partitionner software that has issues with disks bigger
>> than
>> 1Tb, I found out that scsi_debug doesn't manage more than 1Tb:
>>
>> # modprobe scsi_debug virtual_gb=1000
>> # cat /proc/partitions |fgrep sdc
>>    8       32 1048576000 sdc
>> # rmmod scsi_debug
>> # modprobe scsi_debug virtual_gb=1100
>> # cat /proc/partitions |fgrep sdc
>>    8       32 9223372035860725760 sdc
>>
>>
>> dmesg shows that the additionnal 100Gb makes it loose sight:
>> sd 16:0:0:0: [sdc] 2097152000 512-byte hardware sectors: (1.07 TB/1000 GiB)
>> versus:
>> sd 15:0:0:0: [sdc] 18446744071721451520 512-byte hardware sectors: (18.4
>> EB/15.9 EiB)
> 
> 
> =
> From: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
> Subject: [PATCH] scsi_debug: fix virtual disk larger than 1TB 
> 
> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>

Signed-off-by: Douglas Gilbert <dgilbert@interlog.com>

Wow, a 1 TB ram disk!

> ---
>  drivers/scsi/scsi_debug.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c
> index 213123b..41a2177 100644
> --- a/drivers/scsi/scsi_debug.c
> +++ b/drivers/scsi/scsi_debug.c
> @@ -887,7 +887,7 @@ static int resp_start_stop(struct scsi_cmnd * scp,
>  static sector_t get_sdebug_capacity(void)
>  {
>       if (scsi_debug_virtual_gb > 0)
> -             return 2048 * 1024 * scsi_debug_virtual_gb;
> +             return 2048 * 1024 * (sector_t)scsi_debug_virtual_gb;
>       else
>               return sdebug_store_sectors;
>  }
Comment 3 Anonymous Emailer 2009-04-25 04:41:58 UTC
Reply-To: fujita.tomonori@lab.ntt.co.jp

On Tue, 21 Apr 2009 16:07:08 GMT
bugzilla-daemon@bugzilla.kernel.org wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=13143
> 
>            Summary: scsi_debug doesn't manage more than 1Tb
>            Product: SCSI Drivers
>            Version: 2.5
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: Other
>         AssignedTo: scsi_drivers-other@kernel-bugs.osdl.org
>         ReportedBy: tvignaud@mandriva.com
>         Regression: No
> 
> 
> While debugging a partitionner software that has issues with disks bigger
> than
> 1Tb, I found out that scsi_debug doesn't manage more than 1Tb:
> 
> # modprobe scsi_debug virtual_gb=1000
> # cat /proc/partitions |fgrep sdc
>    8       32 1048576000 sdc
> # rmmod scsi_debug
> # modprobe scsi_debug virtual_gb=1100
> # cat /proc/partitions |fgrep sdc
>    8       32 9223372035860725760 sdc
> 
> 
> dmesg shows that the additionnal 100Gb makes it loose sight:
> sd 16:0:0:0: [sdc] 2097152000 512-byte hardware sectors: (1.07 TB/1000 GiB)
> versus:
> sd 15:0:0:0: [sdc] 18446744071721451520 512-byte hardware sectors: (18.4
> EB/15.9 EiB)


=
From: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Subject: [PATCH] scsi_debug: fix virtual disk larger than 1TB 

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
---
 drivers/scsi/scsi_debug.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c
index 213123b..41a2177 100644
--- a/drivers/scsi/scsi_debug.c
+++ b/drivers/scsi/scsi_debug.c
@@ -887,7 +887,7 @@ static int resp_start_stop(struct scsi_cmnd * scp,
 static sector_t get_sdebug_capacity(void)
 {
 	if (scsi_debug_virtual_gb > 0)
-		return 2048 * 1024 * scsi_debug_virtual_gb;
+		return 2048 * 1024 * (sector_t)scsi_debug_virtual_gb;
 	else
 		return sdebug_store_sectors;
 }
Comment 4 Thierry Vignaud 2009-04-27 10:39:15 UTC
(In reply to comment #1)
> it seems invalid that you tested linux 2.5 ?

Version was auto filled by bugzilla. Really was 2.6.29.1

> And could you describe it more detailed as in REPORTING-BUGS ?

All needed data was provided in initial comment. And it was enough in order to provide a fix.

> I have also ITB disks and it cannot reproduce. Thanks.

It's not about 1Tb disks but about the scsi_debug driver.
Comment 5 Anonymous Emailer 2009-04-28 08:32:02 UTC
Reply-To: fujita.tomonori@lab.ntt.co.jp

On Mon, 27 Apr 2009 10:41:00 GMT
bugzilla-daemon@bugzilla.kernel.org wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=13143
> 
> 
> 
> 
> 
> --- Comment #4 from Thierry Vignaud <tvignaud@mandriva.com>  2009-04-27
> 10:39:15 ---
> (In reply to comment #1)
> > it seems invalid that you tested linux 2.5 ?
> 
> Version was auto filled by bugzilla. Really was 2.6.29.1
> 
> > And could you describe it more detailed as in REPORTING-BUGS ?
> 
> All needed data was provided in initial comment. And it was enough in order
> to
> provide a fix.

The patch is available:

http://marc.info/?l=linux-scsi&m=124063464410711&w=2


Can you confirm that it fixes the problem?
Comment 6 Thierry Vignaud 2009-04-29 06:31:39 UTC
It fixes it indeed.
You can queue it for upstream :-)

    Reported-and-tested-by: Thierry Vignaud <tvignaud@mandriva.com>
Comment 7 Thierry Vignaud 2009-10-06 20:51:11 UTC
Fix merged upstream quite a long time ago...

Note You need to log in before you can comment on or make changes to this bug.