Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 99d3d587 authored by Wei Liu's avatar Wei Liu Committed by David S. Miller
Browse files

xen-netfront: convert to GRO API



Anirban was seeing netfront received MTU size packets, which downgraded
throughput. The following patch makes netfront use GRO API which
improves throughput for that case.

Signed-off-by: default avatarWei Liu <wei.liu2@citrix.com>
Cc: Anirban Chakraborty <abchak@juniper.net>
Cc: Ian Campbell <ian.campbell@citrix.com>
Acked-by: default avatarKonrad Wilk <konrad.wilk@oracle.com>
Acked-by: default avatarIan Campbell <ian.campbell@citrix.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ee002b64
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -952,7 +952,7 @@ static int handle_incoming_queue(struct net_device *dev,
		u64_stats_update_end(&stats->syncp);
		u64_stats_update_end(&stats->syncp);


		/* Pass it up. */
		/* Pass it up. */
		netif_receive_skb(skb);
		napi_gro_receive(&np->napi, skb);
	}
	}


	return packets_dropped;
	return packets_dropped;
@@ -1051,6 +1051,8 @@ static int xennet_poll(struct napi_struct *napi, int budget)
	if (work_done < budget) {
	if (work_done < budget) {
		int more_to_do = 0;
		int more_to_do = 0;


		napi_gro_flush(napi, false);

		local_irq_save(flags);
		local_irq_save(flags);


		RING_FINAL_CHECK_FOR_RESPONSES(&np->rx, more_to_do);
		RING_FINAL_CHECK_FOR_RESPONSES(&np->rx, more_to_do);