Browse Source

- fixed EXTRA_DEBUG abort() segfault -- now it won't abort() on "detached" timers$

Andrei Pelinescu-Onciul 22 years ago
parent
commit
172403d119
3 changed files with 68 additions and 1 deletions
  1. 10 0
      TODO
  2. 1 1
      modules/tm/timer.c
  3. 57 0
      test/perf.txt

+ 10 - 0
TODO

@@ -2,6 +2,7 @@ $Id$
 
 ( - todo, x - done)
 
+- grep parse_uri & replace with parse_sip_msg_uri (e.g do_action!)
 - WARNING: tm fr_timer fixup is not in HEAD (should it be? is it the
  rigth fix?)
 x update AUTHORS, debian/copyright, ser.8, ser.cfg.5 from stable
@@ -19,8 +20,13 @@ x port receive.c pre_script_cb fix from stable
     something like alias= foo1.bar:5080 foo2.bar foo3.bar:*
 - extend listen and alias to include port numbers and protocol:
        tcp foo.bar:5063, udp foo.bar:5062, foo2.bar
+- add force_via, force_srcip a.s.o (the advertised addresses should be
+ overwritable from the script).
+- ? add force_outbound_socket(ip)? (choose an apropriate socket from the
+ listen list for sending the msg; works on udp only)
 
 release:
+- unlink_timer_lists -- unsafe ???
 x print_cseq_num max. size fix.
 x backport: tcp conn id fix to stable + destroy_tcp 
 x backport: acc mem. leak fixes
@@ -134,6 +140,8 @@ optimizations:
 - getsock* cache
 - fd cache for tcp_send
 - dns cache? (see DNS)
+- make option to use openssl MD5 (HMAC_Init(hmac_ctx, (void*)key, 16, md5_md))
+ [ 0.9.7 version is really fast ]
 
 
 tcp stuff:
@@ -146,6 +154,8 @@ x set TOS to minimize delay
 
 tm optimizations:
 
+- inline/macro/drop for: get_tm_table, set_kr, lock_hash, unlock_hash,
+  set_t, get_t
 - replace snprintfs int build_uac_request, *_dlg
 - fix the huge param no. in this functions (use structs if neccessary):
   build_uac_request, build_uac_request_dlg, t_uac, t_uac_dlg

+ 1 - 1
modules/tm/timer.c

@@ -584,7 +584,7 @@ void print_timer_list( enum lists list_id)
 static void remove_timer_unsafe(  struct timer_link* tl )
 {
 #ifdef EXTRA_DEBUG
-	if (tl && tl->timer_list &&
+	if (tl && is_in_timer_list2(tl) &&
 		tl->timer_list->last_tl.prev_tl==0) {
 		LOG( L_CRIT,
 		"CRITICAL : Oh no, zero link in trailing timer element\n");

+ 57 - 0
test/perf.txt

@@ -219,3 +219,60 @@ hash test results:
 new_hash             17.6        11.3             11.1
 new_hash2_old        16.6        12.6             10.9
 new_hash2            12           7.1              7.2         7.18
+-------------------------------------------------------------------------------
+date: 04.09.2002
+
+hardware: dorian 2*Athlon MP2000 (ser) <=gigabit=> mobile34 2*PIII 900
+
+version: ser 0.8.11 (i386/linux)
+flags: STATS:Off, USE_IPV6, USE_TCP, DISABLE_NAGLE, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
+ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535
+@(#) $Id$
+main.c compiled on 14:34:25 Sep  4 2003 with gcc 3.3
+
+(standard release flags)
+
+ser command: ./ser -f test/test-throughput.cfg -l 10.0.0.179 -n 2 -m 256
+ser command: ./ser -f test/th-uri-fast.cfg     -l 10.0.0.179 -n 2 -m 256
+
+test calls: 100000
+
+stateless:
+                  throttle      1 proc (cps)   2 procs (cps)   4 procs (cps) 
+ser 0.8.11        20                           3951  3975
+                 100                           5032* 5057
+                 200                           5306  5360     5291 5321 5319
+statefull (tm):
+                  throttle      1 proc (cps)   2 procs (cps)   4 procs (cps) 
+ser 0.8.11        20                           
+                 100                                           4155 4429 4510
+                 200                                           4450 4349
+
+
+ w/ NO_DEBUG && CPU=athlon-mp CC_EXTRA_OPTIONS=-march=athlon-mp
+stateless:
+                  throttle      1 proc (cps)   2 procs (cps)   4 procs (cps) 
+ser 0.8.11        20                           
+                 100                                           5202 5224
+                 200                                           5384 5370
+statefull (tm):
+                  throttle      1 proc (cps)   2 procs (cps)   4 procs (cps) 
+ser 0.8.11        20                           
+                 100                                           4411 4549
+                 200                                           4602 4493
+statefull(tm)
+0.8.11+
+F_MALLOC_OPTIMIZE 12  100                                      4723 4660 4740
+                      200                                      4804 4879 4849
+(4857 cps, 1000000 calls, throttle=200)
+
+as above + std. cfg   100                                      4496 4453
+ (etc/ser.cfg)        200                                      4441 4445
+ (3 ifs, 5 aliases)
+
+ w/ usrloc lookups   100                                       4371 4475
+                     200                                       4381 4390
+
+(*)  - inv. retr
+(!!) - bye retrans?
+