Date: Sun, 30 Jan 2005 17:07:32 +0200 From: Giorgos Keramidas <keramida@ceid.upatras.gr> To: dkouroun@cc.uoi.gr Cc: freebsd-questions@freebsd.org Subject: Re: having 1.5GB RAM I cannot allocate more than 512MB RAM in 4.10 Message-ID: <20050130150732.GA63409@gothmog.gr> In-Reply-To: <1107067917.41fc840d574dd@webmail.uoi.gr> References: <20050129120037.2E16A16A4D3@hub.freebsd.org> <1107027374.41fbe5ae47d36@webmail.uoi.gr> <41FC6144.90405@incubus.de> <1107067917.41fc840d574dd@webmail.uoi.gr>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2005-01-30 08:51, dkouroun@cc.uoi.gr wrote: > > Guys thanks for the help but it doesn't want to work! Actually, it works, but you are limited by the maximum allowable data size of the VM system. > Infact my data size setting in /etc/login.conf is unlimited by > default. True, but this won't work. Even if you set datasize to a large number of bytes, i.e. 8589934592 (800 MB), you are limited by the internal kernel limit for the maximum data size. This is defined in /usr/src/sys/i386/include/vmparam.h as: #define MAXDSIZ (512UL*1024*1024) /* max data size */ When the setting of login.conf is applied, the following code runs from `src/sys/kern/kern_resource.c' (the implementation of the setrlimit(2) syscall): int kern_setrlimit(td, which, limp) struct thread *td; u_int which; struct rlimit *limp; { [...] case RLIMIT_DATA: if (limp->rlim_cur > maxdsiz) limp->rlim_cur = maxdsiz; if (limp->rlim_max > maxdsiz) limp->rlim_max = maxdsiz; break; Thus, the maximum data segment size is limited by the value of `maxdsiz'. The `maxdsiz' limit is tunable at boot time, by setting the "kern.maxdsiz" option in your `/boot/loader.conf' file. - Giorgos
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050130150732.GA63409>