#5328: Had reserved page but threre is none after latest slab/vm changes ---------------------------+------------------------------------------------ Reporter: mmlr | Owner: bonefish Type: bug | Status: new Priority: normal | Milestone: R1 Component: System/Kernel | Version: R1/Development Keywords: | Blockedby: Platform: All | Blocking: ---------------------------+------------------------------------------------ Comment(by bonefish): Unfortunately there's very little helpful information available at that point. "page_stats" will give you current page statistics. It will show that the clear and free queues are empty and probably also a violation of the page reservation invariant, which is: {{{ free count + clear count >= unreserved free pages + system reserved pages }}} Most of the time the left hand side and right hand side will be equal, only while allocating pages that will be a proper greater. The policy for allocating pages is to first reserve as many as needed at maximum, allocate as many as needed, and unreserve the maximum again. The invariant can be violated by allocating more pages than reserved or by unreserving pages one has not reserved. Other than that only a bug in vm_page.cpp can cause that. The slab changes are relatively unsuspicious in that respect -- there's only one place where pages are allocated (MemoryManager::_MapChunk()) and that looks OK. The most likely change for a potential bug is r35295, where I introduced the system reserve, which made the page reservation code in vm_page.cpp significantly more complicated. I've read through it several times without spotting a problem, though. Anyway, you could try the previous version and verify whether it is to blame. Finally, there's PAGE_ALLOCATION_TRACING that could be enabled, but unless one has a concrete point in time when the suspected problem occurred, it is not particularly helpful. -- Ticket URL: <http://dev.haiku-os.org/ticket/5328#comment:1> Haiku <http://dev.haiku-os.org> Haiku - the operating system.