On SMP, kernel updates vmstats only once per second, which makes vmevent unusable. Let's fix it by updating vmstats before sampling.
Reported-by: KOSAKI Motohiro kosaki.motohiro@gmail.com Signed-off-by: Anton Vorontsov anton.vorontsov@linaro.org --- mm/vmevent.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/mm/vmevent.c b/mm/vmevent.c index 4ca2a04..35fd0d5 100644 --- a/mm/vmevent.c +++ b/mm/vmevent.c @@ -2,6 +2,7 @@ #include <linux/atomic.h> #include <linux/compiler.h> #include <linux/vmevent.h> +#include <linux/mm.h> #include <linux/syscalls.h> #include <linux/workqueue.h> #include <linux/file.h> @@ -163,6 +164,9 @@ static void vmevent_sample(struct vmevent_watch *watch)
if (atomic_read(&watch->pending)) return; + + refresh_vm_stats(); + if (!vmevent_match(watch)) return;