[Kamailio-Devel] [SR-Dev] static buffers

Daniel-Constantin Mierla miconda at gmail.com
Thu Nov 27 17:20:00 CET 2008


On 11/27/08 17:48, Andrei Pelinescu-Onciul wrote:
> On Nov 27, 2008 at 17:15, Daniel-Constantin Mierla <miconda at gmail.com> wrote:
>   
>> Hello,
>>
>> There seem to be many places where static buffers are used for building 
>> strings. It is clear they are used just for usage inside some functions, 
>> with no need to keep the value for usage somewhere else.
>>
>> Would defining a global static buffer to be used for such cases make 
>> sense? The access to the pointer and size can be given via functions.
>>     
>
> In general I think we should move away from static buffers
>  (we will need to get rid of a lot of them for the async. stuff so 
>  most of this work will have to be redone anyway).
>   

these are one time usage, without any concurrency. They are basically 
used inside functions to avoid alloc/free for each function. I think 
this is not affected by async stuff.


>   
>> There could be couple of such buffers to be used in the cases one 
>> function need concurrent access to more than one ... opinions? It will 
>> reduce memory space reserved and used...
>>     
>
> I'm afraid it would introduce a lot of new bugs (you must make sure your
>  functions that call each other do not use the same static buffer and
>  that you do not call function using the same buffer in a row).
> As far as the memory space is concerned, it depends on how many of them
> are used.
> At least in sip-router core less then 1Mb is used in static vars of all 
> kinds:
>   
in the modules might be bigger... I think with 5 buffers, each of 1k, we 
can satisfy all needs.

Cheers,
Daniel

> objdump -j .bss -j .data -t ser|perl -ne  'END { print "\nTotal: $s
> bytes\n" }; @l=split;   $s+= hex $l[4]; print hex($l[4]),
> "\t-\t$l[5]\t$l[1]\t$l[2]\t$l[3]\n" '
> => Total: 4604741 bytes in staitic vars, but 4M is the pkg mem pool
> => 410437 bytes from which 2*139276 are tcp local timers and
>  65k udp recv buffers => 66349 in other static vars and buffers.
>
> So I guess it doesn't make sense to try to go beyond 66k...
>
>
> Andrei
>
> _______________________________________________
> sr-dev mailing list
> sr-dev at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>
>   

-- 
Daniel-Constantin Mierla
http://www.asipto.com




More information about the Devel mailing list