[haiku-commits] r43187 - haiku/trunk/src/system/kernel/vm

  • From: mmlr@xxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 4 Nov 2011 19:01:16 +0100 (CET)

Author: mmlr
Date: 2011-11-04 19:01:15 +0100 (Fri, 04 Nov 2011)
New Revision: 43187
Changeset: https://dev.haiku-os.org/changeset/43187

Modified:
   haiku/trunk/src/system/kernel/vm/vm_page.cpp
Log:
Move some of the trace entries around so that we know the page(s) they concern
and add that info to the trace entries.


Modified: haiku/trunk/src/system/kernel/vm/vm_page.cpp
===================================================================
--- haiku/trunk/src/system/kernel/vm/vm_page.cpp        2011-11-04 17:59:06 UTC 
(rev 43186)
+++ haiku/trunk/src/system/kernel/vm/vm_page.cpp        2011-11-04 18:01:15 UTC 
(rev 43187)
@@ -275,26 +275,31 @@
 class AllocatePage
        : public TRACE_ENTRY_SELECTOR(PAGE_ALLOCATION_TRACING_STACK_TRACE) {
 public:
-       AllocatePage()
+       AllocatePage(page_num_t pageNumber)
                :
-               TraceEntryBase(PAGE_ALLOCATION_TRACING_STACK_TRACE, 0, true)
+               TraceEntryBase(PAGE_ALLOCATION_TRACING_STACK_TRACE, 0, true),
+               fPageNumber(pageNumber)
        {
                Initialized();
        }
 
        virtual void AddDump(TraceOutput& out)
        {
-               out.Print("page alloc");
+               out.Print("page alloc: %#" B_PRIxPHYSADDR, fPageNumber);
        }
+
+private:
+       page_num_t      fPageNumber;
 };
 
 
 class AllocatePageRun
        : public TRACE_ENTRY_SELECTOR(PAGE_ALLOCATION_TRACING_STACK_TRACE) {
 public:
-       AllocatePageRun(uint32 length)
+       AllocatePageRun(page_num_t startPage, uint32 length)
                :
                TraceEntryBase(PAGE_ALLOCATION_TRACING_STACK_TRACE, 0, true),
+               fStartPage(startPage),
                fLength(length)
        {
                Initialized();
@@ -302,10 +307,12 @@
 
        virtual void AddDump(TraceOutput& out)
        {
-               out.Print("page alloc run: length: %ld", fLength);
+               out.Print("page alloc run: start %#" B_PRIxPHYSADDR " length: %"
+                       B_PRIu32, fStartPage, fLength);
        }
 
 private:
+       page_num_t      fStartPage;
        uint32          fLength;
 };
 
@@ -313,17 +320,21 @@
 class FreePage
        : public TRACE_ENTRY_SELECTOR(PAGE_ALLOCATION_TRACING_STACK_TRACE) {
 public:
-       FreePage()
+       FreePage(page_num_t pageNumber)
                :
-               TraceEntryBase(PAGE_ALLOCATION_TRACING_STACK_TRACE, 0, true)
+               TraceEntryBase(PAGE_ALLOCATION_TRACING_STACK_TRACE, 0, true),
+               fPageNumber(pageNumber)
        {
                Initialized();
        }
 
        virtual void AddDump(TraceOutput& out)
        {
-               out.Print("page free");
+               out.Print("page free: %#" B_PRIxPHYSADDR, fPageNumber);
        }
+
+private:
+       page_num_t      fPageNumber;
 };
 
 
@@ -1165,7 +1176,7 @@
        if (fromQueue != NULL)
                fromQueue->RemoveUnlocked(page);
 
-       TA(FreePage());
+       TA(FreePage(page->physical_page_number));
 
        ReadLocker locker(sFreePageQueuesLock);
 
@@ -3127,8 +3138,6 @@
                otherQueue = &sClearPageQueue;
        }
 
-       TA(AllocatePage());
-
        ReadLocker locker(sFreePageQueuesLock);
 
        vm_page* page = queue->RemoveHeadUnlocked();
@@ -3180,6 +3189,7 @@
        if ((flags & VM_PAGE_ALLOC_CLEAR) != 0 && oldPageState != 
PAGE_STATE_CLEAR)
                clear_page(page);
 
+       TA(AllocatePage(page->physical_page_number));
        return page;
 }
 
@@ -3233,8 +3243,6 @@
        ASSERT(pageState != PAGE_STATE_CLEAR);
        ASSERT(start + length <= sNumPages);
 
-       TA(AllocatePageRun(length));
-
        // Pull the free/clear pages out of their respective queues. Cached 
pages
        // are allocated later.
        page_num_t cachedPages = 0;
@@ -3359,6 +3367,7 @@
        // Note: We don't unreserve the pages since we pulled them out of the
        // free/clear queues without adjusting sUnreservedFreePages.
 
+       TA(AllocatePageRun(start, length));
        return length;
 }
 


Other related posts:

  • » [haiku-commits] r43187 - haiku/trunk/src/system/kernel/vm - mmlr