[Devel] [PATCH RH7] nr_cpus: cut lines in /proc/net/softnet_stat to number of vcpus in CT

Pavel Tikhomirov ptikhomirov at virtuozzo.com
Wed Nov 15 11:10:41 MSK 2017


Counters are not virtualized, we just remove the leak of host's number
of cpus. Done similar to /proc/cpuinfo, in case of cpu hotplug race with
reading proc, can actually show arbitrary number of lines as we do no
locking like get_online_cpus or cpuhp_lock_acquire_read, it seem we do
so for the sake of simplicity.

https://jira.sw.ru/browse/PSBM-73238
Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
---
 net/core/net-procfs.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/core/net-procfs.c b/net/core/net-procfs.c
index 0ea5ce99aec1..263edc6794b5 100644
--- a/net/core/net-procfs.c
+++ b/net/core/net-procfs.c
@@ -121,7 +121,8 @@ static struct softnet_data *softnet_get_online(loff_t *pos)
 
 	while (*pos < nr_cpu_ids)
 		if (cpu_online(*pos)) {
-			sd = &per_cpu(softnet_data, *pos);
+			if (__cpus_weight(cpu_online_mask, *pos) < num_online_vcpus())
+				sd = &per_cpu(softnet_data, *pos);
 			break;
 		} else
 			++*pos;
-- 
2.13.6



More information about the Devel mailing list