From owner-freebsd-mips@FreeBSD.ORG Wed Dec 1 06:21:25 2010 Return-Path: Delivered-To: mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 14268106566B for ; Wed, 1 Dec 2010 06:21:25 +0000 (UTC) (envelope-from alc@rice.edu) Received: from mh2.mail.rice.edu (mh2.mail.rice.edu [128.42.201.21]) by mx1.freebsd.org (Postfix) with ESMTP id E46E08FC18 for ; Wed, 1 Dec 2010 06:21:24 +0000 (UTC) Received: from mh2.mail.rice.edu (localhost.localdomain [127.0.0.1]) by mh2.mail.rice.edu (Postfix) with ESMTP id C196C28F75A; Wed, 1 Dec 2010 00:03:05 -0600 (CST) X-Virus-Scanned: by amavis-2.6.4 at mh2.mail.rice.edu, auth channel Received: from mh2.mail.rice.edu ([127.0.0.1]) by mh2.mail.rice.edu (mh2.mail.rice.edu [127.0.0.1]) (amavis, port 10026) with ESMTP id 4Ll9CscNuVtn; Wed, 1 Dec 2010 00:03:05 -0600 (CST) Received: from adsl-216-63-78-18.dsl.hstntx.swbell.net (adsl-216-63-78-18.dsl.hstntx.swbell.net [216.63.78.18]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) (Authenticated sender: alc) by mh2.mail.rice.edu (Postfix) with ESMTPSA id 5F9E328F79B; Wed, 1 Dec 2010 00:03:05 -0600 (CST) Message-ID: <4CF5E518.20508@rice.edu> Date: Wed, 01 Dec 2010 00:03:04 -0600 From: Alan Cox User-Agent: Thunderbird 2.0.0.24 (X11/20100725) MIME-Version: 1.0 To: mips@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Alan Cox Subject: vm_page_startup() X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Dec 2010 06:21:25 -0000 Given this bit of code in the MIPS pmap: vm_offset_t pmap_map(vm_offset_t *virt, vm_offset_t start, vm_offset_t end, int prot) { vm_offset_t va, sva; if (MIPS_DIRECT_MAPPABLE(end)) return (MIPS_PHYS_TO_DIRECT(start)); The following in vm_page_startup() can apply to MIPS (as well as amd64): #ifdef __amd64__ /* * pmap_map on amd64 comes out of the direct-map, not kvm like i386, * so the pages must be tracked for a crashdump to include this data. * This includes the vm_page_array and the early UMA bootstrap pages. */ for (pa = new_end; pa < phys_avail[biggestone + 1]; pa += PAGE_SIZE) dump_add_page(pa); #endif Even if a particular MIPS-based machine didn't wind up using the direct map for the pmap_map calls in vm_page_startup() there would be no harm in having called dump_add_page(). On the other hand, if you don't call dump_add_page() when the direct map is used, you're crash dump will be missing some kernel data structures. Regards, Alan