[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