LTP result

From Yocto Project
Revision as of 08:32, 25 March 2011 by Jiajun (talk | contribs)
Jump to navigationJump to search

Introduction

Linux Test Project (LTP) is an open source project with a goal to deliver test suites to the open source community that validate the reliability, robustness, and stability of Linux. (http://ltp.sourceforge.net)

Unlike typical desktop/server distributions, embedded linux distribution is highly customized for a specific purpose. It's not unusual to observe more failures in Yocto than in a typical desktop Linux distro like Ubuntu, etc. So the major purposes of this work are:

  • to understand the reasons for existing LTP failures. If the cause is from a specific package itself, go to fix it. Or else if the error simply come from the fact that a given package doesn't exist in current profile, add the explanation here
  • to track LTP test results cross Yocto releases, and ensure a declining error number for same profile
  • to be the reference if Yocto users want to get a base picture

There is one bugzilla entry related: http://bugzilla.pokylinux.org/show_bug.cgi?id=169

Overall trend

Overall trend tends to track the change of LTP test results along with Yocto's progress. Previous data in 0.9 is not complete and not consistent configured on all targets. So we start from 1.0-M2 as the starting point.

In below table we list total LTP failures for each architectures in each milestone: (now this wiki doesn't allow upload files. So for detail logs please refer to earlier bug link)

Milestone qemux86 qemu-x86_64 qemuppc qemuarm qemumips atom-pc blacksand beagleboard routerstation
1.0-M2 34 32 34 37 37 33 29 35 145 (*)
*: routerstation has kernel config issues. See later for detail.

general tips:

  • Yocto links /tmp to /var/volatiles/tmp which is dynamically created at each boot. This causes one issue to LTP test. /var is normally not writable to non-root users, while LTP does run some test cases under non-root accounts. This causes considerable failures (~60 in qemux86) when creating temporary contents under /tmp. The workaround to this issue is to use "-d newtmpdir" when running LTP, where newtmpdir is created with full write permissions to all users.
  • There's a puzzle which profile should be chosen as the test target. Now SDK is chosen because same image can work on both qemu and real hardware. LSB profile provides better result which is more desktop like but now this profile doesn't run on real hardware and lack of some development packages like gcc. For now we just keep this choice, and introduce a Not-A-Bug type to mark failures which are caused simply because related packages are missing
    • It's better to use a tmp dir from the 2nd disk which contains ltp test suite. This way it avoids some noisy disk space limitation errors
  • suggest to use "-m 512" as some tests are memory stress
  • suggest to disable hackbench from runtest/sched, which is not suitable to run in emulator, and simply hang
  • don't use "-q" option when running ltp, which hides many useful output info

Current Milestone (1.0/M2)

environment

LTP version: ltp-full-20101031.bz2

Profile: poky-image-sdk

run command: ../runltp -p -q -l result-M2-20101218.log -C result-M2-20101218.fail -d /opt/tmp

result

Below table shows overall progress in LTP failures analysis for current milestone:

  • total: the number of total test cases
  • failures: the number of failures
  • audit: the number of audited failures, which status could be:
    • fixed: the number of fixed failures
    • LTP: native failures
    • NAB: Not-A-Bug, the number of the failures which come from miss of some packages due to the profile definition, or can't reproduce locally
    • pending: the analysis is done with bug reported, but pending for final solution
    • duplicated: the number of failures which are same as on other platforms which have been analyzed already
  • similarity: similarity to Qemux86 which is chosen as the base. most cases are common on all targets

(click the title like "qemux86" to check detail data for that target

Status Qemux86 Qemux86_64 Qemuppc Qemuarm Qemumips netbook blacksand beagleboard routerstation Jasperforest (lsb-sdk) mpc8315e-rdb
total 1072 n/a 1071 1071 1081 n/a n/a 1174 1182
failures 34 32 34 37 37 33 29 35 145 (*)
audit 100% 100% 100% 100% 100% 100% 100% 100% 0(0%)
fixed 6 0 0 1 0 0 0 0 0
NAB 26 1 1 4 1 2 1 0 0
LTP 2 2 0 0 1 0 0 0 0
Duplicated 0 29 33 29 29 31 28 35 0
pending 0 0 0 3 0 0 0 0 0
similarity 100% 90% 88% 78% 78% 90% 96% 85% 19%
* on routerstation kernel is not configured correctly. Lots of new failures 
  are related to IPC, which may come from lacking of some kernel options. This
  has been verified with newer 2.6.37 kernel recently, that only ~60 failures
  remaining. So the analysis is skipped for it in this cycle.

configuration

Below table includes which LTP categories are included in the measurement:

Milestone qemu targets real hardware
1.0-M2

syscalls

mm

ipc

sched

math

nptl

pty

admin_tools

command

syscalls

fs

fsx

dio

io

mm

ipc

sched

math

nptl

pty

admin_tools

timers

commands

Previous milestone

a placeholder. Once we reach a new milestone, the data under "current milestone" will be moved here.

v1.0 M2

LTP version: ltp-full-20101031.bz2

Profile: poky-image-sdk

run command: ../runltp -p -q -l result-M2-20101218.log -C result-M2-20101218.fail -d /opt/tmp

Below table shows overall progress in LTP failures analysis for current milestone:

  • total: the number of total test cases
  • failures: the number of failures
  • audit: the number of audited failures, which status could be:
    • fixed: the number of fixed failures
    • LTP: native failures
    • NAB: Not-A-Bug, the number of the failures which come from miss of some packages due to the profile definition, or can't reproduce locally
    • pending: the analysis is done with bug reported, but pending for final solution
    • duplicated: the number of failures which are same as on other platforms which have been analyzed already
  • similarity: similarity to Qemux86 which is chosen as the base. most cases are common on all targets

(click the title like "qemux86" to check detail data for that target

Status Qemux86 Qemux86_64 Qemuppc Qemuarm Qemumips netbook blacksand beagleboard routerstation Jasperforest (lsb-sdk) mpc8315e-rdb
total 1072 n/a 1071 1071 1081 n/a n/a 1174 1182
failures 34 32 34 37 37 33 29 35 145 (*)
audit 100% 100% 100% 100% 100% 100% 100% 100% 0(0%)
fixed 6 0 0 1 0 0 0 0 0
NAB 26 1 1 4 1 2 1 0 0
LTP 2 2 0 0 1 0 0 0 0
Duplicated 0 29 33 29 29 31 28 35 0
pending 0 0 0 3 0 0 0 0 0
similarity 100% 90% 88% 78% 78% 90% 96% 85% 19%
* on routerstation kernel is not configured correctly. Lots of new failures 
  are related to IPC, which may come from lacking of some kernel options. This
  has been verified with newer 2.6.37 kernel recently, that only ~60 failures
  remaining. So the analysis is skipped for it in this cycle.