diff options
author | Zoltan Kiss <zoltan.kiss@citrix.com> | 2014-03-06 16:48:28 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-03-07 15:56:35 -0500 |
commit | 1bb332af4cd889e4b64dacbf4a793ceb3a70445d (patch) | |
tree | 1aef36c3aa0f6366562e169fbfe7589190d9387e /drivers/net/xen-netback/interface.c | |
parent | 62bad3199a4c20505fc36c169deef20b25e17c5f (diff) |
xen-netback: Add stat counters for zerocopy
These counters help determine how often the buffers had to be copied. Also
they help find out if packets are leaked, as if "sent != success + fail",
there are probably packets never freed up properly.
NOTE: if bisect brought you here, you should apply the series up until
"xen-netback: Timeout packets in RX path", otherwise Windows guests can't work
properly and malicious guests can block other guests by not releasing their sent
packets.
Signed-off-by: Zoltan Kiss <zoltan.kiss@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/xen-netback/interface.c')
-rw-r--r-- | drivers/net/xen-netback/interface.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c index 1fe9fe523cc8..44df8581b4d7 100644 --- a/drivers/net/xen-netback/interface.c +++ b/drivers/net/xen-netback/interface.c | |||
@@ -238,6 +238,21 @@ static const struct xenvif_stat { | |||
238 | "rx_gso_checksum_fixup", | 238 | "rx_gso_checksum_fixup", |
239 | offsetof(struct xenvif, rx_gso_checksum_fixup) | 239 | offsetof(struct xenvif, rx_gso_checksum_fixup) |
240 | }, | 240 | }, |
241 | /* If (sent != success + fail), there are probably packets never | ||
242 | * freed up properly! | ||
243 | */ | ||
244 | { | ||
245 | "tx_zerocopy_sent", | ||
246 | offsetof(struct xenvif, tx_zerocopy_sent), | ||
247 | }, | ||
248 | { | ||
249 | "tx_zerocopy_success", | ||
250 | offsetof(struct xenvif, tx_zerocopy_success), | ||
251 | }, | ||
252 | { | ||
253 | "tx_zerocopy_fail", | ||
254 | offsetof(struct xenvif, tx_zerocopy_fail) | ||
255 | }, | ||
241 | }; | 256 | }; |
242 | 257 | ||
243 | static int xenvif_get_sset_count(struct net_device *dev, int string_set) | 258 | static int xenvif_get_sset_count(struct net_device *dev, int string_set) |