(slide 13)AoE for Embedded Development Environment

Software developed with cross tool chain in the same manner as when NFS used

File system image must be created to be executed on target

File system image to be written on flash memory can be directly used as root file system via network with AoE

(Figure)

(slide 14)Evaluation of AoE Use

Evaluation items (Comparison among AoE/NFS/Flash memory)

Object size of target kernel

Memory usage at boot with identical rootfs

Comparison of behavior with compression file system (cramfs)

read time of a highly compressible file (all zero) and a less compressible file (random data) of the same data volume

Evaluation environment

Target: OSK (TI OMAP 192MHz, RAM 32M), kernel 2.6.20.20, 10BASE-T

Host: x86_64(3.4GHz), kernel 2.4.21(RHEL3), 1000BASE-T

(slide 15)Evaluation of AoE Use (Size/Memory Usage)

Target kernel object size comparison

+----------------------+---------+---------------------+

| AoE | NFS | Flash memory |

+-----------+----------+---------+-----------+---------+

|file system| aoe | NFS |file system| mtd |

| (cramfs) | | client | (cramfs) | |

+-----------+----------+---------+-----------+---------+

| 10,433 | 28,326 | | 10,433 | 73.401 |

+-----------+----------+ +-----------+---------+

| 38,759 | 322,503 | 83,834 |

+----------------------+---------+---------------------+

size of build-in.o in each directory (bytes)

Memory usage comparison

After booting up with an identical rootfs (busybox), logging in and executing free command

+-------+--------+--------+--------+---------+

| | total | used | free | buffers |

+-------+--------+--------+--------+---------+

| AoE | 30,220 | 5,000 | 25,220 | 724 |

+-------+--------+--------+--------+---------+

| NFS | 29,888 | 4,352 | 25,536 | 0 |

+-------+--------+--------+--------+---------+

| Flash | 30,188 | 5,040 | 25,148 | 736 |

+-------+--------+--------+--------+---------+

free command output (Kbytes)

(slide 16)Evaluation of AoE Use (Behavior)

File read time (CPU time)

"echo 3 > /proc/sys/vm/drop_caches", then read out with "time wc -c"

+-------+--------------------+--------------------+

| | all zero data | random data |

| +------+------+------+------+------+------+

| | real | user | sys | real | user | sys |

+-------+------+------+------+------+------+------+

| AoE | 1.57 | 0.71 | 0.63 | 7.09 | 0.66 | 1.14 |

+-------+------+------+------+------+------+------+

| NFS | 6.28 | 0.72 | 0.88 | 6.39 | 0.72 | 0.86 |

+-------+------+------+------+------+------+------+

| Flash | 1.44 | 0.72 | 0.61 | 3.23 | 0.69 | 0.88 |

+-------+------+------+------+------+------+------+

unit: second (read 5MB; avarage of 10 trials)

Data transfer volume

Measured as the difference between /proc/diskstats and /proc/net/dev

+-------+--------------------------+--------------------------+

| | all zero data | random data |

| +------------+-------------+------------+-------------+

| | eth recv | sector read | eth recv | sector read |

+-------+------------+-------------+------------+-------------+

| AoE | 352,040 | 339,968 | 5,770,820 | 5,570,560 |

+-------+------------+-------------+------------+-------------+

| NFS | 5,666,068 | - | 5,663,699 | - |

+-------+------------+-------------+------------+-------------+

| Flash | - | 339,968 | - | 5,570,560 |

+-------+------------+-------------+------------+-------------+

unit: byte (when read 5MB)

(slide 17)Consideration

Kernel CPU time reflects the difference of compression processing

Expanding highly compressible data (all zero) does not use CPU as much as random data (Assuming that data transfer does not need so much CPU power; if data transfer needs much CPU power, volume of memory copy would be also reflected)

In case of NFS, it is independent of data contents as there is no expanding (data transfer volume is also uniform)