]> git.pld-linux.org Git - packages/kernel.git/blame - kernel-vserver-fixes.patch
- rel 3; fixes virt_load on vserver guests
[packages/kernel.git] / kernel-vserver-fixes.patch
CommitLineData
0232a98e
AM
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))
369dbd59 12
7bec4245
AM
13diff -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.049847 seconds and 4 git commands to generate.