commit 7bec42457cbd72a82f4f3a3c973085c60f6df6e7
Author: Arkadiusz Miƛkiewicz <[email protected]>
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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to