summaryrefslogtreecommitdiffstats
path: root/sys/pc98
diff options
context:
space:
mode:
authorbz <bz@FreeBSD.org>2011-07-30 13:33:05 +0000
committerbz <bz@FreeBSD.org>2011-07-30 13:33:05 +0000
commit632886e187f7c724771cd4b4466d84230884ef60 (patch)
treec521c8297086642bc7d44fc59a0ae93642781762 /sys/pc98
parent0a42bdeef711863b01cc5efca5a8665af3e93f4c (diff)
downloadFreeBSD-src-632886e187f7c724771cd4b4466d84230884ef60.zip
FreeBSD-src-632886e187f7c724771cd4b4466d84230884ef60.tar.gz
Introduce a tunable to disable the time consuming parts of bootup
memtesting, which can easily save seconds to minutes of boot time. The tunable name is kept general to allow reusing the code in alternate frameworks. Requested by: many Discussed on: arch (a while a go) Obtained from: Sandvine Incorporated Reviewed by: sbruno Approved by: re (kib) MFC after: 2 weeks
Diffstat (limited to 'sys/pc98')
-rw-r--r--sys/pc98/pc98/machdep.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/sys/pc98/pc98/machdep.c b/sys/pc98/pc98/machdep.c
index 8bcb618..22131a6 100644
--- a/sys/pc98/pc98/machdep.c
+++ b/sys/pc98/pc98/machdep.c
@@ -1855,7 +1855,7 @@ static void
getmemsize(int first)
{
int off, physmap_idx, pa_indx, da_indx;
- u_long physmem_tunable;
+ u_long physmem_tunable, memtest, tmpul;
vm_paddr_t physmap[PHYSMAP_SIZE];
pt_entry_t *pte;
quad_t dcons_addr, dcons_size;
@@ -1915,6 +1915,14 @@ getmemsize(int first)
if (TUNABLE_ULONG_FETCH("hw.physmem", &physmem_tunable))
Maxmem = atop(physmem_tunable);
+ /*
+ * By default keep the memtest enabled. Use a general name so that
+ * one could eventually do more with the code than just disable it.
+ */
+ memtest = 1;
+ if (TUNABLE_ULONG_FETCH("hw.memtest.tests", &tmpul))
+ memtest = tmpul;
+
if (atop(physmap[physmap_idx + 1]) != Maxmem &&
(boothowto & RB_VERBOSE))
printf("Physical memory use set to %ldK\n", Maxmem * 4);
@@ -1991,6 +1999,8 @@ getmemsize(int first)
goto do_dump_avail;
page_bad = FALSE;
+ if (memtest == 0)
+ goto skip_memtest;
/*
* map page into kernel: valid, read/write,non-cacheable
@@ -2028,6 +2038,7 @@ getmemsize(int first)
*/
*(int *)ptr = tmp;
+skip_memtest:
/*
* Adjust array of valid/good pages.
*/
OpenPOWER on IntegriCloud