[packages/kernel/LINUX_4_9] - rel 2; guest uptime fix

arekm arekm at pld-linux.org
Mon Jul 20 14:45:00 CEST 2020


commit 6296f30507292e1f2b545a509c53af6822b883f4
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Mon Jul 20 14:44:50 2020 +0200

    - rel 2; guest uptime fix

 kernel-vserver-fixes.patch | 66 ++++++++++++++++++++++++++++++++++++++++++++++
 kernel.spec                |  2 +-
 2 files changed, 67 insertions(+), 1 deletion(-)
---
diff --git a/kernel.spec b/kernel.spec
index d06e95dc..8b8ccea2 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -71,7 +71,7 @@
 %define		have_pcmcia	0
 %endif
 
-%define		rel		1
+%define		rel		2
 %define		basever		4.9
 %define		postver		.230
 
diff --git a/kernel-vserver-fixes.patch b/kernel-vserver-fixes.patch
index 615a1bbc..3d6ca5d9 100644
--- a/kernel-vserver-fixes.patch
+++ b/kernel-vserver-fixes.patch
@@ -12,3 +12,69 @@
 
 
 
+diff -NurpP --minimal linux-4.9.217-vs2.3.9.12/fs/proc/array.c linux-4.9.217-vs2.3.9.13/fs/proc/array.c
+--- linux-4.9.217-vs2.3.9.12/fs/proc/array.c	2019-10-05 14:58:45.660307716 +0000
++++ linux-4.9.217-vs2.3.9.13/fs/proc/array.c	2020-04-19 00:54:52.163080084 +0000
+@@ -567,17 +567,6 @@ static int do_task_stat(struct seq_file
+ 	/* convert nsec -> ticks */
+ 	start_time = nsec_to_clock_t(task->real_start_time);
+ 
+-	/* fixup start time for virt uptime */
+-	if (vx_flags(VXF_VIRT_UPTIME, 0)) {
+-		unsigned long long bias =
+-			current->vx_info->cvirt.bias_clock;
+-
+-		if (start_time > bias)
+-			start_time -= bias;
+-		else
+-			start_time = 0;
+-	}
+-
+ 	seq_printf(m, "%d (%s) %c", pid_nr_ns(pid, ns), tcomm, state);
+ 	seq_put_decimal_ll(m, " ", ppid);
+ 	seq_put_decimal_ll(m, " ", pgid);
+diff -NurpP --minimal linux-4.9.217-vs2.3.9.12/fs/proc/uptime.c linux-4.9.217-vs2.3.9.13/fs/proc/uptime.c
+--- linux-4.9.217-vs2.3.9.12/fs/proc/uptime.c	2019-10-13 16:02:19.324763467 +0000
++++ linux-4.9.217-vs2.3.9.13/fs/proc/uptime.c	2020-04-18 23:42:47.412036999 +0000
+@@ -23,6 +23,9 @@ static int uptime_proc_show(struct seq_f
+ 	idle.tv_sec = div_u64_rem(nsec, NSEC_PER_SEC, &rem);
+ 	idle.tv_nsec = rem;
+ 
++	if (vx_flags(VXF_VIRT_UPTIME, 0))
++		vx_vsi_uptime(&uptime, &idle);
++
+ 	seq_printf(m, "%lu.%02lu %lu.%02lu\n",
+ 			(unsigned long) uptime.tv_sec,
+ 			(uptime.tv_nsec / (NSEC_PER_SEC / 100)),
+diff -NurpP --minimal linux-4.9.217-vs2.3.9.12/include/linux/vserver/cvirt.h linux-4.9.217-vs2.3.9.13/include/linux/vserver/cvirt.h
+--- linux-4.9.217-vs2.3.9.12/include/linux/vserver/cvirt.h	2019-10-13 16:04:08.203030205 +0000
++++ linux-4.9.217-vs2.3.9.13/include/linux/vserver/cvirt.h	2020-04-19 00:30:46.735970074 +0000
+@@ -5,6 +5,9 @@ struct vx_info;
+ 
+ void vx_update_load(struct vx_info *);
+ 
++struct timespec;
++
++void vx_vsi_uptime(struct timespec *, struct timespec *);
+ 
+ int vx_do_syslog(int, char __user *, int);
+ 
+diff -NurpP --minimal linux-4.9.217-vs2.3.9.12/kernel/time/timekeeping.c linux-4.9.217-vs2.3.9.13/kernel/time/timekeeping.c
+--- linux-4.9.217-vs2.3.9.12/kernel/time/timekeeping.c	2019-12-25 15:09:47.185439847 +0000
++++ linux-4.9.217-vs2.3.9.13/kernel/time/timekeeping.c	2020-04-19 00:55:09.072812292 +0000
+@@ -770,15 +770,6 @@ ktime_t ktime_get_with_offset(enum tk_of
+ 
+ 	} while (read_seqcount_retry(&tk_core.seq, seq));
+ 
+-#ifdef CONFIG_VSERVER_VTIME
+-	if ((offs == TK_OFFS_BOOT) &&
+-		vx_flags(VXF_VIRT_UPTIME, 0) &&
+-		!vx_check(0, VS_ADMIN|VS_WATCH)) {
+-		struct vx_info *vxi = current_vx_info();
+-		ktime_t bias_uptime = timespec64_to_ktime(vxi->cvirt.bias_uptime);
+-		base = ktime_sub(base, bias_uptime);
+-	}
+-#endif
+ 	return ktime_add_ns(base, nsecs);
+ 
+ }
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/6296f30507292e1f2b545a509c53af6822b883f4



More information about the pld-cvs-commit mailing list