KatDC Software Product Development Model
(start) -> 1
1. Get User Requirements -> 2.1
2.1 Refine Requirements Spec. (R1, R2, R3 ...) -> 2.2
2.2 Spec. Verification Procedure -> 7.1 -> 13 and 2.3
2.3 Mapping Requirements to Use Cases Diagrams (USC1, USC2, ...) -> 3.1 and 3.2
3.1 Attached Activity Diagrams to Those Use Cases Diagrams (AD1, AD2, ...) -> 4.1 and 4.2
3.2 Estimate Schedule, Check Points and Cost -> 13 and (the flow end).
4.1 UI workflow diagram (UWD1, UWD2 ...) -> 5.1 and 6.1
4.2 Software Analysis -> 5.2
5.1 UI Art Designs. -> 8
5.2 Software Class Diagrams + Database Design->6.2
6.1 UI Prototyping -> 8.2
6.2 Units Coding -> 7.2
7.1 Create Test Items. -> 9.1 and 13.
7.2 Unit Tests->8.2
8.1 Integrate Units to Applications-> 9.1 and 10
8.2 Integrate Applications with final UI Designs -> 9.2 and 14.1 and 14.2
9.1 Create Test Procedures for each Test Item -> 9,2
9.2 Features Tests -> 11.
10. Spec. and Customer Verification-> 11.
11. QA Tests & Reviews Meeting -> 11.1. and 13.
11.1 If not pass QA Testing and accepted by Review Team members -> go to 11.3
11.2 Otherwise, -> 12.
11.3 Debug -> 11.
12. Product Release Procedure. -> 12.1
12.1 Customer Acceptance Test -> 13.
13. Issue documents to the Document Center
14.1 Manual & User Guide Design -> 12.
14.2 Product Packaging. -> 12.
13 -> (end)
Remarks: 1. The bold item is another complete activity.
2. This is only for reference. You can change any action, flow, object if you want.
2010年4月29日 星期四
2010年3月19日 星期五
2008年12月3日 星期三
readme
Android Init Language
---------------------
The Android Init Language consists of four broad classes of statements,
which are Actions, Commands, Services, and Options.
All of these are line-oriented, consisting of tokens separated by
whitespace. The c-style backslash escapes may be used to insert
whitespace into a token. Double quotes may also be used to prevent
whitespace from breaking text into multiple tokens. The backslash,
when it is the last character on a line, may be used for line-folding.
Lines which start with a # (leading whitespace allowed) are comments.
Actions and Services implicitly declare a new section. All commands
or options belong to the section most recently declared. Commands
or options before the first section are ignored.
Actions and Services have unique names. If a second Action or Service
is declared with the same name as an existing one, it is ignored as
an error. (??? should we override instead)
Actions
-------
Actions are named sequences of commands. Actions have a trigger which
is used to determine when the action should occur. When an event
occurs which matches an action's trigger, that action is added to
the tail of a to-be-executed queue (unless it is already on the
queue).
Each action in the queue is dequeued in sequence and each command in
that action is executed in sequence. Init handles other activities
(device creation/destruction, property setting, process restarting)
"between" the execution of the commands in activities.
Actions take the form of:
on <trigger>
<command>
<command>
<command>
Services
--------
Services are programs which init launches and (optionally) restarts
when they exit. Services take the form of:
service <name> <pathname> [ <argument> ]*
<option>
<option>
...
Options
-------
Options are modifiers to services. They affect how and when init
runs the service.
critical
This is a device-critical service. If it exits more than four times in
four minutes, the device will reboot into recovery mode.
disabled
This service will not automatically start with its class.
It must be explicitly started by name.
setenv <name> <value>
Set the environment variable <name> to <value> in the launched process.
socket <name> <type> <perm> [ <user> [ <group> ] ]
Create a unix domain socket named /dev/socket/<name> and pass
its fd to the launched process. <type> must be "dgram" or "stream".
User and group default to 0.
user <username>
Change to username before exec'ing this service.
Currently defaults to root. (??? probably should default to nobody)
Currently, if your process requires linux capabilities then you cannot use
this command. You must instead request the capabilities in-process while
still root, and then drop to your desired uid.
group <groupname> [ <groupname> ]*
Change to groupname before exec'ing this service. Additional
groupnames beyond the (required) first one are used to set the
supplemental groups of the process (via setgroups()).
Currently defaults to root. (??? probably should default to nobody)
oneshot
Do not restart the service when it exits.
class <name>
Specify a class name for the service. All services in a
named class may be started or stopped together. A service
is in the class "default" if one is not specified via the
class option.
onrestart
Execute a Command (see below) when service restarts.
Triggers
--------
Triggers are strings which can be used to match certain kinds
of events and used to cause an action to occur.
boot
This is the first trigger that will occur when init starts
(after /init.conf is loaded)
<name>=<value>
Triggers of this form occur when the property <name> is set
to the specific value <value>.
device-added-<path>
device-removed-<path>
Triggers of these forms occur when a device node is added
or removed.
service-exited-<name>
Triggers of this form occur when the specified service exits.
Commands
--------
exec <path> [ <argument> ]*
Fork and execute a program (<path>). This will block until
the program completes execution. It is best to avoid exec
as unlike the builtin commands, it runs the risk of getting
init "stuck". (??? maybe there should be a timeout?)
export <name> <value>
Set the environment variable <name> equal to <value> in the
global environment (which will be inherited by all processes
started after this command is executed)
ifup <interface>
Bring the network interface <interface> online.
import <filename>
Parse an init config file, extending the current configuration.
hostname <name>
Set the host name.
chmod <octal-mode> <path>
Change file access permissions.
chown <owner> <group> <path>
Change file owner and group.
class_start <serviceclass>
Start all services of the specified class if they are
not already running.
class_stop <serviceclass>
Stop all services of the specified class if they are
currently running.
domainname <name>
Set the domain name.
insmod <path>
Install the module at <path>
mkdir <path> [mode] [owner] [group]
Create a directory at <path>, optionally with the given mode, owner, and
group. If not provided, the directory is created with permissions 755 and
owned by the root user and root group.
mount <type> <device> <dir> [ <mountoption> ]*
Attempt to mount the named device at the directory <dir>
<device> may be of the form mtd@name to specify a mtd block
device by name.
<mountoption>s include "ro", "rw", "remount", "noatime", ...
setkey
TBD
setprop <name> <value>
Set system property <name> to <value>.
setrlimit <resource> <cur> <max>
Set the rlimit for a resource.
start <service>
Start a service running if it is not already running.
stop <service>
Stop a service from running if it is currently running.
symlink <target> <path>
Create a symbolic link at <path> with the value <target>
trigger <event>
Trigger an event. Used to queue an action from another
action.
write <path> <string> [ <string> ]*
Open the file at <path> and write one or more strings
to it with write(2)
Properties
----------
Init updates some system properties to provide some insight into
what it's doing:
init.action
Equal to the name of the action currently being executed or "" if none
init.command
Equal to the command being executed or "" if none.
init.svc.<name>
State of a named service ("stopped", "running", "restarting")
Example init.conf
-----------------
# not complete -- just providing some examples of usage
#
on boot
export PATH /sbin:/system/sbin:/system/bin
export LD_LIBRARY_PATH /system/lib
mkdir /dev
mkdir /proc
mkdir /sys
mount tmpfs tmpfs /dev
mkdir /dev/pts
mkdir /dev/socket
mount devpts devpts /dev/pts
mount proc proc /proc
mount sysfs sysfs /sys
write /proc/cpu/alignment 4
ifup lo
hostname localhost
domainname localhost
mount yaffs2 mtd@system /system
mount yaffs2 mtd@userdata /data
import /system/etc/init.conf
class_start default
service adbd /sbin/adbd
user adb
group adb
service usbd /system/bin/usbd -r
user usbd
group usbd
socket usbd 666
service zygote /system/bin/app_process -Xzygote /system/bin --zygote
socket zygote 666
service runtime /system/bin/runtime
user system
group system
on device-added-/dev/compass
start akmd
on device-removed-/dev/compass
stop akmd
service akmd /sbin/akmd
disabled
user akmd
group akmd
Debugging notes
---------------
By default, programs executed by init will drop stdout and stderr into
/dev/null. To help with debugging, you can execute your program via the
Andoird program logwrapper. This will redirect stdout/stderr into the
Android logging system (accessed via logcat).
For example
service akmd /system/bin/logwrapper /sbin/akmd
2008年11月25日 星期二
2008年11月20日 星期四
OpenBinder is running on UBuntu (error)
make test (result)
ming@ming-desktop:~/pkg.android/openbinder$ make test
(. build/scripts/setup_env.sh; smooved -e /home/ming/pkg.android/openbinder/build/scripts/test.bsh)
LOCK DEBUGGING ENABLED! LOCK_DEBUG=15 LOCK_DEBUG_STACK_CRAWLS=1
Opening '/dev/binder' failed: No such file or directory
SmooveD is entering the picture...
BecomeContextManager(): true
[PackageManager]: adding package directory '/home/ming/pkg.android/openbinder/build/packages'
Current environment: SValue({
"_" -> "/home/ming/pkg.android/openbinder/build/bin/smooved",
"PWD" -> "/",
"ECHO" -> int32_t(1 or 0x1),
"HOME" -> "/home/ming",
"LANG" -> "en_US.UTF-8",
"PATH" -> "/home/ming/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/ming/morphine.tv/bin/:/home/ming/pkg.android/android-sdk-linux_x86-1.0_r1/tools/:/home/ming/pkg/jperf2/bin/:/home/ming/pkg.eclipse/agents/bin/:/home/ming/pkg.android/openbinder/build/bin",
"SELF" -> wptr(0x40805d9c),
"TERM" -> "xterm",
"USER" -> "baron",
"WILD" -> wild,
"SHELL" -> "/bin/bash",
"SHLVL" -> "2",
"MFLAGS" -> "",
"CONTEXT" -> sptr(0x8061764 8BCatalog),
"DISPLAY" -> ":0.0",
"LDFLAGS" -> "-lssl",
"LOGNAME" -> "ming",
"GDM_LANG" -> "en_US.UTF-8",
"LESSOPEN" -> "| /usr/bin/lesspipe %s",
"USERNAME" -> "ming",
"WINDOWID" -> "52428880",
"CLASSPATH" -> "/home/ming/workspace.ming/HelloGundam/bin/:",
"COLORTERM" -> "gnome-terminal",
"LESSCLOSE" -> "/usr/bin/lesspipe %s %s",
"LS_COLORS" -> "no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.svgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:",
"MAKEFLAGS" -> "",
"MAKELEVEL" -> "1",
"GDMSESSION" -> "default",
"GIT_EDITOR" -> "vim",
"WINDOWPATH" -> "7",
"XAUTHORITY" -> "/tmp/.gdmARHWKU",
"XMODIFIERS" -> "@im=SCIM",
"HISTCONTROL" -> "ignoreboth",
"BSH_HOST_PWD" -> "/home/ming/pkg.android/openbinder",
"GTK_RC_FILES" -> "/etc/gtk/gtkrc:/home/ming/.gtkrc-1.2-gnome2",
"QT_IM_MODULE" -> "xim",
"GTK_IM_MODULE" -> "scim-bridge",
"SRC_LIBRARIES" -> "libraries",
"SSH_AUTH_SOCK" -> "/tmp/keyring-Jl2RM8/ssh",
"XDG_DATA_DIRS" -> "/usr/local/share/:/usr/share/:/usr/share/gdm/",
"BSH_SCRIPT_DIR" -> "",
"GPG_AGENT_INFO" -> "/tmp/seahorse-AAWri0/S.gpg-agent:5975:1",
"BSH_SCRIPT_FILE" -> "",
"DESKTOP_SESSION" -> "default",
"GIT_AUTHOR_NAME" -> "Ming-der Wang",
"LD_LIBRARY_PATH" -> "/home/ming/workspace.ming/HelloGundam/bin/:/usr/local/lib/:/usr/lib/:/mnt/katapi86/lib/://home/ming/pkg.eclipse/agents/lib/:/home/ming/workspace.ming/android_jni/bin:/home/ming/pkg.android/openbinder/build/lib",
"PKG_CONFIG_PATH" -> "/usr/lib/pkgconfig/:/usr/local/lib/pkgconfig/:/usr/share/pkgconfig/:/home/ming/morphine.tv/lib/pkgconfig/",
"SESSION_MANAGER" -> "local/ming-desktop:/tmp/.ICE-unix/5909",
"BINDER_DIST_PATH" -> "/home/ming/pkg.android/openbinder/.",
"GIT_AUTHOR_EMAIL" -> "ming@katdc.com",
"SYSTEM_DIRECTORY" -> "/home/ming/pkg.android/openbinder/build",
"GNOME_KEYRING_PID" -> "5908",
"DESKTOP_STARTUP_ID" -> "",
"GIT_COMMITTER_NAME" -> "Ming-der Wang",
"XDG_SESSION_COOKIE" -> "dcf1338cc348047cd4cc046d48b3704a-1227235107.217432-1097584640",
"BINDER_PACKAGE_PATH" -> "/home/ming/pkg.android/openbinder/build/packages",
"GIT_COMMITTER_EMAIL" -> "ming@katdc.com",
"PALMSOURCE_PLATFORM" -> "DEVICE_ARM",
"GDM_XSERVER_LOCATION" -> "local",
"GNOME_KEYRING_SOCKET" -> "/tmp/keyring-Jl2RM8/socket",
"PALMSOURCE_BUILDTYPE" -> "DEBUG",
"DBUS_SESSION_BUS_ADDRESS" -> "unix:abstract=/tmp/dbus-yc3K7LDmDG,guid=bf3acc8cf48c5e14d51cba3a49261f25",
"GNOME_DESKTOP_SESSION_ID" -> "Default"
})
Running binder performance tests...
VALIDATION ENABLED
Iterations: 1000
Thread priority: 80
Payload size: Random (seed 0)
Operation us/op Total us Iterations
Overhead 0.00729923 72992 10000000
Random Overhead 0.0461547 46154 1000000
Add int32_t -0.00389968 -38996 10000000
Global int32_t Access -0.00376249 -37624 10000000
Extern Global int32_t Access -0.00457844 -45784 10000000
SysAtomicInc32() 0.00606161 60616 10000000
sysThreadDirectFuncs.atomicInc32() 0.00685385 68538 10000000
SysAtomicDec32() 0.00618398 61839 10000000
sysThreadDirectFuncs.atomicDec32() 0.0065386 65385 10000000
SysAtomicAdd32() 0.00734086 73408 10000000
sysThreadDirectFuncs.atomicAdd32() 0.00721907 72190 10000000
SysAtomicCompareAndSwap32() 0.00992122 99212 10000000
sysThreadDirectFuncs.atomicCompareAndSwap32() 0.0100774 100773 10000000
SysTSDGet() 0.00868514 86851 10000000
sysThreadDirectFuncs.tsdGet() 0.0107337 107337 10000000
SysTSDSet() 0.0205322 205322 10000000
sysThreadDirectFuncs.tsdSet() 0.0216009 216008 10000000
2x-SysAtomicInc32() 0.0500149 500148 10000000
2x-sysThreadDirectFuncs.atomicInc32() 0.0494547 494546 10000000
2x-SysAtomicDec32() 0.042947 429470 10000000
2x-sysThreadDirectFuncs.atomicDec32() 0.0552987 552986 10000000
2x-SysAtomicAdd32() 0.0522535 522535 10000000
2x-sysThreadDirectFuncs.atomicAdd32() 0.0578333 578332 10000000
2x-SysAtomicCompareAndSwap32() 0.0333325 333325 10000000
2x-sysThreadDirectFuncs.atomicCompareAndSwap32() 0.0419239 419239 10000000
2x-SysTSDGet() 0.018393 183929 10000000
2x-sysThreadDirectFuncs.tsdGet() 0.0187129 187128 10000000
2x-SysTSDSet() 0.00770535 77053 10000000
2x-sysThreadDirectFuncs.tsdSet() 0.00827997 82799 10000000
Local Function -0.00230435 -23043 10000000
Local Param Function -0.00212046 -21204 10000000
Library Function -0.00212046 -21204 10000000
Function Pointer -0.00270521 -27052 10000000
Function Pointer With Param 0.000224235 2242 10000000
Virtual Function 0.000177837 1778 10000000
SysGetRunTime() 1.32272 132271 100000
SysGetRunTime() 1.32336 132335 100000
SysGetRunTime() 1.31992 131992 100000
Context Switch 1.0276 10275 10000
Spawn+Destroy Thread 12.9222 116 9
Key Allocation: only implemented on PalmOS
Malloc (pair) 0.131193 13119 100000
New Message (pair) 0.128523 12852 100000
New Binder (pair) 1.31116 131115 100000
New Component (pair) 173.907 17390709 100000
SysCriticalSection (pair) 0.100518 10051 100000
SLocker (pair) 52.9154 5291541 100000
SLocker::Autolock (pair) 60.8568 6085675 100000
SNestedLocker (pair) 52.4579 5245790 100000
SAtom::Inc/DecStrong() (pair) 0.342099 342098 1000000
sptr<> (pair) 0.351724 351724 1000000
Mutex test: only implemented on PalmOS
SSimpleValue() (pair) 0.0259433 259432 10000000
SValue::Int32() (pair) 0.0233681 23368 1000000
SValue::Int64() (pair) 0.171049 17104 100000
SValue Simple Blob (pair) 0.707435 70743 100000
SValue Join 2 240.542 24054191 100000
SValue Join Many 3876.93 186092 48
Array Lookup Int 0.000755639 7556 10000000
SVector Lookup Int 0.0248628 248628 10000000
SKeyedVector Lookup Int 0.534036 53403 100000
SValue Lookup Int 0.819099 81909 100000
SKeyedVector Lookup Str 0.83075 83075 100000
SValue Lookup Str 1.11793 111793 100000
Array Build Static 2 Int 0.0942135 4710 50001
SVector Build Static 2 Int 0.263043 13152 50001
SVector Build Dynamic 2 Int 0.352327 17616 50001
SKeyedVector Build 2 Int 0.876768 43839 50001
SValue Build 2 Int 238.727 11936589 50001
Array Build Static 10 Int 0.144402 1444 10001
SVector Build Static 10 Int 0.447843 4478 10001
SVector Build Dynamic 10 Int 1.44728 14474 10001
SKeyedVector Build 10 Int 4.22679 42272 10001
SValue Build 10 Int 365.408 3654443 10001
Array Build Static 100 Int 0.642609 643 1001
SVector Build Static 100 Int 0.957646 958 1001
SVector Build Dynamic 100 Int 9.68684 9696 1001
SKeyedVector Build 100 Int 46.485 46531 1001
SValue Build 100 Int 471.385 471855 1001
Array Build Static 1000 Int 5.2307 528 101
SVector Build Static 1000 Int 5.86484 592 101
SVector Build Dynamic 1000 Int 85.6938 8655 101
SKeyedVector Build 1000 Int 541.127 54653 101
SValue Build 1000 Int 1849.11 186759 101
SVector Build Static 2 Str 0.603293 30165 50001
SVector Build Static 2 Copy Str 0.957545 47878 50001
SVector Build Dynamic 2 Str 0.520443 26022 50001
SKeyedVector Build 2 Str 1.50766 75384 50001
SValue Build 2 Str 236.934 11846918 50001
SVector Build Static 10 Str 2.17091 21711 10001
SVector Build Static 10 Copy Str 3.73807 37384 10001
SVector Build Dynamic 10 Str 2.2611 22613 10001
SKeyedVector Build 10 Str 6.68189 66825 10001
SValue Build 10 Str 366.493 3665298 10001
SVector Build Static 100 Str 17.721 17738 1001
SVector Build Static 100 Copy Str 36.5924 36628 1001
SVector Build Dynamic 100 Str 18.609 18627 1001
SKeyedVector Build 100 Str 76.7691 76845 1001
SValue Build 100 Str 552.234 552785 1001
SVector Build Static 1000 Str 157.807 15938 101
SVector Build Static 1000 Copy Str 362.154 36577 101
SVector Build Dynamic 1000 Str 184.818 18666 101
SKeyedVector Build 1000 Str 988.012 99789 101
SValue Build 1000 Str 7299.09 737207 101
fadd 0.0400773 40077 1000000
fmul 0.0417919 41791 1000000
fdiv 0.118562 118562 1000000
ARM's memcpy(16 bytes) return value is correct
ARM's memcpy (congruent), MB/s
1 142.574
4 497.548
8 1062.89
16 1989.93
32 3171.32
64 4860.65
128 5587.51
256 6039.35
1024 4923.55
2048 4927.69
4096 6408.69
8192 6530.97
12288 6545.84
32768 9283.91
49152 4088.2
65536 3538.58
131072 3483.17
524288 1358.8
PalmOS's memcpy (congruent), MB/s
ARM's memcpy (non congruent), MB/s
1 132.861
4 531.443
8 882.521
16 985.01
32 2878.75
64 3940.29
128 5025.33
256 5694.91
1024 6327.22
2048 6446.51
4096 6518.5
8192 6549.7
12288 6173.26
32768 6303.63
49152 2905.51
65536 2442.15
131072 2477.57
524288 1355.19
PalmOS's memcpy (non congruent), MB/s
strlen (uncached, alignment=0), MB/s
0 367.421
1 745.661
5 2262.45
6 2638.34
11 4518.73
17 6797.72
28 10944.3
45 17139.4
73 27890.1
118 44769.8
291 109168.0
409 152800.0
700 259376.0
1109 406174.0
1809 642034.0
2918 980681.0
4727 1.53128e+06
strlen (uncached, alignment=1), MB/s
0 370.382
1 745.77
5 2234.89
6 2584.5
11 4411.52
17 6765.12
28 10871.6
45 17350.2
73 27871.1
118 44769.8
291 108877.0
409 152231.0
700 259376.0
1109 402172.0
1809 632111.0
2918 1.00477e+06
4727 1.53128e+06
strlen (uncached, alignment=4), MB/s
0 371.185
1 748.307
5 2237.09
6 2566.34
11 4428.23
17 6145.19
28 10839.9
45 17350.2
73 27441.1
118 44769.8
291 109169.0
409 152800.0
700 257739.0
1109 402172.0
1809 642034.0
2918 1.00472e+06
4727 1.53128e+06
strlen (uncached, alignment=5), MB/s
0 370.386
1 747.993
5 2214.56
6 2585.65
11 4217.75
17 6778.57
28 10944.3
45 17350.2
73 27890.1
118 44769.8
291 109169.0
409 152800.0
700 257739.0
1109 406166.0
1809 642034.0
2918 980632.0
4727 1.53128e+06
strlen (cached, alignment=0), MB/s
0 338.852
1 679.969
5 2019.72
6 2409.44
11 4032.32
17 6124.03
28 9999.91
45 14329.6
73 25475.8
118 40918.5
291 99842.2
409 139751.0
700 236849.0
1109 372849.0
1809 595309.0
2918 914871.0
4727 1.47601e+06
strlen (cached, alignment=1), MB/s
0 338.818
1 676.226
5 2066.24
6 2389.45
11 4033.12
17 6180.47
28 9948.83
45 15857.1
73 25475.7
118 40918.5
291 99842.2
409 139750.0
700 236849.0
1109 369481.0
1809 586786.0
2918 935760.0
4727 1.4246e+06
strlen (cached, alignment=4), MB/s
0 340.91
1 669.158
5 2026.42
6 2398.84
11 4015.7
17 6187.01
28 9999.91
45 14339.6
73 25475.8
118 40918.5
291 99842.8
409 139751.0
700 236846.0
1109 372849.0
1809 595327.0
2918 914871.0
4727 1.4247e+06
strlen (cached, alignment=5), MB/s
0 341.414
1 680.331
5 1957.76
6 2360.91
11 3971.64
17 6181.4
28 9948.83
45 15850.9
73 21773.8
118 40918.5
291 100087.0
409 139275.0
700 236846.0
1109 369481.0
1809 595327.0
2918 935804.0
4727 1.47601e+06
Pulse Handler 89.687 1345305 15000
PingPong Handler 475.673 2378367 5000
Local Instantiate 1974.41 1974410 1000
Remote Instantiate:
Local Empty Transaction 0.13616 13615 100000
Local Transaction 4.88354 488354 100000
Remote Empty Transaction:
Remote Transaction:
Remote 20xSize Transaction:
======================================================================
FATAL ERROR in libraries/libbinder/support/SupportUtils.cpp(336) process 14321:
Bad type supplied to acquire_object()
----------------------------------------------------------------------
0x40468c85:+0x40468c3c
0x404f749a:+0x404f7312
0x404c90e2:+0x404c8f24
0x4049f9dc:+0x4049f97a
0x404a3695:+0x404a35fa
0x409da492:+0x409d9db8
0x409c55bb:+0x409c4e3c
0x409d189c:+0x409cf5a0
0x409d40aa: const&)>+0x409d2c08
0x4096e137: const&, sptr const&, bool*)>+0x4096d8f6
0x4096b3b7: const&, sptr const&, bool*)>+0x4096b2b8
0x4096cf93: const&, sptr const&, bool*)>+0x4096cf38
0x4096ca5f: const&, sptr const&, bool*)>+0x4096c9cc
0x4096ac4e: const&, sptr const&, bool*)>+0x4096ac00
0x409670cb: const&)>+0x40966e50
0x40957d93: const&)>+0x40956560
0x40960b42: const&, SString const&, bool*)>+0x409608c0
0x4096d8e7: const&, SString const&, bool*)>+0x4096d8b2
0x4096f90b: const&, sptr const&, bool*)>+0x4096f790
0x4096dddf: const&, sptr const&, bool*)>+0x4096d8f6
0x4096b3b7: const&, sptr const&, bool*)>+0x4096b2b8
0x4096cf93: const&, sptr const&, bool*)>+0x4096cf38
0x4096ca5f: const&, sptr const&, bool*)>+0x4096c9cc
0x4096ac4e: const&, sptr const&, bool*)>+0x4096ac00
0x409670cb: const&)>+0x40966e50
0x40957d93: const&)>+0x40956560
0x4046d6d2:+0x4046d490
0x4004d450: <__libc_start_main>+0x4004d370
0x08053071:+0x08053024
======================================================================
Abort, or Ignore and continue? [Ai] - Aborting on fatal error -
/bin/sh: line 1: 14321 Aborted smooved -e /home/ming/pkg.android/openbinder/build/scripts/test.bsh
make: *** [test] Error 134
ming@ming-desktop:~/pkg.android/openbinder$ make test
(. build/scripts/setup_env.sh; smooved -e /home/ming/pkg.android/openbinder/build/scripts/test.bsh)
LOCK DEBUGGING ENABLED! LOCK_DEBUG=15 LOCK_DEBUG_STACK_CRAWLS=1
Opening '/dev/binder' failed: No such file or directory
SmooveD is entering the picture...
BecomeContextManager(): true
[PackageManager]: adding package directory '/home/ming/pkg.android/openbinder/build/packages'
Current environment: SValue({
"_" -> "/home/ming/pkg.android/openbinder/build/bin/smooved",
"PWD" -> "/",
"ECHO" -> int32_t(1 or 0x1),
"HOME" -> "/home/ming",
"LANG" -> "en_US.UTF-8",
"PATH" -> "/home/ming/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/ming/morphine.tv/bin/:/home/ming/pkg.android/android-sdk-linux_x86-1.0_r1/tools/:/home/ming/pkg/jperf2/bin/:/home/ming/pkg.eclipse/agents/bin/:/home/ming/pkg.android/openbinder/build/bin",
"SELF" -> wptr
"TERM" -> "xterm",
"USER" -> "baron",
"WILD" -> wild,
"SHELL" -> "/bin/bash",
"SHLVL" -> "2",
"MFLAGS" -> "",
"CONTEXT" -> sptr
"DISPLAY" -> ":0.0",
"LDFLAGS" -> "-lssl",
"LOGNAME" -> "ming",
"GDM_LANG" -> "en_US.UTF-8",
"LESSOPEN" -> "| /usr/bin/lesspipe %s",
"USERNAME" -> "ming",
"WINDOWID" -> "52428880",
"CLASSPATH" -> "/home/ming/workspace.ming/HelloGundam/bin/:",
"COLORTERM" -> "gnome-terminal",
"LESSCLOSE" -> "/usr/bin/lesspipe %s %s",
"LS_COLORS" -> "no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.svgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:",
"MAKEFLAGS" -> "",
"MAKELEVEL" -> "1",
"GDMSESSION" -> "default",
"GIT_EDITOR" -> "vim",
"WINDOWPATH" -> "7",
"XAUTHORITY" -> "/tmp/.gdmARHWKU",
"XMODIFIERS" -> "@im=SCIM",
"HISTCONTROL" -> "ignoreboth",
"BSH_HOST_PWD" -> "/home/ming/pkg.android/openbinder",
"GTK_RC_FILES" -> "/etc/gtk/gtkrc:/home/ming/.gtkrc-1.2-gnome2",
"QT_IM_MODULE" -> "xim",
"GTK_IM_MODULE" -> "scim-bridge",
"SRC_LIBRARIES" -> "libraries",
"SSH_AUTH_SOCK" -> "/tmp/keyring-Jl2RM8/ssh",
"XDG_DATA_DIRS" -> "/usr/local/share/:/usr/share/:/usr/share/gdm/",
"BSH_SCRIPT_DIR" -> "",
"GPG_AGENT_INFO" -> "/tmp/seahorse-AAWri0/S.gpg-agent:5975:1",
"BSH_SCRIPT_FILE" -> "",
"DESKTOP_SESSION" -> "default",
"GIT_AUTHOR_NAME" -> "Ming-der Wang",
"LD_LIBRARY_PATH" -> "/home/ming/workspace.ming/HelloGundam/bin/:/usr/local/lib/:/usr/lib/:/mnt/katapi86/lib/://home/ming/pkg.eclipse/agents/lib/:/home/ming/workspace.ming/android_jni/bin:/home/ming/pkg.android/openbinder/build/lib",
"PKG_CONFIG_PATH" -> "/usr/lib/pkgconfig/:/usr/local/lib/pkgconfig/:/usr/share/pkgconfig/:/home/ming/morphine.tv/lib/pkgconfig/",
"SESSION_MANAGER" -> "local/ming-desktop:/tmp/.ICE-unix/5909",
"BINDER_DIST_PATH" -> "/home/ming/pkg.android/openbinder/.",
"GIT_AUTHOR_EMAIL" -> "ming@katdc.com",
"SYSTEM_DIRECTORY" -> "/home/ming/pkg.android/openbinder/build",
"GNOME_KEYRING_PID" -> "5908",
"DESKTOP_STARTUP_ID" -> "",
"GIT_COMMITTER_NAME" -> "Ming-der Wang",
"XDG_SESSION_COOKIE" -> "dcf1338cc348047cd4cc046d48b3704a-1227235107.217432-1097584640",
"BINDER_PACKAGE_PATH" -> "/home/ming/pkg.android/openbinder/build/packages",
"GIT_COMMITTER_EMAIL" -> "ming@katdc.com",
"PALMSOURCE_PLATFORM" -> "DEVICE_ARM",
"GDM_XSERVER_LOCATION" -> "local",
"GNOME_KEYRING_SOCKET" -> "/tmp/keyring-Jl2RM8/socket",
"PALMSOURCE_BUILDTYPE" -> "DEBUG",
"DBUS_SESSION_BUS_ADDRESS" -> "unix:abstract=/tmp/dbus-yc3K7LDmDG,guid=bf3acc8cf48c5e14d51cba3a49261f25",
"GNOME_DESKTOP_SESSION_ID" -> "Default"
})
Running binder performance tests...
VALIDATION ENABLED
Iterations: 1000
Thread priority: 80
Payload size: Random (seed 0)
Operation us/op Total us Iterations
Overhead 0.00729923 72992 10000000
Random Overhead 0.0461547 46154 1000000
Add int32_t -0.00389968 -38996 10000000
Global int32_t Access -0.00376249 -37624 10000000
Extern Global int32_t Access -0.00457844 -45784 10000000
SysAtomicInc32() 0.00606161 60616 10000000
sysThreadDirectFuncs.atomicInc32() 0.00685385 68538 10000000
SysAtomicDec32() 0.00618398 61839 10000000
sysThreadDirectFuncs.atomicDec32() 0.0065386 65385 10000000
SysAtomicAdd32() 0.00734086 73408 10000000
sysThreadDirectFuncs.atomicAdd32() 0.00721907 72190 10000000
SysAtomicCompareAndSwap32() 0.00992122 99212 10000000
sysThreadDirectFuncs.atomicCompareAndSwap32() 0.0100774 100773 10000000
SysTSDGet() 0.00868514 86851 10000000
sysThreadDirectFuncs.tsdGet() 0.0107337 107337 10000000
SysTSDSet() 0.0205322 205322 10000000
sysThreadDirectFuncs.tsdSet() 0.0216009 216008 10000000
2x-SysAtomicInc32() 0.0500149 500148 10000000
2x-sysThreadDirectFuncs.atomicInc32() 0.0494547 494546 10000000
2x-SysAtomicDec32() 0.042947 429470 10000000
2x-sysThreadDirectFuncs.atomicDec32() 0.0552987 552986 10000000
2x-SysAtomicAdd32() 0.0522535 522535 10000000
2x-sysThreadDirectFuncs.atomicAdd32() 0.0578333 578332 10000000
2x-SysAtomicCompareAndSwap32() 0.0333325 333325 10000000
2x-sysThreadDirectFuncs.atomicCompareAndSwap32() 0.0419239 419239 10000000
2x-SysTSDGet() 0.018393 183929 10000000
2x-sysThreadDirectFuncs.tsdGet() 0.0187129 187128 10000000
2x-SysTSDSet() 0.00770535 77053 10000000
2x-sysThreadDirectFuncs.tsdSet() 0.00827997 82799 10000000
Local Function -0.00230435 -23043 10000000
Local Param Function -0.00212046 -21204 10000000
Library Function -0.00212046 -21204 10000000
Function Pointer -0.00270521 -27052 10000000
Function Pointer With Param 0.000224235 2242 10000000
Virtual Function 0.000177837 1778 10000000
SysGetRunTime() 1.32272 132271 100000
SysGetRunTime() 1.32336 132335 100000
SysGetRunTime() 1.31992 131992 100000
Context Switch 1.0276 10275 10000
Spawn+Destroy Thread 12.9222 116 9
Key Allocation: only implemented on PalmOS
Malloc (pair) 0.131193 13119 100000
New Message (pair) 0.128523 12852 100000
New Binder (pair) 1.31116 131115 100000
New Component (pair) 173.907 17390709 100000
SysCriticalSection (pair) 0.100518 10051 100000
SLocker (pair) 52.9154 5291541 100000
SLocker::Autolock (pair) 60.8568 6085675 100000
SNestedLocker (pair) 52.4579 5245790 100000
SAtom::Inc/DecStrong() (pair) 0.342099 342098 1000000
sptr<> (pair) 0.351724 351724 1000000
Mutex test: only implemented on PalmOS
SSimpleValue
SValue::Int32() (pair) 0.0233681 23368 1000000
SValue::Int64() (pair) 0.171049 17104 100000
SValue Simple Blob (pair) 0.707435 70743 100000
SValue Join 2 240.542 24054191 100000
SValue Join Many 3876.93 186092 48
Array Lookup Int 0.000755639 7556 10000000
SVector Lookup Int 0.0248628 248628 10000000
SKeyedVector Lookup Int 0.534036 53403 100000
SValue Lookup Int 0.819099 81909 100000
SKeyedVector Lookup Str 0.83075 83075 100000
SValue Lookup Str 1.11793 111793 100000
Array Build Static 2 Int 0.0942135 4710 50001
SVector Build Static 2 Int 0.263043 13152 50001
SVector Build Dynamic 2 Int 0.352327 17616 50001
SKeyedVector Build 2 Int 0.876768 43839 50001
SValue Build 2 Int 238.727 11936589 50001
Array Build Static 10 Int 0.144402 1444 10001
SVector Build Static 10 Int 0.447843 4478 10001
SVector Build Dynamic 10 Int 1.44728 14474 10001
SKeyedVector Build 10 Int 4.22679 42272 10001
SValue Build 10 Int 365.408 3654443 10001
Array Build Static 100 Int 0.642609 643 1001
SVector Build Static 100 Int 0.957646 958 1001
SVector Build Dynamic 100 Int 9.68684 9696 1001
SKeyedVector Build 100 Int 46.485 46531 1001
SValue Build 100 Int 471.385 471855 1001
Array Build Static 1000 Int 5.2307 528 101
SVector Build Static 1000 Int 5.86484 592 101
SVector Build Dynamic 1000 Int 85.6938 8655 101
SKeyedVector Build 1000 Int 541.127 54653 101
SValue Build 1000 Int 1849.11 186759 101
SVector Build Static 2 Str 0.603293 30165 50001
SVector Build Static 2 Copy Str 0.957545 47878 50001
SVector Build Dynamic 2 Str 0.520443 26022 50001
SKeyedVector Build 2 Str 1.50766 75384 50001
SValue Build 2 Str 236.934 11846918 50001
SVector Build Static 10 Str 2.17091 21711 10001
SVector Build Static 10 Copy Str 3.73807 37384 10001
SVector Build Dynamic 10 Str 2.2611 22613 10001
SKeyedVector Build 10 Str 6.68189 66825 10001
SValue Build 10 Str 366.493 3665298 10001
SVector Build Static 100 Str 17.721 17738 1001
SVector Build Static 100 Copy Str 36.5924 36628 1001
SVector Build Dynamic 100 Str 18.609 18627 1001
SKeyedVector Build 100 Str 76.7691 76845 1001
SValue Build 100 Str 552.234 552785 1001
SVector Build Static 1000 Str 157.807 15938 101
SVector Build Static 1000 Copy Str 362.154 36577 101
SVector Build Dynamic 1000 Str 184.818 18666 101
SKeyedVector Build 1000 Str 988.012 99789 101
SValue Build 1000 Str 7299.09 737207 101
fadd 0.0400773 40077 1000000
fmul 0.0417919 41791 1000000
fdiv 0.118562 118562 1000000
ARM's memcpy(16 bytes) return value is correct
ARM's memcpy (congruent), MB/s
1 142.574
4 497.548
8 1062.89
16 1989.93
32 3171.32
64 4860.65
128 5587.51
256 6039.35
1024 4923.55
2048 4927.69
4096 6408.69
8192 6530.97
12288 6545.84
32768 9283.91
49152 4088.2
65536 3538.58
131072 3483.17
524288 1358.8
PalmOS's memcpy (congruent), MB/s
ARM's memcpy (non congruent), MB/s
1 132.861
4 531.443
8 882.521
16 985.01
32 2878.75
64 3940.29
128 5025.33
256 5694.91
1024 6327.22
2048 6446.51
4096 6518.5
8192 6549.7
12288 6173.26
32768 6303.63
49152 2905.51
65536 2442.15
131072 2477.57
524288 1355.19
PalmOS's memcpy (non congruent), MB/s
strlen (uncached, alignment=0), MB/s
0 367.421
1 745.661
5 2262.45
6 2638.34
11 4518.73
17 6797.72
28 10944.3
45 17139.4
73 27890.1
118 44769.8
291 109168.0
409 152800.0
700 259376.0
1109 406174.0
1809 642034.0
2918 980681.0
4727 1.53128e+06
strlen (uncached, alignment=1), MB/s
0 370.382
1 745.77
5 2234.89
6 2584.5
11 4411.52
17 6765.12
28 10871.6
45 17350.2
73 27871.1
118 44769.8
291 108877.0
409 152231.0
700 259376.0
1109 402172.0
1809 632111.0
2918 1.00477e+06
4727 1.53128e+06
strlen (uncached, alignment=4), MB/s
0 371.185
1 748.307
5 2237.09
6 2566.34
11 4428.23
17 6145.19
28 10839.9
45 17350.2
73 27441.1
118 44769.8
291 109169.0
409 152800.0
700 257739.0
1109 402172.0
1809 642034.0
2918 1.00472e+06
4727 1.53128e+06
strlen (uncached, alignment=5), MB/s
0 370.386
1 747.993
5 2214.56
6 2585.65
11 4217.75
17 6778.57
28 10944.3
45 17350.2
73 27890.1
118 44769.8
291 109169.0
409 152800.0
700 257739.0
1109 406166.0
1809 642034.0
2918 980632.0
4727 1.53128e+06
strlen (cached, alignment=0), MB/s
0 338.852
1 679.969
5 2019.72
6 2409.44
11 4032.32
17 6124.03
28 9999.91
45 14329.6
73 25475.8
118 40918.5
291 99842.2
409 139751.0
700 236849.0
1109 372849.0
1809 595309.0
2918 914871.0
4727 1.47601e+06
strlen (cached, alignment=1), MB/s
0 338.818
1 676.226
5 2066.24
6 2389.45
11 4033.12
17 6180.47
28 9948.83
45 15857.1
73 25475.7
118 40918.5
291 99842.2
409 139750.0
700 236849.0
1109 369481.0
1809 586786.0
2918 935760.0
4727 1.4246e+06
strlen (cached, alignment=4), MB/s
0 340.91
1 669.158
5 2026.42
6 2398.84
11 4015.7
17 6187.01
28 9999.91
45 14339.6
73 25475.8
118 40918.5
291 99842.8
409 139751.0
700 236846.0
1109 372849.0
1809 595327.0
2918 914871.0
4727 1.4247e+06
strlen (cached, alignment=5), MB/s
0 341.414
1 680.331
5 1957.76
6 2360.91
11 3971.64
17 6181.4
28 9948.83
45 15850.9
73 21773.8
118 40918.5
291 100087.0
409 139275.0
700 236846.0
1109 369481.0
1809 595327.0
2918 935804.0
4727 1.47601e+06
Pulse Handler 89.687 1345305 15000
PingPong Handler 475.673 2378367 5000
Local Instantiate 1974.41 1974410 1000
Remote Instantiate:
Local Empty Transaction 0.13616 13615 100000
Local Transaction 4.88354 488354 100000
Remote Empty Transaction:
Remote Transaction:
Remote 20xSize Transaction:
======================================================================
FATAL ERROR in libraries/libbinder/support/SupportUtils.cpp(336) process 14321:
Bad type supplied to acquire_object()
----------------------------------------------------------------------
0x40468c85:
0x404f749a:
0x404c90e2:
0x4049f9dc:
0x404a3695:
0x409da492:
0x409c55bb:
0x409d189c:
0x409d40aa:
0x4096e137:
0x4096b3b7:
0x4096cf93:
0x4096ca5f:
0x4096ac4e:
0x409670cb:
0x40957d93:
0x40960b42:
0x4096d8e7:
0x4096f90b:
0x4096dddf:
0x4096b3b7:
0x4096cf93:
0x4096ca5f:
0x4096ac4e:
0x409670cb:
0x40957d93:
0x4046d6d2:
0x4004d450: <__libc_start_main>+0x4004d370
0x08053071:
======================================================================
Abort, or Ignore and continue? [Ai] - Aborting on fatal error -
/bin/sh: line 1: 14321 Aborted smooved -e /home/ming/pkg.android/openbinder/build/scripts/test.bsh
make: *** [test] Error 134
2008年10月30日 星期四
Google Notebook for Android.
http://www.google.com/notebook/public/07454133468172869619/BDQKlIgoQo8y9uJwj
my Google Notebook for Android.
Ming
my Google Notebook for Android.
Ming
訂閱:
意見 (Atom)