[packages/kernel/LINUX_4_9] - rel 3; fixes virt_load on vserver guests

arekm arekm at pld-linux.org
Sat Jan 27 16:56:15 CET 2018


commit 7bec42457cbd72a82f4f3a3c973085c60f6df6e7
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Sat Jan 27 16:56:02 2018 +0100

    - rel 3; fixes virt_load on vserver guests

 kernel-vserver-fixes.patch | 23 +++++++++++++++++++++++
 kernel.spec                |  2 +-
 2 files changed, 24 insertions(+), 1 deletion(-)
---
diff --git a/kernel.spec b/kernel.spec
index 9c7e269b..70289816 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -71,7 +71,7 @@
 %define		have_pcmcia	0
 %endif
 
-%define		rel		2
+%define		rel		3
 %define		basever		4.9
 %define		postver		.78
 
diff --git a/kernel-vserver-fixes.patch b/kernel-vserver-fixes.patch
index 22a155b5..d123347c 100644
--- a/kernel-vserver-fixes.patch
+++ b/kernel-vserver-fixes.patch
@@ -10,3 +10,26 @@
  		return true;
  	if (in_group_p(pid->pid_gid))
 
+diff -NurpP --minimal linux-4.9.78-vs2.3.9.6/kernel/sched/loadavg.c linux-4.9.78-vs2.3.9.6.1/kernel/sched/loadavg.c
+--- linux-4.9.78-vs2.3.9.6/kernel/sched/loadavg.c	2018-01-10 02:47:50.000000000 +0000
++++ linux-4.9.78-vs2.3.9.6.1/kernel/sched/loadavg.c	2018-01-26 12:19:45.000000000 +0000
+@@ -73,9 +73,16 @@ EXPORT_SYMBOL(avenrun); /* should be rem
+  */
+ void get_avenrun(unsigned long *loads, unsigned long offset, int shift)
+ {
+-	loads[0] = (avenrun[0] + offset) << shift;
+-	loads[1] = (avenrun[1] + offset) << shift;
+-	loads[2] = (avenrun[2] + offset) << shift;
++	if (vx_flags(VXF_VIRT_LOAD, 0)) {
++		struct vx_info *vxi = current_vx_info();
++		loads[0] = (vxi->cvirt.load[0] + offset) << shift;
++		loads[1] = (vxi->cvirt.load[1] + offset) << shift;
++		loads[2] = (vxi->cvirt.load[2] + offset) << shift;
++	} else {
++		loads[0] = (avenrun[0] + offset) << shift;
++		loads[1] = (avenrun[1] + offset) << shift;
++		loads[2] = (avenrun[2] + offset) << shift;
++	}
+ }
+ 
+ long calc_load_fold_active(struct rq *this_rq, long adjust)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/7bec42457cbd72a82f4f3a3c973085c60f6df6e7



More information about the pld-cvs-commit mailing list