Subject: hw.physmem
To: None <port-xen@NetBSD.org>
From: Jed Davis <jdev@panix.com>
List: port-xen
Date: 03/20/2006 22:26:46
--=-=-=

I've noticed that the Xen port seem to be excluding the memory taken
up by the kernel image from the physmem variable, while e.g. the i386
port doesn't.  So, I made it not do that (and adjusted uvmexp.wired so
that hw.usermem would continue to not show that space).

Is this the Wrong Thing for some reason I don't yet know about?

-- 
(let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map
((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l))))))  (lambda
(f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l))
(C k)))))))    '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline)))))

--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment; filename=xen-physmem.diff

Index: arch/xen/i386/machdep.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/i386/machdep.c,v
retrieving revision 1.13.2.3
diff -u -p -r1.13.2.3 machdep.c
--- arch/xen/i386/machdep.c	25 Aug 2005 20:16:21 -0000	1.13.2.3
+++ arch/xen/i386/machdep.c	21 Mar 2006 03:25:25 -0000
@@ -1532,7 +1532,8 @@ init386(paddr_t first_avail)
 	mem_clusters[0].start = avail_start;
 	mem_clusters[0].size = avail_end - avail_start;
 	mem_cluster_cnt++;
-	physmem += atop(mem_clusters[0].size);
+	physmem += xen_start_info.nr_pages;
+	uvmexp.wired += atop(avail_start);
 #endif
 
 	/*

--=-=-=--