Hi Yang Shi:
We had try your patch. But  still there are lots of memcgroup can’t be release.
We guest maybe trylock(pagecache) fail may cause of that.
So we think we should try more force empty  in another time.
Inspired by you, I made a series patchs that are valid in our business sysetem. Memcgroup has decrease to 100 instead of 100000.

We think if memcgroup didn’t release. We should trigger force empty in 1 2  4 8 16 … second. That will get better chance to release this memcgroup.