[sr-dev] Migration of Open IMS Core to sip-router

Andrei Pelinescu-Onciul andrei at iptel.org
Wed Jul 29 13:21:49 CEST 2009


On Jul 23, 2009 at 19:59, Dragos Vingarzan <dragos.vingarzan at gmail.com> wrote:
[...]
> - sip-router_pt.diff
>   - added a drop_my_process() function - in the cdp module (Diameter) 
> we do have dynamic processes, which fork and exit distinctly from the 
> ser ones, so we need this to clean-up. Without it, such usages would not 
> be possible as the process table would fill and then new forks would be 
> denied

That's very problematic. It breaks process_no, my_pid() and the
assumption that the process number does not change.
These assumptions are used when doing statistics (e.g. tm): a shared
mem array is created with one "entry" for each process. Each process
updates its own entry (e.g. tm_stats[process_no].s.t_created++ )
without needing any locking or atomic op (which scale very badly on
multi-cpus due to cacheline ping-pongs).
The same assumptions are used in the shm malloc ng (only testing
prototypes for now in ll_malloc) and might be used in the future for
implementing a RCU like mechanism.


Andrei



More information about the sr-dev mailing list