On Fri 24-09-21 06:44:25, yongw.pur@xxxxxxxxx wrote: > From: wangyong <wang.yong12@xxxxxxxxxx> > > Use the global variable num_events to record the number of vmpressure > events registered by the system, and wake up work only when there > is registration event. > Usually, the vmpressure event is not registered in the system, this patch > can avoid waking up work and doing nothing. > > Test with 5.14.0-rc5-next-20210813 on x86_64 4G ram. > Consume cgroup memory until it is about to be reclaimed, then execute > "perf stat -I 2000 malloc.out" command to trigger memory reclamation > and get performance results. > The context-switches is reduced by about 20 times. > > unpatched: > Average of 10 test results > 582.4674048 task-clock(msec) > 19910.8 context-switches > 0 cpu-migrations > 1292.9 page-faults > 414784733.1 cycles > 580070698.4 instructions > 125572244.7 branches > 2073541.2 branch-misses > > patched: > Average of 10 test results > 973.6174796 task-clock(msec) > 988.6 context-switches > 0 cpu-migrations > 1785.2 page-faults > 772883602.4 cycles > 1360280911 instructions > 290519434.9 branches > 3378378.2 branch-misses Your data still doesn't make any sense. I have asked about that in the previous submission and you haven't really clarified anything. How come your task-clock has almost doubled. You are likely not not comparing apples to apples or something weird is going on. This patch is not going to fly without a sensible data and analysis of that data. Thanks! -- Michal Hocko SUSE Labs