-diff -NurpP --minimal linux-4.9.78/kernel/signal.c linux-4.9.78-vs2.3.9.6/kernel/signal.c
---- linux-4.9.78/kernel/signal.c 2018-01-24 21:23:38.000000000 +0000
-+++ linux-4.9.78-vs2.3.9.6/kernel/signal.c 2018-01-13 21:30:31.000000000 +0000
+diff -urNp -x '*.orig' linux-4.9/kernel/sched/loadavg.c linux-4.9/kernel/sched/loadavg.c
+--- linux-4.9/kernel/sched/loadavg.c 2021-02-24 15:47:32.487348596 +0100
++++ linux-4.9/kernel/sched/loadavg.c 2021-02-24 15:47:45.117743722 +0100
+@@ -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)
+diff -urNp -x '*.orig' linux-4.9/kernel/signal.c linux-4.9/kernel/signal.c
+--- linux-4.9/kernel/signal.c 2021-02-24 15:47:32.490682033 +0100
++++ linux-4.9/kernel/signal.c 2021-02-24 15:47:45.117743722 +0100