* [Qemu-devel] [PATCH] virtio-serial: don't set MULTIPORT for 1 port dev
@ 2010-02-12 13:42 Michael S. Tsirkin
2010-02-12 14:23 ` [Qemu-devel] " Amit Shah
2010-02-15 13:21 ` Amit Shah
0 siblings, 2 replies; 9+ messages in thread
From: Michael S. Tsirkin @ 2010-02-12 13:42 UTC (permalink / raw)
To: qemu-devel, amit.shah, kraxel
Since commit 98b19252cf1bd97c54bc4613f3537c5ec0aae263, all
serial devices declare MULTIPORT feature.
To allow 0.12 compatibility, we should clear this when
max_nr_ports is 1.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/virtio-serial-bus.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c
index ab456ea..d0e0219 100644
--- a/hw/virtio-serial-bus.c
+++ b/hw/virtio-serial-bus.c
@@ -335,8 +335,10 @@ static void handle_input(VirtIODevice *vdev, VirtQueue *vq)
static uint32_t get_features(VirtIODevice *vdev, uint32_t features)
{
- features |= (1 << VIRTIO_CONSOLE_F_MULTIPORT);
-
+ VirtIOSerial *vser = DO_UPCAST(VirtIOSerial, vdev, vdev);
+ if (vser->bus->max_nr_ports > 1) {
+ features |= (1 << VIRTIO_CONSOLE_F_MULTIPORT);
+ }
return features;
}
--
1.6.6.144.g5c3af
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Qemu-devel] Re: [PATCH] virtio-serial: don't set MULTIPORT for 1 port dev
2010-02-12 13:42 [Qemu-devel] [PATCH] virtio-serial: don't set MULTIPORT for 1 port dev Michael S. Tsirkin
@ 2010-02-12 14:23 ` Amit Shah
2010-02-15 9:03 ` Gerd Hoffmann
2010-02-15 13:21 ` Amit Shah
1 sibling, 1 reply; 9+ messages in thread
From: Amit Shah @ 2010-02-12 14:23 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: qemu-devel, kraxel
On (Fri) Feb 12 2010 [15:42:14], Michael S. Tsirkin wrote:
> Since commit 98b19252cf1bd97c54bc4613f3537c5ec0aae263, all
> serial devices declare MULTIPORT feature.
> To allow 0.12 compatibility, we should clear this when
> max_nr_ports is 1.
In addition to this, setting max_nr_ports to 1 is needed when -M 0.12 is
selected.
However, is this the only way to do it? Gerd?
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
> hw/virtio-serial-bus.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c
> index ab456ea..d0e0219 100644
> --- a/hw/virtio-serial-bus.c
> +++ b/hw/virtio-serial-bus.c
> @@ -335,8 +335,10 @@ static void handle_input(VirtIODevice *vdev, VirtQueue *vq)
>
> static uint32_t get_features(VirtIODevice *vdev, uint32_t features)
> {
> - features |= (1 << VIRTIO_CONSOLE_F_MULTIPORT);
> -
> + VirtIOSerial *vser = DO_UPCAST(VirtIOSerial, vdev, vdev);
> + if (vser->bus->max_nr_ports > 1) {
> + features |= (1 << VIRTIO_CONSOLE_F_MULTIPORT);
> + }
> return features;
> }
>
> --
> 1.6.6.144.g5c3af
Amit
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Qemu-devel] Re: [PATCH] virtio-serial: don't set MULTIPORT for 1 port dev
2010-02-12 14:23 ` [Qemu-devel] " Amit Shah
@ 2010-02-15 9:03 ` Gerd Hoffmann
2010-02-15 9:24 ` Amit Shah
0 siblings, 1 reply; 9+ messages in thread
From: Gerd Hoffmann @ 2010-02-15 9:03 UTC (permalink / raw)
To: Amit Shah; +Cc: qemu-devel, Michael S. Tsirkin
On 02/12/10 15:23, Amit Shah wrote:
> On (Fri) Feb 12 2010 [15:42:14], Michael S. Tsirkin wrote:
>> Since commit 98b19252cf1bd97c54bc4613f3537c5ec0aae263, all
>> serial devices declare MULTIPORT feature.
>> To allow 0.12 compatibility, we should clear this when
>> max_nr_ports is 1.
>
> In addition to this, setting max_nr_ports to 1 is needed when -M 0.12 is
> selected.
Indeed.
> However, is this the only way to do it? Gerd?
Is there a qdev property for max_nr_ports? Then simply adding a compat
property will do the trick.
cheers,
Gerd
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Qemu-devel] Re: [PATCH] virtio-serial: don't set MULTIPORT for 1 port dev
2010-02-15 9:03 ` Gerd Hoffmann
@ 2010-02-15 9:24 ` Amit Shah
2010-02-15 10:21 ` Michael S. Tsirkin
2010-02-15 12:24 ` Gerd Hoffmann
0 siblings, 2 replies; 9+ messages in thread
From: Amit Shah @ 2010-02-15 9:24 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: qemu-devel, Michael S. Tsirkin
On (Mon) Feb 15 2010 [10:03:34], Gerd Hoffmann wrote:
> On 02/12/10 15:23, Amit Shah wrote:
>> On (Fri) Feb 12 2010 [15:42:14], Michael S. Tsirkin wrote:
>>> Since commit 98b19252cf1bd97c54bc4613f3537c5ec0aae263, all
>>> serial devices declare MULTIPORT feature.
>>> To allow 0.12 compatibility, we should clear this when
>>> max_nr_ports is 1.
>>
>> In addition to this, setting max_nr_ports to 1 is needed when -M 0.12 is
>> selected.
>
> Indeed.
>
>> However, is this the only way to do it? Gerd?
>
> Is there a qdev property for max_nr_ports? Then simply adding a compat
> property will do the trick.
Something like this (I can split it into two patches before submission):
diff --git a/hw/pc.c b/hw/pc.c
index 5b29f3b..a975934 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -1055,12 +1055,32 @@ void cmos_set_s3_resume(void)
}
static QEMUMachine pc_machine = {
+ .name = "pc-0.13",
+ .alias = "pc",
+ .desc = "Standard PC",
+ .init = pc_init_pci,
+ .is_default = 1,
+ .max_cpus = 255,
+};
+
+static QEMUMachine pc_machine_v0_12 = {
.name = "pc-0.12",
.alias = "pc",
.desc = "Standard PC",
.init = pc_init_pci,
.max_cpus = 255,
- .is_default = 1,
+ .compat_props = (GlobalProperty[]) {
+ {
+ .driver = "virtio-serial-pci",
+ .property = "max_nr_ports",
+ .value = stringify(1),
+ },{
+ .driver = "virtio-serial-pci",
+ .property = "vectors",
+ .value = stringify(0),
+ },
+ { /* end of list */ }
+ }
};
static QEMUMachine pc_machine_v0_11 = {
@@ -1074,6 +1094,14 @@ static QEMUMachine pc_machine_v0_11 = {
.property = "vectors",
.value = stringify(0),
},{
+ .driver = "virtio-serial-pci",
+ .property = "max_nr_ports",
+ .value = stringify(1),
+ },{
+ .driver = "virtio-serial-pci",
+ .property = "vectors",
+ .value = stringify(0),
+ },{
.driver = "ide-drive",
.property = "ver",
.value = "0.11",
@@ -1105,6 +1133,14 @@ static QEMUMachine pc_machine_v0_10 = {
.property = "class",
.value = stringify(PCI_CLASS_DISPLAY_OTHER),
},{
+ .driver = "virtio-serial-pci",
+ .property = "max_nr_ports",
+ .value = stringify(1),
+ },{
+ .driver = "virtio-serial-pci",
+ .property = "vectors",
+ .value = stringify(0),
+ },{
.driver = "virtio-net-pci",
.property = "vectors",
.value = stringify(0),
@@ -1139,6 +1175,7 @@ static QEMUMachine isapc_machine = {
static void pc_machine_init(void)
{
qemu_register_machine(&pc_machine);
+ qemu_register_machine(&pc_machine_v0_12);
qemu_register_machine(&pc_machine_v0_11);
qemu_register_machine(&pc_machine_v0_10);
qemu_register_machine(&isapc_machine);
Amit
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Qemu-devel] Re: [PATCH] virtio-serial: don't set MULTIPORT for 1 port dev
2010-02-15 9:24 ` Amit Shah
@ 2010-02-15 10:21 ` Michael S. Tsirkin
2010-02-15 12:24 ` Gerd Hoffmann
1 sibling, 0 replies; 9+ messages in thread
From: Michael S. Tsirkin @ 2010-02-15 10:21 UTC (permalink / raw)
To: Amit Shah; +Cc: Gerd Hoffmann, qemu-devel
On Mon, Feb 15, 2010 at 02:54:01PM +0530, Amit Shah wrote:
> On (Mon) Feb 15 2010 [10:03:34], Gerd Hoffmann wrote:
> > On 02/12/10 15:23, Amit Shah wrote:
> >> On (Fri) Feb 12 2010 [15:42:14], Michael S. Tsirkin wrote:
> >>> Since commit 98b19252cf1bd97c54bc4613f3537c5ec0aae263, all
> >>> serial devices declare MULTIPORT feature.
> >>> To allow 0.12 compatibility, we should clear this when
> >>> max_nr_ports is 1.
> >>
> >> In addition to this, setting max_nr_ports to 1 is needed when -M 0.12 is
> >> selected.
> >
> > Indeed.
> >
> >> However, is this the only way to do it? Gerd?
> >
> > Is there a qdev property for max_nr_ports? Then simply adding a compat
> > property will do the trick.
>
> Something like this (I can split it into two patches before submission):
>
Right. So, can you ack my patch pls?
> diff --git a/hw/pc.c b/hw/pc.c
> index 5b29f3b..a975934 100644
> --- a/hw/pc.c
> +++ b/hw/pc.c
> @@ -1055,12 +1055,32 @@ void cmos_set_s3_resume(void)
> }
>
> static QEMUMachine pc_machine = {
> + .name = "pc-0.13",
> + .alias = "pc",
> + .desc = "Standard PC",
> + .init = pc_init_pci,
> + .is_default = 1,
> + .max_cpus = 255,
> +};
> +
> +static QEMUMachine pc_machine_v0_12 = {
> .name = "pc-0.12",
> .alias = "pc",
> .desc = "Standard PC",
> .init = pc_init_pci,
> .max_cpus = 255,
> - .is_default = 1,
> + .compat_props = (GlobalProperty[]) {
> + {
> + .driver = "virtio-serial-pci",
> + .property = "max_nr_ports",
> + .value = stringify(1),
> + },{
> + .driver = "virtio-serial-pci",
> + .property = "vectors",
> + .value = stringify(0),
> + },
> + { /* end of list */ }
> + }
> };
>
> static QEMUMachine pc_machine_v0_11 = {
> @@ -1074,6 +1094,14 @@ static QEMUMachine pc_machine_v0_11 = {
> .property = "vectors",
> .value = stringify(0),
> },{
> + .driver = "virtio-serial-pci",
> + .property = "max_nr_ports",
> + .value = stringify(1),
> + },{
> + .driver = "virtio-serial-pci",
> + .property = "vectors",
> + .value = stringify(0),
> + },{
> .driver = "ide-drive",
> .property = "ver",
> .value = "0.11",
> @@ -1105,6 +1133,14 @@ static QEMUMachine pc_machine_v0_10 = {
> .property = "class",
> .value = stringify(PCI_CLASS_DISPLAY_OTHER),
> },{
> + .driver = "virtio-serial-pci",
> + .property = "max_nr_ports",
> + .value = stringify(1),
> + },{
> + .driver = "virtio-serial-pci",
> + .property = "vectors",
> + .value = stringify(0),
> + },{
> .driver = "virtio-net-pci",
> .property = "vectors",
> .value = stringify(0),
> @@ -1139,6 +1175,7 @@ static QEMUMachine isapc_machine = {
> static void pc_machine_init(void)
> {
> qemu_register_machine(&pc_machine);
> + qemu_register_machine(&pc_machine_v0_12);
> qemu_register_machine(&pc_machine_v0_11);
> qemu_register_machine(&pc_machine_v0_10);
> qemu_register_machine(&isapc_machine);
>
> Amit
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Qemu-devel] Re: [PATCH] virtio-serial: don't set MULTIPORT for 1 port dev
2010-02-15 9:24 ` Amit Shah
2010-02-15 10:21 ` Michael S. Tsirkin
@ 2010-02-15 12:24 ` Gerd Hoffmann
1 sibling, 0 replies; 9+ messages in thread
From: Gerd Hoffmann @ 2010-02-15 12:24 UTC (permalink / raw)
To: Amit Shah; +Cc: qemu-devel, Michael S. Tsirkin
On 02/15/10 10:24, Amit Shah wrote:
>> Is there a qdev property for max_nr_ports? Then simply adding a compat
>> property will do the trick.
>
> Something like this (I can split it into two patches before submission):
Yep, should be splitted.
> diff --git a/hw/pc.c b/hw/pc.c
> index 5b29f3b..a975934 100644
> --- a/hw/pc.c
> +++ b/hw/pc.c
> @@ -1055,12 +1055,32 @@ void cmos_set_s3_resume(void)
> }
>
> static QEMUMachine pc_machine = {
> + .name = "pc-0.13",
> + .alias = "pc",
> + .desc = "Standard PC",
> + .init = pc_init_pci,
> + .is_default = 1,
> + .max_cpus = 255,
> +};
> +
> +static QEMUMachine pc_machine_v0_12 = {
> .name = "pc-0.12",
> .alias = "pc",
.alias should be dropped too.
cheers,
Gerd
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Qemu-devel] Re: [PATCH] virtio-serial: don't set MULTIPORT for 1 port dev
2010-02-12 13:42 [Qemu-devel] [PATCH] virtio-serial: don't set MULTIPORT for 1 port dev Michael S. Tsirkin
2010-02-12 14:23 ` [Qemu-devel] " Amit Shah
@ 2010-02-15 13:21 ` Amit Shah
2010-02-15 14:07 ` Michael S. Tsirkin
1 sibling, 1 reply; 9+ messages in thread
From: Amit Shah @ 2010-02-15 13:21 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: qemu-devel, kraxel
On (Fri) Feb 12 2010 [15:42:14], Michael S. Tsirkin wrote:
> Since commit 98b19252cf1bd97c54bc4613f3537c5ec0aae263, all
> serial devices declare MULTIPORT feature.
> To allow 0.12 compatibility, we should clear this when
> max_nr_ports is 1.
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Amit Shah <amit.shah@redhat.com>
A couple more patches are needed to introduce a 0.12 machine type and
default to 1 max_nr_ports for machine types < 0.13, which I'll be
sending shortly.
I'll also make this patch 3/3 in that series, just for completenes..
Amit
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Qemu-devel] Re: [PATCH] virtio-serial: don't set MULTIPORT for 1 port dev
2010-02-15 13:21 ` Amit Shah
@ 2010-02-15 14:07 ` Michael S. Tsirkin
2010-02-15 15:36 ` Amit Shah
0 siblings, 1 reply; 9+ messages in thread
From: Michael S. Tsirkin @ 2010-02-15 14:07 UTC (permalink / raw)
To: Amit Shah; +Cc: qemu-devel, kraxel
On Mon, Feb 15, 2010 at 06:51:31PM +0530, Amit Shah wrote:
> On (Fri) Feb 12 2010 [15:42:14], Michael S. Tsirkin wrote:
> > Since commit 98b19252cf1bd97c54bc4613f3537c5ec0aae263, all
> > serial devices declare MULTIPORT feature.
> > To allow 0.12 compatibility, we should clear this when
> > max_nr_ports is 1.
> >
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
>
> Acked-by: Amit Shah <amit.shah@redhat.com>
>
> A couple more patches are needed to introduce a 0.12 machine type and
> default to 1 max_nr_ports for machine types < 0.13, which I'll be
> sending shortly.
Note that we also need to fill in virtio feature bits for the rest of
devices, per machine type. Care to deal with it?
> I'll also make this patch 3/3 in that series, just for completenes..
>
> Amit
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Qemu-devel] Re: [PATCH] virtio-serial: don't set MULTIPORT for 1 port dev
2010-02-15 14:07 ` Michael S. Tsirkin
@ 2010-02-15 15:36 ` Amit Shah
0 siblings, 0 replies; 9+ messages in thread
From: Amit Shah @ 2010-02-15 15:36 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: qemu-devel, kraxel
On (Mon) Feb 15 2010 [16:07:28], Michael S. Tsirkin wrote:
> On Mon, Feb 15, 2010 at 06:51:31PM +0530, Amit Shah wrote:
> > On (Fri) Feb 12 2010 [15:42:14], Michael S. Tsirkin wrote:
> > > Since commit 98b19252cf1bd97c54bc4613f3537c5ec0aae263, all
> > > serial devices declare MULTIPORT feature.
> > > To allow 0.12 compatibility, we should clear this when
> > > max_nr_ports is 1.
> > >
> > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> >
> > Acked-by: Amit Shah <amit.shah@redhat.com>
> >
> > A couple more patches are needed to introduce a 0.12 machine type and
> > default to 1 max_nr_ports for machine types < 0.13, which I'll be
> > sending shortly.
>
> Note that we also need to fill in virtio feature bits for the rest of
> devices, per machine type. Care to deal with it?
Yes, that has to be done (and at least for s390 and ppc for
virtio-serial). I've not yet seen how they work, but they should be
similar to pc (if at all they have similar versioning support).
Amit
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-02-15 15:37 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-12 13:42 [Qemu-devel] [PATCH] virtio-serial: don't set MULTIPORT for 1 port dev Michael S. Tsirkin
2010-02-12 14:23 ` [Qemu-devel] " Amit Shah
2010-02-15 9:03 ` Gerd Hoffmann
2010-02-15 9:24 ` Amit Shah
2010-02-15 10:21 ` Michael S. Tsirkin
2010-02-15 12:24 ` Gerd Hoffmann
2010-02-15 13:21 ` Amit Shah
2010-02-15 14:07 ` Michael S. Tsirkin
2010-02-15 15:36 ` Amit Shah
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).