Continuous pursuit technical details
分类: C/C++
2013-11-25 13:45:18
ATCA GProf Procedures
on lsslogin, setup your ROOT
cd /home_nbu/[your login]
mkdir RXX (eg R22)
mkdir RXX/YY.0Y (eg R22/10.00)
cd RXX/YY.00
ROOT=`pwd`
Setup build environment for tl subsystem
setenv –s tl
mkdir -p $ROOT/tl/make
cd $ROOT/tl/make
cp `vuls linux_x86_sel.mk` .
chmod +w linux_x86_sel.mk
#edit linux_x86_sel.mk file
#add a -pg to the .mk in the COMMON_CCOPT section
# e.g….
-Wsign-promo \
-O2 \
-pg \
-gstabs+ \
-feliminate-unused-debug-symbols \
repeat for linux_x86-64_sel.mk
bsubcmd –t solaris –s tl
# wait for it to finish. It will install lib/make/*sel.mk
Setup build environment for glob subsystem
setenv –s glob
mkdir
–p $ROOT/glob/CPLmem
cd $ROOT/glob/CPLmem
bsub -B -q $Q_ATCA "nmake -K -k -f CPLmem.mk > bld.out 2>&1”
Setup build environment for ssp subsystem
mkdir -p $ROOT/ssp/tftpboot/make
cd $ROOT/ssp/tftpboot/make
cp `vuls tftpboot.mk`
cd $ROOT/ssp/tftpboot/make
chmod +w tftpboot.mk
#edit tftpboot.mk file
#add a -pg to the .mk in the $(LXX86_INSTALL_LOC)/ngss :BLDMVISTA:
# e.g…
-lposixtime \
-lsctp \
-pg \
$(X86_RESOLVLIB) \
$(X86_CLIBS) \
-o $$(<).elf
repeat for imux
Setup build environment for SSP
setenv –s ssp
#Build ngss product:
e.g. ~lloyd/bin/nbuild.ngss.atca
#repeat for imux, cfed… product:
e.g. ~lloyd/bin/nbuild.imux
# build zip products (NGSSappl.zip…)
e.g. ~lloyd/bin/shipimux
e.g. ~lloyd/bin/shipngss
# install products in lab
scp $ROOT/obj/linux_x86/SHIPDIR/ATCA/
NGSSappl.zip and IMUXappl.zip to lab OAM host(s) and install in /export/home/lss/tftpboot/services
Modify AIM to change working directory (allows gprof to write output file):
setenv –s ssp
cd $ROOT
mkdir –p ssp/aim
cd ssp/aim
cp `vuls AIMappl.c` .
chmod +w AIMappl.c
modify AIMappl.c:
add - chdir("/tmp"); before execve()
Build aim – ~lloyd/bin/nbuild.aim
build ramdisk – ~lloyd/bin/nbuild.ramdisk
install ramdisk –
cd $ROOT/obj/linux_x86/ssp/tftpboot/images/atcav2
copy lcprhel.image (and if necessary molene.image, virtual.image…) to OAM host(s)
install at /export/home/lss/tftpboot/images/atcav2
Take Mate service(s) offline by using REMcli (avoids switchover):
e.g. if the ngss service is associated with pool 2 the service ID is 026002000 for the active side and 026002001 for the standby side. So to take026002001 OOS do from the CNFG host:
or for pool 0 member 1:
REMcli 17 026000001 1 1
note: with IMUX must do this for all services sharing IP.
reboot the host where ngss/imux will run
Should be all set – diameter will connect, Make your calls
When orig calls/registrations reaches 1000 limit:
login to host where ngss/imux will run
iomn aim
pCaa (turn off monitoring), ESC ESC
iomn imux_000
prc (kill it)
collect the data from /tmp/gmon.out – copy up to config host
then copy to lab machine and run gprof.
copy file to oam host:
cd /tmp
chmod 666 gmon.out
rcp gmon.out gll02-s00c01h0:/export/home/lss/gmon1.out
# note: use different file names to avoid overwrites
ANALYSIS:
cp $ROOT/obj/linux_x86/ssp/linux_x86/ngss.elf to where your gmon.out is stored
(e.g. run on gll02)
gprof ngss.elf gmon1.out > gprof1.out
the profiling data will be in these two parts:
flat_profile_data indicates the total time spent within each function and the number of calls it has been invoked.
call_graph_data shows the time spent in each function and its children within the context of a function call chain.