Yo,
Interesting patch series (I am being yuppie and reading this thread
from my iPhone on a treadmill at the gym - so further comments later).
I think that this is broadly along the lines that I was thinking, but
this should be an RFC only patch series for now.
Some initial questions:
Where is the netlink interface? Polling an FD is so last century :)
What testing have you done?
Still, it is good to start with some code - eventually we might just
have a full reservation API created. Rik and I and others have bounced
ideas around for a while and I hope we can pitch in. I will play with
these patches later.
Jon.
On Feb 9, 2008, at 10:19, "KOSAKI Motohiro" <kosaki.motohiro@xxxxxxxxxxxxxx
> wrote:
Hi
The /dev/mem_notify is low memory notification device.
it can avoid swappness and oom by cooperationg with the user process.
the Linux Today article is very nice description. (great works by
Jake Edge)
http://www.linuxworld.com/news/2008/020508-kernel.html
<quoted>
When memory gets tight, it is quite possible that applications have
memory
allocated—often caches for better performance—that they could fre
e.
After all, it is generally better to lose some performance than to
face the
consequences of being chosen by the OOM killer.
But, currently, there is no way for a process to know that the
kernel is
feeling memory pressure.
The patch provides a way for interested programs to monitor the /dev/
mem_notify
file to be notified if memory starts to run low.
</quoted>
You need not be annoyed by OOM any longer :)
please any comments!
patch list
[1/8] introduce poll_wait_exclusive() new API
[2/8] introduce wake_up_locked_nr() new API
[3/8] introduce /dev/mem_notify new device (the core of this
patch series)
[4/8] memory_pressure_notify() caller
[5/8] add new mem_notify field to /proc/zoneinfo
[6/8] (optional) fixed incorrect shrink_zone
[7/8] ignore very small zone for prevent incorrect low mem
notify.
[8/8] support fasync feature
related discussion:
--------------------------------------------------------------
LKML OOM notifications requirement discussion
http://www.gossamer-threads.com/lists/linux/kernel/832802?nohighlight=1#832802
OOM notifications patch [Marcelo Tosatti]
http://marc.info/?l=linux-kernel&m=119273914027743&w=2
mem notifications v3 [Marcelo Tosatti]
http://marc.info/?l=linux-mm&m=119852828327044&w=2
Thrashing notification patch [Daniel Spang]
http://marc.info/?l=linux-mm&m=119427416315676&w=2
mem notification v4
http://marc.info/?l=linux-mm&m=120035840523718&w=2
mem notification v5
http://marc.info/?l=linux-mm&m=120114835421602&w=2
Changelog
-------------------------------------------------
v5 -> v6 (by KOSAKI Motohiro)
o rebase to 2.6.24-mm1
o fixed thundering herd guard formula.
v4 -> v5 (by KOSAKI Motohiro)
o rebase to 2.6.24-rc8-mm1
o change display order of /proc/zoneinfo
o ignore very small zone
o support fcntl(F_SETFL, FASYNC)
o fixed some trivial bugs.
v3 -> v4 (by KOSAKI Motohiro)
o rebase to 2.6.24-rc6-mm1
o avoid wake up all.
o add judgement point to __free_one_page().
o add zone awareness.
v2 -> v3 (by Marcelo Tosatti)
o changes the notification point to happen whenever
the VM moves an anonymous page to the inactive list.
o implement notification rate limit.
v1(oom notify) -> v2 (by Marcelo Tosatti)
o name change
o notify timing change from just swap thrashing to
just before thrashing.
o also works with swapless device.
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html