Thread (8 messages) 8 messages, 4 authors, 2011-10-02

Re: RFS issue: no HW filter for paused stream

flat view

From: Ben Hutchings <hidden>
Date: 2011-09-27 23:42:51

On Thu, 2011-09-22 at 09:11 +0300, Amir Vadai wrote:
Looks good.
and now the code is much clearer
Does that mean that this change *works* for you?

Ben.

[...]
quoted
But that means we never move the flow to a new CPU in the non-
accelerated case.  So maybe the proper change would be:
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2652,10 +2652,7 @@ static struct rps_dev_flow *
  set_rps_cpu(struct net_device *dev, struct sk_buff *skb,
  	    struct rps_dev_flow *rflow, u16 next_cpu)
  {
-	u16 tcpu;
-
-	tcpu = rflow->cpu = next_cpu;
-	if (tcpu != RPS_NO_CPU) {
+	if (next_cpu != RPS_NO_CPU) {
  #ifdef CONFIG_RFS_ACCEL
  		struct netdev_rx_queue *rxqueue;
  		struct rps_dev_flow_table *flow_table;
@@ -2683,16 +2680,16 @@ set_rps_cpu(struct net_device *dev, struct sk_buff *skb,
  			goto out;
  		old_rflow = rflow;
  		rflow =&flow_table->flows[flow_id];
-		rflow->cpu = next_cpu;
  		rflow->filter = rc;
  		if (old_rflow->filter == rflow->filter)
  			old_rflow->filter = RPS_NO_FILTER;
  	out:
  #endif
  		rflow->last_qtail =
-			per_cpu(softnet_data, tcpu).input_queue_head;
+			per_cpu(softnet_data, next_cpu).input_queue_head;
  	}

+	rflow->cpu = next_cpu;
  	return rflow;
  }

--- END ---
-- 
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help