having 1.5GB RAM I cannot allocate more than 512MB RAM in 4.10

Giorgos Keramidas keramida at ceid.upatras.gr
Sun Jan 30 16:14:58 PST 2005


On 2005-01-30 08:51, dkouroun at 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



More information about the freebsd-questions mailing list