From: Babu Moger <babu.mo...@oracle.com>

We noticed performance issues with VF interface on sparc compared
to PF. Setting the RX to IXGBE_DCA_RXCTRL_DATA_WRO_EN brings it
on far with PF. Also this matches to the default sparc setting in
PF driver.

Signed-off-by: Babu Moger <babu.mo...@oracle.com>
Acked-by: Sowmini Varadhan <sowmini.varad...@oracle.com>
Tested-by: Andrew Bowers <andrewx.bow...@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirs...@intel.com>
---
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c 
b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index f39c8cb..14d4729 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -1760,9 +1760,15 @@ static void ixgbevf_configure_rx_ring(struct 
ixgbevf_adapter *adapter,
        IXGBE_WRITE_REG(hw, IXGBE_VFRDLEN(reg_idx),
                        ring->count * sizeof(union ixgbe_adv_rx_desc));
 
+#ifndef CONFIG_SPARC
        /* enable relaxed ordering */
        IXGBE_WRITE_REG(hw, IXGBE_VFDCA_RXCTRL(reg_idx),
                        IXGBE_DCA_RXCTRL_DESC_RRO_EN);
+#else
+       IXGBE_WRITE_REG(hw, IXGBE_VFDCA_RXCTRL(reg_idx),
+                       IXGBE_DCA_RXCTRL_DESC_RRO_EN |
+                       IXGBE_DCA_RXCTRL_DATA_WRO_EN);
+#endif
 
        /* reset head and tail pointers */
        IXGBE_WRITE_REG(hw, IXGBE_VFRDH(reg_idx), 0);
-- 
2.5.5

Reply via email to