[haiku-bugs] [Haiku] #7976: Improve memory exhaustion process

  • From: "kallisti5" <trac@xxxxxxxxxxxx>
  • Date: Mon, 12 Sep 2011 16:59:42 -0000

#7976: Improve memory exhaustion process
---------------------------+------------------------------
 Reporter:  kallisti5      |        Owner:  axeld
     Type:  enhancement    |       Status:  new
 Priority:  normal         |    Milestone:  R1
Component:  System/Kernel  |      Version:  R1/Development
 Keywords:                 |   Blocked By:
 Blocking:                 |  Has a Patch:  0
 Platform:  All            |
---------------------------+------------------------------
 This may be invalid, if so feel free to mark it as such.

 During a critical physical memory exhaustion, it looks as though we don't
 take any steps to mitigate the situation such as killing top memory
 consumers etc.

 While the argument that killing processes may lose data may exist... if
 the system is seconds away from crashing then killing one top consumer may
 be better then losing everything.

 Here is an example of everything running a-muck in VirtualBox when 512 MB
 memory is fully consumed momentarily...

 {{{
 KERN: slab memory manager: created area 0x8a801000 (4927)
 KERN: slab memory manager: created area 0x8b001000 (4938)
 KERN: low resource memory: normal -> note
 KERN: low resource memory: note -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> note
 KERN: low resource memory: note -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> note
 KERN: low resource memory: note -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: 0x840157b0->VMAnonymousCache::_Commit(423034880): Failed to reserve
 131072 bytes of RAM
 KERN: vm_soft_fault: va 0x0 not covered by area in address space
 KERN: vm_page_fault: vm_soft_fault returned error 'Bad address' on fault
 at 0x4, ip 0x20c325, write 1, user 1, thread 0x101
 KERN: vm_page_fault: thread "jam" (257) in team "jam" (257) tried to write
 address 0x4, ip 0x20c325 ("jam_seg0ro" +0xc325)
 KERN: low resource memory: critical -> warning
 KERN: debug_server: Thread 257 entered the debugger: Segment violation
 KERN: low resource memory: warning -> critical
 KERN: 0x80fe75b0->VMAnonymousCache::_Commit(122880): Failed to reserve
 122880 bytes of RAM
 KERN: 0x80fe75b0->VMAnonymousCache::_Commit(98304): Failed to reserve
 98304 bytes of RAM
 KERN: 0x838ca008->VMAnonymousCache::_Commit(393216): Failed to reserve
 131072 bytes of RAM
 KERN: vm_soft_fault: va 0x2000 not covered by area in address space
 KERN: vm_page_fault: vm_soft_fault returned error 'Bad address' on fault
 at 0x2000, ip 0x2b0fee, write 1, user 1, thread 0x119
 KERN: vm_page_fault: thread "team 257 handler" (281) in team
 "debug_server" (62) tried to write address 0x2000, ip 0x2b0fee
 ("libroot.so_seg0ro" +0xa7fee)
 KERN: 0x80fe75b0->VMAnonymousCache::Fault(): Failed to reserve 4096 bytes
 of RAM.
 KERN: vm_page_fault: vm_soft_fault returned error 'Out of memory' on fault
 at 0x700c0f54, ip 0x278a9d, write 1, user 1, thread 0x11b
 KERN: vm_page_fault: thread "team 62 handler" (283) in team "debug_server"
 (62) tried to write address 0x700c0f54, ip 0x278a9d ("libroot.so_seg0ro"
 +0x6fa9d)
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: 0x840097a8->VMAnonymousCache::_Commit(2752512): Failed to reserve
 131072 bytes of RAM
 KERN: vm_soft_fault: va 0x2000 not covered by area in address space
 KERN: vm_page_fault: vm_soft_fault returned error 'Bad address' on fault
 at 0x2000, ip 0x805fee, write 1, user 1, thread 0xe5
 KERN: vm_page_fault: thread "w>Terminal 1: haiku: jam" (229) in team
 "Terminal" (221) tried to write address 0x2000, ip 0x805fee
 ("libroot.so_seg0ro" +0xa7fee)
 KERN: vm_soft_fault: va 0x4000 not covered by area in address space
 KERN: vm_page_fault: vm_soft_fault returned error 'Bad address' on fault
 at 0x4000, ip 0x2b0fee, write 1, user 1, thread 0x44
 KERN: vm_page_fault: thread "kernel listener" (68) in team "debug_server"
 (62) tried to write address 0x4000, ip 0x2b0fee ("libroot.so_seg0ro"
 +0xa7fee)
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: 0x83c4c6e8->VMAnonymousCache::_Commit(28672): Failed to reserve
 28672 bytes of RAM
 KERN: runtime_loader: /boot/system/lib/libroot.so: Could not map image:
 Out of memory
 KERN: low resource memory: critical -> warning
 KERN: 0x83c25dc0->VMAnonymousCache::_Commit(28672): Failed to reserve
 28672 bytes of RAM
 KERN: runtime_loader: /boot/system/lib/libroot.so: Could not map image:
 Out of memory
 KERN: low resource memory: warning -> critical
 KERN: 0x83d19850->VMAnonymousCache::_Commit(65536): Failed to reserve
 65536 bytes of RAM
 KERN: 0x83d19350->VMAnonymousCache::_Commit(65536): Failed to reserve
 65536 bytes of RAM
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: 0x83d19850->VMAnonymousCache::Fault(): Failed to reserve 4096 bytes
 of RAM.
 KERN: vm_page_fault: vm_soft_fault returned error 'Out of memory' on fault
 at 0x780324c4, ip 0x631ec8, write 1, user 1, thread 0x13c
 KERN: vm_page_fault: thread "w>TrackerWindow" (316) in team "Tracker"
 (115) tried to write address 0x780324c4, ip 0x631ec8 ("libroot.so_seg0ro"
 +0x2cec8)
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: low resource memory: warning -> critical
 KERN: low resource memory: critical -> warning
 KERN: 0x83d197b0->VMAnonymousCache::_Commit(8192): Failed to reserve 8192
 bytes of RAM
 Last message repeated 1 time
 KERN: low resource memory: warning -> normal
 }}}

 At this point the system was unable to launch any further applications.
 (see screenshot attached)

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/7976>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: