netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [net PATCH 0/3] Clean-up some bits related to netpoll
@ 2015-05-01 17:34 Alexander Duyck
  2015-05-01 17:34 ` [net PATCH 1/3] fm10k: Do not assume budget will never be 0 for NAPI Alexander Duyck
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Alexander Duyck @ 2015-05-01 17:34 UTC (permalink / raw)
  To: netdev, nic_swsd; +Cc: intel-wired-lan, davem

This patch set cleans up some minor items related to netpoll.  The first
patch addresses an Rx clean-up bug that is triggered due to an assumption
that napi->poll wouldn't be called with a budget of 0.  The other two
patches address dev_kfree_skb being called in the xmit path which isn't
valid since netpoll will call ndo_start_xmit with IRQs disabled.

---

Alexander Duyck (3):
      fm10k: Do not assume budget will never be 0 for NAPI
      r8169: Do not use dev_kfree_skb in xmit path
      ixgbevf: Use dev_kfree_skb_any in xmit path, not dev_kfree_skb


 drivers/net/ethernet/intel/fm10k/fm10k_main.c     |    4 ++--
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |    2 +-
 drivers/net/ethernet/realtek/r8169.c              |    4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

--

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [net PATCH 1/3] fm10k: Do not assume budget will never be 0 for NAPI
  2015-05-01 17:34 [net PATCH 0/3] Clean-up some bits related to netpoll Alexander Duyck
@ 2015-05-01 17:34 ` Alexander Duyck
  2015-05-01 17:34 ` [net PATCH 2/3] r8169: Do not use dev_kfree_skb in xmit path Alexander Duyck
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Alexander Duyck @ 2015-05-01 17:34 UTC (permalink / raw)
  To: netdev, nic_swsd; +Cc: intel-wired-lan, davem

The netpoll path will call napi->poll with a budget of 0 in order to clean
the Tx rings only.  This change updates the fm10k driver so that it will
correctly support that instead of cleaning 1 Rx frame if a budget of 0 is
received.

Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
---
 drivers/net/ethernet/intel/fm10k/fm10k_main.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_main.c b/drivers/net/ethernet/intel/fm10k/fm10k_main.c
index 4eafdad318b4..982fdcdc795b 100644
--- a/drivers/net/ethernet/intel/fm10k/fm10k_main.c
+++ b/drivers/net/ethernet/intel/fm10k/fm10k_main.c
@@ -584,7 +584,7 @@ static bool fm10k_clean_rx_irq(struct fm10k_q_vector *q_vector,
 	unsigned int total_bytes = 0, total_packets = 0;
 	u16 cleaned_count = fm10k_desc_unused(rx_ring);
 
-	do {
+	while (likely(total_packets < budget)) {
 		union fm10k_rx_desc *rx_desc;
 
 		/* return some buffers to hardware, one at a time is too slow */
@@ -633,7 +633,7 @@ static bool fm10k_clean_rx_irq(struct fm10k_q_vector *q_vector,
 
 		/* update budget accounting */
 		total_packets++;
-	} while (likely(total_packets < budget));
+	}
 
 	/* place incomplete frames back on ring for completion */
 	rx_ring->skb = skb;

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [net PATCH 2/3] r8169: Do not use dev_kfree_skb in xmit path
  2015-05-01 17:34 [net PATCH 0/3] Clean-up some bits related to netpoll Alexander Duyck
  2015-05-01 17:34 ` [net PATCH 1/3] fm10k: Do not assume budget will never be 0 for NAPI Alexander Duyck
@ 2015-05-01 17:34 ` Alexander Duyck
  2015-05-01 17:34 ` [net PATCH 3/3] ixgbevf: Use dev_kfree_skb_any in xmit path, not dev_kfree_skb Alexander Duyck
  2015-05-04  4:07 ` [net PATCH 0/3] Clean-up some bits related to netpoll David Miller
  3 siblings, 0 replies; 5+ messages in thread
From: Alexander Duyck @ 2015-05-01 17:34 UTC (permalink / raw)
  To: netdev, nic_swsd; +Cc: intel-wired-lan, davem

The function r8169_csum_workaround is called in the ndo_start_xmit path of
the r8169 driver.  As such it should not be using dev_kfree_skb as it is
not irq safe, so instead we should be using dev_kfree_skb_any for freeing
in the dropped path, and dev_consume_skb_any for any frames that were
transmitted.

Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
---
 drivers/net/ethernet/realtek/r8169.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index c70ab40d8698..3df51faf18ae 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -6884,7 +6884,7 @@ static void r8169_csum_workaround(struct rtl8169_private *tp,
 			rtl8169_start_xmit(nskb, tp->dev);
 		} while (segs);
 
-		dev_kfree_skb(skb);
+		dev_consume_skb_any(skb);
 	} else if (skb->ip_summed == CHECKSUM_PARTIAL) {
 		if (skb_checksum_help(skb) < 0)
 			goto drop;
@@ -6896,7 +6896,7 @@ static void r8169_csum_workaround(struct rtl8169_private *tp,
 drop:
 		stats = &tp->dev->stats;
 		stats->tx_dropped++;
-		dev_kfree_skb(skb);
+		dev_kfree_skb_any(skb);
 	}
 }
 

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [net PATCH 3/3] ixgbevf: Use dev_kfree_skb_any in xmit path, not dev_kfree_skb
  2015-05-01 17:34 [net PATCH 0/3] Clean-up some bits related to netpoll Alexander Duyck
  2015-05-01 17:34 ` [net PATCH 1/3] fm10k: Do not assume budget will never be 0 for NAPI Alexander Duyck
  2015-05-01 17:34 ` [net PATCH 2/3] r8169: Do not use dev_kfree_skb in xmit path Alexander Duyck
@ 2015-05-01 17:34 ` Alexander Duyck
  2015-05-04  4:07 ` [net PATCH 0/3] Clean-up some bits related to netpoll David Miller
  3 siblings, 0 replies; 5+ messages in thread
From: Alexander Duyck @ 2015-05-01 17:34 UTC (permalink / raw)
  To: netdev, nic_swsd; +Cc: intel-wired-lan, davem

With netpoll making use of the transmit function it is possible for the
ndo_start_xmit function to be called with irqs disabled.  As such we need
to use dev_kfree_skb_any in the Tx cleanup path for frames that are
dropped.

Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
---
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index cca8936f2fc3..acfa05154436 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -3584,7 +3584,7 @@ static int ixgbevf_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
 	u8 *dst_mac = skb_header_pointer(skb, 0, 0, NULL);
 
 	if (!dst_mac || is_link_local_ether_addr(dst_mac)) {
-		dev_kfree_skb(skb);
+		dev_kfree_skb_any(skb);
 		return NETDEV_TX_OK;
 	}
 

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [net PATCH 0/3] Clean-up some bits related to netpoll
  2015-05-01 17:34 [net PATCH 0/3] Clean-up some bits related to netpoll Alexander Duyck
                   ` (2 preceding siblings ...)
  2015-05-01 17:34 ` [net PATCH 3/3] ixgbevf: Use dev_kfree_skb_any in xmit path, not dev_kfree_skb Alexander Duyck
@ 2015-05-04  4:07 ` David Miller
  3 siblings, 0 replies; 5+ messages in thread
From: David Miller @ 2015-05-04  4:07 UTC (permalink / raw)
  To: alexander.h.duyck; +Cc: netdev, nic_swsd, intel-wired-lan

From: Alexander Duyck <alexander.h.duyck@redhat.com>
Date: Fri, 01 May 2015 10:34:32 -0700

> This patch set cleans up some minor items related to netpoll.  The first
> patch addresses an Rx clean-up bug that is triggered due to an assumption
> that napi->poll wouldn't be called with a budget of 0.  The other two
> patches address dev_kfree_skb being called in the xmit path which isn't
> valid since netpoll will call ndo_start_xmit with IRQs disabled.

Series applied, thanks Alex.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-05-04  4:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-01 17:34 [net PATCH 0/3] Clean-up some bits related to netpoll Alexander Duyck
2015-05-01 17:34 ` [net PATCH 1/3] fm10k: Do not assume budget will never be 0 for NAPI Alexander Duyck
2015-05-01 17:34 ` [net PATCH 2/3] r8169: Do not use dev_kfree_skb in xmit path Alexander Duyck
2015-05-01 17:34 ` [net PATCH 3/3] ixgbevf: Use dev_kfree_skb_any in xmit path, not dev_kfree_skb Alexander Duyck
2015-05-04  4:07 ` [net PATCH 0/3] Clean-up some bits related to netpoll David Miller

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