Skip to contentSkip to conversation

lspci says: "SCSI storage controller: Qumranet, Inc. Virtio block device". Is it really?

DISCUSSION Tomasz Chmielewski 4 participants 7 messages Oct 19, 2009 KVM

lore
Share & tools
lore
#0 lore raw

lspci implies that the virtio block device is a "SCSI storage controller", i.e.:

00:05.0 SCSI storage controller: Qumranet, Inc. Virtio block device

However, virtio block devide does not have much to do with SCSI (in sense: sdparm does not think it is a SCSI device; virtio_blk does not depend on any SCSI moduled like sd_mod).

Is "SCSI storage controller" a proper description for this device?

Signature · 2 lines
Tomasz Chmielewski
http://wpkg.org
#1 lore raw
Quoted 11 lines · Tomasz Chmielewski

lspci implies that the virtio block device is a "SCSI storage controller", i.e.:

00:05.0 SCSI storage controller: Qumranet, Inc. Virtio block device

However, virtio block devide does not have much to do with SCSI (in sense:
sdparm does not think it is a SCSI device; virtio_blk does not depend on any SCSI moduled like sd_mod).

Is "SCSI storage controller" a proper description for this device?

It does not talk SCSI protocol if that's what you're asking. The description you see comes from the PCI class (storage controller) and subclass (SCSI controller); the meaning of the class/subclass is fixed by the PCI standard.

Luca

#2 lore raw
Quoted 11 lines · Luca Tettamanti
Quoted 10 lines · Tomasz Chmielewski

lspci implies that the virtio block device is a "SCSI storage controller", i.e.:

00:05.0 SCSI storage controller: Qumranet, Inc. Virtio block device

However, virtio block devide does not have much to do with SCSI (in sense:
sdparm does not think it is a SCSI device; virtio_blk does not depend on any SCSI moduled like sd_mod).

Quoted 6 lines
Quoted 1 line

Is "SCSI storage controller" a proper description for this device?

It does not talk SCSI protocol if that's what you're asking. The description you see comes from the PCI class (storage controller) and subclass (SCSI controller); the meaning of the class/subclass is fixed by the PCI standard.

So why was "SCSI storage controller" any better than "IDE interface" or "SATA controller" for virtio block device, if it does not talk SCSI protocol (other than "SCSI storage controller" being the first on the list of subclasses)?

Doesn't "80 Mass storage controller" ("0x80 0x00 Other mass storage controller") fit better for virtio block device?

Generally, I see that 0x80 is reserved for "other/unspecified" types of devices from a given PCI class.

Let me know if I'm asking a stupid question ;)

C 01 Mass storage controller

        00  SCSI storage controller
        01  IDE interface
        02  Floppy disk controller
        03  IPI bus controller
        04  RAID bus controller
        05  ATA controller

20 ADMA single stepping
30 ADMA continuous operation
06 SATA controller
00 Vendor specific
01 AHCI 1.0
07 Serial Attached SCSI controller
80 Mass storage controller

Signature · 2 lines
Tomasz Chmielewski
http://wpkg.org
#3 lore raw
Quoted 25 lines · Tomasz Chmielewski
Quoted 17 lines · Luca Tettamanti
Quoted 14 lines · Tomasz Chmielewski

lspci implies that the virtio block device is a "SCSI storage controller",
i.e.:

00:05.0 SCSI storage controller: Qumranet, Inc. Virtio block device

However, virtio block devide does not have much to do with SCSI (in sense:
sdparm does not think it is a SCSI device; virtio_blk does not depend on any
SCSI moduled like sd_mod).

Quoted 6 lines
Quoted 1 line

Is "SCSI storage controller" a proper description for this device?

It does not talk SCSI protocol if that's what you're asking. The description you see comes from the PCI class (storage controller) and subclass (SCSI controller); the meaning of the class/subclass is fixed by the PCI standard.

Quoted 4 lines

So why was "SCSI storage controller" any better than "IDE interface" or "SATA controller" for virtio block device, if it does not talk SCSI protocol (other than "SCSI storage controller" being the first on the list of subclasses)?

Because both ATA and SATA classes have a generic driver that would try to bind to that controller (and the whole point of virtio block device is to avoid emulating a ATA/SATA controller).

Quoted 2 lines

Doesn't "80  Mass storage controller" ("0x80    0x00    Other mass storage controller") fit better for virtio block device?

Maybe. I guess that are compatibility problem with "other" operating systems.

Luca

#4 lore raw
Quoted 5 lines · Luca Tettamanti
Quoted 4 lines

So why was "SCSI storage controller" any better than "IDE interface" or "SATA controller" for virtio block device, if it does not talk SCSI protocol (other than "SCSI storage controller" being the first on the list of subclasses)?

Quoted 8 lines

Because both ATA and SATA classes have a generic driver that would try to bind to that controller (and the whole point of virtio block device is to avoid emulating a ATA/SATA controller).

Quoted 2 lines

Doesn't "80 Mass storage controller" ("0x80 0x00 Other mass storage
controller") fit better for virtio block device?

Maybe. I guess that are compatibility problem with "other" operating systems.

Thanks for clarifications.

It makes sense in that case - I don't have any more questions ;)

Signature · 2 lines
Tomasz Chmielewski
http://wpkg.org
#5 lore raw
Quoted 11 lines · Tomasz Chmielewski
Quoted 9 lines · Luca Tettamanti
Quoted 4 lines

So why was "SCSI storage controller" any better than "IDE interface" or "SATA controller" for virtio block device, if it does not talk SCSI protocol (other than "SCSI storage controller" being the first on the list of subclasses)?

Because both ATA and SATA classes have a generic driver that would try to bind to that controller (and the whole point of virtio block device is to avoid emulating a ATA/SATA controller).

Quoted 10 lines
Quoted 4 lines
Quoted 2 lines

Doesn't "80 Mass storage controller" ("0x80 0x00 Other mass storage
controller") fit better for virtio block device?

Maybe. I guess that are compatibility problem with "other" operating systems.

Thanks for clarifications.

It makes sense in that case - I don't have any more questions ;)

we need it for windows viostor driver to be WHQL'ed

#6 lore raw
In reply to Tomasz Chmielewski
Quoted 6 lines

C 01 Mass storage controller 00 SCSI storage controller
01 IDE interface
02 Floppy disk controller
03 IPI bus controller
04 RAID bus controller

Quoted 8 lines

05 ATA controller
20 ADMA single stepping
30 ADMA continuous operation 06 SATA controller
00 Vendor specific
01 AHCI 1.0
07 Serial Attached SCSI controller 80 Mass storage controller

Virtio used to advertise itself as class 0x0180 aka "mass storage controller". You can even switch the driver into that mode for backward compatibility reasons. Problem with that is that you can't get windows driver certifications then ...

cheers,
Gerd