Skip to contentSkip to conversation

Page scrubbing

PATCH In review Christoph Egger 2 participants 2 messages Sep 11, 2007

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Page scrubbing

Hi!

Make scrub_heap_pages() print from where to where
it scrubs pages.

This patch uncovers a strange behaviour on 32bit.
On 64bit I get this:

(XEN) Scrubbing Free RAM 0xffff830000100000 -> 0xffff83003fff0000: ....done.

On 32bit I get this:

(XEN) Scrubbing Free RAM 0xffc00000 ->
0xdefb0000: .............................done.

On 64bit the scrubber goes up, but on 32bit it goes down. Is this behaviour expected?

Signature · 12 lines
AMD Saxony, Dresden, Germany
Operating System Research Center

Legal Information:
AMD Saxony Limited Liability Company & Co. KG
Sitz (Geschäftsanschrift):
   Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland
Registergericht Dresden: HRA 4896
vertretungsberechtigter Komplementär:
   AMD Saxony LLC (Sitz Wilmington, Delaware, USA)
Geschäftsführer der AMD Saxony LLC:
   Dr. Hans-R. Deppe, Thomas McCoy
xen/common/page_alloc.c +3 -1
diff -r 9071521d4864 xen/common/page_alloc.c
@@ -596,7 +596,9 @@ void __init scrub_heap_pages(void)
     if ( !opt_bootscrub )
         return;
 
-    printk("Scrubbing Free RAM: ");
+    printk("Scrubbing Free RAM 0x%p -> 0x%p: ",
+        page_to_virt(mfn_to_page(first_valid_mfn)),
+        page_to_virt(mfn_to_page(max_page)));
 
     for ( mfn = first_valid_mfn; mfn < max_page; mfn++ )
     {

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

#1 lore raw

The printk() is printing nonsense for x86/32, as most pages do not have a permanent mapping in Xen, and hence no valid virtual address. Page_to_virt() on such pages is not allowed.

-- Keir

Quoted 22 lines · Christoph Egger

Hi!

Make scrub_heap_pages() print from where to where
it scrubs pages.

This patch uncovers a strange behaviour on 32bit.
On 64bit I get this:

(XEN) Scrubbing Free RAM 0xffff830000100000 -> 0xffff83003fff0000: ....done.

On 32bit I get this:

(XEN) Scrubbing Free RAM 0xffc00000 ->
0xdefb0000: .............................done.

On 64bit the scrubber goes up, but on 32bit it goes down. Is this behaviour expected?