* Optional debug feature for tracking which page queue a page should be
in. * New debugger command "find_page", which searches all page queues to find out, which one a page is actually in. * Solved nasty race condition between the page scrubber and vm_page_allocate_page_run(): The page scrubber didn't mark the pages it was processing busy, so that vm_page_allocate_page_run() could claim them in the meantime. They would end up in the clear pages queue, although being assigned to a cache at the same time. This should finally solve bug #1056. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20474 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -17,6 +17,11 @@
|
||||
#include <sys/uio.h>
|
||||
|
||||
|
||||
// Enables the vm_page::queue, i.e. it is tracked which queue the page should
|
||||
// be in.
|
||||
//#define DEBUG_PAGE_QUEUE 1
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
struct vm_page_mapping;
|
||||
typedef DoublyLinkedListLink<vm_page_mapping> vm_page_mapping_link;
|
||||
@@ -83,6 +88,10 @@ typedef struct vm_page {
|
||||
|
||||
vm_page_mappings mappings;
|
||||
|
||||
#ifdef DEBUG_PAGE_QUEUE
|
||||
void* queue;
|
||||
#endif
|
||||
|
||||
uint8 type : 2;
|
||||
uint8 state : 3;
|
||||
uint8 busy_reading : 1;
|
||||
|
||||
Reference in New Issue
Block a user