* [Qemu-devel] [PATCH V2 0/2] hw/virtio: fix double use of a virtio flag
@ 2016-02-10 13:31 Marcel Apfelbaum
2016-02-10 13:31 ` [Qemu-devel] [PATCH V2 1/2] " Marcel Apfelbaum
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Marcel Apfelbaum @ 2016-02-10 13:31 UTC (permalink / raw)
To: qemu-devel; +Cc: marcel, lvivier, jasowang, qemu-stable, mst
To the obvious question of "how did that happen?"
I can say we had an unlucky break.
Both Jason and me worked on a new different virtio feature in the same
time, and they were both merged in the same pull request.
We both saw BIT 3 as the last used
https://lists.gnu.org/archive/html/qemu-devel/2015-11/msg03041.html
Commits 1811e64c and a6df8adf use the same virtio feature bit 4
for different features.
Fix it by using different bits.
While at it, group all the virtio flags into an enum to avoid that
in the feature.
v1 -> v2:
- Addressed Laurent Vivier's comment:
- forgot to remove a flag
- Added teset-by to the first patch
Marcel Apfelbaum (2):
hw/virtio: fix double use of a virtio flag
hw/virtio: group virtio flags into an enum
hw/virtio/virtio-pci.h | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
--
2.4.3
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] [PATCH V2 1/2] hw/virtio: fix double use of a virtio flag
2016-02-10 13:31 [Qemu-devel] [PATCH V2 0/2] hw/virtio: fix double use of a virtio flag Marcel Apfelbaum
@ 2016-02-10 13:31 ` Marcel Apfelbaum
2016-02-23 3:42 ` Jason Wang
2016-02-10 13:31 ` [Qemu-devel] [PATCH V2 2/2] hw/virtio: group virtio flags into an enum Marcel Apfelbaum
2016-03-01 17:00 ` [Qemu-devel] [PATCH V2 0/2] hw/virtio: fix double use of a virtio flag Marcel Apfelbaum
2 siblings, 1 reply; 7+ messages in thread
From: Marcel Apfelbaum @ 2016-02-10 13:31 UTC (permalink / raw)
To: qemu-devel; +Cc: marcel, lvivier, jasowang, qemu-stable, mst
Commits 1811e64c and a6df8adf use the same virtio feature bit 4
for different features.
Fix it by using different bits.
Reported-by: Laurent Vivier <lvivier@redhat.com>
Tested-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
---
hw/virtio/virtio-pci.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index e096e98..6686b10 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -71,7 +71,7 @@ typedef struct VirtioBusClass VirtioPCIBusClass;
/* virtio version flags */
#define VIRTIO_PCI_FLAG_DISABLE_LEGACY_BIT 2
#define VIRTIO_PCI_FLAG_DISABLE_MODERN_BIT 3
-#define VIRTIO_PCI_FLAG_DISABLE_PCIE_BIT 4
+#define VIRTIO_PCI_FLAG_DISABLE_PCIE_BIT 6
#define VIRTIO_PCI_FLAG_DISABLE_LEGACY (1 << VIRTIO_PCI_FLAG_DISABLE_LEGACY_BIT)
#define VIRTIO_PCI_FLAG_DISABLE_MODERN (1 << VIRTIO_PCI_FLAG_DISABLE_MODERN_BIT)
#define VIRTIO_PCI_FLAG_DISABLE_PCIE (1 << VIRTIO_PCI_FLAG_DISABLE_PCIE_BIT)
--
2.4.3
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Qemu-devel] [PATCH V2 2/2] hw/virtio: group virtio flags into an enum
2016-02-10 13:31 [Qemu-devel] [PATCH V2 0/2] hw/virtio: fix double use of a virtio flag Marcel Apfelbaum
2016-02-10 13:31 ` [Qemu-devel] [PATCH V2 1/2] " Marcel Apfelbaum
@ 2016-02-10 13:31 ` Marcel Apfelbaum
2016-02-10 13:37 ` Laurent Vivier
2016-02-23 3:42 ` Jason Wang
2016-03-01 17:00 ` [Qemu-devel] [PATCH V2 0/2] hw/virtio: fix double use of a virtio flag Marcel Apfelbaum
2 siblings, 2 replies; 7+ messages in thread
From: Marcel Apfelbaum @ 2016-02-10 13:31 UTC (permalink / raw)
To: qemu-devel; +Cc: marcel, lvivier, jasowang, qemu-stable, mst
Minimizes the possibility to assign
the same bit to different features.
Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
---
hw/virtio/virtio-pci.h | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
index 6686b10..e4548c2 100644
--- a/hw/virtio/virtio-pci.h
+++ b/hw/virtio/virtio-pci.h
@@ -58,30 +58,33 @@ typedef struct VirtioBusClass VirtioPCIBusClass;
#define VIRTIO_PCI_BUS_CLASS(klass) \
OBJECT_CLASS_CHECK(VirtioPCIBusClass, klass, TYPE_VIRTIO_PCI_BUS)
+enum {
+ VIRTIO_PCI_FLAG_BUS_MASTER_BUG_MIGRATION_BIT,
+ VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT,
+ VIRTIO_PCI_FLAG_DISABLE_LEGACY_BIT,
+ VIRTIO_PCI_FLAG_DISABLE_MODERN_BIT,
+ VIRTIO_PCI_FLAG_MIGRATE_EXTRA_BIT,
+ VIRTIO_PCI_FLAG_MODERN_PIO_NOTIFY_BIT,
+ VIRTIO_PCI_FLAG_DISABLE_PCIE_BIT,
+};
+
/* Need to activate work-arounds for buggy guests at vmstate load. */
-#define VIRTIO_PCI_FLAG_BUS_MASTER_BUG_MIGRATION_BIT 0
#define VIRTIO_PCI_FLAG_BUS_MASTER_BUG_MIGRATION \
(1 << VIRTIO_PCI_FLAG_BUS_MASTER_BUG_MIGRATION_BIT)
/* Performance improves when virtqueue kick processing is decoupled from the
* vcpu thread using ioeventfd for some devices. */
-#define VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT 1
#define VIRTIO_PCI_FLAG_USE_IOEVENTFD (1 << VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT)
/* virtio version flags */
-#define VIRTIO_PCI_FLAG_DISABLE_LEGACY_BIT 2
-#define VIRTIO_PCI_FLAG_DISABLE_MODERN_BIT 3
-#define VIRTIO_PCI_FLAG_DISABLE_PCIE_BIT 6
#define VIRTIO_PCI_FLAG_DISABLE_LEGACY (1 << VIRTIO_PCI_FLAG_DISABLE_LEGACY_BIT)
#define VIRTIO_PCI_FLAG_DISABLE_MODERN (1 << VIRTIO_PCI_FLAG_DISABLE_MODERN_BIT)
#define VIRTIO_PCI_FLAG_DISABLE_PCIE (1 << VIRTIO_PCI_FLAG_DISABLE_PCIE_BIT)
/* migrate extra state */
-#define VIRTIO_PCI_FLAG_MIGRATE_EXTRA_BIT 4
#define VIRTIO_PCI_FLAG_MIGRATE_EXTRA (1 << VIRTIO_PCI_FLAG_MIGRATE_EXTRA_BIT)
/* have pio notification for modern device ? */
-#define VIRTIO_PCI_FLAG_MODERN_PIO_NOTIFY_BIT 5
#define VIRTIO_PCI_FLAG_MODERN_PIO_NOTIFY \
(1 << VIRTIO_PCI_FLAG_MODERN_PIO_NOTIFY_BIT)
--
2.4.3
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH V2 2/2] hw/virtio: group virtio flags into an enum
2016-02-10 13:31 ` [Qemu-devel] [PATCH V2 2/2] hw/virtio: group virtio flags into an enum Marcel Apfelbaum
@ 2016-02-10 13:37 ` Laurent Vivier
2016-02-23 3:42 ` Jason Wang
1 sibling, 0 replies; 7+ messages in thread
From: Laurent Vivier @ 2016-02-10 13:37 UTC (permalink / raw)
To: Marcel Apfelbaum, qemu-devel; +Cc: jasowang, qemu-stable, mst
On 10/02/2016 14:31, Marcel Apfelbaum wrote:
> Minimizes the possibility to assign
> the same bit to different features.
>
> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH V2 1/2] hw/virtio: fix double use of a virtio flag
2016-02-10 13:31 ` [Qemu-devel] [PATCH V2 1/2] " Marcel Apfelbaum
@ 2016-02-23 3:42 ` Jason Wang
0 siblings, 0 replies; 7+ messages in thread
From: Jason Wang @ 2016-02-23 3:42 UTC (permalink / raw)
To: Marcel Apfelbaum, qemu-devel; +Cc: lvivier, qemu-stable, mst
On 02/10/2016 09:31 PM, Marcel Apfelbaum wrote:
> Commits 1811e64c and a6df8adf use the same virtio feature bit 4
> for different features.
>
> Fix it by using different bits.
>
> Reported-by: Laurent Vivier <lvivier@redhat.com>
> Tested-by: Laurent Vivier <lvivier@redhat.com>
> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
> ---
> hw/virtio/virtio-pci.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
> index e096e98..6686b10 100644
> --- a/hw/virtio/virtio-pci.h
> +++ b/hw/virtio/virtio-pci.h
> @@ -71,7 +71,7 @@ typedef struct VirtioBusClass VirtioPCIBusClass;
> /* virtio version flags */
> #define VIRTIO_PCI_FLAG_DISABLE_LEGACY_BIT 2
> #define VIRTIO_PCI_FLAG_DISABLE_MODERN_BIT 3
> -#define VIRTIO_PCI_FLAG_DISABLE_PCIE_BIT 4
> +#define VIRTIO_PCI_FLAG_DISABLE_PCIE_BIT 6
> #define VIRTIO_PCI_FLAG_DISABLE_LEGACY (1 << VIRTIO_PCI_FLAG_DISABLE_LEGACY_BIT)
> #define VIRTIO_PCI_FLAG_DISABLE_MODERN (1 << VIRTIO_PCI_FLAG_DISABLE_MODERN_BIT)
> #define VIRTIO_PCI_FLAG_DISABLE_PCIE (1 << VIRTIO_PCI_FLAG_DISABLE_PCIE_BIT)
Acked-by: Jason Wang <jasowang@redhat.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH V2 2/2] hw/virtio: group virtio flags into an enum
2016-02-10 13:31 ` [Qemu-devel] [PATCH V2 2/2] hw/virtio: group virtio flags into an enum Marcel Apfelbaum
2016-02-10 13:37 ` Laurent Vivier
@ 2016-02-23 3:42 ` Jason Wang
1 sibling, 0 replies; 7+ messages in thread
From: Jason Wang @ 2016-02-23 3:42 UTC (permalink / raw)
To: Marcel Apfelbaum, qemu-devel; +Cc: lvivier, qemu-stable, mst
On 02/10/2016 09:31 PM, Marcel Apfelbaum wrote:
> Minimizes the possibility to assign
> the same bit to different features.
>
> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
> ---
> hw/virtio/virtio-pci.h | 17 ++++++++++-------
> 1 file changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/hw/virtio/virtio-pci.h b/hw/virtio/virtio-pci.h
> index 6686b10..e4548c2 100644
> --- a/hw/virtio/virtio-pci.h
> +++ b/hw/virtio/virtio-pci.h
> @@ -58,30 +58,33 @@ typedef struct VirtioBusClass VirtioPCIBusClass;
> #define VIRTIO_PCI_BUS_CLASS(klass) \
> OBJECT_CLASS_CHECK(VirtioPCIBusClass, klass, TYPE_VIRTIO_PCI_BUS)
>
> +enum {
> + VIRTIO_PCI_FLAG_BUS_MASTER_BUG_MIGRATION_BIT,
> + VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT,
> + VIRTIO_PCI_FLAG_DISABLE_LEGACY_BIT,
> + VIRTIO_PCI_FLAG_DISABLE_MODERN_BIT,
> + VIRTIO_PCI_FLAG_MIGRATE_EXTRA_BIT,
> + VIRTIO_PCI_FLAG_MODERN_PIO_NOTIFY_BIT,
> + VIRTIO_PCI_FLAG_DISABLE_PCIE_BIT,
> +};
> +
> /* Need to activate work-arounds for buggy guests at vmstate load. */
> -#define VIRTIO_PCI_FLAG_BUS_MASTER_BUG_MIGRATION_BIT 0
> #define VIRTIO_PCI_FLAG_BUS_MASTER_BUG_MIGRATION \
> (1 << VIRTIO_PCI_FLAG_BUS_MASTER_BUG_MIGRATION_BIT)
>
> /* Performance improves when virtqueue kick processing is decoupled from the
> * vcpu thread using ioeventfd for some devices. */
> -#define VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT 1
> #define VIRTIO_PCI_FLAG_USE_IOEVENTFD (1 << VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT)
>
> /* virtio version flags */
> -#define VIRTIO_PCI_FLAG_DISABLE_LEGACY_BIT 2
> -#define VIRTIO_PCI_FLAG_DISABLE_MODERN_BIT 3
> -#define VIRTIO_PCI_FLAG_DISABLE_PCIE_BIT 6
> #define VIRTIO_PCI_FLAG_DISABLE_LEGACY (1 << VIRTIO_PCI_FLAG_DISABLE_LEGACY_BIT)
> #define VIRTIO_PCI_FLAG_DISABLE_MODERN (1 << VIRTIO_PCI_FLAG_DISABLE_MODERN_BIT)
> #define VIRTIO_PCI_FLAG_DISABLE_PCIE (1 << VIRTIO_PCI_FLAG_DISABLE_PCIE_BIT)
>
> /* migrate extra state */
> -#define VIRTIO_PCI_FLAG_MIGRATE_EXTRA_BIT 4
> #define VIRTIO_PCI_FLAG_MIGRATE_EXTRA (1 << VIRTIO_PCI_FLAG_MIGRATE_EXTRA_BIT)
>
> /* have pio notification for modern device ? */
> -#define VIRTIO_PCI_FLAG_MODERN_PIO_NOTIFY_BIT 5
> #define VIRTIO_PCI_FLAG_MODERN_PIO_NOTIFY \
> (1 << VIRTIO_PCI_FLAG_MODERN_PIO_NOTIFY_BIT)
>
Acked-by: Jason Wang <jasowang@redhat.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] [PATCH V2 0/2] hw/virtio: fix double use of a virtio flag
2016-02-10 13:31 [Qemu-devel] [PATCH V2 0/2] hw/virtio: fix double use of a virtio flag Marcel Apfelbaum
2016-02-10 13:31 ` [Qemu-devel] [PATCH V2 1/2] " Marcel Apfelbaum
2016-02-10 13:31 ` [Qemu-devel] [PATCH V2 2/2] hw/virtio: group virtio flags into an enum Marcel Apfelbaum
@ 2016-03-01 17:00 ` Marcel Apfelbaum
2 siblings, 0 replies; 7+ messages in thread
From: Marcel Apfelbaum @ 2016-03-01 17:00 UTC (permalink / raw)
To: Marcel Apfelbaum, qemu-devel; +Cc: lvivier, jasowang, qemu-stable, mst
On 02/10/2016 03:31 PM, Marcel Apfelbaum wrote:
> To the obvious question of "how did that happen?"
> I can say we had an unlucky break.
> Both Jason and me worked on a new different virtio feature in the same
> time, and they were both merged in the same pull request.
> We both saw BIT 3 as the last used
> https://lists.gnu.org/archive/html/qemu-devel/2015-11/msg03041.html
>
> Commits 1811e64c and a6df8adf use the same virtio feature bit 4
> for different features.
>
> Fix it by using different bits.
> While at it, group all the virtio flags into an enum to avoid that
> in the feature.
>
ping
Thanks,
Marcel
>
> v1 -> v2:
> - Addressed Laurent Vivier's comment:
> - forgot to remove a flag
> - Added teset-by to the first patch
>
> Marcel Apfelbaum (2):
> hw/virtio: fix double use of a virtio flag
> hw/virtio: group virtio flags into an enum
>
> hw/virtio/virtio-pci.h | 17 ++++++++++-------
> 1 file changed, 10 insertions(+), 7 deletions(-)
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-03-01 17:01 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-10 13:31 [Qemu-devel] [PATCH V2 0/2] hw/virtio: fix double use of a virtio flag Marcel Apfelbaum
2016-02-10 13:31 ` [Qemu-devel] [PATCH V2 1/2] " Marcel Apfelbaum
2016-02-23 3:42 ` Jason Wang
2016-02-10 13:31 ` [Qemu-devel] [PATCH V2 2/2] hw/virtio: group virtio flags into an enum Marcel Apfelbaum
2016-02-10 13:37 ` Laurent Vivier
2016-02-23 3:42 ` Jason Wang
2016-03-01 17:00 ` [Qemu-devel] [PATCH V2 0/2] hw/virtio: fix double use of a virtio flag Marcel Apfelbaum
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.