All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael S. Tsirkin <mst@redhat.com>
To: intel-wired-lan@osuosl.org
Subject: [Intel-wired-lan] [Qemu-devel] [RFC Patch 06/12] IXGBEVF: Add self emulation layer
Date: Thu, 22 Oct 2015 15:50:30 +0300	[thread overview]
Message-ID: <20151022154802-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <5627FC6B.8060004@gmail.com>

On Wed, Oct 21, 2015 at 01:58:19PM -0700, Alexander Duyck wrote:
> On 10/21/2015 09:37 AM, Lan Tianyu wrote:
> >In order to restore VF function after migration, add self emulation layer
> >to record regs' values during accessing regs.
> >
> >Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
> >---
> >  drivers/net/ethernet/intel/ixgbevf/Makefile        |  3 ++-
> >  drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c  |  2 +-
> >  .../net/ethernet/intel/ixgbevf/self-emulation.c    | 26 ++++++++++++++++++++++
> >  drivers/net/ethernet/intel/ixgbevf/vf.h            |  5 ++++-
> >  4 files changed, 33 insertions(+), 3 deletions(-)
> >  create mode 100644 drivers/net/ethernet/intel/ixgbevf/self-emulation.c
> >
> >diff --git a/drivers/net/ethernet/intel/ixgbevf/Makefile b/drivers/net/ethernet/intel/ixgbevf/Makefile
> >index 4ce4c97..841c884 100644
> >--- a/drivers/net/ethernet/intel/ixgbevf/Makefile
> >+++ b/drivers/net/ethernet/intel/ixgbevf/Makefile
> >@@ -31,7 +31,8 @@
> >  obj-$(CONFIG_IXGBEVF) += ixgbevf.o
> >-ixgbevf-objs := vf.o \
> >+ixgbevf-objs := self-emulation.o \
> >+		vf.o \
> >                  mbx.o \
> >                  ethtool.o \
> >                  ixgbevf_main.o
> >diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> >index a16d267..4446916 100644
> >--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> >+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> >@@ -156,7 +156,7 @@ u32 ixgbevf_read_reg(struct ixgbe_hw *hw, u32 reg)
> >  	if (IXGBE_REMOVED(reg_addr))
> >  		return IXGBE_FAILED_READ_REG;
> >-	value = readl(reg_addr + reg);
> >+	value = ixgbe_self_emul_readl(reg_addr, reg);
> >  	if (unlikely(value == IXGBE_FAILED_READ_REG))
> >  		ixgbevf_check_remove(hw, reg);
> >  	return value;
> >diff --git a/drivers/net/ethernet/intel/ixgbevf/self-emulation.c b/drivers/net/ethernet/intel/ixgbevf/self-emulation.c
> >new file mode 100644
> >index 0000000..d74b2da
> >--- /dev/null
> >+++ b/drivers/net/ethernet/intel/ixgbevf/self-emulation.c
> >@@ -0,0 +1,26 @@
> >+#include <linux/netdevice.h>
> >+#include <linux/pci.h>
> >+#include <linux/delay.h>
> >+#include <linux/interrupt.h>
> >+#include <net/arp.h>
> >+
> >+#include "vf.h"
> >+#include "ixgbevf.h"
> >+
> >+static u32 hw_regs[0x4000];
> >+
> >+u32 ixgbe_self_emul_readl(volatile void __iomem *base, u32 addr)
> >+{
> >+	u32 tmp;
> >+
> >+	tmp = readl(base + addr);
> >+	hw_regs[(unsigned long)addr] = tmp;
> >+
> >+	return tmp;
> >+}
> >+
> >+void ixgbe_self_emul_writel(u32 val, volatile void __iomem *base, u32  addr)
> >+{
> >+	hw_regs[(unsigned long)addr] = val;
> >+	writel(val, (volatile void __iomem *)(base + addr));
> >+}
> 
> So I see what you are doing, however I don't think this adds much value.
> Many of the key registers for the device are not simple Read/Write
> registers.  Most of them are things like write 1 to clear or some other sort
> of value where writing doesn't set the bit but has some other side effect.
> Just take a look through the Datasheet at registers such as the VFCTRL,
> VFMAILBOX, or most of the interrupt registers.  The fact is simply storing
> the values off doesn't give you any real idea of what the state of things
> are.

It doesn't, but I guess the point is to isolate the migration-related logic
in the recovery code.

An alternative would be to have some smart logic all over the place to
only store what's required - that would be much more intrusive.


> >diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.h b/drivers/net/ethernet/intel/ixgbevf/vf.h
> >index d40f036..6a3f4eb 100644
> >--- a/drivers/net/ethernet/intel/ixgbevf/vf.h
> >+++ b/drivers/net/ethernet/intel/ixgbevf/vf.h
> >@@ -39,6 +39,9 @@
> >  struct ixgbe_hw;
> >+u32 ixgbe_self_emul_readl(volatile void __iomem *base, u32 addr);
> >+void ixgbe_self_emul_writel(u32 val, volatile void __iomem *base, u32  addr);
> >+
> >  /* iterator type for walking multicast address lists */
> >  typedef u8* (*ixgbe_mc_addr_itr) (struct ixgbe_hw *hw, u8 **mc_addr_ptr,
> >  				  u32 *vmdq);
> >@@ -182,7 +185,7 @@ static inline void ixgbe_write_reg(struct ixgbe_hw *hw, u32 reg, u32 value)
> >  	if (IXGBE_REMOVED(reg_addr))
> >  		return;
> >-	writel(value, reg_addr + reg);
> >+	ixgbe_self_emul_writel(value, reg_addr, reg);
> >  }
> >  #define IXGBE_WRITE_REG(h, r, v) ixgbe_write_reg(h, r, v)
> 

WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Alexander Duyck <alexander.duyck@gmail.com>
Cc: Lan Tianyu <tianyu.lan@intel.com>,
	bhelgaas@google.com, carolyn.wyborny@intel.com,
	donald.c.skidmore@intel.com, eddie.dong@intel.com,
	nrupal.jani@intel.com, yang.z.zhang@intel.com, agraf@suse.de,
	kvm@vger.kernel.org, pbonzini@redhat.com, qemu-devel@nongnu.org,
	emil.s.tantilov@intel.com, intel-wired-lan@lists.osuosl.org,
	jeffrey.t.kirsher@intel.com, jesse.brandeburg@intel.com,
	john.ronciak@intel.com, linux-kernel@vger.kernel.org,
	linux-pci@vger.kernel.org, matthew.vick@intel.com,
	mitch.a.williams@intel.com, netdev@vger.kernel.org,
	shannon.nelson@intel.com
Subject: Re: [Qemu-devel] [RFC Patch 06/12] IXGBEVF: Add self emulation layer
Date: Thu, 22 Oct 2015 15:50:30 +0300	[thread overview]
Message-ID: <20151022154802-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <5627FC6B.8060004@gmail.com>

On Wed, Oct 21, 2015 at 01:58:19PM -0700, Alexander Duyck wrote:
> On 10/21/2015 09:37 AM, Lan Tianyu wrote:
> >In order to restore VF function after migration, add self emulation layer
> >to record regs' values during accessing regs.
> >
> >Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
> >---
> >  drivers/net/ethernet/intel/ixgbevf/Makefile        |  3 ++-
> >  drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c  |  2 +-
> >  .../net/ethernet/intel/ixgbevf/self-emulation.c    | 26 ++++++++++++++++++++++
> >  drivers/net/ethernet/intel/ixgbevf/vf.h            |  5 ++++-
> >  4 files changed, 33 insertions(+), 3 deletions(-)
> >  create mode 100644 drivers/net/ethernet/intel/ixgbevf/self-emulation.c
> >
> >diff --git a/drivers/net/ethernet/intel/ixgbevf/Makefile b/drivers/net/ethernet/intel/ixgbevf/Makefile
> >index 4ce4c97..841c884 100644
> >--- a/drivers/net/ethernet/intel/ixgbevf/Makefile
> >+++ b/drivers/net/ethernet/intel/ixgbevf/Makefile
> >@@ -31,7 +31,8 @@
> >  obj-$(CONFIG_IXGBEVF) += ixgbevf.o
> >-ixgbevf-objs := vf.o \
> >+ixgbevf-objs := self-emulation.o \
> >+		vf.o \
> >                  mbx.o \
> >                  ethtool.o \
> >                  ixgbevf_main.o
> >diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> >index a16d267..4446916 100644
> >--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> >+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> >@@ -156,7 +156,7 @@ u32 ixgbevf_read_reg(struct ixgbe_hw *hw, u32 reg)
> >  	if (IXGBE_REMOVED(reg_addr))
> >  		return IXGBE_FAILED_READ_REG;
> >-	value = readl(reg_addr + reg);
> >+	value = ixgbe_self_emul_readl(reg_addr, reg);
> >  	if (unlikely(value == IXGBE_FAILED_READ_REG))
> >  		ixgbevf_check_remove(hw, reg);
> >  	return value;
> >diff --git a/drivers/net/ethernet/intel/ixgbevf/self-emulation.c b/drivers/net/ethernet/intel/ixgbevf/self-emulation.c
> >new file mode 100644
> >index 0000000..d74b2da
> >--- /dev/null
> >+++ b/drivers/net/ethernet/intel/ixgbevf/self-emulation.c
> >@@ -0,0 +1,26 @@
> >+#include <linux/netdevice.h>
> >+#include <linux/pci.h>
> >+#include <linux/delay.h>
> >+#include <linux/interrupt.h>
> >+#include <net/arp.h>
> >+
> >+#include "vf.h"
> >+#include "ixgbevf.h"
> >+
> >+static u32 hw_regs[0x4000];
> >+
> >+u32 ixgbe_self_emul_readl(volatile void __iomem *base, u32 addr)
> >+{
> >+	u32 tmp;
> >+
> >+	tmp = readl(base + addr);
> >+	hw_regs[(unsigned long)addr] = tmp;
> >+
> >+	return tmp;
> >+}
> >+
> >+void ixgbe_self_emul_writel(u32 val, volatile void __iomem *base, u32  addr)
> >+{
> >+	hw_regs[(unsigned long)addr] = val;
> >+	writel(val, (volatile void __iomem *)(base + addr));
> >+}
> 
> So I see what you are doing, however I don't think this adds much value.
> Many of the key registers for the device are not simple Read/Write
> registers.  Most of them are things like write 1 to clear or some other sort
> of value where writing doesn't set the bit but has some other side effect.
> Just take a look through the Datasheet at registers such as the VFCTRL,
> VFMAILBOX, or most of the interrupt registers.  The fact is simply storing
> the values off doesn't give you any real idea of what the state of things
> are.

It doesn't, but I guess the point is to isolate the migration-related logic
in the recovery code.

An alternative would be to have some smart logic all over the place to
only store what's required - that would be much more intrusive.


> >diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.h b/drivers/net/ethernet/intel/ixgbevf/vf.h
> >index d40f036..6a3f4eb 100644
> >--- a/drivers/net/ethernet/intel/ixgbevf/vf.h
> >+++ b/drivers/net/ethernet/intel/ixgbevf/vf.h
> >@@ -39,6 +39,9 @@
> >  struct ixgbe_hw;
> >+u32 ixgbe_self_emul_readl(volatile void __iomem *base, u32 addr);
> >+void ixgbe_self_emul_writel(u32 val, volatile void __iomem *base, u32  addr);
> >+
> >  /* iterator type for walking multicast address lists */
> >  typedef u8* (*ixgbe_mc_addr_itr) (struct ixgbe_hw *hw, u8 **mc_addr_ptr,
> >  				  u32 *vmdq);
> >@@ -182,7 +185,7 @@ static inline void ixgbe_write_reg(struct ixgbe_hw *hw, u32 reg, u32 value)
> >  	if (IXGBE_REMOVED(reg_addr))
> >  		return;
> >-	writel(value, reg_addr + reg);
> >+	ixgbe_self_emul_writel(value, reg_addr, reg);
> >  }
> >  #define IXGBE_WRITE_REG(h, r, v) ixgbe_write_reg(h, r, v)
> 

WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Alexander Duyck <alexander.duyck@gmail.com>
Cc: emil.s.tantilov@intel.com, kvm@vger.kernel.org,
	linux-pci@vger.kernel.org, qemu-devel@nongnu.org,
	jesse.brandeburg@intel.com, carolyn.wyborny@intel.com,
	donald.c.skidmore@intel.com, agraf@suse.de,
	matthew.vick@intel.com, intel-wired-lan@lists.osuosl.org,
	jeffrey.t.kirsher@intel.com, yang.z.zhang@intel.com,
	mitch.a.williams@intel.com, nrupal.jani@intel.com,
	bhelgaas@google.com, Lan Tianyu <tianyu.lan@intel.com>,
	netdev@vger.kernel.org, shannon.nelson@intel.com,
	eddie.dong@intel.com, linux-kernel@vger.kernel.org,
	john.ronciak@intel.com, pbonzini@redhat.com
Subject: Re: [Qemu-devel] [RFC Patch 06/12] IXGBEVF: Add self emulation layer
Date: Thu, 22 Oct 2015 15:50:30 +0300	[thread overview]
Message-ID: <20151022154802-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <5627FC6B.8060004@gmail.com>

On Wed, Oct 21, 2015 at 01:58:19PM -0700, Alexander Duyck wrote:
> On 10/21/2015 09:37 AM, Lan Tianyu wrote:
> >In order to restore VF function after migration, add self emulation layer
> >to record regs' values during accessing regs.
> >
> >Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
> >---
> >  drivers/net/ethernet/intel/ixgbevf/Makefile        |  3 ++-
> >  drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c  |  2 +-
> >  .../net/ethernet/intel/ixgbevf/self-emulation.c    | 26 ++++++++++++++++++++++
> >  drivers/net/ethernet/intel/ixgbevf/vf.h            |  5 ++++-
> >  4 files changed, 33 insertions(+), 3 deletions(-)
> >  create mode 100644 drivers/net/ethernet/intel/ixgbevf/self-emulation.c
> >
> >diff --git a/drivers/net/ethernet/intel/ixgbevf/Makefile b/drivers/net/ethernet/intel/ixgbevf/Makefile
> >index 4ce4c97..841c884 100644
> >--- a/drivers/net/ethernet/intel/ixgbevf/Makefile
> >+++ b/drivers/net/ethernet/intel/ixgbevf/Makefile
> >@@ -31,7 +31,8 @@
> >  obj-$(CONFIG_IXGBEVF) += ixgbevf.o
> >-ixgbevf-objs := vf.o \
> >+ixgbevf-objs := self-emulation.o \
> >+		vf.o \
> >                  mbx.o \
> >                  ethtool.o \
> >                  ixgbevf_main.o
> >diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> >index a16d267..4446916 100644
> >--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> >+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> >@@ -156,7 +156,7 @@ u32 ixgbevf_read_reg(struct ixgbe_hw *hw, u32 reg)
> >  	if (IXGBE_REMOVED(reg_addr))
> >  		return IXGBE_FAILED_READ_REG;
> >-	value = readl(reg_addr + reg);
> >+	value = ixgbe_self_emul_readl(reg_addr, reg);
> >  	if (unlikely(value == IXGBE_FAILED_READ_REG))
> >  		ixgbevf_check_remove(hw, reg);
> >  	return value;
> >diff --git a/drivers/net/ethernet/intel/ixgbevf/self-emulation.c b/drivers/net/ethernet/intel/ixgbevf/self-emulation.c
> >new file mode 100644
> >index 0000000..d74b2da
> >--- /dev/null
> >+++ b/drivers/net/ethernet/intel/ixgbevf/self-emulation.c
> >@@ -0,0 +1,26 @@
> >+#include <linux/netdevice.h>
> >+#include <linux/pci.h>
> >+#include <linux/delay.h>
> >+#include <linux/interrupt.h>
> >+#include <net/arp.h>
> >+
> >+#include "vf.h"
> >+#include "ixgbevf.h"
> >+
> >+static u32 hw_regs[0x4000];
> >+
> >+u32 ixgbe_self_emul_readl(volatile void __iomem *base, u32 addr)
> >+{
> >+	u32 tmp;
> >+
> >+	tmp = readl(base + addr);
> >+	hw_regs[(unsigned long)addr] = tmp;
> >+
> >+	return tmp;
> >+}
> >+
> >+void ixgbe_self_emul_writel(u32 val, volatile void __iomem *base, u32  addr)
> >+{
> >+	hw_regs[(unsigned long)addr] = val;
> >+	writel(val, (volatile void __iomem *)(base + addr));
> >+}
> 
> So I see what you are doing, however I don't think this adds much value.
> Many of the key registers for the device are not simple Read/Write
> registers.  Most of them are things like write 1 to clear or some other sort
> of value where writing doesn't set the bit but has some other side effect.
> Just take a look through the Datasheet at registers such as the VFCTRL,
> VFMAILBOX, or most of the interrupt registers.  The fact is simply storing
> the values off doesn't give you any real idea of what the state of things
> are.

It doesn't, but I guess the point is to isolate the migration-related logic
in the recovery code.

An alternative would be to have some smart logic all over the place to
only store what's required - that would be much more intrusive.


> >diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.h b/drivers/net/ethernet/intel/ixgbevf/vf.h
> >index d40f036..6a3f4eb 100644
> >--- a/drivers/net/ethernet/intel/ixgbevf/vf.h
> >+++ b/drivers/net/ethernet/intel/ixgbevf/vf.h
> >@@ -39,6 +39,9 @@
> >  struct ixgbe_hw;
> >+u32 ixgbe_self_emul_readl(volatile void __iomem *base, u32 addr);
> >+void ixgbe_self_emul_writel(u32 val, volatile void __iomem *base, u32  addr);
> >+
> >  /* iterator type for walking multicast address lists */
> >  typedef u8* (*ixgbe_mc_addr_itr) (struct ixgbe_hw *hw, u8 **mc_addr_ptr,
> >  				  u32 *vmdq);
> >@@ -182,7 +185,7 @@ static inline void ixgbe_write_reg(struct ixgbe_hw *hw, u32 reg, u32 value)
> >  	if (IXGBE_REMOVED(reg_addr))
> >  		return;
> >-	writel(value, reg_addr + reg);
> >+	ixgbe_self_emul_writel(value, reg_addr, reg);
> >  }
> >  #define IXGBE_WRITE_REG(h, r, v) ixgbe_write_reg(h, r, v)
> 

  reply	other threads:[~2015-10-22 12:50 UTC|newest]

Thread overview: 171+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-21 16:37 [Intel-wired-lan] [RFC Patch 00/12] IXGBE: Add live migration support for SRIOV NIC Lan Tianyu
2015-10-21 16:37 ` [Qemu-devel] " Lan Tianyu
2015-10-21 16:37 ` Lan Tianyu
2015-10-21 16:37 ` [Intel-wired-lan] [RFC Patch 01/12] PCI: Add virtfn_index for struct pci_device Lan Tianyu
2015-10-21 16:37   ` [Qemu-devel] " Lan Tianyu
2015-10-21 16:37   ` Lan Tianyu
2015-10-21 18:07   ` [Intel-wired-lan] " Alexander Duyck
2015-10-21 18:07     ` [Qemu-devel] " Alexander Duyck
2015-10-21 18:07     ` Alexander Duyck
2015-10-24 14:46     ` [Intel-wired-lan] " Lan, Tianyu
2015-10-24 14:46       ` [Qemu-devel] " Lan, Tianyu
2015-10-24 14:46       ` Lan, Tianyu
2015-10-21 16:37 ` [Intel-wired-lan] [RFC Patch 02/12] IXGBE: Add new mail box event to restore VF status in the PF driver Lan Tianyu
2015-10-21 16:37   ` [Qemu-devel] " Lan Tianyu
2015-10-21 16:37   ` Lan Tianyu
2015-10-21 20:34   ` [Intel-wired-lan] " Alexander Duyck
2015-10-21 20:34     ` [Qemu-devel] " Alexander Duyck
2015-10-21 20:34     ` Alexander Duyck
2015-10-21 16:37 ` [Intel-wired-lan] [RFC Patch 03/12] IXGBE: Add sysfs interface for Qemu to migrate " Lan Tianyu
2015-10-21 16:37   ` [Qemu-devel] " Lan Tianyu
2015-10-21 16:37   ` Lan Tianyu
2015-10-21 20:45   ` [Intel-wired-lan] " Alexander Duyck
2015-10-21 20:45     ` [Qemu-devel] " Alexander Duyck
2015-10-21 20:45     ` Alexander Duyck
2015-10-25  7:21     ` [Intel-wired-lan] " Lan, Tianyu
2015-10-25  7:21       ` [Qemu-devel] " Lan, Tianyu
2015-10-25  7:21       ` Lan, Tianyu
2015-10-21 16:37 ` [Intel-wired-lan] [RFC Patch 04/12] IXGBE: Add ixgbe_ping_vf() to notify a specified VF via mailbox msg Lan Tianyu
2015-10-21 16:37   ` [Qemu-devel] " Lan Tianyu
2015-10-21 16:37   ` Lan Tianyu
2015-10-21 16:37 ` [Intel-wired-lan] [RFC Patch 05/12] IXGBE: Add new sysfs interface of "notify_vf" Lan Tianyu
2015-10-21 16:37   ` [Qemu-devel] " Lan Tianyu
2015-10-21 16:37   ` Lan Tianyu
2015-10-21 20:52   ` [Intel-wired-lan] " Alexander Duyck
2015-10-21 20:52     ` [Qemu-devel] " Alexander Duyck
2015-10-21 20:52     ` Alexander Duyck
2015-10-22 12:51     ` [Intel-wired-lan] [Qemu-devel] " Michael S. Tsirkin
2015-10-22 12:51       ` Michael S. Tsirkin
2015-10-22 12:51       ` Michael S. Tsirkin
2015-10-22 12:51       ` [Qemu-devel] " Michael S. Tsirkin
2015-10-24 15:43     ` [Intel-wired-lan] " Lan, Tianyu
2015-10-24 15:43       ` [Qemu-devel] " Lan, Tianyu
2015-10-24 15:43       ` Lan, Tianyu
2015-10-25  6:03       ` [Intel-wired-lan] " Alexander Duyck
2015-10-25  6:03         ` [Qemu-devel] " Alexander Duyck
2015-10-25  6:03         ` Alexander Duyck
2015-10-25  6:45         ` [Intel-wired-lan] " Lan, Tianyu
2015-10-25  6:45           ` [Qemu-devel] " Lan, Tianyu
2015-10-25  6:45           ` Lan, Tianyu
2015-10-21 16:37 ` [Intel-wired-lan] [RFC Patch 06/12] IXGBEVF: Add self emulation layer Lan Tianyu
2015-10-21 16:37   ` [Qemu-devel] " Lan Tianyu
2015-10-21 16:37   ` Lan Tianyu
2015-10-21 20:58   ` [Intel-wired-lan] " Alexander Duyck
2015-10-21 20:58     ` [Qemu-devel] " Alexander Duyck
2015-10-21 20:58     ` Alexander Duyck
2015-10-22 12:50     ` Michael S. Tsirkin [this message]
2015-10-22 12:50       ` [Qemu-devel] " Michael S. Tsirkin
2015-10-22 12:50       ` Michael S. Tsirkin
2015-10-22 15:50       ` [Intel-wired-lan] " Alexander Duyck
2015-10-22 15:50         ` Alexander Duyck
2015-10-22 15:50         ` Alexander Duyck
2015-10-21 16:37 ` [Intel-wired-lan] [RFC Patch 07/12] IXGBEVF: Add new mail box event for migration Lan Tianyu
2015-10-21 16:37   ` [Qemu-devel] " Lan Tianyu
2015-10-21 16:37   ` Lan Tianyu
2015-10-21 16:37 ` [Intel-wired-lan] [RFC Patch 08/12] IXGBEVF: Rework code of finding the end transmit desc of package Lan Tianyu
2015-10-21 16:37   ` [Qemu-devel] " Lan Tianyu
2015-10-21 16:37   ` Lan Tianyu
2015-10-21 21:14   ` [Intel-wired-lan] " Alexander Duyck
2015-10-21 21:14     ` [Qemu-devel] " Alexander Duyck
2015-10-21 21:14     ` Alexander Duyck
2015-10-24 16:12     ` [Intel-wired-lan] " Lan, Tianyu
2015-10-24 16:12       ` [Qemu-devel] " Lan, Tianyu
2015-10-24 16:12       ` Lan, Tianyu
2015-10-22 12:58   ` [Intel-wired-lan] " Michael S. Tsirkin
2015-10-22 12:58     ` [Qemu-devel] " Michael S. Tsirkin
2015-10-22 12:58     ` Michael S. Tsirkin
2015-10-24 16:08     ` [Intel-wired-lan] " Lan, Tianyu
2015-10-24 16:08       ` [Qemu-devel] " Lan, Tianyu
2015-10-24 16:08       ` Lan, Tianyu
2015-10-21 16:37 ` [Intel-wired-lan] [RFC Patch 09/12] IXGBEVF: Add live migration support for VF driver Lan Tianyu
2015-10-21 16:37   ` [Qemu-devel] " Lan Tianyu
2015-10-21 16:37   ` Lan Tianyu
2015-10-21 21:48   ` [Intel-wired-lan] " Alexander Duyck
2015-10-21 21:48     ` [Qemu-devel] " Alexander Duyck
2015-10-21 21:48     ` Alexander Duyck
2015-10-22 12:46   ` [Intel-wired-lan] " Michael S. Tsirkin
2015-10-22 12:46     ` [Qemu-devel] " Michael S. Tsirkin
2015-10-22 12:46     ` Michael S. Tsirkin
2015-10-21 16:37 ` [Intel-wired-lan] [RFC Patch 10/12] IXGBEVF: Add lock to protect tx/rx ring operation Lan Tianyu
2015-10-21 16:37   ` [Qemu-devel] " Lan Tianyu
2015-10-21 16:37   ` Lan Tianyu
2015-10-21 21:55   ` [Intel-wired-lan] " Alexander Duyck
2015-10-21 21:55     ` [Qemu-devel] " Alexander Duyck
2015-10-21 21:55     ` Alexander Duyck
2015-10-22 12:40   ` [Intel-wired-lan] " Michael S. Tsirkin
2015-10-22 12:40     ` [Qemu-devel] " Michael S. Tsirkin
2015-10-22 12:40     ` Michael S. Tsirkin
2015-10-21 16:37 ` [Intel-wired-lan] [RFC Patch 11/12] IXGBEVF: Migrate VF statistic data Lan Tianyu
2015-10-21 16:37   ` [Qemu-devel] " Lan Tianyu
2015-10-21 16:37   ` Lan Tianyu
2015-10-22 12:36   ` [Intel-wired-lan] " Michael S. Tsirkin
2015-10-22 12:36     ` [Qemu-devel] " Michael S. Tsirkin
2015-10-22 12:36     ` Michael S. Tsirkin
2015-10-22 12:36     ` Michael S. Tsirkin
2015-10-21 16:37 ` [Intel-wired-lan] [RFC Patch 12/12] IXGBEVF: Track dma dirty pages Lan Tianyu
2015-10-21 16:37   ` [Qemu-devel] " Lan Tianyu
2015-10-21 16:37   ` Lan Tianyu
2015-10-22 12:30   ` [Intel-wired-lan] " Michael S. Tsirkin
2015-10-22 12:30     ` [Qemu-devel] " Michael S. Tsirkin
2015-10-22 12:30     ` Michael S. Tsirkin
2015-10-21 18:45 ` [Intel-wired-lan] [RFC Patch 00/12] IXGBE: Add live migration support for SRIOV NIC Or Gerlitz
2015-10-21 18:45   ` [Qemu-devel] " Or Gerlitz
2015-10-21 18:45   ` Or Gerlitz
2015-10-21 19:20   ` [Intel-wired-lan] " Alex Williamson
2015-10-21 19:20     ` [Qemu-devel] " Alex Williamson
2015-10-21 19:20     ` Alex Williamson
2015-10-21 23:26     ` [Intel-wired-lan] " Alexander Duyck
2015-10-21 23:26       ` [Qemu-devel] " Alexander Duyck
2015-10-21 23:26       ` Alexander Duyck
2015-10-22 12:32     ` [Intel-wired-lan] [Qemu-devel] " Michael S. Tsirkin
2015-10-22 12:32       ` Michael S. Tsirkin
2015-10-22 12:32       ` Michael S. Tsirkin
2015-10-22 13:01       ` [Intel-wired-lan] " Alex Williamson
2015-10-22 13:01         ` Alex Williamson
2015-10-22 13:01         ` Alex Williamson
2015-10-22 13:06         ` [Intel-wired-lan] " Michael S. Tsirkin
2015-10-22 13:06           ` Michael S. Tsirkin
2015-10-22 13:06           ` Michael S. Tsirkin
2015-10-22 15:58     ` [Intel-wired-lan] " Or Gerlitz
2015-10-22 15:58       ` [Qemu-devel] " Or Gerlitz
2015-10-22 15:58       ` Or Gerlitz
2015-10-22 16:17       ` [Intel-wired-lan] " Alex Williamson
2015-10-22 16:17         ` [Qemu-devel] " Alex Williamson
2015-10-22 16:17         ` Alex Williamson
2015-10-22 12:55 ` [Intel-wired-lan] [Qemu-devel] " Michael S. Tsirkin
2015-10-22 12:55   ` Michael S. Tsirkin
2015-10-22 12:55   ` Michael S. Tsirkin
2015-10-23 18:36 ` [Intel-wired-lan] " Alexander Duyck
2015-10-23 18:36   ` [Qemu-devel] " Alexander Duyck
2015-10-23 18:36   ` Alexander Duyck
2015-10-23 19:05   ` [Intel-wired-lan] " Alex Williamson
2015-10-23 19:05     ` [Qemu-devel] " Alex Williamson
2015-10-23 19:05     ` Alex Williamson
2015-10-23 19:05     ` Alex Williamson
2015-10-23 20:01     ` [Intel-wired-lan] " Alexander Duyck
2015-10-23 20:01       ` [Qemu-devel] " Alexander Duyck
2015-10-23 20:01       ` Alexander Duyck
2015-10-26  5:36   ` [Intel-wired-lan] " Lan Tianyu
2015-10-26  5:36     ` [Qemu-devel] " Lan Tianyu
2015-10-26  5:36     ` Lan Tianyu
2015-10-26 15:03     ` [Intel-wired-lan] " Alexander Duyck
2015-10-26 15:03       ` [Qemu-devel] " Alexander Duyck
2015-10-26 15:03       ` Alexander Duyck
2015-10-29  6:12       ` [Intel-wired-lan] " Lan Tianyu
2015-10-29  6:12         ` [Qemu-devel] " Lan Tianyu
2015-10-29  6:12         ` Lan Tianyu
2015-10-29  6:58         ` [Intel-wired-lan] " Alexander Duyck
2015-10-29  6:58           ` [Qemu-devel] " Alexander Duyck
2015-10-29  6:58           ` Alexander Duyck
2015-10-29  8:33           ` [Intel-wired-lan] " Lan Tianyu
2015-10-29  8:33             ` [Qemu-devel] " Lan Tianyu
2015-10-29  8:33             ` Lan Tianyu
2015-10-29 16:17             ` [Intel-wired-lan] " Alexander Duyck
2015-10-29 16:17               ` [Qemu-devel] " Alexander Duyck
2015-10-29 16:17               ` Alexander Duyck
2015-10-30  2:41               ` [Intel-wired-lan] " Lan Tianyu
2015-10-30  2:41                 ` [Qemu-devel] " Lan Tianyu
2015-10-30  2:41                 ` Lan Tianyu
2015-10-30 18:04                 ` [Intel-wired-lan] " Alexander Duyck
2015-10-30 18:04                   ` [Qemu-devel] " Alexander Duyck
2015-10-30 18:04                   ` Alexander Duyck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151022154802-mutt-send-email-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=intel-wired-lan@osuosl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.