[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1272818607.2173.133.camel@edumazet-laptop>
Date: Sun, 02 May 2010 18:43:27 +0200
From: Eric Dumazet <eric.dumazet@...il.com>
To: Changli Gao <xiaosuo@...il.com>
Cc: "David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: [PATCH v3] net: fix softnet_stat
Le dimanche 02 mai 2010 à 23:42 +0800, Changli Gao a écrit :
> fix softnet_stat
>
> Per cpu variable softnet_data.total was shared between IRQ and SoftIRQ context
> without any protection. And enqueue_to_backlog should update the netdev_rx_stat
> of the target CPU.
>
> This patch renames softnet_data.total to softnet_data.processed: the number of
> packets processed in uppper levels(IP stacks).
>
> softnet_stat data is moved into softnet_data.
>
> Signed-off-by: Changli Gao <xiaosuo@...il.com>
Thats a fine patch, thanks Changli.
Signed-off-by: Eric Dumazet <eric.dumazet@...il.com>
>
> @@ -5869,6 +5866,7 @@ static int __init net_dev_init(void)
> for_each_possible_cpu(i) {
> struct softnet_data *sd = &per_cpu(softnet_data, i);
>
> + memset(sd, 0, sizeof(*sd));
> skb_queue_head_init(&sd->input_pkt_queue);
> skb_queue_head_init(&sd->process_queue);
> sd->completion_queue = NULL;
Minor note :
- You could have removed some NULL initializations after the memset()
- Also, per_cpu data is already 0 initialized, so memset() is not
strictly needed ;)
This is very minor, since we dont have a bss section in per_cpu data, so
it doesnt matter.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists