[Asterisk-Users] optimizing for via C3

Konrads Smelkovs konrads.smelkovs at gmail.com
Mon Sep 12 12:44:30 MST 2005


Rumour has it, that C3 performance is poor. You don't expect anything
but low power, small form factor OpenOffice running xface on C3. C3 is
cheap and low power.

On 12/09/05, Tzafrir Cohen <tzafrir at cohens.org.il> wrote:
> Hi
> 
> I'm trying to build an Asterisk packages for a C3 system (256MB memory,
> cpuinfo below).
> 
> /proc/cpuinfo:
> processor       : 0
> vendor_id       : CentaurHauls
> cpu family      : 6
> model           : 9
> model name      : VIA Nehemiah
> stepping        : 8
> cpu MHz         : 1000.736
> cache size      : 64 KB
> fdiv_bug        : no
> hlt_bug         : no
> f00f_bug        : no
> coma_bug        : no
> fpu             : yes
> fpu_exception   : yes
> cpuid level     : 1
> wp              : yes
> flags           : fpu vme de pse tsc msr mtrr pge cmov pat mmx fxsr sse
> rng rng_en ace ace_en
> bogomips        : 1961.98
> 
> Naturally the first benchmark I'll try is asterisk -rx 'show translation' .
> 
> Here's what I got with a the default 2.6.8-2-386 Debian kernel and my
> default unoptimized packages:
> 
>          g723   gsm  ulaw  alaw  g726 adpcm  slin lpc10  g729 speex  ilbc
>    g723     -     -     -     -     -     -     -     -     -     -     -
>     gsm     -     -     7     7    21     7     6    24     -   135    76
>    ulaw     -    27     -     1    16     2     1    19     -   130    71
>    alaw     -    27     1     -    16     2     1    19     -   130    71
>    g726     -    40    15    15     -    15    14    32     -   143    84
>   adpcm     -    27     2     2    16     -     1    19     -   130    71
>    slin     -    26     1     1    15     1     -    18     -   129    70
>   lpc10     -    40    15    15    29    15    14     -     -   143    84
>    g729     -     -     -     -     -     -     -     -     -     -     -
>   speex     -    32     7     7    21     7     6    24     -     -    76
>    ilbc     -    45    20    20    34    20    19    37     -   148     -
> 
> Which is quite pathertic, considering a what I get with a junk test machine,
> I get:
>          g723   gsm  ulaw  alaw  g726 adpcm  slin lpc10  g729 speex  ilbc
>    g723     -     -     -     -     -     -     -     -     -     -     -
>     gsm     -     -     7     7    24     8     6    19     -   110    61
>    ulaw     -    19     -     1    19     3     1    14     -   105    56
>    alaw     -    19     1     -    19     3     1    14     -   105    56
>    g726     -    33    16    16     -    17    15    28     -   119    70
>   adpcm     -    19     2     2    19     -     1    14     -   105    56
>    slin     -    18     1     1    18     2     -    13     -   104    55
>   lpc10     -    27    10    10    27    11     9     -     -   113    64
>    g729     -     -     -     -     -     -     -     -     -     -     -
>   speex     -    23     6     6    23     7     5    18     -     -    60
>    ilbc     -    33    16    16    33    17    15    28     -   119     -
> 
> That machine has in /proc/cpuinfo:
> processor       : 0
> vendor_id       : GenuineIntel
> cpu family      : 6
> model           : 6
> model name      : Celeron (Mendocino)
> stepping        : 5
> cpu MHz         : 501.145
> cache size      : 128 KB
> fdiv_bug        : no
> hlt_bug         : no
> f00f_bug        : no
> coma_bug        : no
> fpu             : yes
> fpu_exception   : yes
> cpuid level     : 2
> wp              : yes
> flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr
> bogomips        : 999.42
> 
> 
> So I set out to optimize the system.
> 
> The easist thing is to build an optimized kernel: built for the "C3" CPU.
> (I can send the config and/or complete kernel deb, if you're interested).
> This had about zero effect on the output of 'show translation'.
> 
> FWIF: I have still not built a zaptel-modules package for the new
> kernel, so Asterisk is running there without a timing source.
> 
> 
> I figured that this must be totally user-space and went on to rebuilding
> Asterisk.
> 
> I have applied the following patch:
> -----------------------------
> #! /bin/sh /usr/share/dpatch/dpatch-run
> ## Makefile_march_c3.dpatch by Tzafrir Cohen <tzafrir.cohen at xorcom.com>
> ##
> ## All lines beginning with `## DP:' are a description of the patch.
> ## DP: optimizations for C3 CPU.
> ## DP: Overrides OPTIMIZE. In order for this to work, changes the type of
> ## DP: CFLGAS
> 
> @DPATCH@
> diff -urNad asterisk-1.0.9.dfsg.1/Makefile /tmp/dpep.gRvJc9/asterisk-1.0.9.dfsg.
> 1/Makefile
> --- asterisk-1.0.9.dfsg.1/Makefile      2005-09-12 16:00:12.071877432 +0300
> +++ /tmp/dpep.gRvJc9/asterisk-1.0.9.dfsg.1/Makefile     2005-09-12 16:09:01.936325792 +0300
> @@ -27,7 +27,8 @@
>  #K6OPT  = -DK6OPT
> 
>  #Tell gcc to optimize the asterisk's code
> -OPTIMIZE+=-O2
> +OPTIMIZE:=-march=c3
> +OPTIMIZE+=-O2
> 
>  #Include debug symbols in the executables (-g) and profiling info (-pg)
>  DEBUG=-g #-pg
> @@ -91,7 +92,7 @@
>  AGI_DIR=$(ASTVARLIBDIR)/agi-bin
> 
>  INCLUDE=-Iinclude -I../include
> -CFLAGS=-pipe  -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
> +CFLAGS:=-pipe  -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) -D_REENTRANT -D_GNU_SOURCE #-DMAKE_VALGRIND_HAPPY
>  CFLAGS+=$(OPTIMIZE)
> 
>  ifneq ($(PROC),ultrasparc)
> --------------------------------
> and set 'PROC=c3' instead of 'PROC=i386' as originally set by Debian in
> the master makefile (debian/rules) . Random inspection at build time gave
> me the impression that all binaries were built with -march=c3 .
> 
> Yet, no improvement at all.
> 
> As before, the generated debs and/or source debs/patch are availble upon
> request for you to re-run this.
> 
> The system is Debian Sarge:
> 
> ii  libc6          2.3.2.ds1-22   GNU C Library: Shared libraries and Timezone
> ii  gcc            3.3.5-3        The GNU C compiler
> ii  libgsm1        1.0.10-13      Shared libraries for GSM speech compressor
> ii  libspeex1      1.1.6-2        The Speex Speech Codec
> 
> 
> Am I looking at the wrong numbers? If so: what do those numbers mean?
> Can anybody suggest useful and simple benchmarks?
> 
> --
> Tzafrir Cohen         | tzafrir at jbr.cohens.org.il | VIM is
> http://tzafrir.org.il |                           | a Mutt's
> tzafrir at cohens.org.il |                           |  best
> ICQ# 16849755         |                           | friend
> _______________________________________________
> --Bandwidth and Colocation sponsored by Easynews.com --
> 
> Asterisk-Users mailing list
> Asterisk-Users at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-users
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-users
> 


-- 
Konrads Smelkovs
Applied IT sorcery.



More information about the asterisk-users mailing list