* [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).