git: 9front

Download patch

ref: 409479ee38936e080e1f5872b209b159eee648e9
parent: 4323774199b38eee3ecac6b88c9de7a2cb9665b8
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Mon Feb 3 15:04:43 EST 2014

kernel: dont double ptemap size in newseg()

this doubling affects all segment types, not just bss.
(tho text/data are usually small...)

and theres no telling if the segment will actually
grow in the future justifying the reduction of memmove
overhead in ibrk().

some ape programs are approaching the 16mb ssegmap size
so that code might trigger.

removing the smarts...

--- a/sys/src/9/port/segment.c
+++ b/sys/src/9/port/segment.c
@@ -66,7 +66,6 @@
 
 	mapsize = ROUND(size, PTEPERTAB)/PTEPERTAB;
 	if(mapsize > nelem(s->ssegmap)){
-		mapsize *= 2;
 		if(mapsize > (SEGMAPSIZE*PTEPERTAB))
 			mapsize = (SEGMAPSIZE*PTEPERTAB);
 		s->map = smalloc(mapsize*sizeof(Pte*));
--