]> git.lizzy.rs Git - plan9front.git/commitdiff
make pc kernels graphics image memory pool unlimited by default, add *imagemaxmb...
authorcinap_lenrek <cinap_lenrek@gmx.de>
Sun, 18 Mar 2012 19:12:29 +0000 (20:12 +0100)
committercinap_lenrek <cinap_lenrek@gmx.de>
Sun, 18 Mar 2012 19:12:29 +0000 (20:12 +0100)
sys/man/8/plan9.ini
sys/src/9/pc/main.c

index 09f639608fa8c1c324c0ba64090acfcdeb86b95a..e91abb51730b045f0edd8566581563059ec706dd 100644 (file)
@@ -667,6 +667,10 @@ Terminals use more kernel memory because
 .IR draw (3)
 maintains its graphic images in kernel memory.
 This deprecated option is rarely necessary in newer kernels.
+.SS \fL*imagemaxmb=\fIvalue\fP
+This limits the maximum amount of memory (in megabytes) the graphics
+image memory pool can grow. The default is unlimited for terminals
+and cpu servers.
 .SS \fL*nomce=\fIvalue\fP
 If machine check exceptions are supported by the processor,
 then they are enabled by default.
index a1ae7a918444195dd89fb8c5f9af4d4cdcdea8e4..2fecf5df076a019ec6ec507cefaf381388f48e01 100644 (file)
@@ -415,7 +415,7 @@ confinit(void)
                 * 4MB on the first Image chunk allocation.
                 */
                if(conf.npage*BY2PG < 16*MB)
-                       imagmem->minarena = 4*1024*1024;
+                       imagmem->minarena = 4*MB;
        }
 
        /*
@@ -440,13 +440,16 @@ confinit(void)
                + conf.nswap
                + conf.nswppo*sizeof(Page*);
        mainmem->maxsize = kpages;
-       if(!cpuserver){
-               /*
-                * give terminals lots of image memory, too; the dynamic
-                * allocation will balance the load properly, hopefully.
-                * be careful with 32-bit overflow.
-                */
-               imagmem->maxsize = kpages;
+
+       /*
+        * the dynamic allocation will balance the load properly,
+        * hopefully. be careful with 32-bit overflow.
+        */
+       imagmem->maxsize = mainmem->maxsize;
+       if(p = getconf("*imagemaxmb")){
+               imagmem->maxsize = strtol(p, nil, 0)*MB;
+               if(imagmem->maxsize > mainmem->maxsize)
+                       imagmem->maxsize = mainmem->maxsize;
        }
 }