[Devel] [PATCH RHEL COMMIT] ve/proc: Show vcpu in do_task_stat()

Konstantin Khorenko khorenko at virtuozzo.com
Tue Sep 28 19:31:11 MSK 2021


The commit is pushed to "branch-rh9-5.14.vz9.1.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after ark-5.14
------>
commit 0a7c9344fe47d6b7fe8d22722ccfe8823d16ddf4
Author: Kirill Tkhai <ktkhai at virtuozzo.com>
Date:   Tue Sep 28 19:31:10 2021 +0300

    ve/proc: Show vcpu in do_task_stat()
    
    Extracted from "Initial patch".
    
    Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
    
    (cherry picked from commit 78002f240e10fec47aaa4a727b5fdebba3a3e27a)
    Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>
    
    +++
    ve/proc: fix wrong output in do_task_stat()
    
    Remove printing task_cpu, this part was lost in rebase. Before patch
    we've shown extra entry in position dependant output of /proc/pid/stat,
    that made criu go mad.
    
    https://jira.sw.ru/browse/PSBM-101289
    
    mFixes: c1b073e09d58 ("ve/proc: Show vcpu in do_task_stat()")
    Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
    
    (cherry picked from vz8 commit 5704aea6c379a07ffe292e0cf378b74b98380c3e)
    Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
---
 fs/proc/array.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/proc/array.c b/fs/proc/array.c
index ee0ce8cecc4a..d726b2836c48 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -92,6 +92,7 @@
 #include <linux/string_helpers.h>
 #include <linux/user_namespace.h>
 #include <linux/fs_struct.h>
+#include <linux/ve.h>
 
 #include <asm/processor.h>
 #include "internal.h"
@@ -478,6 +479,7 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
 	u64 cgtime, gtime;
 	unsigned long rsslim = 0;
 	unsigned long flags;
+	int is_super = ve_is_super(get_exec_env());
 
 	state = *get_task_state(task);
 	vsize = eip = esp = 0;
@@ -624,7 +626,7 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
 	seq_put_decimal_ull(m, " ", 0);
 	seq_put_decimal_ull(m, " ", 0);
 	seq_put_decimal_ll(m, " ", task->exit_signal);
-	seq_put_decimal_ll(m, " ", task_cpu(task));
+	seq_put_decimal_ll(m, " ", is_super ? task_cpu(task) : task_vcpu_id(task));
 	seq_put_decimal_ull(m, " ", task->rt_priority);
 	seq_put_decimal_ull(m, " ", task->policy);
 	seq_put_decimal_ull(m, " ", delayacct_blkio_ticks(task));


More information about the Devel mailing list