On Thu, Nov 08, 2012 at 05:01:24PM +0000, Mel Gorman wrote:
(Sorry about being very late reviewing this)
On Wed, Nov 07, 2012 at 03:01:28AM -0800, Anton Vorontsov wrote:
This patch introduces vmpressure_fd() system call. The system call creates a new file descriptor that can be used to monitor Linux' virtual memory management pressure. There are three discrete levels of the pressure:
Why was eventfd unsuitable? It's a bit trickier to use but there are examples in the kernel where an application is required to do something like
- open eventfd
- open a control file, say /proc/sys/vm/vmpressure or if cgroups /sys/fs/cgroup/something/vmpressure
- write fd_event fd_control [low|medium|oom]. Can be a binary structure you write
and then poll the eventfd. The trickiness is awkward but a library implementation of vmpressure_fd() that mapped onto eventfd properly should be trivial.
I confess I'm not super familiar with eventfd and if this can actually work in practice
You've described how it works for memory thresholds and oom notifications in memcg. So it works. I also prefer this kind of interface.
See Documentation/cgroups/cgroups.txt section 2.4 and Documentation/cgroups/memory.txt sections 9 and 10.