KOSAKI Motohiro
2008-02-09 15:19:58 UTC
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 mem=
ory
allocated=97often caches for better performance=97that they could free.
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 i=
s
feeling memory pressure.
The patch provides a way for interested programs to monitor the /dev/me=
m_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 notif=
y.
[8/8] support fasync feature
related discussion:
--------------------------------------------------------------
LKML OOM notifications requirement discussion
http://www.gossamer-threads.com/lists/linux/kernel/832802?nohighlig=
ht=3D1#832802
OOM notifications patch [Marcelo Tosatti]
http://marc.info/?l=3Dlinux-kernel&m=3D119273914027743&w=3D2
mem notifications v3 [Marcelo Tosatti]
http://marc.info/?l=3Dlinux-mm&m=3D119852828327044&w=3D2
Thrashing notification patch [Daniel Spang]
http://marc.info/?l=3Dlinux-mm&m=3D119427416315676&w=3D2
mem notification v4
http://marc.info/?l=3Dlinux-mm&m=3D120035840523718&w=3D2
mem notification v5
http://marc.info/?l=3Dlinux-mm&m=3D120114835421602&w=3D2
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 ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
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 mem=
ory
allocated=97often caches for better performance=97that they could free.
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 i=
s
feeling memory pressure.
The patch provides a way for interested programs to monitor the /dev/me=
m_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 notif=
y.
[8/8] support fasync feature
related discussion:
--------------------------------------------------------------
LKML OOM notifications requirement discussion
http://www.gossamer-threads.com/lists/linux/kernel/832802?nohighlig=
ht=3D1#832802
OOM notifications patch [Marcelo Tosatti]
http://marc.info/?l=3Dlinux-kernel&m=3D119273914027743&w=3D2
mem notifications v3 [Marcelo Tosatti]
http://marc.info/?l=3Dlinux-mm&m=3D119852828327044&w=3D2
Thrashing notification patch [Daniel Spang]
http://marc.info/?l=3Dlinux-mm&m=3D119427416315676&w=3D2
mem notification v4
http://marc.info/?l=3Dlinux-mm&m=3D120035840523718&w=3D2
mem notification v5
http://marc.info/?l=3Dlinux-mm&m=3D120114835421602&w=3D2
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 ***@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html