From owner-freebsd-hackers@FreeBSD.ORG Sat Dec 10 11:17:26 2005 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5123216A41F for ; Sat, 10 Dec 2005 11:17:26 +0000 (GMT) (envelope-from xdivac02@stud.fit.vutbr.cz) Received: from eva.fit.vutbr.cz (eva.fit.vutbr.cz [147.229.10.14]) by mx1.FreeBSD.org (Postfix) with ESMTP id 99CDB43D64 for ; Sat, 10 Dec 2005 11:17:24 +0000 (GMT) (envelope-from xdivac02@stud.fit.vutbr.cz) Received: from eva.fit.vutbr.cz (localhost [127.0.0.1]) by eva.fit.vutbr.cz (envelope-from xdivac02@eva.fit.vutbr.cz) (8.13.4/8.13.3) with ESMTP id jBABHL4b096600 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Sat, 10 Dec 2005 12:17:21 +0100 (CET) Received: (from xdivac02@localhost) by eva.fit.vutbr.cz (8.13.4/8.13.3/Submit) id jBABHKFj096598; Sat, 10 Dec 2005 12:17:20 +0100 (CET) Date: Sat, 10 Dec 2005 12:17:20 +0100 From: Divacky Roman To: Sergey Babkin Message-ID: <20051210111720.GA96448@stud.fit.vutbr.cz> References: <10939303.1134158545675.JavaMail.root@vms070.mailsrvcs.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <10939303.1134158545675.JavaMail.root@vms070.mailsrvcs.net> User-Agent: Mutt/1.4.2i X-Scanned-By: MIMEDefang 2.49 on 147.229.10.14 Cc: freebsd-hackers@freebsd.org Subject: Re: Re: sysctl, HW_PHYSMEM, and crippled gcc X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 Dec 2005 11:17:26 -0000 On Fri, Dec 09, 2005 at 02:02:25PM -0600, Sergey Babkin wrote: > >From: Divacky Roman > > >On Thu, Dec 08, 2005 at 05:06:16PM -0800, Steve Kargl wrote: > >> Anyone have any insight into fixing gcc to make better > >> use of system memory on systems with more than 4 GB. > >> It appears that libiberty/physmem.c tries to use sysctl() > >> to determine the amount of physical memory in a system. > >> > >> { /* This works on *bsd and darwin. */ > >> unsigned int physmem; > >> size_t len = sizeof physmem; > >> static int mib[2] = { CTL_HW, HW_PHYSMEM }; > >> > >> if (sysctl (mib, ARRAY_SIZE (mib), &physmem, &len, NULL, 0) == 0 > >> && len == sizeof (physmem)) > >> return (double) physmem; > >> } > >> > >> This works if you have less than 4GB because of the unsigned > >> int physmem. I have 12 GB, which of course, when expanded > >> to the number of bytes doesn't fit into a unsigned int physmem. > > >> In particular, ggc-min-heapsize=4096 is ridiculously small for a > >> system with 12 GB of memory. > > > >the code works here (512M of memory)... dont know about the ifdefs its > >surrounded by.. > > I guess you've confused M and G :-) The point is that > it breaks with over 4G of memory. dan nelson reported he has the same value with all machine with various ram sizes. so he presumed the code doesnt work at all... and it did for me