* [PATCH resend] drop_monitor: fix trace_napi_poll_hit()
@ 2009-08-31 6:10 Xiao Guangrong
2009-08-31 6:31 ` Eric Dumazet
2009-09-02 1:20 ` [PATCH resend] drop_monitor: fix trace_napi_poll_hit() David Miller
0 siblings, 2 replies; 10+ messages in thread
From: Xiao Guangrong @ 2009-08-31 6:10 UTC (permalink / raw)
To: David Miller; +Cc: Neil Horman, Wei Yongjun, Netdev, LKML
The net_dev of backlog napi is NULL, like below:
__get_cpu_var(softnet_data).backlog.dev == NULL
So, we should check it in napi tracepoint's probe function
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
---
net/core/drop_monitor.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/net/core/drop_monitor.c b/net/core/drop_monitor.c
index 9d66fa9..d311202 100644
--- a/net/core/drop_monitor.c
+++ b/net/core/drop_monitor.c
@@ -182,7 +182,8 @@ static void trace_napi_poll_hit(struct napi_struct *napi)
/*
* Ratelimit our check time to dm_hw_check_delta jiffies
*/
- if (!time_after(jiffies, napi->dev->last_rx + dm_hw_check_delta))
+ if (!napi->dev ||
+ !time_after(jiffies, napi->dev->last_rx + dm_hw_check_delta))
return;
rcu_read_lock();
--
1.6.1.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH resend] drop_monitor: fix trace_napi_poll_hit()
2009-08-31 6:10 [PATCH resend] drop_monitor: fix trace_napi_poll_hit() Xiao Guangrong
@ 2009-08-31 6:31 ` Eric Dumazet
2009-08-31 11:12 ` Neil Horman
2009-09-02 1:20 ` [PATCH resend] drop_monitor: fix trace_napi_poll_hit() David Miller
1 sibling, 1 reply; 10+ messages in thread
From: Eric Dumazet @ 2009-08-31 6:31 UTC (permalink / raw)
To: Xiao Guangrong; +Cc: David Miller, Neil Horman, Wei Yongjun, Netdev, LKML
Xiao Guangrong a écrit :
> The net_dev of backlog napi is NULL, like below:
>
> __get_cpu_var(softnet_data).backlog.dev == NULL
>
> So, we should check it in napi tracepoint's probe function
>
> Acked-by: Neil Horman <nhorman@tuxdriver.com>
> Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
> ---
> net/core/drop_monitor.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/net/core/drop_monitor.c b/net/core/drop_monitor.c
> index 9d66fa9..d311202 100644
> --- a/net/core/drop_monitor.c
> +++ b/net/core/drop_monitor.c
> @@ -182,7 +182,8 @@ static void trace_napi_poll_hit(struct napi_struct *napi)
> /*
> * Ratelimit our check time to dm_hw_check_delta jiffies
> */
> - if (!time_after(jiffies, napi->dev->last_rx + dm_hw_check_delta))
> + if (!napi->dev ||
> + !time_after(jiffies, napi->dev->last_rx + dm_hw_check_delta))
> return;
>
> rcu_read_lock();
This reminds me dev->last_rx is not anymore updated, unless special conditions
are met.
Test done in trace_napi_poll_hit() is probably not good, even with a non null napi->dev
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH resend] drop_monitor: fix trace_napi_poll_hit()
2009-08-31 6:31 ` Eric Dumazet
@ 2009-08-31 11:12 ` Neil Horman
2009-08-31 11:47 ` David Miller
2009-08-31 13:33 ` Eric Dumazet
0 siblings, 2 replies; 10+ messages in thread
From: Neil Horman @ 2009-08-31 11:12 UTC (permalink / raw)
To: Eric Dumazet; +Cc: Xiao Guangrong, David Miller, Wei Yongjun, Netdev, LKML
On Mon, Aug 31, 2009 at 08:31:51AM +0200, Eric Dumazet wrote:
> Xiao Guangrong a écrit :
> > The net_dev of backlog napi is NULL, like below:
> >
> > __get_cpu_var(softnet_data).backlog.dev == NULL
> >
> > So, we should check it in napi tracepoint's probe function
> >
> > Acked-by: Neil Horman <nhorman@tuxdriver.com>
> > Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
> > ---
> > net/core/drop_monitor.c | 3 ++-
> > 1 files changed, 2 insertions(+), 1 deletions(-)
> >
> > diff --git a/net/core/drop_monitor.c b/net/core/drop_monitor.c
> > index 9d66fa9..d311202 100644
> > --- a/net/core/drop_monitor.c
> > +++ b/net/core/drop_monitor.c
> > @@ -182,7 +182,8 @@ static void trace_napi_poll_hit(struct napi_struct *napi)
> > /*
> > * Ratelimit our check time to dm_hw_check_delta jiffies
> > */
> > - if (!time_after(jiffies, napi->dev->last_rx + dm_hw_check_delta))
> > + if (!napi->dev ||
> > + !time_after(jiffies, napi->dev->last_rx + dm_hw_check_delta))
> > return;
> >
> > rcu_read_lock();
>
>
> This reminds me dev->last_rx is not anymore updated, unless special conditions
> are met.
>
I still see a large number of drivers that update dev->last_rx, although its
not all as I look through the list, so something definately seems amiss.
If its not going to be consistently updated, why are still carrying that field
in dev? Are we just waiting on someone to do the janitorial work to remove it?
If so, I can, and I'll fix up the drop monitor in the process, to use a private
timestamp.
Neil
> Test done in trace_napi_poll_hit() is probably not good, even with a non null napi->dev
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH resend] drop_monitor: fix trace_napi_poll_hit()
2009-08-31 11:12 ` Neil Horman
@ 2009-08-31 11:47 ` David Miller
2009-08-31 13:33 ` Eric Dumazet
1 sibling, 0 replies; 10+ messages in thread
From: David Miller @ 2009-08-31 11:47 UTC (permalink / raw)
To: nhorman; +Cc: eric.dumazet, xiaoguangrong, yjwei, netdev, linux-kernel
From: Neil Horman <nhorman@tuxdriver.com>
Date: Mon, 31 Aug 2009 07:12:46 -0400
> If its not going to be consistently updated, why are still carrying
> that field in dev? Are we just waiting on someone to do the
> janitorial work to remove it? If so, I can, and I'll fix up the
> drop monitor in the process, to use a private timestamp.
It's used only for bonding, so we only update it when a device
receives packet as part of a bond.
%99.9999 of people are not in that situation, and in that case this is
a very wasteful and expensive cacheline dirtying, so we elide it when
we can.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH resend] drop_monitor: fix trace_napi_poll_hit()
2009-08-31 11:12 ` Neil Horman
2009-08-31 11:47 ` David Miller
@ 2009-08-31 13:33 ` Eric Dumazet
2009-08-31 15:42 ` Neil Horman
2009-08-31 16:34 ` [PATCH net-next-2.6] drivers: Kill now superfluous ->last_rx stores Eric Dumazet
1 sibling, 2 replies; 10+ messages in thread
From: Eric Dumazet @ 2009-08-31 13:33 UTC (permalink / raw)
To: Neil Horman; +Cc: Xiao Guangrong, David Miller, Wei Yongjun, Netdev, LKML
Neil Horman a écrit :
> I still see a large number of drivers that update dev->last_rx, although its
> not all as I look through the list, so something definately seems amiss.
Some drivers still update dev->last_rx for their own needs, not a core
network concern.
But a cleanup is certainly possible on few other drivers, about a dozen
if I count correctly.
>
> If its not going to be consistently updated, why are still carrying that field
> in dev? Are we just waiting on someone to do the janitorial work to remove it?
> If so, I can, and I'll fix up the drop monitor in the process, to use a private
> timestamp.
We have to keep dev->last_rx for bonding use, so please use a private
timestamp for drop monitor.
Thanks
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH resend] drop_monitor: fix trace_napi_poll_hit()
2009-08-31 13:33 ` Eric Dumazet
@ 2009-08-31 15:42 ` Neil Horman
2009-08-31 16:34 ` [PATCH net-next-2.6] drivers: Kill now superfluous ->last_rx stores Eric Dumazet
1 sibling, 0 replies; 10+ messages in thread
From: Neil Horman @ 2009-08-31 15:42 UTC (permalink / raw)
To: Eric Dumazet; +Cc: Xiao Guangrong, David Miller, Wei Yongjun, Netdev, LKML
On Mon, Aug 31, 2009 at 03:33:50PM +0200, Eric Dumazet wrote:
> Neil Horman a écrit :
> > I still see a large number of drivers that update dev->last_rx, although its
> > not all as I look through the list, so something definately seems amiss.
>
> Some drivers still update dev->last_rx for their own needs, not a core
> network concern.
>
> But a cleanup is certainly possible on few other drivers, about a dozen
> if I count correctly.
>
> >
> > If its not going to be consistently updated, why are still carrying that field
> > in dev? Are we just waiting on someone to do the janitorial work to remove it?
> > If so, I can, and I'll fix up the drop monitor in the process, to use a private
> > timestamp.
>
> We have to keep dev->last_rx for bonding use, so please use a private
> timestamp for drop monitor.
>
Copy that, I'll submit a drop monitor patch for this sometime this week. Thanks
for the heads up!
Neil
> Thanks
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH net-next-2.6] drivers: Kill now superfluous ->last_rx stores
2009-08-31 13:33 ` Eric Dumazet
2009-08-31 15:42 ` Neil Horman
@ 2009-08-31 16:34 ` Eric Dumazet
2009-08-31 17:37 ` Neil Horman
2009-09-03 6:09 ` David Miller
1 sibling, 2 replies; 10+ messages in thread
From: Eric Dumazet @ 2009-08-31 16:34 UTC (permalink / raw)
To: David Miller; +Cc: Neil Horman, Netdev
Eric Dumazet a écrit :
> Neil Horman a écrit :
>> I still see a large number of drivers that update dev->last_rx, although its
>> not all as I look through the list, so something definately seems amiss.
>
> Some drivers still update dev->last_rx for their own needs, not a core
> network concern.
>
> But a cleanup is certainly possible on few other drivers, about a dozen
> if I count correctly.
Well, a litle bit more if we look outside of drivers/net
[PATCH net-next-2.6] drivers: Kill now superfluous ->last_rx stores
The generic packet receive code takes care of setting
netdev->last_rx when necessary, for the sake of the
bonding ARP monitor.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
---
drivers/firewire/net.c | 2 --
drivers/ieee1394/eth1394.c | 1 -
drivers/infiniband/hw/amso1100/c2.c | 1 -
drivers/infiniband/hw/nes/nes_hw.c | 2 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 1 -
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 1 -
drivers/misc/sgi-xp/xpnet.c | 1 -
drivers/net/arm/ks8695net.c | 1 -
drivers/net/arm/w90p910_ether.c | 1 -
drivers/net/atl1c/atl1c_main.c | 1 -
drivers/net/benet/be_main.c | 2 --
drivers/net/can/dev.c | 1 -
drivers/net/can/sja1000/sja1000.c | 2 --
drivers/net/davinci_emac.c | 1 -
drivers/net/ethoc.c | 1 -
drivers/net/igbvf/netdev.c | 4 ----
drivers/net/smsc911x.c | 1 -
drivers/net/smsc9420.c | 1 -
drivers/net/vxge/vxge-main.c | 2 --
drivers/net/wireless/b43legacy/xmit.c | 1 -
drivers/net/xilinx_emaclite.c | 1 -
drivers/s390/net/ctcm_main.c | 1 -
drivers/s390/net/netiucv.c | 1 -
drivers/s390/net/qeth_l2_main.c | 1 -
drivers/s390/net/qeth_l3_main.c | 1 -
25 files changed, 1 insertion(+), 32 deletions(-)
diff --git a/drivers/firewire/net.c b/drivers/firewire/net.c
index a42209a..3f58969 100644
--- a/drivers/firewire/net.c
+++ b/drivers/firewire/net.c
@@ -663,8 +663,6 @@ static int fwnet_finish_incoming_packet(struct net_device *net,
if (netif_queue_stopped(net))
netif_wake_queue(net);
- net->last_rx = jiffies;
-
return 0;
}
diff --git a/drivers/ieee1394/eth1394.c b/drivers/ieee1394/eth1394.c
index f5c586c..f3bf083 100644
--- a/drivers/ieee1394/eth1394.c
+++ b/drivers/ieee1394/eth1394.c
@@ -1300,7 +1300,6 @@ static void ether1394_iso(struct hpsb_iso *iso)
hpsb_iso_recv_release_packets(iso, i);
- dev->last_rx = jiffies;
}
/******************************************
diff --git a/drivers/infiniband/hw/amso1100/c2.c b/drivers/infiniband/hw/amso1100/c2.c
index 0cfbb6d..8c5d284 100644
--- a/drivers/infiniband/hw/amso1100/c2.c
+++ b/drivers/infiniband/hw/amso1100/c2.c
@@ -530,7 +530,6 @@ static void c2_rx_interrupt(struct net_device *netdev)
netif_rx(skb);
- netdev->last_rx = jiffies;
netdev->stats.rx_packets++;
netdev->stats.rx_bytes += buflen;
}
diff --git a/drivers/infiniband/hw/nes/nes_hw.c b/drivers/infiniband/hw/nes/nes_hw.c
index 4a84d02..97d4c2a 100644
--- a/drivers/infiniband/hw/nes/nes_hw.c
+++ b/drivers/infiniband/hw/nes/nes_hw.c
@@ -2741,7 +2741,7 @@ void nes_nic_ce_handler(struct nes_device *nesdev, struct nes_hw_nic_cq *cq)
}
skip_rx_indicate0:
- nesvnic->netdev->last_rx = jiffies;
+ ;
/* nesvnic->netstats.rx_packets++; */
/* nesvnic->netstats.rx_bytes += rx_pkt_size; */
}
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
index 181b1f3..986f07f 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
@@ -663,7 +663,6 @@ copied:
skb_reset_mac_header(skb);
skb_pull(skb, IPOIB_ENCAP_LEN);
- dev->last_rx = jiffies;
++dev->stats.rx_packets;
dev->stats.rx_bytes += skb->len;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
index e7e5adf..c9dcb20 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -277,7 +277,6 @@ static void ipoib_ib_handle_rx_wc(struct net_device *dev, struct ib_wc *wc)
skb_reset_mac_header(skb);
skb_pull(skb, IPOIB_ENCAP_LEN);
- dev->last_rx = jiffies;
++dev->stats.rx_packets;
dev->stats.rx_bytes += skb->len;
diff --git a/drivers/misc/sgi-xp/xpnet.c b/drivers/misc/sgi-xp/xpnet.c
index 212da9a..16f0abd 100644
--- a/drivers/misc/sgi-xp/xpnet.c
+++ b/drivers/misc/sgi-xp/xpnet.c
@@ -240,7 +240,6 @@ xpnet_receive(short partid, int channel, struct xpnet_message *msg)
(void *)skb->head, (void *)skb->data, skb_tail_pointer(skb),
skb_end_pointer(skb), skb->len);
- xpnet_device->last_rx = jiffies;
xpnet_device->stats.rx_packets++;
xpnet_device->stats.rx_bytes += skb->len + ETH_HLEN;
diff --git a/drivers/net/arm/ks8695net.c b/drivers/net/arm/ks8695net.c
index 35cd264..e12d2c8 100644
--- a/drivers/net/arm/ks8695net.c
+++ b/drivers/net/arm/ks8695net.c
@@ -467,7 +467,6 @@ ks8695_rx_irq(int irq, void *dev_id)
netif_rx(skb);
/* Record stats */
- ndev->last_rx = jiffies;
ndev->stats.rx_packets++;
ndev->stats.rx_bytes += pktlen;
goto rx_finished;
diff --git a/drivers/net/arm/w90p910_ether.c b/drivers/net/arm/w90p910_ether.c
index 890716f..04f4114 100644
--- a/drivers/net/arm/w90p910_ether.c
+++ b/drivers/net/arm/w90p910_ether.c
@@ -777,7 +777,6 @@ static void netdev_rx(struct net_device *dev)
rxbd = ðer->rdesc->desclist[ether->cur_rx];
- dev->last_rx = jiffies;
} while (1);
}
diff --git a/drivers/net/atl1c/atl1c_main.c b/drivers/net/atl1c/atl1c_main.c
index 1d601ce..81c6928 100644
--- a/drivers/net/atl1c/atl1c_main.c
+++ b/drivers/net/atl1c/atl1c_main.c
@@ -1740,7 +1740,6 @@ rrs_checked:
} else
netif_receive_skb(skb);
- netdev->last_rx = jiffies;
(*work_done)++;
count++;
}
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c
index 7b9efee..0695acc 100644
--- a/drivers/net/benet/be_main.c
+++ b/drivers/net/benet/be_main.c
@@ -774,8 +774,6 @@ static void be_rx_compl_process(struct be_adapter *adapter,
netif_receive_skb(skb);
}
- adapter->netdev->last_rx = jiffies;
-
return;
}
diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
index e1a4f82..1d29082 100644
--- a/drivers/net/can/dev.c
+++ b/drivers/net/can/dev.c
@@ -357,7 +357,6 @@ void can_restart(unsigned long data)
netif_rx(skb);
- dev->last_rx = jiffies;
stats->rx_packets++;
stats->rx_bytes += cf->can_dlc;
diff --git a/drivers/net/can/sja1000/sja1000.c b/drivers/net/can/sja1000/sja1000.c
index b3004de..56a1355 100644
--- a/drivers/net/can/sja1000/sja1000.c
+++ b/drivers/net/can/sja1000/sja1000.c
@@ -339,7 +339,6 @@ static void sja1000_rx(struct net_device *dev)
netif_rx(skb);
- dev->last_rx = jiffies;
stats->rx_packets++;
stats->rx_bytes += dlc;
}
@@ -454,7 +453,6 @@ static int sja1000_err(struct net_device *dev, uint8_t isrc, uint8_t status)
netif_rx(skb);
- dev->last_rx = jiffies;
stats->rx_packets++;
stats->rx_bytes += cf->can_dlc;
diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
index 5e6652b..d465eaa 100644
--- a/drivers/net/davinci_emac.c
+++ b/drivers/net/davinci_emac.c
@@ -1920,7 +1920,6 @@ static int emac_net_rx_cb(struct emac_priv *priv,
skb_put(p_skb, net_pkt_list->pkt_length);
EMAC_CACHE_INVALIDATE((unsigned long)p_skb->data, p_skb->len);
p_skb->protocol = eth_type_trans(p_skb, priv->ndev);
- p_skb->dev->last_rx = jiffies;
netif_receive_skb(p_skb);
priv->net_dev_stats.rx_bytes += net_pkt_list->pkt_length;
priv->net_dev_stats.rx_packets++;
diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c
index 4dbe5f1..710b564 100644
--- a/drivers/net/ethoc.c
+++ b/drivers/net/ethoc.c
@@ -404,7 +404,6 @@ static int ethoc_rx(struct net_device *dev, int limit)
void *src = priv->membase + bd.addr;
memcpy_fromio(skb_put(skb, size), src, size);
skb->protocol = eth_type_trans(skb, dev);
- dev->last_rx = jiffies;
priv->stats.rx_packets++;
priv->stats.rx_bytes += size;
netif_receive_skb(skb);
diff --git a/drivers/net/igbvf/netdev.c b/drivers/net/igbvf/netdev.c
index 3f03c42..3dced7c 100644
--- a/drivers/net/igbvf/netdev.c
+++ b/drivers/net/igbvf/netdev.c
@@ -96,8 +96,6 @@ static void igbvf_receive_skb(struct igbvf_adapter *adapter,
E1000_RXD_SPC_VLAN_MASK);
else
netif_receive_skb(skb);
-
- netdev->last_rx = jiffies;
}
static inline void igbvf_rx_checksum_adv(struct igbvf_adapter *adapter,
@@ -342,8 +340,6 @@ send_up:
igbvf_receive_skb(adapter, netdev, skb, staterr,
rx_desc->wb.upper.vlan);
- netdev->last_rx = jiffies;
-
next_desc:
rx_desc->wb.upper.status_error = 0;
diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c
index c266785..ccdd196 100644
--- a/drivers/net/smsc911x.c
+++ b/drivers/net/smsc911x.c
@@ -1047,7 +1047,6 @@ static int smsc911x_poll(struct napi_struct *napi, int budget)
/* Update counters */
dev->stats.rx_packets++;
dev->stats.rx_bytes += (pktlength - 4);
- dev->last_rx = jiffies;
}
/* Return total received packets */
diff --git a/drivers/net/smsc9420.c b/drivers/net/smsc9420.c
index 60abdb1..4434b51 100644
--- a/drivers/net/smsc9420.c
+++ b/drivers/net/smsc9420.c
@@ -817,7 +817,6 @@ static void smsc9420_rx_handoff(struct smsc9420_pdata *pd, const int index,
skb->protocol = eth_type_trans(skb, dev);
netif_receive_skb(skb);
- dev->last_rx = jiffies;
}
static int smsc9420_alloc_rx_buffer(struct smsc9420_pdata *pd, int index)
diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c
index 094d155..53941b9 100644
--- a/drivers/net/vxge/vxge-main.c
+++ b/drivers/net/vxge/vxge-main.c
@@ -588,8 +588,6 @@ vxge_rx_1b_compl(struct __vxge_hw_ring *ringh, void *dtr,
if (first_dtr)
vxge_hw_ring_rxd_post_post_wmb(ringh, first_dtr);
- dev->last_rx = jiffies;
-
vxge_debug_entryexit(VXGE_TRACE,
"%s:%d Exiting...",
__func__, __LINE__);
diff --git a/drivers/net/wireless/b43legacy/xmit.c b/drivers/net/wireless/b43legacy/xmit.c
index f79cee8..103f3c9 100644
--- a/drivers/net/wireless/b43legacy/xmit.c
+++ b/drivers/net/wireless/b43legacy/xmit.c
@@ -590,7 +590,6 @@ void b43legacy_rx(struct b43legacy_wldev *dev,
chanstat);
}
- dev->stats.last_rx = jiffies;
memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status));
ieee80211_rx_irqsafe(dev->wl->hw, skb);
diff --git a/drivers/net/xilinx_emaclite.c b/drivers/net/xilinx_emaclite.c
index 7e05b40..dc22782 100755
--- a/drivers/net/xilinx_emaclite.c
+++ b/drivers/net/xilinx_emaclite.c
@@ -587,7 +587,6 @@ static void xemaclite_rx_handler(struct net_device *dev)
dev->stats.rx_packets++;
dev->stats.rx_bytes += len;
- dev->last_rx = jiffies;
netif_rx(skb); /* Send the packet upstream */
}
diff --git a/drivers/s390/net/ctcm_main.c b/drivers/s390/net/ctcm_main.c
index 38b5079..c5b8387 100644
--- a/drivers/s390/net/ctcm_main.c
+++ b/drivers/s390/net/ctcm_main.c
@@ -164,7 +164,6 @@ void ctcm_unpack_skb(struct channel *ch, struct sk_buff *pskb)
priv->stats.rx_packets++;
priv->stats.rx_bytes += skblen;
netif_rx_ni(skb);
- dev->last_rx = jiffies;
if (len > 0) {
skb_pull(pskb, header->length);
if (skb_tailroom(pskb) < LL_HEADER_LENGTH) {
diff --git a/drivers/s390/net/netiucv.c b/drivers/s390/net/netiucv.c
index bb1183a..271c4a8 100644
--- a/drivers/s390/net/netiucv.c
+++ b/drivers/s390/net/netiucv.c
@@ -676,7 +676,6 @@ static void netiucv_unpack_skb(struct iucv_connection *conn,
* we must use netif_rx_ni() instead of netif_rx()
*/
netif_rx_ni(skb);
- dev->last_rx = jiffies;
skb_pull(pskb, header->next);
skb_put(pskb, NETIUCV_HDRLEN);
}
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c
index 12ee7a3..7d7d6d9 100644
--- a/drivers/s390/net/qeth_l2_main.c
+++ b/drivers/s390/net/qeth_l2_main.c
@@ -449,7 +449,6 @@ static void qeth_l2_process_inbound_buffer(struct qeth_card *card,
QETH_DBF_HEX(CTRL, 3, hdr, QETH_DBF_CTRL_LEN);
continue;
}
- card->dev->last_rx = jiffies;
card->stats.rx_packets++;
card->stats.rx_bytes += len;
}
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c
index d9fabe3..d2eabbc 100644
--- a/drivers/s390/net/qeth_l3_main.c
+++ b/drivers/s390/net/qeth_l3_main.c
@@ -1987,7 +1987,6 @@ static void qeth_l3_process_inbound_buffer(struct qeth_card *card,
continue;
}
- card->dev->last_rx = jiffies;
card->stats.rx_packets++;
card->stats.rx_bytes += len;
}
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH net-next-2.6] drivers: Kill now superfluous ->last_rx stores
2009-08-31 16:34 ` [PATCH net-next-2.6] drivers: Kill now superfluous ->last_rx stores Eric Dumazet
@ 2009-08-31 17:37 ` Neil Horman
2009-09-03 6:09 ` David Miller
1 sibling, 0 replies; 10+ messages in thread
From: Neil Horman @ 2009-08-31 17:37 UTC (permalink / raw)
To: Eric Dumazet; +Cc: David Miller, Netdev
On Mon, Aug 31, 2009 at 06:34:50PM +0200, Eric Dumazet wrote:
> Eric Dumazet a écrit :
> > Neil Horman a écrit :
> >> I still see a large number of drivers that update dev->last_rx, although its
> >> not all as I look through the list, so something definately seems amiss.
> >
> > Some drivers still update dev->last_rx for their own needs, not a core
> > network concern.
> >
> > But a cleanup is certainly possible on few other drivers, about a dozen
> > if I count correctly.
>
> Well, a litle bit more if we look outside of drivers/net
>
> [PATCH net-next-2.6] drivers: Kill now superfluous ->last_rx stores
>
> The generic packet receive code takes care of setting
> netdev->last_rx when necessary, for the sake of the
> bonding ARP monitor.
>
> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Acked-by: Neil Horman <nhorman@txudriver.com>
Thanks!
Neil
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH resend] drop_monitor: fix trace_napi_poll_hit()
2009-08-31 6:10 [PATCH resend] drop_monitor: fix trace_napi_poll_hit() Xiao Guangrong
2009-08-31 6:31 ` Eric Dumazet
@ 2009-09-02 1:20 ` David Miller
1 sibling, 0 replies; 10+ messages in thread
From: David Miller @ 2009-09-02 1:20 UTC (permalink / raw)
To: xiaoguangrong; +Cc: nhorman, yjwei, netdev, linux-kernel
From: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Date: Mon, 31 Aug 2009 14:10:43 +0800
> The net_dev of backlog napi is NULL, like below:
>
> __get_cpu_var(softnet_data).backlog.dev == NULL
>
> So, we should check it in napi tracepoint's probe function
>
> Acked-by: Neil Horman <nhorman@tuxdriver.com>
> Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Applied to net-next-2.6, thanks.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH net-next-2.6] drivers: Kill now superfluous ->last_rx stores
2009-08-31 16:34 ` [PATCH net-next-2.6] drivers: Kill now superfluous ->last_rx stores Eric Dumazet
2009-08-31 17:37 ` Neil Horman
@ 2009-09-03 6:09 ` David Miller
1 sibling, 0 replies; 10+ messages in thread
From: David Miller @ 2009-09-03 6:09 UTC (permalink / raw)
To: eric.dumazet; +Cc: nhorman, netdev
From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Mon, 31 Aug 2009 18:34:50 +0200
> Eric Dumazet a écrit :
>> Neil Horman a écrit :
>>> I still see a large number of drivers that update dev->last_rx, although its
>>> not all as I look through the list, so something definately seems amiss.
>>
>> Some drivers still update dev->last_rx for their own needs, not a core
>> network concern.
>>
>> But a cleanup is certainly possible on few other drivers, about a dozen
>> if I count correctly.
>
> Well, a litle bit more if we look outside of drivers/net
>
> [PATCH net-next-2.6] drivers: Kill now superfluous ->last_rx stores
>
> The generic packet receive code takes care of setting
> netdev->last_rx when necessary, for the sake of the
> bonding ARP monitor.
>
> Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Applied, thanks Eric.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2009-09-03 6:09 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-31 6:10 [PATCH resend] drop_monitor: fix trace_napi_poll_hit() Xiao Guangrong
2009-08-31 6:31 ` Eric Dumazet
2009-08-31 11:12 ` Neil Horman
2009-08-31 11:47 ` David Miller
2009-08-31 13:33 ` Eric Dumazet
2009-08-31 15:42 ` Neil Horman
2009-08-31 16:34 ` [PATCH net-next-2.6] drivers: Kill now superfluous ->last_rx stores Eric Dumazet
2009-08-31 17:37 ` Neil Horman
2009-09-03 6:09 ` David Miller
2009-09-02 1:20 ` [PATCH resend] drop_monitor: fix trace_napi_poll_hit() 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).