From owner-freebsd-current@FreeBSD.ORG Thu Nov 21 17:42:44 2013 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 92F5BDBD for ; Thu, 21 Nov 2013 17:42:44 +0000 (UTC) Received: from mail-qc0-x234.google.com (mail-qc0-x234.google.com [IPv6:2607:f8b0:400d:c01::234]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5665226D3 for ; Thu, 21 Nov 2013 17:42:44 +0000 (UTC) Received: by mail-qc0-f180.google.com with SMTP id v2so50227qcr.25 for ; Thu, 21 Nov 2013 09:42:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=WbRt2ZU1tAZizIsUfKt1Gd+u+oBFLXhBE66RciVpXno=; b=WnoZRPaDR8eCZN2DnmdV0REVcB+rMx7s3kBnjLjZ0CinYK9Q2E9qbfNeBS9TMZK1Yt l+j9g+7h1HkBSyi6iK045/wWjeNtolWNHAKLiHcs6p0DaWFz+jZ80Pl/6SFeoeklnYgJ Qu+/sYvBu4Hn24wE37N6OF0X5eFBGCCCUhbt9c5wuzBngxua64r1LUOE0PgLu6q2IxmH JScHKY409xjJWEkfKbxXynxmsbMD+uiLT7Yqr0wBxhrMwOpdW+Q/dWq2NqZBmumN4cC4 G+dF0ucIqXJycnYDJMNXO11ky5jQ3Oy/rAGgLaU25FRRey8d1NPg7QQG6lGqpedzXHDn syJA== MIME-Version: 1.0 X-Received: by 10.49.30.162 with SMTP id t2mr13387857qeh.37.1385055763409; Thu, 21 Nov 2013 09:42:43 -0800 (PST) Sender: carpeddiem@gmail.com Received: by 10.224.87.135 with HTTP; Thu, 21 Nov 2013 09:42:43 -0800 (PST) In-Reply-To: References: <5286F670.2050305@jrv.org> <5287071B.3020209@petermann-it.de> <528786C9.9070409@allanjude.com> <5287BB44.4020104@jrv.org> <5287D632.4010802@allanjude.com> Date: Thu, 21 Nov 2013 12:42:43 -0500 X-Google-Sender-Auth: fzOyXMpY6exHsax1_l4gyWwNmhs Message-ID: Subject: Re: Slow boot with 256GB of RAM? From: Ed Maste To: Eitan Adler Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-current Current X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Nov 2013 17:42:44 -0000 On 16 November 2013 17:49, Eitan Adler wrote: > On Sat, Nov 16, 2013 at 4:12 PM, Zach Crum wrote: >> This setting is not listed in /boot/defaults/loader.conf. Is it supposed to >> be singular or plural? > > Plural. > > I will commit the patch. The FAQ update patch looks fine. > Does any know of cases where this memory test actually catches errors? > How important is it? The boot time test is primarily of historical significance, and doesn't really provide value on contemporary systems. It's mainly a workaround for ancient broken BIOSes that might return bogus memory map data. I intend to commit the patch below that disables it by default. The variable name is "hw.memtest.tests" as it's intended to be extended to a bitmap of tests to run at boot, with other bits representing more comprehensive tests. -Ed commit 58f501f70427ce2aeb9c8b18d2b7bec543818dae Author: Ed Maste Date: Thu Nov 21 12:31:06 2013 -0500 Disable amd64 boot time memory test by default The page presence memory test takes a long time on large memory systems and has little value on contemporary amd64 hardware. diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c index 7f05d58..df03e55 100644 --- a/sys/amd64/amd64/machdep.c +++ b/sys/amd64/amd64/machdep.c @@ -1476,13 +1476,15 @@ getmemsize(caddr_t kmdp, u_int64_t first) Maxmem = atop(physmem_tunable); /* - * By default enable the memory test on real hardware, and disable - * it if we appear to be running in a VM. This avoids touching all - * pages unnecessarily, which doesn't matter on real hardware but is - * bad for shared VM hosts. Use a general name so that - * one could eventually do more with the code than just disable it. + * The boot memory test is disabled by default, as it takes a + * significant amount of time on large-memory systems, and is + * unfriendly to virtual machines as it unnecessarily touches all + * pages. + * + * A general name is used as the code may be extended to support + * additional tests beyond the current "page present" test. */ - memtest = (vm_guest > VM_GUEST_NO) ? 0 : 1; + memtest = 0; TUNABLE_ULONG_FETCH("hw.memtest.tests", &memtest); /*