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@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@jbr.cohens.org.il | VIM is
http://tzafrir.org.il | | a Mutt's
tzafrir@cohens.org.il | | best
ICQ# 16849755 | | friend
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@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@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@jbr.cohens.org.il | VIM is > http://tzafrir.org.il | | a Mutt's > tzafrir@cohens.org.il | | best > ICQ# 16849755 | | friend > _______________________________________________ > --Bandwidth and Colocation sponsored by Easynews.com -- > > Asterisk-Users mailing list > Asterisk-Users@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.