]> git.pld-linux.org Git - packages/kernel.git/blob - kernel-vserver-fixes.patch
- rel 3; fixes virt_load on vserver guests
[packages/kernel.git] / kernel-vserver-fixes.patch
1 --- linux-3.3/fs/proc/base.c~   2012-03-19 21:44:42.000000000 +0100
2 +++ linux-3.3/fs/proc/base.c    2012-03-21 12:25:28.051092423 +0100
3 @@ -568,6 +568,8 @@
4                                  struct task_struct *task,
5                                  int hide_pid_min)
6  {
7 +       if (vx_check(0, VS_WATCH_P))
8 +               return true;
9         if (pid->hide_pid < hide_pid_min)
10                 return true;
11         if (in_group_p(pid->pid_gid))
12
13 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
14 --- linux-4.9.78-vs2.3.9.6/kernel/sched/loadavg.c       2018-01-10 02:47:50.000000000 +0000
15 +++ linux-4.9.78-vs2.3.9.6.1/kernel/sched/loadavg.c     2018-01-26 12:19:45.000000000 +0000
16 @@ -73,9 +73,16 @@ EXPORT_SYMBOL(avenrun); /* should be rem
17   */
18  void get_avenrun(unsigned long *loads, unsigned long offset, int shift)
19  {
20 -       loads[0] = (avenrun[0] + offset) << shift;
21 -       loads[1] = (avenrun[1] + offset) << shift;
22 -       loads[2] = (avenrun[2] + offset) << shift;
23 +       if (vx_flags(VXF_VIRT_LOAD, 0)) {
24 +               struct vx_info *vxi = current_vx_info();
25 +               loads[0] = (vxi->cvirt.load[0] + offset) << shift;
26 +               loads[1] = (vxi->cvirt.load[1] + offset) << shift;
27 +               loads[2] = (vxi->cvirt.load[2] + offset) << shift;
28 +       } else {
29 +               loads[0] = (avenrun[0] + offset) << shift;
30 +               loads[1] = (avenrun[1] + offset) << shift;
31 +               loads[2] = (avenrun[2] + offset) << shift;
32 +       }
33  }
34  
35  long calc_load_fold_active(struct rq *this_rq, long adjust)
This page took 0.039204 seconds and 4 git commands to generate.