<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://elinux.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://elinux.org/index.php?title=Szwg_Measurement_Method&amp;feed=atom&amp;action=history</id>
		<title>Szwg Measurement Method - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://elinux.org/index.php?title=Szwg_Measurement_Method&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=Szwg_Measurement_Method&amp;action=history"/>
		<updated>2013-05-20T22:24:42Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.21alpha</generator>

	<entry>
		<id>http://elinux.org/index.php?title=Szwg_Measurement_Method&amp;diff=5515&amp;oldid=prev</id>
		<title>Glenn: +Category:Consumer Electronics Linux</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=Szwg_Measurement_Method&amp;diff=5515&amp;oldid=prev"/>
				<updated>2008-02-10T19:57:08Z</updated>
		
		<summary type="html">&lt;p&gt;+&lt;a href=&quot;/Category:Consumer_Electronics_Linux&quot; title=&quot;Category:Consumer Electronics Linux&quot;&gt;Category:Consumer Electronics Linux&lt;/a&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 19:57, 10 February 2008&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 202:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 202:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;This procedure is common for each method.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;This procedure is common for each method.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Consumer Electronics Linux]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Glenn</name></author>	</entry>

	<entry>
		<id>http://elinux.org/index.php?title=Szwg_Measurement_Method&amp;diff=2103&amp;oldid=prev</id>
		<title>RBot: Bot (Edward's framework)</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/index.php?title=Szwg_Measurement_Method&amp;diff=2103&amp;oldid=prev"/>
				<updated>2007-03-06T03:37:56Z</updated>
		
		<summary type="html">&lt;p&gt;Bot (Edward&amp;#039;s framework)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Summary ==&lt;br /&gt;
SZWG focused and examined the following five methods for memory(ROM or RAM) size reduction.&lt;br /&gt;
&lt;br /&gt;
(1)Typical embedded Linux boot(Normalizer)&lt;br /&gt;
This way of booting up is typically used for embedded Linux system.&lt;br /&gt;
The Linux kernel is stored in ROM/Flash on the target system. In order to save an area where Linux kernel is stored, the kernel is compressed as zImage. &lt;br /&gt;
Measurement results for this method is used as normalizer to compare to other methods. &lt;br /&gt;
&lt;br /&gt;
See section 4 for details of this method.&lt;br /&gt;
&lt;br /&gt;
(2)Kernel XIP(eXecute In Place)&lt;br /&gt;
Kernel XIP is the method that kernel image is directly executed from ROM/Flash, instead of copying from ROM/Flash to RAM. &lt;br /&gt;
Main pros:Compare to typical boot, RAM usage decreases.&lt;br /&gt;
Main cons:Compare to typical boot, ROM usage increases, and execution speed is slower.&lt;br /&gt;
&lt;br /&gt;
See section 5 for details of this method.&lt;br /&gt;
&lt;br /&gt;
(3)Compressed FS(initrd)&lt;br /&gt;
Initrd is a Kernel feature that allows root file system to be in RAM disk. Root file system image is compressed and stored in ROM/Flash. Boot loader (or Kernel) copies the compressed image to RAM and decompress it to RAM (RAM disk). The kernel mount the root file system image as file system. &lt;br /&gt;
Main pros:Compare to typical boot, ROM usage for filesystem is decreases.&lt;br /&gt;
Main cons:Compare to typical boot, RAM usage increases.&lt;br /&gt;
&lt;br /&gt;
See section 6 for details of this method.&lt;br /&gt;
&lt;br /&gt;
(4)Compressed FS(cramfs)&lt;br /&gt;
Cramfs is read-only compressed filesystem.&lt;br /&gt;
Main pros:Compare to typical boot, ROM usage for filesystem is decreases.&lt;br /&gt;
Main cons:Read only. &lt;br /&gt;
&lt;br /&gt;
See section 7 for details of this method.&lt;br /&gt;
&lt;br /&gt;
(5)Compressed FS(jffs2)&lt;br /&gt;
Jffs2 is compressed file system for flash memory. &lt;br /&gt;
Main pros:ROM usage for filesystem decreases. &lt;br /&gt;
Main cons:ROM and RAM usage for kernel increases. &lt;br /&gt;
&lt;br /&gt;
See section 8 for details of this method.&lt;br /&gt;
&lt;br /&gt;
In order to clarify effects of memory reduction for each method, following four types of memory usage should be measured.&lt;br /&gt;
Such as ROM usage for kernel, RAM usage for kernel, ROM usage for filesystem, RAM usage for filesystem. &lt;br /&gt;
&lt;br /&gt;
(a) Kernel ROM size measurement&lt;br /&gt;
Size of ROM area where kernel image are stored. &lt;br /&gt;
&lt;br /&gt;
(b) Kernel RAM size measurement&lt;br /&gt;
Size of RAM size where text and data of kernel are (uncompressed and) copied.&lt;br /&gt;
The size does not include areas temporarily used while uncompressing,&lt;br /&gt;
areas for bitmaps, and areas freed after bootup.&lt;br /&gt;
&lt;br /&gt;
(c)Root filesystem ROM size measurement&lt;br /&gt;
Size of ROM area where root filesystem image are stored.&lt;br /&gt;
&lt;br /&gt;
(d)Root filesystem RAM size measurement&lt;br /&gt;
Size of RAM size where root filesystem image are (uncompressed and) copied.&lt;br /&gt;
&lt;br /&gt;
In addition, in order to clarify side effects for each method, following two items should be measured.&lt;br /&gt;
Such as booting up time, execution speed.&lt;br /&gt;
&lt;br /&gt;
(e)Booting up time measurement&lt;br /&gt;
Booting up time should include period for uncompressing and copying kernel and root filesystem from ROM to RAM.&lt;br /&gt;
Then start point and end point of boot up time are defined as follows:&lt;br /&gt;
Start point:Entry of bootloader&lt;br /&gt;
End point:a specific point after prepare_namespace()&lt;br /&gt;
&lt;br /&gt;
(f)Execution speed benchmark&lt;br /&gt;
Unix''''''Bench4.1.0 is used for the execution speed benchmark.&lt;br /&gt;
Unix''''''Bench can be downloaded from the following URL.&lt;br /&gt;
&lt;br /&gt;
http://www.tux.org/pub/tux/benchmarks/System/unixbench/unixbench-4.1.0.tgz&lt;br /&gt;
&lt;br /&gt;
Unix''''''Bench contains 9 types of tests which result can be converted &amp;quot;index score&amp;quot; for performance.&lt;br /&gt;
&lt;br /&gt;
(1)Dhrystone 2 using register variables&lt;br /&gt;
(2)Double-Precision Whetstone&lt;br /&gt;
(3)Execl Throughput&lt;br /&gt;
(4)File Copy&lt;br /&gt;
(5)Pipe Throughput&lt;br /&gt;
(6)Pipe-based Context Switching&lt;br /&gt;
(7)Process Creation&lt;br /&gt;
(8)Shell Script&lt;br /&gt;
(9)System Call Overhead&lt;br /&gt;
&lt;br /&gt;
The file copy test (4) should be skipped because some of our target filesystems are mounted for read-only.&lt;br /&gt;
The index score is rate against a baseline score which a 60-MHz [[Super SPARC]] processor records.&lt;br /&gt;
The baseline is rated at 10.0. in each of the index scores.&lt;br /&gt;
Final score is average of all of the index scores except No.(4).&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
The details of measurement ways for each method are described below.&lt;br /&gt;
=== Kernel ROM size measurement ===&lt;br /&gt;
(1) Typical embedded Linux boot(Normalizer)&lt;br /&gt;
Measure size of the zImage file. Execute &amp;quot;ls -l&amp;quot; command, and round off the result value less than kB.&lt;br /&gt;
&lt;br /&gt;
(Ex.)&lt;br /&gt;
# ls -l ./zImage&lt;br /&gt;
&lt;br /&gt;
(2) Kernel XIP&lt;br /&gt;
Measure size of the xip image file. Execute &amp;quot;ls -l&amp;quot; command, and round off the result value less than kB.&lt;br /&gt;
&lt;br /&gt;
(Ex.)&lt;br /&gt;
# ls -l ./ximage&lt;br /&gt;
&lt;br /&gt;
(3) Compressed FS(initrd) &lt;br /&gt;
Same as the Typical embedded Linux boot.&lt;br /&gt;
&lt;br /&gt;
(4) Compressed FS(cramfs)&lt;br /&gt;
Same as the Typical embedded Linux boot.&lt;br /&gt;
&lt;br /&gt;
(5) Compressed FS(jffs2)&lt;br /&gt;
Same as the Typical embedded Linux boot.&lt;br /&gt;
&lt;br /&gt;
=== Kernel RAM size measurement ===&lt;br /&gt;
(1) Typical embedded Linux boot(Normalizer)&lt;br /&gt;
Build vmlinux file instead of zImage, execute &amp;quot;objdump -h&amp;quot; command, and then section information of vmlinux will be&lt;br /&gt;
displayed. Calculate total size of relevant sections, and round off the result value less than kB.&lt;br /&gt;
&lt;br /&gt;
(Ex.)&lt;br /&gt;
# (prefix-)objdump -h ./vmlinux&lt;br /&gt;
&lt;br /&gt;
(2) Kernel XIP&lt;br /&gt;
Calculate total size of bss section and data section from System.map file.&lt;br /&gt;
&lt;br /&gt;
(3) Compressed FS(initrd) &lt;br /&gt;
Same as the Typical embedded Linux boot.&lt;br /&gt;
&lt;br /&gt;
(4) Compressed FS(cramfs)&lt;br /&gt;
Same as the Typical embedded Linux boot.&lt;br /&gt;
&lt;br /&gt;
(5) Compressed FS(jffs2)&lt;br /&gt;
Same as the Typical embedded Linux boot.&lt;br /&gt;
&lt;br /&gt;
=== Root filesystem ROM size measurement ===&lt;br /&gt;
(1) Typical embedded Linux boot(Normalizer)&lt;br /&gt;
Execute &amp;quot;du -bc&amp;quot; on the target board, and round off the result value less than kB.&lt;br /&gt;
&lt;br /&gt;
(Ex.)&lt;br /&gt;
# du -bcs /&lt;br /&gt;
&lt;br /&gt;
(2) Kernel XIP&lt;br /&gt;
Same as the Typical embedded Linux boot.&lt;br /&gt;
&lt;br /&gt;
(3) Compressed FS(initrd) &lt;br /&gt;
Measure size of the root filesystem image(gzip file). Execute &amp;quot;ls -l&amp;quot; command, and round off the result value less than kB.&lt;br /&gt;
&lt;br /&gt;
(Ex.)&lt;br /&gt;
# ls -l ./rootfs.gz&lt;br /&gt;
&lt;br /&gt;
(4) Compressed FS(cramfs)&lt;br /&gt;
Measure size of the cramfs filesystem image created by the mkcramfs.  Execute &amp;quot;ls -l&amp;quot; command, and round off the result value less than kB.&lt;br /&gt;
The cramfs image file must be created under default option of mkcramfs.&lt;br /&gt;
&lt;br /&gt;
(Ex.)&lt;br /&gt;
# ls -l ./rootfs_cramfs&lt;br /&gt;
&lt;br /&gt;
(5) Compressed FS(jffs2)&lt;br /&gt;
Measure size of the jffs2 filesystem image created by the mkfs.jffs2. Execute &amp;quot;ls -l&amp;quot; command, and round off the result value less than kB.&lt;br /&gt;
The jffs2 image file must be created under following conditions.&lt;br /&gt;
- padding:minimum setting&lt;br /&gt;
- erase block size:appropriate value for the Flash ROM on the target board.&lt;br /&gt;
&lt;br /&gt;
(Ex.)&lt;br /&gt;
# ls -l ./rootfs_cramfs&lt;br /&gt;
&lt;br /&gt;
=== Root filesystem RAM size measurement ===&lt;br /&gt;
(1) Typical embedded Linux boot(Normalizer)&lt;br /&gt;
Not necessary.&lt;br /&gt;
&lt;br /&gt;
(2) Kernel XIP&lt;br /&gt;
Not necessary.&lt;br /&gt;
&lt;br /&gt;
(3) Compressed FS(initrd) &lt;br /&gt;
Measure size of the uncompressed root filesystem image. Execute &amp;quot;ls -l&amp;quot; command, and round off the result value less than kB.&lt;br /&gt;
&lt;br /&gt;
(Ex.)&lt;br /&gt;
# ls -l ./rootfs&lt;br /&gt;
&lt;br /&gt;
(4) Compressed FS(cramfs)&lt;br /&gt;
Not necessary.&lt;br /&gt;
&lt;br /&gt;
(5) Compressed FS(jffs2)&lt;br /&gt;
Not necessary.&lt;br /&gt;
&lt;br /&gt;
=== Boot up time measurement ===&lt;br /&gt;
Use time measurement function of JTAG ICE to measure the boot up time.&lt;br /&gt;
Define top of bootloader as a start point of the measurement period, and then set an end point at &lt;br /&gt;
given places in the init() function.&lt;br /&gt;
Insert dummy functions at the end points, and set a hardware break point at one of the dummy functions&lt;br /&gt;
in order to stop execution.&lt;br /&gt;
&lt;br /&gt;
Two dummy functions are inserted in the init() function. -&amp;gt; [[Szwg Boottime Endpoint]]&lt;br /&gt;
&lt;br /&gt;
This procedure is common for each method.&lt;br /&gt;
&lt;br /&gt;
=== Execution speed benchmark ===&lt;br /&gt;
Cross-compile the Unix''''''Bench4.1.0 for the target board, and then execute it on the board.&lt;br /&gt;
Run the test 3 times ,and adopt final score from log as result. &lt;br /&gt;
&lt;br /&gt;
(Ex.)&lt;br /&gt;
&lt;br /&gt;
#./Run -3&lt;br /&gt;
&lt;br /&gt;
This procedure is common for each method.&lt;/div&gt;</summary>
		<author><name>RBot</name></author>	</entry>

	</feed>