Re: [PATCH RFC 2/2] net: Optimize snmp stat aggregation by walking all the percpu data at once

From: Raghavendra K T
Date: Tue Aug 25 2015 - 12:09:31 EST


On 08/25/2015 09:30 PM, Eric Dumazet wrote:
On Tue, 2015-08-25 at 21:17 +0530, Raghavendra K T wrote:
On 08/25/2015 07:58 PM, Eric Dumazet wrote:



This is a great idea, but kcalloc()/kmalloc() can fail and you'll crash
the whole kernel at this point.


Good catch, and my bad. Though system is in bad memory condition,
since fill_stat is not critical for the system do you think silently
returning from here is a good idea?
or do you think we should handle with -ENOMEM way up.?

Hmm... presumably these 288 bytes could be allocated in
inet6_fill_ifla6_attrs() stack frame.

Also it is weird we fill all these stats for a device we just created
and never enabled : initial stats are all 0 for them.


Yes it is.. Initially I was even thinking

1. if we could disable the stat filling just after creation ( only
allocate the space for statistics but do not fill).

2. should we have a PROC_FS_NET_SNMP config which we can disable if not
necessary.

3. should we defer this snmp_fold_walk to a workqueue. (unfortunately
there is not much to do after this stat filling which can run in
parallel before we wait for completion.. or may be there is a way).





--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/