Patchwork [RFC,virt-spec] only writing out the last byte of MAC makes it have effect

login
register
mail settings
Submitter Amos Kong
Date March 21, 2013, 3:02 a.m.
Message ID <1363834956-9409-1-git-send-email-akong@redhat.com>
Download mbox | patch
Permalink /patch/229541/
State New
Headers show

Comments

Amos Kong - March 21, 2013, 3:02 a.m.
The lengcy guests don't have mac programming command, we don't know when
it's safe to use MAC. We can change QEMU to make MAC change effect when
the last byte of MAC is written to config space.

Signed-off-by: Amos Kong <akong@redhat.com>
---
 virtio-spec.lyx | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
Michael S. Tsirkin - March 21, 2013, 10:53 a.m.
On Thu, Mar 21, 2013 at 11:02:36AM +0800, Amos Kong wrote:
> The lengcy guests don't have mac programming command, we don't know when
> it's safe to use MAC. We can change QEMU to make MAC change effect when
> the last byte of MAC is written to config space.
> 
> Signed-off-by: Amos Kong <akong@redhat.com>
> ---
>  virtio-spec.lyx | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/virtio-spec.lyx b/virtio-spec.lyx
> index dbc4ef0..bb289fb 100644
> --- a/virtio-spec.lyx
> +++ b/virtio-spec.lyx
> @@ -5430,7 +5430,7 @@ T_CTRL_MAC_TABLE_SET.
>  
>  \begin_layout Standard
>  
> -\change_inserted -1930653948 1358506710
> +\change_inserted -1930653948 1363832689
>  The config space 
>  \begin_inset Quotes eld
>  \end_inset
> @@ -5464,6 +5464,15 @@ mac
>   Therefore, VIRTIO_NET_CTRL_MAC_ADDR_SET is preferred, especially while
>   the NIC is up.
>   The command-specific-data is a 6-byte MAC address.
> +\end_layout
> +
> +\begin_layout Standard
> +
> +\change_inserted -1930653948 1363833477
> +The legacy guests don't support the new command, they still change MAC address
> + in original way, that's not atomic.
> + For more robust, QEMU only makes the MAC change effect when the last byte
> + of MAC address is written to config space.
>  \change_unchanged
>  
>  \end_layout

The wording can be improved, but before that - Rusty, what
do you think about such a hack? Worth supporting or
let's just ask everyone to update drivers?

> -- 
> 1.8.1.4

Patch

diff --git a/virtio-spec.lyx b/virtio-spec.lyx
index dbc4ef0..bb289fb 100644
--- a/virtio-spec.lyx
+++ b/virtio-spec.lyx
@@ -5430,7 +5430,7 @@  T_CTRL_MAC_TABLE_SET.
 
 \begin_layout Standard
 
-\change_inserted -1930653948 1358506710
+\change_inserted -1930653948 1363832689
 The config space 
 \begin_inset Quotes eld
 \end_inset
@@ -5464,6 +5464,15 @@  mac
  Therefore, VIRTIO_NET_CTRL_MAC_ADDR_SET is preferred, especially while
  the NIC is up.
  The command-specific-data is a 6-byte MAC address.
+\end_layout
+
+\begin_layout Standard
+
+\change_inserted -1930653948 1363833477
+The legacy guests don't support the new command, they still change MAC address
+ in original way, that's not atomic.
+ For more robust, QEMU only makes the MAC change effect when the last byte
+ of MAC address is written to config space.
 \change_unchanged
 
 \end_layout