diff mbox

[v2,3/3] virtio-blk: switch off scsi-passthrough by default

Message ID 1444991154-79217-4-git-send-email-cornelia.huck@de.ibm.com
State New
Headers show

Commit Message

Cornelia Huck Oct. 16, 2015, 10:25 a.m. UTC
Devices that are compliant with virtio-1 do not support scsi
passthrough any more (and it has not been a recommended setup
anyway for quite some time). To avoid having to switch it off
explicitly in newer qemus that turn on virtio-1 by default, let's
switch the default to scsi=false for 2.5.

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
---
 hw/block/virtio-blk.c | 2 +-
 include/hw/compat.h   | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

Comments

Christian Borntraeger Oct. 16, 2015, 10:32 a.m. UTC | #1
Am 16.10.2015 um 12:25 schrieb Cornelia Huck:
> Devices that are compliant with virtio-1 do not support scsi
> passthrough any more (and it has not been a recommended setup
> anyway for quite some time). To avoid having to switch it off
> explicitly in newer qemus that turn on virtio-1 by default, let's
> switch the default to scsi=false for 2.5.
> 
> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
> ---
>  hw/block/virtio-blk.c | 2 +-
>  include/hw/compat.h   | 6 +++++-
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
> index 8beb26b..999dbd7 100644
> --- a/hw/block/virtio-blk.c
> +++ b/hw/block/virtio-blk.c
> @@ -975,7 +975,7 @@ static Property virtio_blk_properties[] = {
>      DEFINE_PROP_STRING("serial", VirtIOBlock, conf.serial),
>      DEFINE_PROP_BIT("config-wce", VirtIOBlock, conf.config_wce, 0, true),
>  #ifdef __linux__
> -    DEFINE_PROP_BIT("scsi", VirtIOBlock, conf.scsi, 0, true),
> +    DEFINE_PROP_BIT("scsi", VirtIOBlock, conf.scsi, 0, false),
>  #endif
>      DEFINE_PROP_BIT("request-merging", VirtIOBlock, conf.request_merging, 0,
>                      true),
> diff --git a/include/hw/compat.h b/include/hw/compat.h
> index 095de5d..93e71af 100644
> --- a/include/hw/compat.h
> +++ b/include/hw/compat.h
> @@ -2,7 +2,11 @@
>  #define HW_COMPAT_H
> 
>  #define HW_COMPAT_2_4 \
> -        /* empty */
> +        {\
> +            .driver   = "virtio-blk-device",\
> +            .property = "scsi",\
> +            .value    = "true",\

does that work?

If yes, would it make sense to convert the things in HW_COMPAT_2_3 from
pci to device, e.g.


        {\
-           .driver   = "virtio-blk-pci",\
+           .driver   = "virtio-blk-device",\
            .property = "any_layout",\
            .value    = "off",\
...
Cornelia Huck Oct. 16, 2015, 10:44 a.m. UTC | #2
On Fri, 16 Oct 2015 12:32:52 +0200
Christian Borntraeger <borntraeger@de.ibm.com> wrote:

> Am 16.10.2015 um 12:25 schrieb Cornelia Huck:
> > Devices that are compliant with virtio-1 do not support scsi
> > passthrough any more (and it has not been a recommended setup
> > anyway for quite some time). To avoid having to switch it off
> > explicitly in newer qemus that turn on virtio-1 by default, let's
> > switch the default to scsi=false for 2.5.
> > 
> > Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
> > ---
> >  hw/block/virtio-blk.c | 2 +-
> >  include/hw/compat.h   | 6 +++++-
> >  2 files changed, 6 insertions(+), 2 deletions(-)
> > 
> > diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
> > index 8beb26b..999dbd7 100644
> > --- a/hw/block/virtio-blk.c
> > +++ b/hw/block/virtio-blk.c
> > @@ -975,7 +975,7 @@ static Property virtio_blk_properties[] = {
> >      DEFINE_PROP_STRING("serial", VirtIOBlock, conf.serial),
> >      DEFINE_PROP_BIT("config-wce", VirtIOBlock, conf.config_wce, 0, true),
> >  #ifdef __linux__
> > -    DEFINE_PROP_BIT("scsi", VirtIOBlock, conf.scsi, 0, true),
> > +    DEFINE_PROP_BIT("scsi", VirtIOBlock, conf.scsi, 0, false),
> >  #endif
> >      DEFINE_PROP_BIT("request-merging", VirtIOBlock, conf.request_merging, 0,
> >                      true),
> > diff --git a/include/hw/compat.h b/include/hw/compat.h
> > index 095de5d..93e71af 100644
> > --- a/include/hw/compat.h
> > +++ b/include/hw/compat.h
> > @@ -2,7 +2,11 @@
> >  #define HW_COMPAT_H
> > 
> >  #define HW_COMPAT_2_4 \
> > -        /* empty */
> > +        {\
> > +            .driver   = "virtio-blk-device",\
> > +            .property = "scsi",\
> > +            .value    = "true",\
> 
> does that work?

It did for me :)

> 
> If yes, would it make sense to convert the things in HW_COMPAT_2_3 from
> pci to device, e.g.
> 
> 
>         {\
> -           .driver   = "virtio-blk-pci",\
> +           .driver   = "virtio-blk-device",\
>             .property = "any_layout",\
>             .value    = "off",\
> ...

Not sure: We don't have 2.3 compat for ccw... but would give a better
template for later changes.
Christian Borntraeger Oct. 16, 2015, 11:07 a.m. UTC | #3
Am 16.10.2015 um 12:44 schrieb Cornelia Huck:
> On Fri, 16 Oct 2015 12:32:52 +0200
> Christian Borntraeger <borntraeger@de.ibm.com> wrote:
> 
>> Am 16.10.2015 um 12:25 schrieb Cornelia Huck:
>>> Devices that are compliant with virtio-1 do not support scsi
>>> passthrough any more (and it has not been a recommended setup
>>> anyway for quite some time). To avoid having to switch it off
>>> explicitly in newer qemus that turn on virtio-1 by default, let's
>>> switch the default to scsi=false for 2.5.
>>>
>>> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
>>> ---
>>>  hw/block/virtio-blk.c | 2 +-
>>>  include/hw/compat.h   | 6 +++++-
>>>  2 files changed, 6 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
>>> index 8beb26b..999dbd7 100644
>>> --- a/hw/block/virtio-blk.c
>>> +++ b/hw/block/virtio-blk.c
>>> @@ -975,7 +975,7 @@ static Property virtio_blk_properties[] = {
>>>      DEFINE_PROP_STRING("serial", VirtIOBlock, conf.serial),
>>>      DEFINE_PROP_BIT("config-wce", VirtIOBlock, conf.config_wce, 0, true),
>>>  #ifdef __linux__
>>> -    DEFINE_PROP_BIT("scsi", VirtIOBlock, conf.scsi, 0, true),
>>> +    DEFINE_PROP_BIT("scsi", VirtIOBlock, conf.scsi, 0, false),
>>>  #endif
>>>      DEFINE_PROP_BIT("request-merging", VirtIOBlock, conf.request_merging, 0,
>>>                      true),
>>> diff --git a/include/hw/compat.h b/include/hw/compat.h
>>> index 095de5d..93e71af 100644
>>> --- a/include/hw/compat.h
>>> +++ b/include/hw/compat.h
>>> @@ -2,7 +2,11 @@
>>>  #define HW_COMPAT_H
>>>
>>>  #define HW_COMPAT_2_4 \
>>> -        /* empty */
>>> +        {\
>>> +            .driver   = "virtio-blk-device",\
>>> +            .property = "scsi",\
>>> +            .value    = "true",\
>>
>> does that work?
> 
> It did for me :)
> 
>>
>> If yes, would it make sense to convert the things in HW_COMPAT_2_3 from
>> pci to device, e.g.
>>
>>
>>         {\
>> -           .driver   = "virtio-blk-pci",\
>> +           .driver   = "virtio-blk-device",\
>>             .property = "any_layout",\
>>             .value    = "off",\
>> ...
> 
> Not sure: We don't have 2.3 compat for ccw... but would give a better
> template for later changes.

Yes. But this can be an addon patch. 

Lets keep this patch as is to have scsi=off as default for virtio 1.0

(some iotests do fail because of this)

Christian
Michael S. Tsirkin Oct. 18, 2015, 7:59 a.m. UTC | #4
On Fri, Oct 16, 2015 at 01:07:28PM +0200, Christian Borntraeger wrote:
> Am 16.10.2015 um 12:44 schrieb Cornelia Huck:
> > On Fri, 16 Oct 2015 12:32:52 +0200
> > Christian Borntraeger <borntraeger@de.ibm.com> wrote:
> > 
> >> Am 16.10.2015 um 12:25 schrieb Cornelia Huck:
> >>> Devices that are compliant with virtio-1 do not support scsi
> >>> passthrough any more (and it has not been a recommended setup
> >>> anyway for quite some time). To avoid having to switch it off
> >>> explicitly in newer qemus that turn on virtio-1 by default, let's
> >>> switch the default to scsi=false for 2.5.
> >>>
> >>> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
> >>> ---
> >>>  hw/block/virtio-blk.c | 2 +-
> >>>  include/hw/compat.h   | 6 +++++-
> >>>  2 files changed, 6 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
> >>> index 8beb26b..999dbd7 100644
> >>> --- a/hw/block/virtio-blk.c
> >>> +++ b/hw/block/virtio-blk.c
> >>> @@ -975,7 +975,7 @@ static Property virtio_blk_properties[] = {
> >>>      DEFINE_PROP_STRING("serial", VirtIOBlock, conf.serial),
> >>>      DEFINE_PROP_BIT("config-wce", VirtIOBlock, conf.config_wce, 0, true),
> >>>  #ifdef __linux__
> >>> -    DEFINE_PROP_BIT("scsi", VirtIOBlock, conf.scsi, 0, true),
> >>> +    DEFINE_PROP_BIT("scsi", VirtIOBlock, conf.scsi, 0, false),
> >>>  #endif
> >>>      DEFINE_PROP_BIT("request-merging", VirtIOBlock, conf.request_merging, 0,
> >>>                      true),
> >>> diff --git a/include/hw/compat.h b/include/hw/compat.h
> >>> index 095de5d..93e71af 100644
> >>> --- a/include/hw/compat.h
> >>> +++ b/include/hw/compat.h
> >>> @@ -2,7 +2,11 @@
> >>>  #define HW_COMPAT_H
> >>>
> >>>  #define HW_COMPAT_2_4 \
> >>> -        /* empty */
> >>> +        {\
> >>> +            .driver   = "virtio-blk-device",\
> >>> +            .property = "scsi",\
> >>> +            .value    = "true",\
> >>
> >> does that work?
> > 
> > It did for me :)
> > 
> >>
> >> If yes, would it make sense to convert the things in HW_COMPAT_2_3 from
> >> pci to device, e.g.
> >>
> >>
> >>         {\
> >> -           .driver   = "virtio-blk-pci",\
> >> +           .driver   = "virtio-blk-device",\
> >>             .property = "any_layout",\
> >>             .value    = "off",\
> >> ...
> > 
> > Not sure: We don't have 2.3 compat for ccw... but would give a better
> > template for later changes.
> 
> Yes. But this can be an addon patch. 
> 
> Lets keep this patch as is to have scsi=off as default for virtio 1.0
> 
> (some iotests do fail because of this)
> 
> Christian

What fails, exactly?
diff mbox

Patch

diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
index 8beb26b..999dbd7 100644
--- a/hw/block/virtio-blk.c
+++ b/hw/block/virtio-blk.c
@@ -975,7 +975,7 @@  static Property virtio_blk_properties[] = {
     DEFINE_PROP_STRING("serial", VirtIOBlock, conf.serial),
     DEFINE_PROP_BIT("config-wce", VirtIOBlock, conf.config_wce, 0, true),
 #ifdef __linux__
-    DEFINE_PROP_BIT("scsi", VirtIOBlock, conf.scsi, 0, true),
+    DEFINE_PROP_BIT("scsi", VirtIOBlock, conf.scsi, 0, false),
 #endif
     DEFINE_PROP_BIT("request-merging", VirtIOBlock, conf.request_merging, 0,
                     true),
diff --git a/include/hw/compat.h b/include/hw/compat.h
index 095de5d..93e71af 100644
--- a/include/hw/compat.h
+++ b/include/hw/compat.h
@@ -2,7 +2,11 @@ 
 #define HW_COMPAT_H
 
 #define HW_COMPAT_2_4 \
-        /* empty */
+        {\
+            .driver   = "virtio-blk-device",\
+            .property = "scsi",\
+            .value    = "true",\
+        },
 
 #define HW_COMPAT_2_3 \
         {\