]> git.pld-linux.org Git - packages/kernel.git/blobdiff - kernel-vserver-fixes.patch
- 4.9.79
[packages/kernel.git] / kernel-vserver-fixes.patch
index 8284edfe4f62c34690fd2a9e479c5b3473e266ed..d123347c6396ba1817b39f5a4fbe80b7f2ffb8dd 100644 (file)
@@ -9,52 +9,27 @@
        if (pid->hide_pid < hide_pid_min)
                return true;
        if (in_group_p(pid->pid_gid))
---- linux-4.9.76/include/linux/vs_time.h       1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.76-vs2.3.9.5/include/linux/vs_time.h     2018-01-10 09:27:12.000000000 +0000
-@@ -7,7 +7,7 @@
- extern void vx_adjust_timespec(struct timespec *ts);
- extern int vx_settimeofday(const struct timespec *ts);
--extern int vx_settimeofday64(const struct timespec *ts);
-+extern int vx_settimeofday64(const struct timespec64 *ts);
- #else
- #define       vx_adjust_timespec(t)   do { } while (0)
---- linux-4.9.76/include/linux/vserver/cvirt.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.76-vs2.3.9.5/include/linux/vserver/cvirt.h       2018-01-10 02:50:49.000000000 +0000
-@@ -3,7 +3,7 @@ diff -NurpP --minimal linux-4.9.76/include/linux/vserver/cvirt.h linux-4.9.76-vs
- struct timespec;
--void vx_vsi_boottime(struct timespec *);
-+void vx_vsi_boottime(struct timespec64 *);
- void vx_vsi_uptime(struct timespec *, struct timespec *);
---- linux-4.9.76/kernel/vserver/cvirt.c        1970-01-01 00:00:00.000000000 +0000
-+++ linux-4.9.76-vs2.3.9.5/kernel/vserver/cvirt.c      2018-01-11 08:36:23.000000000 +0000
-@@ -20,11 +20,11 @@ diff -NurpP --minimal linux-4.9.76/kernel/vserver/cvirt.c linux-4.9.76-vs2.3.9.5
- #include <asm/uaccess.h>
--void vx_vsi_boottime(struct timespec *boottime)
-+void vx_vsi_boottime(struct timespec64 *boottime)
+
+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)
  {
-       struct vx_info *vxi = current_vx_info();
--      set_normalized_timespec(boottime,
-+      set_normalized_timespec64(boottime,
-               boottime->tv_sec + vxi->cvirt.bias_uptime.tv_sec,
-               boottime->tv_nsec + vxi->cvirt.bias_uptime.tv_nsec);
-       return;
-@@ -245,8 +245,8 @@ diff -NurpP --minimal linux-4.9.76/kernel/vserver/cvirt.c linux-4.9.76-vs2.3.9.5
-       struct _vx_cvirt *cvirt = &vxi->cvirt;
-       struct timespec64 uptime;
--      ktime_get_ts(&uptime);
--      set_normalized_timespec(&uptime,
-+      ktime_get_ts64(&uptime);
-+      set_normalized_timespec64(&uptime,
-               uptime.tv_sec - cvirt->bias_uptime.tv_sec,
-               uptime.tv_nsec - cvirt->bias_uptime.tv_nsec);
+-      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)
This page took 0.02425 seconds and 4 git commands to generate.