Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755271AbYBYRW0 (ORCPT ); Mon, 25 Feb 2008 12:22:26 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752245AbYBYRWQ (ORCPT ); Mon, 25 Feb 2008 12:22:16 -0500 Received: from wx-out-0506.google.com ([66.249.82.234]:47850 "EHLO wx-out-0506.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752042AbYBYRWP (ORCPT ); Mon, 25 Feb 2008 12:22:15 -0500 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=FNXW5YgeuT6U7wjgXGuCJdjCmAChcL8sWbtm6XnnsPXc7c9XR6yKQsy2BbYtks+5RQdgoNOrdCbDSISgpNkta0Xc26Q8S5ulNkSrvCn6zwgATL/5JPUsc4YAsJtqSu38srJFm/xrGcdpNDOFAJS7MQxxZ+Be9zYx9zZYnVRvCUU= Message-ID: <998d0e4a0802250922p518ec043m1abae3a3a407be0f@mail.gmail.com> Date: Mon, 25 Feb 2008 18:22:13 +0100 From: "J.C. Pizarro" To: "Ady Wicaksono" , LKML Subject: Re: Patch kernel: I have 8 Gbytes RAM, but why I can only allocate 2.8 Gbytes RAM for a single process? In-Reply-To: <2743ae110802242344s4406cd5eq3c5e8d0a6e69101b@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <2743ae110802242344s4406cd5eq3c5e8d0a6e69101b@mail.gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3078 Lines: 100 2008/2/25, Ady Wicaksono : > I have 8 Gbytes RAM, but why I can allocate 2.8 Gbytes RAM for a single process? > How to patch kernel so I have more than 2.8 Gbytes limitation? > > Kernel: > --------------------------- > Linux xxx.com 2.6.9-023stab046.2-enterprise #1 SMP Mon Dec 10 15:22:33 > MSK 2007 i686 i686 i386 GNU/Linux > > Mem: > --------------------------- > # cat /proc/meminfo > MemTotal: 8296484 kB > MemFree: 50416 kB > Buffers: 64412 kB > Cached: 4927328 kB > SwapCached: 0 kB > Active: 6710828 kB > Inactive: 1065384 kB > HighTotal: 4980736 kB > HighFree: 1024 kB > LowTotal: 3315748 kB > LowFree: 49392 kB > SwapTotal: 10256376 kB > SwapFree: 10255732 kB > Dirty: 64 kB > Writeback: 0 kB > Mapped: 3054960 kB > Slab: 393224 kB > CommitLimit: 14404616 kB > Committed_AS: 6318152 kB > PageTables: 34892 kB > VmallocTotal: 303096 kB > VmallocUsed: 22360 kB > VmallocChunk: 280496 kB > > > CPU (8 processor id from 0-7), one of them is: > --------------------------- > processor : 0 > vendor_id : GenuineIntel > cpu family : 15 > model : 6 > model name : Intel(R) Xeon(TM) CPU 3.00GHz > stepping : 4 > cpu MHz : 2993.054 > cache size : 2048 KB > physical id : 0 > siblings : 4 > core id : 0 > cpu cores : 2 > fdiv_bug : no > hlt_bug : no > f00f_bug : no > coma_bug : no > fpu : yes > fpu_exception : yes > cpuid level : 6 > wp : yes > flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge > mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx > lm constant_tsc pni monitor ds_cpl est cid xtpr > bogomips : 5989.55 > > App to test memory limit: > --------------------------- > #include > #include > > int main(){ > size_t siz = 100 * 1024 * 1024 ; > size_t idx = 1 ; > void *ptr; > > for (;;){ > ptr = malloc ( siz * idx ); > if(!ptr) > break ; > free(ptr); > idx++; > } > printf ("Max malloc %d * 100 MB \n", idx - 1 ); > return (0); > } > > App result: Max malloc 28 * 100 MB ==> 2.8 Gbytes 1. It's a 32-bit processor Xeon with 8 GiB of RAM. OK? 2. The 32-bit userspace's process is always limited to <3.0 GiB ( < 0xC0000000 ) 3. Enable PAE (64 GB option in the kernel) to address the 8 GiB of RAM using PAE, also you can have many processes of ~3 GiB per process. I'm not sure if the PAE's three-level paging works efficient in linux. ;) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/