Integration of "Fault Injection Framework" into LTP
cover Integration of "Fault Injection Framework" into LTP
Hi,
Introducing the "Kernel Fault Injection Framework" generation and testing capability in LTP. This is in line with the recent proposal made through LTP Paper at OLS 2009:
"Putting LTP to test - Validating both the Linux kernel and Test-cases"
(http://ltp.sourceforge.net/documentation/technical_papers/Putting_LTP_to_Test.pdf)
This infrasturcture will help LTP directly in the following ways:
1) Allow test developers to test their new test cases against a faulted kernel, and then compare it on stable kernel run, impacting in better test development,
2) Allow test engineers to be able to generate more code coverage by traversing the rarely touched parts of the kernel code,
As we move forward in using this, we would definitely find some other advantages of this framework.
Regards--
Subrata
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
PATCH 1/5 Provide all necessary information through ltp/README
Provide all necessary information to create/use "Fault Injection Framework" through ltp/README. This is necessary before any test case(s) can be run on this harness. Also describes the general algorithm that would be followed while running LTP tests in "Fault Injection" harness.
---
README +107 -1
@@ -272,7 +272,6 @@ The tests also require CUnit Framework t http://sourceforge.net/projects/cunit/ --------------------------------- --------------------------------- - Native language support (nls) testsuite requirements ---------------------------------------------------- CONFIG_NLS=m
@@ -287,4 +286,111 @@ CONFIG_CAN_BCM=m # CAN Device Drivers CONFIG_CAN_VCAN=m --------------------------------- +Enabling Fault Injection Support for your kernel (version 2.6.29). +Please check with the original kernel for the fault injection +types it supports. Following supports will be available: + +/debug/fail_io_timeout/interval +/debug/fail_io_timeout/probability +/debug/fail_io_timeout/reject-end +/debug/fail_io_timeout/reject-start +/debug/fail_io_timeout/require-end +/debug/fail_io_timeout/require-start +/debug/fail_io_timeout/space +/debug/fail_io_timeout/stacktrace-depth +/debug/fail_io_timeout/task-filter +/debug/fail_io_timeout/times +/debug/fail_io_timeout/verbose + +/debug/fail_make_request/interval +/debug/fail_make_request/probability +/debug/fail_make_request/reject-end +/debug/fail_make_request/reject-start +/debug/fail_make_request/require-end +/debug/fail_make_request/require-start +/debug/fail_make_request/space +/debug/fail_make_request/stacktrace-depth +/debug/fail_make_request/task-filter +/debug/fail_make_request/times +/debug/fail_make_request/verbose + +/debug/fail_page_alloc/ignore-gfp-highmem +/debug/fail_page_alloc/ignore-gfp-wait +/debug/fail_page_alloc/interval +/debug/fail_page_alloc/min-order +/debug/fail_page_alloc/probability +/debug/fail_page_alloc/reject-end +/debug/fail_page_alloc/reject-start +/debug/fail_page_alloc/require-end +/debug/fail_page_alloc/require-start +/debug/fail_page_alloc/space +/debug/fail_page_alloc/stacktrace-depth +/debug/fail_page_alloc/task-filter +/debug/fail_page_alloc/times +/debug/fail_page_alloc/verbose + +/debug/failslab/ignore-gfp-wait +/debug/failslab/interval +/debug/failslab/probability +/debug/failslab/reject-end +/debug/failslab/reject-start +/debug/failslab/require-end +/debug/failslab/require-start +/debug/failslab/space +/debug/failslab/stacktrace-depth +/debug/failslab/task-filter +/debug/failslab/times +/debug/failslab/verbose + +when the below kernel config options are set: + +CONFIG_FAULT_INJECTION=y +CONFIG_DEBUG_KERNEL=y +CONFIG_FAILSLAB=y (Fault-injection capability for kmalloc) +(CONFIG_SLAB=y || CONFIG_SLUB=y) if CONFIG_FAILSLAB=y +CONFIG_FAIL_PAGE_ALLOC=y (Fault-injection capabilitiy for alloc_pages()) +CONFIG_FAIL_MAKE_REQUEST=y (Fault-injection capability for disk IO) +CONFIG_BLOCK=y if CONFIG_FAIL_MAKE_REQUEST=y +CONFIG_FAIL_IO_TIMEOUT=y (Faul-injection capability for faking disk interrupts) +CONFIG_BLOCK=y if CONFIG_FAIL_IO_TIMEOUT=y +CONFIG_FAULT_INJECTION_DEBUG_FS=y (Debugfs entries for fault-injection capabilities) +(CONFIG_SYSFS=y && CONFIG_DEBUG_FS=y) if CONFIG_FAULT_INJECTION_DEBUG_FS=y +CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y (stacktrace filter for fault-injection capabilities) +(CONFIG_FAULT_INJECTION_DEBUG_FS=y && CONFIG_STACKTRACE_SUPPORT=y && !CONFIG_X86_64) if + CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y + +For more information on Fault injection, please refer to: +linux-2.6/Documentation/fault-injection/fault-injection.txt, + +You should also have made the following entries in your /etc/fstab file +once the kernel is booted with the above CONFIG options set: + +debugfs /debug debugfs + +# How the Kernel Fault Injection works for LTP ? + +1) Build Kernel with all the above possible kernel CONFIG Options, +2) Create the above entry in /etc/fstab file, +3) Reboot in the new kernel, +4) Goto LTPROOT. Build and Install LTP as per ltp/INSTALL file, +5) Choose your own test(or default) to run with fault injection as follows: + ./runltp -f <command_file> -F <LOOPS>,<FAULT_PROBABILITY> + +The agorithm will work as: +loop (for each testcase) +begin + execute_testcase(inside_stable_kernel) + begin + insert_fault_into_kernel() + loop X Times + begin + execute_testcase(inside_fault_kernel) + end + restore_kernel_to_normal() + end +end + +# Eternal TODOs: +1) Add as many framework as they get added/modifed in the kernel +---------------------------------
---
Regards--
Subrata
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
PATCH 2/5 Add Script which would actually do the job of injecting faults
In reply to Subrata ModakScript which would actually do the job of injecting faults by changing various parametrs available under /debug/fail*. This would be done dynamically during LTP run, and, is capable of taking parameters from 0 to 100 to vary the probability of Fault the user wants to inject in the running kernel.
---
tools/insert_kernel_faults.sh +52 -0
@@ -0,0 +1,52 @@ +#!/bin/sh +################################################################################ +## ## +## Copyright (c) International Business Machines Corp., 2009 ## +## ## +## This program is free software; you can redistribute it and/or modify ## +## it under the terms of the GNU General Public License as published by ## +## the Free Software Foundation; either version 2 of the License, or ## +## (at your option) any later version. ## +## ## +## This program is distributed in the hope that it will be useful, but ## +## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ## +## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ## +## for more details. ## +## ## +## You should have received a copy of the GNU General Public License ## +## along with this program; if not, write to the Free Software ## +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## +## ## +################################################################################ +# ## +# File : insert_kernel_faults.sh ## +# ## +# Usage: insert_kernel_faults.sh <fault_percentage> ## +# ## +# Description: This is a simple script that inserts faults at various ## +# subsystems of the kernel. Please refer to the ltp/README ## +# for the various kernel CONFIG options needed to exploit ## +# all those features ## +# ## +# Author: Subrata Modak <[email protected]> ## +# ## +# History: Aug 11 2009 - Created - Subrata Modak. ## +################################################################################ + +if [ -z $1 ] + then + #Check if Useage has been proper + echo "Usage: $0 <fault_percentage>" + exit 1 +fi + +#These are the types of Subsystems where fault will be injected +#Make sure debugfs has been mounted +for FAILTYPE in `echo fail_io_timeout fail_make_request fail_page_alloc failslab` +do + echo $1 > /debug/$FAILTYPE/probability + echo 100 > /debug/$FAILTYPE/interval + echo -1 > /debug/$FAILTYPE/times + echo 0 > /debug/$FAILTYPE/space +done +
---
Regards--
Subrata
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
Re: [LTP] [PATCH 02/05] Add Script which would actually do the job of injecting faults
Quoted 53 lines · Subrata Modak
Script which would actually do the job of injecting faults by changing various parametrs available under /debug/fail*. This would be done dynamically during LTP run, and, is capable of taking parameters from 0 to 100 to vary the probability of Fault the user wants to inject in the running kernel.
Signed-off-by Subrata Modak <[email protected]>---
diff -uprN
ltp-full-20090731.orig/tools/insert_kernel_faults.shltp-full-20090731/tools/insert_kernel_faults.shtools/insert_kernel_faults.sh 2009-08-11 18:44:45.000000000 +0530 renamed from tools/insert_kernel_faults.sh 1970-01-01 05:30:00.000000000 +0530 +41
-0@@ -0,0 +1,52 @@ +#!/bin/sh +################################################################################ +## ## +## Copyright (c) International Business Machines Corp., 2009 ## +## ## +## This program is free software; you can redistribute it and/or modify ## +## it under the terms of the GNU General Public License as published by ## +## the Free Software Foundation; either version 2 of the License, or ## +## (at your option) any later version. ## +## ## +## This program is distributed in the hope that it will be useful, but ## +## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ## +## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ## +## for more details. ## +## ## +## You should have received a copy of the GNU General Public License ## +## along with this program; if not, write to the Free Software ## +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## +## ## +################################################################################ +# ## +# File : insert_kernel_faults.sh ## +# ## +# Usage: insert_kernel_faults.sh <fault_percentage> ## +# ## +# Description: This is a simple script that inserts faults at various ## +# subsystems of the kernel. Please refer to the ltp/README ## +# for the various kernel CONFIG options needed to exploit ## +# all those features ## +# ## +# Author: Subrata Modak <[email protected]> ## +# ## +# History: Aug 11 2009 - Created - Subrata Modak. ## +################################################################################ + +if [ -z $1 ] + then + #Check if Useage has been proper + echo "Usage: $0 <fault_percentage>" + exit 1 +fi
tools/insert_kernel_faults.sh 2009-08-11 18:44:45.000000000 +0530 line 51
Quoted 10 lines
tools/insert_kernel_faults.sh 2009-08-11 18:44:45.000000000 +0530 renamed from tools/insert_kernel_faults.sh 1970-01-01 05:30:00.000000000 +0530 +10
-0+ +#These are the types of Subsystems where fault will be injected +#Make sure debugfs has been mounted +for FAILTYPE in `echo fail_io_timeout fail_make_request fail_page_alloc failslab` +do + echo $1 > /debug/$FAILTYPE/probability + echo 100 > /debug/$FAILTYPE/interval + echo -1 > /debug/$FAILTYPE/times + echo 0 > /debug/$FAILTYPE/space +done
Why ```for FAILTYPE in echo list-of-values'''? ```for FAILTYPE
in list-of-values''' works just as well without the echo. Thanks,
-Garrett
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
Re: [LTP] [PATCH 02/05] Add Script which would actually do the job of injecting faults
Quoted 60 lines · Garrett Cooper
Quoted 58 lines · Subrata Modak
Script which would actually do the job of injecting faults by changing various parametrs available under /debug/fail*. This would be done dynamically during LTP run, and, is capable of taking parameters from 0 to 100 to vary the probability of Fault the user wants to inject in the running kernel.
Signed-off-by Subrata Modak <[email protected]>---
diff -uprN
ltp-full-20090731.orig/tools/insert_kernel_faults.shltp-full-20090731/tools/insert_kernel_faults.shtools/insert_kernel_faults.sh 2009-08-11 18:44:45.000000000 +0530 renamed from tools/insert_kernel_faults.sh 1970-01-01 05:30:00.000000000 +0530 +46
-0@@ -0,0 +1,52 @@ +#!/bin/sh +################################################################################ +## ## +## Copyright (c) International Business Machines Corp., 2009 ## +## ## +## This program is free software; you can redistribute it and/or modify ## +## it under the terms of the GNU General Public License as published by ## +## the Free Software Foundation; either version 2 of the License, or ## +## (at your option) any later version. ## +## ## +## This program is distributed in the hope that it will be useful, but ## +## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ## +## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ## +## for more details. ## +## ## +## You should have received a copy of the GNU General Public License ## +## along with this program; if not, write to the Free Software ## +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## +## ## +################################################################################ +# ## +# File : insert_kernel_faults.sh ## +# ## +# Usage: insert_kernel_faults.sh <fault_percentage> ## +# ## +# Description: This is a simple script that inserts faults at various ## +# subsystems of the kernel. Please refer to the ltp/README ## +# for the various kernel CONFIG options needed to exploit ## +# all those features ## +# ## +# Author: Subrata Modak <[email protected]> ## +# ## +# History: Aug 11 2009 - Created - Subrata Modak. ## +################################################################################ + +if [ -z $1 ] + then + #Check if Useage has been proper + echo "Usage: $0 <fault_percentage>" + exit 1 +fi + +#These are the types of Subsystems where fault will be injected +#Make sure debugfs has been mounted +for FAILTYPE in `echo fail_io_timeout fail_make_request fail_page_alloc failslab` +do
Quoted 8 lines
tools/insert_kernel_faults.sh 2009-08-11 18:44:45.000000000 +0530 line 51
Quoted 5 lines
tools/insert_kernel_faults.sh 2009-08-11 18:44:45.000000000 +0530 renamed from tools/insert_kernel_faults.sh 1970-01-01 05:30:00.000000000 +0530 +5
-0+ echo $1 > /debug/$FAILTYPE/probability + echo 100 > /debug/$FAILTYPE/interval + echo -1 > /debug/$FAILTYPE/times + echo 0 > /debug/$FAILTYPE/space +doneWhy ```for FAILTYPE in
echo list-of-values'''? ```for FAILTYPE
in list-of-values''' works just as well without the echo.
Oops. True. I will do that. Let me hear some more comments from people and i will redo the patches again.
Regards--
Subrata
Quoted 2 lines
Thanks,
-Garrett
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
PATCH 3/5 Add Script so the kernel is restored back to its original pristine form
In reply to Subrata ModakOnce the faults has been injected and all the concerned tests have been run completely, the kernel needs to be restored back to its original pristine form so that it is stable again. This Script does just exactly that.
---
tools/restore_kernel_faults_default.sh +85 -0
@@ -0,0 +1,85 @@ +#!/bin/sh +################################################################################ +## ## +## Copyright (c) International Business Machines Corp., 2009 ## +## ## +## This program is free software; you can redistribute it and/or modify ## +## it under the terms of the GNU General Public License as published by ## +## the Free Software Foundation; either version 2 of the License, or ## +## (at your option) any later version. ## +## ## +## This program is distributed in the hope that it will be useful, but ## +## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ## +## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ## +## for more details. ## +## ## +## You should have received a copy of the GNU General Public License ## +## along with this program; if not, write to the Free Software ## +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## +## ## +################################################################################ +# ## +# File : restore_kernel_faults_default.sh ## +# ## +# Usage: restore_kernel_faults_default.sh ## +# ## +# Description: This is a simple script that will restore the /debugfs/fail* ## +# entries to their default values ## +# ## +# Author: Subrata Modak <[email protected]> ## +# ## +# History: Aug 11 2009 - Created - Subrata Modak. ## +################################################################################ + +echo 0 > /debug/fail_io_timeout/reject-end +echo 0 > /debug/fail_io_timeout/reject-start +echo 4294967295 > /debug/fail_io_timeout/require-end +echo 0 > /debug/fail_io_timeout/require-start +echo 32 > /debug/fail_io_timeout/stacktrace-depth +echo N > /debug/fail_io_timeout/task-filter +echo 2 > /debug/fail_io_timeout/verbose +echo 0 > /debug/fail_io_timeout/space +echo 1 > /debug/fail_io_timeout/times +echo 1 > /debug/fail_io_timeout/interval +echo 0 > /debug/fail_io_timeout/probability + +echo 0 > /debug/fail_make_request/reject-end +echo 0 > /debug/fail_make_request/reject-start +echo 4294967295 > /debug/fail_make_request/require-end +echo 0 > /debug/fail_make_request/require-start +echo 32 > /debug/fail_make_request/stacktrace-depth +echo N > /debug/fail_make_request/task-filter +echo 2 > /debug/fail_make_request/verbose +echo 0 > /debug/fail_make_request/space +echo 1 > /debug/fail_make_request/times +echo 1 > /debug/fail_make_request/interval +echo 0 > /debug/fail_make_request/probability + +echo 1 > /debug/fail_page_alloc/min-order +echo Y > /debug/fail_page_alloc/ignore-gfp-highmem +echo Y > /debug/fail_page_alloc/ignore-gfp-wait +echo 0 > /debug/fail_page_alloc/reject-end +echo 0 > /debug/fail_page_alloc/reject-start +echo 4294967295 > /debug/fail_page_alloc/require-end +echo 0 > /debug/fail_page_alloc/require-start +echo 32 > /debug/fail_page_alloc/stacktrace-depth +echo N > /debug/fail_page_alloc/task-filter +echo 2 > /debug/fail_page_alloc/verbose +echo 0 > /debug/fail_page_alloc/space +echo 1 > /debug/fail_page_alloc/times +echo 1 > /debug/fail_page_alloc/interval +echo 0 > /debug/fail_page_alloc/probability + +echo Y > /debug/failslab/ignore-gfp-wait +echo 0 > /debug/failslab/reject-end +echo 0 > /debug/failslab/reject-start +echo 4294967295 > /debug/failslab/require-end +echo 0 > /debug/failslab/require-start +echo 32 > /debug/failslab/stacktrace-depth +echo N > /debug/failslab/task-filter +echo 2 > /debug/failslab/verbose +echo 0 > /debug/failslab/space +echo 1 > /debug/failslab/times +echo 1 > /debug/failslab/interval +echo 0 > /debug/failslab/probability +
---
Regards--
Subrata
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
PATCH 4/5 Add Script which will be at the heart of this infrastructure
In reply to Subrata ModakAt the heart of this infrastructure is this Script, which will actually:
1) Change the temporary command file generated by runltp,
2) Create a new temporary command file which will have the following entries against each one entry in the command file:
i) Same TAG COMMAND_LINE entry,
ii) Entry to call the script to insert faults,
iii) Entry to run as many loops as specified by the user, iv) Entry to call the script to restore kernel to default state,
It is capable of creating new entries in the temporary command file with the following tags and command lines:
TAG_NAME=tag1, COMMANDLINE="test1",
TAG_NAME=tag1_loop1, COMMANDLINE="insert_fault_in_kernel; test1",
TAG_NAME=tag1_loop2, COMMANDLINE="test1",
...
TAG_NAME=tag1_loopn, COMMANDLINE="test1; restore_default_kernel",
---
tools/create_kernel_faults_in_loops_and_probability.pl +97 -0
@@ -0,0 +1,97 @@ +#!/usr/bin/perl +################################################################################ +## ## +## Copyright (c) International Business Machines Corp., 2009 ## +## ## +## This program is free software; you can redistribute it and/or modify ## +## it under the terms of the GNU General Public License as published by ## +## the Free Software Foundation; either version 2 of the License, or ## +## (at your option) any later version. ## +## ## +## This program is distributed in the hope that it will be useful, but ## +## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ## +## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ## +## for more details. ## +## ## +## You should have received a copy of the GNU General Public License ## +## along with this program; if not, write to the Free Software ## +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## +## ## +################################################################################ +# ## +# File : create_kernel_faults_in_loops_and_probability.pl ## +# ## +# Usage: create_kernel_faults_in_loops_and_probability.pl\ ## +# <LTP_COMMAND_FILE> <NO_OF_LOOPS_EACH_TEST_WILL_RUN>\ ## +# <PROBABILITY_OF_FAULT_INJECTION> ## +# ## +# Description: This is a simple perl script which will take ltp command file ## +# as input and then create a final command file while will have ## +# the following entries for each test tag: ## +# 1) <tag_name_loop1> <test_binary_name> ## +# 2) <tag_name_loop2> <insert_kernel_faults.sh test_binary_name>## +# 3) tag entried from loop3 to loop(n-1) ## +# 4) <tag_name_loopn> <restore_kernel_faults_default.sh test_binary_name>## +# ## +# Author: Subrata Modak <[email protected]> ## +# ## +# History: Aug 11 2009 - Created - Subrata Modak. ## +################################################################################ + +my $command_file = shift (@ARGV) || syntax(); +my $loops = shift (@ARGV) || syntax(); +my $failure_probability = shift (@ARGV) || syntax(); + +sub syntax() { + print "syntax: create_fault_in_loops_and_probability.pl\ + <LTP_COMMAND_FILE> <NO_OF_LOOPS_EACH_TEST_WILL_RUN>\ + <PROBABILITY_OF_FAULT_INJECTION>\n"; + exit (1); +} +#$ENV{TEST_START_TIME}) + + +open (FILE, $command_file) || die "Cannot open file: $command_file\n"; +while ($line = <FILE>) { + if ($line =~ /^#/) { + print "$line"; + next; + } + if ($line =~ /^\n$/) { + next; + } + chomp $line; + print "$line\n"; #Print one instance for stable execution + @tag_and_actual_command = split(/\ /, $line); + + #The remaining loops should be running under fault injection + for ($counter=1; $counter<=$loops; $counter++) { + my $token_counter = 0; + foreach my $token (@tag_and_actual_command) { + if ($token_counter == 0 ) { + #Time to append the actual command tag with the loop no. + print $token . "_loop_" . $counter . " "; + $token_counter++; + next; + } + if ($token_counter == 1 && $counter == 1) { + #Time to include the fault injection script in the first loop + print "\$LTPROOT/tools/insert_kernel_faults.sh " . $failure_probability . "; " . $token; + $token_counter++; + next; + } + print " " . $token . " "; + } + if ($counter == $loops) { + #Time to withdraw the faults once the last loop has been executed + #Until all faults has been successfully restored to default values... + #Keep restoring them + print "; " . "\$LTPROOT/tools/restore_kernel_faults_default.sh; RC=\$?; while [ \$RC -ne 0 ]; do \$LTPROOT/tools/restore_kernel_faults_default.sh; RC=\$?; done\n" + } else { + print "\n" + } + } + +} +close (FILE); +
---
Regards--
Subrata
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
Re: [LTP] [PATCH 04/05] Add Script which will be at the heart of this infrastructure
Quoted 111 lines · Subrata Modak
At the heart of this infrastructure is this Script, which will actually:
1) Change the temporary command file generated by runltp,
2) Create a new temporary command file which will have the following entries against each one entry in the command file:
i) Same TAGCOMMAND_LINEentry,
ii) Entry to call the script to insert faults,
iii) Entry to run as many loops as specified by the user, iv) Entry to call the script to restore kernel to default state,It is capable of creating new entries in the temporary command file with the following tags and command lines:
TAG_NAME=tag1, COMMANDLINE="test1",
TAG_NAME=tag1_loop1, COMMANDLINE="insert_fault_in_kernel; test1", TAG_NAME=tag1_loop2, COMMANDLINE="test1",
...
TAG_NAME=tag1_loopn, COMMANDLINE="test1;restore_default_kernel",Signed-off-by Subrata Modak <[email protected]>---
diff -uprN
ltp-full-20090731.orig/tools/create_kernel_faults_in_loops_and_probability.plltp-full-20090731/tools/create_kernel_faults_in_loops_and_probability.pltools/create_kernel_faults_in_loops_and_probability.pl 2009-08-11 20:23:54.000000000 +0530 renamed from tools/create_kernel_faults_in_loops_and_probability.pl 1970-01-01 05:30:00.000000000 +0530 +87
-0@@ -0,0 +1,97 @@ +#!/usr/bin/perl +################################################################################ +## ## +## Copyright (c) International Business Machines Corp., 2009 ## +## ## +## This program is free software; you can redistribute it and/or modify ## +## it under the terms of the GNU General Public License as published by ## +## the Free Software Foundation; either version 2 of the License, or ## +## (at your option) any later version. ## +## ## +## This program is distributed in the hope that it will be useful, but ## +## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ## +## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ## +## for more details. ## +## ## +## You should have received a copy of the GNU General Public License ## +## along with this program; if not, write to the Free Software ## +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## +## ## +################################################################################ +# ## +# File : create_kernel_faults_in_loops_and_probability.pl ## +# ## +# Usage: create_kernel_faults_in_loops_and_probability.pl\ ## +# <LTP_COMMAND_FILE> <NO_OF_LOOPS_EACH_TEST_WILL_RUN>\ ## +# <PROBABILITY_OF_FAULT_INJECTION> ## +# ## +# Description: This is a simple perl script which will take ltp command file ## +# as input and then create a final command file while will have ## +# the following entries for each test tag: ## +# 1) <tag_name_loop1> <test_binary_name> ## +# 2) <tag_name_loop2> <insert_kernel_faults.sh test_binary_name>## +# 3) tag entried from loop3 to loop(n-1) ## +# 4) <tag_name_loopn> <restore_kernel_faults_default.sh test_binary_name>## +# ## +# Author: Subrata Modak <[email protected]> ## +# ## +# History: Aug 11 2009 - Created - Subrata Modak. ## +################################################################################ + +my $command_file = shift (@ARGV) || syntax(); +my $loops = shift (@ARGV) || syntax(); +my $failure_probability = shift (@ARGV) || syntax(); + +sub syntax() { + print "syntax: create_fault_in_loops_and_probability.pl\ + <LTP_COMMAND_FILE> <NO_OF_LOOPS_EACH_TEST_WILL_RUN>\ + <PROBABILITY_OF_FAULT_INJECTION>\n"; + exit (1); +} +#$ENV{TEST_START_TIME}) + + +open (FILE, $command_file) || die "Cannot open file: $command_file\n"; +while ($line = <FILE>) { + if ($line =~ /^#/) { + print "$line"; + next; + } + if ($line =~ /^\n$/) { + next; + } + chomp $line; + print "$line\n"; #Print one instance for stable execution + @tag_and_actual_command = split(/\ /, $line); + + #The remaining loops should be running under fault injection + for ($counter=1; $counter<=$loops; $counter++) { + my $token_counter = 0; + foreach my $token (@tag_and_actual_command) { + if ($token_counter == 0 ) { + #Time to append the actual command tag with the loop no. + print $token . "_loop_" . $counter . " "; + $token_counter++; + next; + } + if ($token_counter == 1 && $counter == 1) { + #Time to include the fault injection script in the first loop + print "\$LTPROOT/tools/insert_kernel_faults.sh " . $failure_probability . "; " . $token; + $token_counter++; + next; + } + print " " . $token . " "; + } + if ($counter == $loops) { + #Time to withdraw the faults once the last loop has been executed + #Until all faults has been successfully restored to default values...
tools/create_kernel_faults_in_loops_and_probability.pl 2009-08-11 20:23:54.000000000 +0530 line 97
Quoted 10 lines
tools/create_kernel_faults_in_loops_and_probability.pl 2009-08-11 20:23:54.000000000 +0530 renamed from tools/create_kernel_faults_in_loops_and_probability.pl 1970-01-01 05:30:00.000000000 +0530 +10
-0+ #Keep restoring them + print "; " . "\$LTPROOT/tools/restore_kernel_faults_default.sh; RC=\$?; while [ \$RC -ne 0 ]; do \$LTPROOT/tools/restore_kernel_faults_default.sh; RC=\$?; done\n" + } else { + print "\n" + } + } + +} +close (FILE); +
Hi Subrata,
1. Why is this written in perl? bourne shell should be the maximum
requirement for any and all infrastructure scripts.
2. Why not write this in a runtest-ish file format, e.g.
[tag] [command]
? That way you can feed the command through pan at least...
Thanks
-Garrett
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
Re: [LTP] [PATCH 04/05] Add Script which will be at the heart of this infrastructure
Quoted 119 lines · Garrett Cooper
Quoted 117 lines · Subrata Modak
At the heart of this infrastructure is this Script, which will actually:
1) Change the temporary command file generated by runltp,
2) Create a new temporary command file which will have the following entries against each one entry in the command file:
i) Same TAGCOMMAND_LINEentry,
ii) Entry to call the script to insert faults,
iii) Entry to run as many loops as specified by the user, iv) Entry to call the script to restore kernel to default state,It is capable of creating new entries in the temporary command file with the following tags and command lines:
TAG_NAME=tag1, COMMANDLINE="test1",
TAG_NAME=tag1_loop1, COMMANDLINE="insert_fault_in_kernel; test1",
TAG_NAME=tag1_loop2, COMMANDLINE="test1",
...
TAG_NAME=tag1_loopn, COMMANDLINE="test1;restore_default_kernel",Signed-off-by Subrata Modak <[email protected]>---
diff -uprN
ltp-full-20090731.orig/tools/create_kernel_faults_in_loops_and_probability.plltp-full-20090731/tools/create_kernel_faults_in_loops_and_probability.pltools/create_kernel_faults_in_loops_and_probability.pl 2009-08-11 20:23:54.000000000 +0530 renamed from tools/create_kernel_faults_in_loops_and_probability.pl 1970-01-01 05:30:00.000000000 +0530 +93
-0@@ -0,0 +1,97 @@ +#!/usr/bin/perl +################################################################################ +## ## +## Copyright (c) International Business Machines Corp., 2009 ## +## ## +## This program is free software; you can redistribute it and/or modify ## +## it under the terms of the GNU General Public License as published by ## +## the Free Software Foundation; either version 2 of the License, or ## +## (at your option) any later version. ## +## ## +## This program is distributed in the hope that it will be useful, but ## +## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ## +## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ## +## for more details. ## +## ## +## You should have received a copy of the GNU General Public License ## +## along with this program; if not, write to the Free Software ## +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ## +## ## +################################################################################ +# ## +# File : create_kernel_faults_in_loops_and_probability.pl ## +# ## +# Usage: create_kernel_faults_in_loops_and_probability.pl\ ## +# <LTP_COMMAND_FILE> <NO_OF_LOOPS_EACH_TEST_WILL_RUN>\ ## +# <PROBABILITY_OF_FAULT_INJECTION> ## +# ## +# Description: This is a simple perl script which will take ltp command file ## +# as input and then create a final command file while will have ## +# the following entries for each test tag: ## +# 1) <tag_name_loop1> <test_binary_name> ## +# 2) <tag_name_loop2> <insert_kernel_faults.sh test_binary_name>## +# 3) tag entried from loop3 to loop(n-1) ## +# 4) <tag_name_loopn> <restore_kernel_faults_default.sh test_binary_name>## +# ## +# Author: Subrata Modak <[email protected]> ## +# ## +# History: Aug 11 2009 - Created - Subrata Modak. ## +################################################################################ + +my $command_file = shift (@ARGV) || syntax(); +my $loops = shift (@ARGV) || syntax(); +my $failure_probability = shift (@ARGV) || syntax(); + +sub syntax() { + print "syntax: create_fault_in_loops_and_probability.pl\ + <LTP_COMMAND_FILE> <NO_OF_LOOPS_EACH_TEST_WILL_RUN>\ + <PROBABILITY_OF_FAULT_INJECTION>\n"; + exit (1); +} +#$ENV{TEST_START_TIME}) + + +open (FILE, $command_file) || die "Cannot open file: $command_file\n"; +while ($line = <FILE>) { + if ($line =~ /^#/) { + print "$line"; + next; + } + if ($line =~ /^\n$/) { + next; + } + chomp $line; + print "$line\n"; #Print one instance for stable execution + @tag_and_actual_command = split(/\ /, $line); + + #The remaining loops should be running under fault injection + for ($counter=1; $counter<=$loops; $counter++) { + my $token_counter = 0; + foreach my $token (@tag_and_actual_command) { + if ($token_counter == 0 ) { + #Time to append the actual command tag with the loop no. + print $token . "_loop_" . $counter . " "; + $token_counter++; + next; + } + if ($token_counter == 1 && $counter == 1) { + #Time to include the fault injection script in the first loop + print "\$LTPROOT/tools/insert_kernel_faults.sh " . $failure_probability . "; " . $token; + $token_counter++; + next; + } + print " " . $token . " "; + } + if ($counter == $loops) { + #Time to withdraw the faults once the last loop has been executed + #Until all faults has been successfully restored to default values... + #Keep restoring them + print "; " . "\$LTPROOT/tools/restore_kernel_faults_default.sh; RC=\$?; while [ \$RC -ne 0 ]; do \$LTPROOT/tools/restore_kernel_faults_default.sh; RC=\$?; done\n" + } else { + print "\n" + } + }
Quoted 8 lines
tools/create_kernel_faults_in_loops_and_probability.pl 2009-08-11 20:23:54.000000000 +0530 line 97
Quoted 4 lines
tools/create_kernel_faults_in_loops_and_probability.pl 2009-08-11 20:23:54.000000000 +0530 renamed from tools/create_kernel_faults_in_loops_and_probability.pl 1970-01-01 05:30:00.000000000 +0530 +4
-0+ +} +close (FILE); +Hi Subrata,
1. Why is this written in perl? bourne shell should be the maximum
requirement for any and all infrastructure scripts.
I initially wrote this in perl as i feel more comfortable in doing regular expression in perl than in any other language. If you want you can later replace it with a shell script, i will not have any objection.
Quoted 5 lines
2. Why not write this in a runtest-ish file format, e.g.
[tag] [command]
? That way you can feed the command through pan at least...
Thatś exactly it is doing. Before the original temporary command file is passed to ltp-pan, this script is just modifying that command file and passing to ltp-pan. So, ltp-pan has no idea of what it is running. It is just parsing the tags and commands associated with them. I am exploiting that behavior only without touching anything in ltp-pan.
Regards--
Subrata
Quoted 2 lines
Thanks
-Garrett
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
Re: [LTP] [PATCH 04/05] Add Script which will be at the heart of this infrastructure
Quoted 25 lines · On Wednesday 12 August 2009 07:21:00 Subrata Modak wrote:
Quoted 24 lines · Garrett Cooper
Quoted 22 lines · Subrata Modak
At the heart of this infrastructure is this Script, which will
actually: 1) Change the temporary command file generated by runltp,
2) Create a new temporary command file which will have the following entries against each one entry in the command file:
i) Same TAGCOMMAND_LINEentry,
ii) Entry to call the script to insert faults,
iii) Entry to run as many loops as specified by the user, iv) Entry to call the script to restore kernel to default state,It is capable of creating new entries in the temporary command file with the following tags and command lines:
TAG_NAME=tag1, COMMANDLINE="test1",
TAG_NAME=tag1_loop1, COMMANDLINE="insert_fault_in_kernel; test1",
TAG_NAME=tag1_loop2, COMMANDLINE="test1",
...
TAG_NAME=tag1_loopn, COMMANDLINE="test1;restore_default_kernel",Signed-off-by Subrata Modak <[email protected]>---
tools/create_kernel_faults_in_loops_and_probability.pl+#!/usr/bin/perl
Quoted 6 lines
Quoted 2 lines
1. Why is this written in perl? bourne shell should be the maximum
requirement for any and all infrastructure scripts.I initially wrote this in perl as i feel more comfortable in doing regular expression in perl than in any other language. If you want you can later replace it with a shell script, i will not have any objection.
agreed ... we should avoid perl when possible as it is simply not viable for cross/embedded setups. i already spent quite a bit of time in the past replacing perl scripts with POSIX shell scripts.
-mike
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
PATCH 5/5 Add the necessary Interface and Option through "runltp"
In reply to Subrata ModakChange the runltp script to actually create an interface for the user:
1) Introduce a new option "-F" for ability to run tests under "Fault Injection Framework",
2) "./runltp -h" will display the new option,
3) Verifies whether Kernel has built-in capabilities for "Fault Injection",
---
runltp +40 -1
@@ -106,6 +106,7 @@ usage() usage: ./${0##*/} [ -a EMAIL_TO ] [ -c NUM_PROCS ] [ -C FAILCMDFILE ] [ -d TMPDIR ] [ -D NUM_PROCS,NUM_FILES,NUM_BYTES,CLEAN_FLAG ] -e [ -f CMDFILES(,...) ] [ -g HTMLFILE] [ -i NUM_PROCS ] [ -l LOGFILE ] [ -m NUM_PROCS,CHUNKS,BYTES,HANGUP_FLAG ] + [ -F LOOPS,PERCENTAGE ] -N -n [ -o OUTPUTFILE ] -p -q [ -r LTPROOT ] [ -s PATTERN ] [ -t DURATION ] -v [ -w CMDFILEADDR ] [ -x INSTANCES ] [ -b DEVICE ] [-B DEVICE_FS_TYPE]
@@ -123,6 +124,7 @@ usage() [CLEAN_FLAG = unlink file to which random data written, when value 1] -e Prints the date of the current LTP release -f CMDFILES Execute user defined list of testcases (separate with ',') + -F LOOPS,PERCENTAGE Induce PERCENTAGE Fault in the Kernel Subsystems, and, run each test for LOOPS loop -g HTMLFILE Create an additional HTML output format -h Help. Prints all available options. -i NUM_PROCS Run LTP under additional background Load on IO Bus
@@ -180,6 +182,9 @@ main() local DURATION="" local CMDFILEADDR="" local FAILCMDFILE="" + local INJECT_KERNEL_FAULT="" + local INJECT_KERNEL_FAULT_PERCENTAGE="" + local INJECT_FAULT_LOOPS_PER_TEST="" local LOGFILE_NAME="" local LOGFILE="" local OUTPUTFILE_NAME=""
@@ -193,7 +198,7 @@ main() local DEFAULT_FILE_NAME_GENERATION_TIME=`date +"%Y_%b_%d-%Hh_%Mm_%Ss"` version_date=`head -n 1 $LTPROOT/ChangeLog` - while getopts a:c:C:d:D:f:ehi:g:l:m:Nno:pqr:s:t:T:vw:x:b:B: arg + while getopts a:c:C:d:D:f::F:ehi:g:l:m:Nno:pqr:s:t:T:vw:x:b:B: arg do case $arg in a) EMAIL_TO=$OPTARG ALT_EMAIL_OUT=1;;
@@ -263,6 +268,18 @@ main() # Can be more then one file, just separate it with ',', like: # -f nfs,commands,/tmp/testfile CMDFILES=$OPTARG;; + F) INJECT_KERNEL_FAULT=1 + #Seperate out the NO_OF_LOOPS & FAULT_PERCENTAGE + INJECT_FAULT_LOOPS_PER_TEST=`echo $OPTARG |cut -d',' -f1 | tr -d '\n' | tr -d ' '` + INJECT_KERNEL_FAULT_PERCENTAGE=`echo $OPTARG |cut -d',' -f2 | tr -d '\n' | tr -d ' '` + if [ ! $INJECT_FAULT_LOOPS_PER_TEST ]; then + echo "Loops not properly defined. Resorting to default 5..." + export INJECT_FAULT_LOOPS_PER_TEST=5 + fi + if [ ! $INJECT_KERNEL_FAULT_PERCENTAGE ]; then + echo "Fault Persentage not properly defined. Resorting to default 10..." + export INJECT_KERNEL_FAULT_PERCENTAGE=10 + fi;; g) HTMLFILE_NAME="$OPTARG" case $OPTARG in /*)
@@ -738,6 +755,28 @@ main() echo "Running tests......." test_start_time=$(date) + # User wants testing with Kernel Fault Injection + if [ $INJECT_KERNEL_FAULT -eq 1 ] ; then + #See if Debugfs is mounted, and + #Fault Injection Framework available through Debugfs + if [ -d "/debug/fail_io_timeout" -o \ + -d "/debug/fail_make_request" -o \ + -d "/debug/fail_page_alloc" -o \ + -d "/debug/failslab" ]; then + #If atleast one of the Framework is available + #Go ahead to Inject Fault & Create required + #Command Files for LTP run + echo Running tests with Fault Injection Enabled in the Kernel... + ${LTPROOT}/tools/create_kernel_faults_in_loops_and_probability.pl\ + ${TMP}/alltests $INJECT_FAULT_LOOPS_PER_TEST $INJECT_KERNEL_FAULT_PERCENTAGE > ${TMP}/alltests.tmp + cp ${TMP}/alltests.tmp ${TMP}/alltests + rm -rf ${TMP}/alltests.tmp + else + echo Fault Injection not enabled in the Kernel.. + echo Running tests normally... + fi + fi + # Some tests need to run inside the "bin" directory. cd "${LTPROOT}/testcases/bin" ${LTPROOT}/pan/ltp-pan $QUIET_MODE -e -S $INSTANCES $DURATION -a $$ -n $$ $PRETTY_PRT -f ${TMP}/alltests $LOGFILE $OUTPUTFILE $FAILCMDFILE
---
Regards--
Subrata
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
Re: [LTP] [PATCH 05/05] Add the necessary Interface and Option through "runltp"
Subrata Modak wrote:
...
runltp usage() · line 127
Quoted 1 line
runltp +1
-0+ -F LOOPS,PERCENTAGE Induce PERCENTAGE Fault in the Kernel Subsystems, and, run each test for LOOPS loop
I haven't had time for an exhaustive review, but here are a few questions/comments I had:
1. Why introduce yet another looping mechanism within LTP when we already have one? Is there an advantage that you see to doing it this way, rather than just having an additional option that calls the script to generate this additional random fault injection?
2. Would be good to push the check for /debug being mounted down into one of the other scripts rather than in runltp. runltp is already hideously bloated and this would make it more useful when running standalone.
3. would be great if there were some way to tag the results to say when a fault was or was not in the process of being generated. That is, perhaps, not possible at this time though.
4. more granularity possible with the fault injections to specify the type of faults, or optionally, the behaviour you have here?
Thanks,
Paul Larson
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
A message that is not in the archive (sent off-list or not yet received): [email protected]
Re: [LTP] [PATCH 05/05] Add the necessary Interface and Option through "runltp"
Hey Paul,
Thanks for taking out time to reply.
Quoted 9 lines · Paul Larson
Subrata Modak wrote:
...runltp usage() · line 127
Quoted 1 line
runltp +1
-0+ -F LOOPS,PERCENTAGE Induce PERCENTAGE Fault in the Kernel Subsystems, and, run each test for LOOPS loopI haven't had time for an exhaustive review, but here are a few questions/comments I had:
1. Why introduce yet another looping mechanism within LTP when we already have one? Is there an advantage that you see to doing it this
I am not using additional mechanism to generate LOOPS. Itś like the script just reads each line of entry in the command file, then just rewrites that line with the following n+1 entries:
1) 1st entry exactly same as the original one. Meant to see the test output in normal kernel,
2) n entries run within the fault kernel and fault withdrawn immediately after the nth entry is written.
Here, ltp-pan doesn´t even know who generated & withdrew these faults and how those loops came into being. In all other cases of loop generation, ltp-pan and runltp has knowledge, here they do not.
Here we want to run few loops(chosen by the user) of the same test under faulted kernel to make sure that the test is exhibiting some abnormal behaviour under the faulted kernel, which may not be possible if just 1 loop is run under fault.
Quoted 7 lines
way, rather than just having an additional option that calls the script to generate this additional random fault injection?
2. Would be good to push the check for /debug being mounted down into one of the other scripts rather than in runltp. runltp is already hideously bloated and this would make it more useful when running standalone.
Hmmm. I will look into this.
Quoted 4 lines
3. would be great if there were some way to tag the results to say when a fault was or was not in the process of being generated. That is, perhaps, not possible at this time though.
Goog suggestion though. Probably i need to change the way tags are generated, i can just replace:tag_name_loop(n)
with
tag_name_loop(n)_kernel_under_fault
sort of stuff.
Quoted 3 lines
4. more granularity possible with the fault injections to specify the type of faults, or optionally, the behaviour you have here?
Yes. These enhancements are possible to be done in future. I wanted to use all the faults provided by the kernel at the time being.
Regards--
Subrata
Quoted 3 lines
Thanks,
Paul Larson
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
Re: [LTP] [PATCH 05/05] Add the necessary Interface and Option through "runltp"
In reply to Subrata Modakrunltp main() · line 765
Quoted 7 lines · On Tuesday 11 August 2009 13:31:01 Subrata Modak wrote:
runltp +7
-0+ if [ $INJECT_KERNEL_FAULT -eq 1 ] ; then + #See if Debugfs is mounted, and + #Fault Injection Framework available through Debugfs + if [ -d "/debug/fail_io_timeout" -o \ + -d "/debug/fail_make_request" -o \ + -d "/debug/fail_page_alloc" -o \ + -d "/debug/failslab" ]; then
debugfs should be mounted at /sys/kernel/debug/, not /debug/. if you really want to support the latter (incorrect) location, then you should use a variable that defaults to the correct location and falls back to the /debug/ dir if it is actually mounted there.
-mike
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
[LTP] [RESULTS] Results of test run for "Fault Injection Framework"
In reply to Subrata ModakNow comes the actual test output the framework will generate. Below are the test results with and without this Infrastructure on my following machine:
# uname -a Linux 2.6.29-gcov #1 SMP Fri Jun 19 12:14:27 IST 2009 i686 i686 i386 GNU/Linux
# /runltp -f mm -o ltp_without_fault_injection.out ================================================================================ <<<test_start>>> tag=mm01 stime=1250003204 cmdline="mmap001 -m 10000" contacts="" analysis=exit <<<test_output>>> mmap001 0 TINFO : mmap()ing file of 10000 pages or 40960000 bytes mmap001 1 TPASS : mmap() completed successfully. mmap001 0 TINFO : touching mmaped memory mmap001 2 TPASS : we're still here, mmaped area must be good mmap001 3 TPASS : msync() was successful mmap001 4 TPASS : munmap() was successful <<<execution_status>>> initiation_status="ok" duration=1 termination_type=exited termination_id=0 corefile=no cutime=4 cstime=52 <<<test_end>>> <<<test_start>>> tag=mm02 stime=1250003205 cmdline="mmap001" contacts="" analysis=exit <<<test_output>>> mmap001 0 TINFO : mmap()ing file of 1000 pages or 4096000 bytes mmap001 1 TPASS : mmap() completed successfully. mmap001 0 TINFO : touching mmaped memory mmap001 2 TPASS : we're still here, mmaped area must be good mmap001 3 TPASS : msync() was successful mmap001 4 TPASS : munmap() was successful <<<execution_status>>> initiation_status="ok" duration=0 termination_type=exited termination_id=0 corefile=no cutime=1 cstime=5 <<<test_end>>> <<<test_start>>> tag=mtest01 stime=1250003205 cmdline="mtest01 -p80" contacts="" analysis=exit <<<test_output>>> mtest01 0 TINFO : Total memory used needed to reach maxpercent = 4923782 kbytes mtest01 0 TINFO : Total memory already used on system = 205396 kbytes mtest01 0 TINFO : Filling up 80% of ram which is 4718386 kbytes mtest01 1 TPASS : 4718386 kbytes allocated only. <<<execution_status>>> initiation_status="ok" duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=1 <<<test_end>>> <<<test_start>>> tag=mtest01w stime=1250003205 cmdline="mtest01 -p80 -w" contacts="" analysis=exit <<<test_output>>> mtest01 0 TINFO : Total memory used needed to reach maxpercent = 4923782 kbytes mtest01 0 TINFO : Total memory already used on system = 215896 kbytes mtest01 0 TINFO : Filling up 80% of ram which is 4707886 kbytes mtest01 1 TPASS : 4707886 kbytes allocated and used. <<<execution_status>>> initiation_status="ok" duration=60 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0 <<<test_end>>> <<<test_start>>> tag=mtest05 stime=1250003265 cmdline=" mmstress" contacts="" analysis=exit <<<test_output>>> mmstress 0 TINFO : run mmstress -h for all options mmstress 0 TINFO : test1: Test case tests the race condition between simultaneous read faults in the same address space. mmstress 1 TPASS : TEST 1 Passed mmstress 0 TINFO : test2: Test case tests the race condition between simultaneous write faults in the same address space. mmstress 2 TPASS : TEST 2 Passed mmstress 0 TINFO : test3: Test case tests the race condition between simultaneous COW faults in the same address space. mmstress 3 TPASS : TEST 3 Passed mmstress 0 TINFO : test4: Test case tests the race condition between simultaneous READ faults in the same address space. The file mapped is /dev/zero mmstress 4 TPASS : TEST 4 Passed mmstress 0 TINFO : test5: Test case tests the race condition between simultaneous fork - exit faults in the same address space. mmstress 5 TPASS : TEST 5 Passed mmstress 0 TINFO : test6: Test case tests the race condition between simultaneous fork -exec - exit faults in the same address space. mmstress 6 TPASS : TEST 6 Passed mmstress 7 TPASS : Test Passed <<<execution_status>>> initiation_status="ok" duration=7 termination_type=exited termination_id=0 corefile=no cutime=2 cstime=782 <<<test_end>>> <<<test_start>>> tag=mtest06_2 stime=1250003272 cmdline="mmap2 -x 0.002 -a -p" contacts="" analysis=exit <<<test_output>>> MM Stress test, map/write/unmap large file Test scheduled to run for: 0.002000 Size of temp file in GB: 1 file mapped at 0x7c53b000 changing file content to 'A' unmapped file at 0x7c53b000 file mapped at 0x7c53b000 changing file content to 'A' unmapped file at 0x7c53b000 file mapped at 0x7c53b000 changing file content to 'A' Test ended, success <<<execution_status>>> initiation_status="ok" duration=7 termination_type=exited termination_id=0 corefile=no cutime=45 cstime=668 <<<test_end>>> <<<test_start>>> tag=mtest06_3 stime=1250003279 cmdline="mmap3 -x 0.002 -p" contacts="" analysis=exit <<<test_output>>>
Test is set to run with the following parameters:
Duration of test: [0.002000]hrs Number of threads created: [40] number of map-write-unmaps: [1000] map_private?(T=1 F=0): [1]
Map address = 0xa3ed6000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa335a000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3480000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3ed6000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3918000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa35a6000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3a3e000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa37f2000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3db0000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3c8a000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa36cc000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3b64000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa2369000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3735000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa1fb8000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3ae6000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa385b000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa287f000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa2d95000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa20de000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3d71000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa25f4000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa0906000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3020000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa1d2d000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa1817000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3536000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa0f8f000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa32ab000
Num iter: [1]
Total Num Iter: [1000]Map address = 0x9ed14000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa0d90000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa2b0a000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa118e000
Num iter: [1]
Total Num Iter: [1000]Map address = 0x9eb15000
Num iter: [1]
Total Num Iter: [1000]Map address = 0x9ef13000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa010a000
Num iter: [2]
Total Num Iter: [1000]Map address = 0x9ff0b000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa0309000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa1aa2000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa23f5000
Num iter: [2]
Total Num Iter: [1000]Map address = 0x9f90e000
Num iter: [2]
Total Num Iter: [1000]Map address = 0x9fb0d000
Num iter: [1]
Total Num Iter: [1000]Map address = 0x9f112000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa0b91000
Num iter: [1]
Total Num Iter: [1000]Map address = 0x9f510000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa0508000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa138d000
Num iter: [1]
Total Num Iter: [1000]Map address = 0x9fd0c000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa158c000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3a9b000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa0707000
Num iter: [2]
Total Num Iter: [1000]Map address = 0x9f70f000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa37c5000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa3d26000
Num iter: [2]
Total Num Iter: [1000]Map address = 0x9f311000
Num iter: [2]
Total Num Iter: [1000]Test ended, success <<<execution_status>>>
initiation_status="ok"
duration=8 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=521
<<<test_end>>>
<<<test_start>>>
tag=mem01 stime=1250003287
cmdline="mem01"
contacts=""
analysis=exit
<<<test_output>>>
mem01 0 TINFO : Free Mem: 1962 Mb mem01 0 TINFO : Free Swap: 3944 Mb mem01 0 TINFO : Total Free: 5906 Mb mem01 0 TINFO : Total Tested: 1008 Mb mem01 0 TINFO : touching 1008MB of malloc'ed memory (linear) mem01 1 TPASS : malloc - alloc of 1008MB succeeded
<<<execution_status>>>
initiation_status="ok"
duration=3 termination_type=exited termination_id=0 corefile=no cutime=7 cstime=289
<<<test_end>>>
<<<test_start>>>
tag=mem02 stime=1250003290
cmdline="mem02"
contacts=""
analysis=exit
<<<test_output>>>
mem02 1 TPASS : calloc - calloc of 64MB of memory succeeded mem02 2 TPASS : malloc - malloc of 64MB of memory succeeded mem02 3 TPASS : realloc - realloc of 5 bytes succeeded mem02 4 TPASS : realloc - realloc of 15 bytes succeeded
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=38 cstime=37
<<<test_end>>>
<<<test_start>>>
tag=mem03 stime=1250003290
cmdline="mem03"
contacts=""
analysis=exit
<<<test_output>>>
<<<execution_status>>>
initiation_status="ok"
duration=1 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=1
<<<test_end>>>
<<<test_start>>>
tag=page01 stime=1250003291
cmdline="page01"
contacts=""
analysis=exit
<<<test_output>>>
page01 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=1 termination_type=exited termination_id=0 corefile=no cutime=6 cstime=24
<<<test_end>>>
<<<test_start>>>
tag=page02 stime=1250003292
cmdline="page02"
contacts=""
analysis=exit
<<<test_output>>>
page02 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=1 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=2
<<<test_end>>>
<<<test_start>>>
tag=data_space stime=1250003293
cmdline="data_space"
contacts=""
analysis=exit
<<<test_output>>>data_space 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=1 termination_type=exited termination_id=0 corefile=no cutime=258 cstime=5
<<<test_end>>>
<<<test_start>>>
tag=stack_space stime=1250003294 cmdline="stack_space"
contacts=""
analysis=exit
<<<test_output>>>stack_space 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=9 cstime=1
<<<test_end>>>
<<<test_start>>>
tag=shmt02 stime=1250003294
cmdline="shmt02"
contacts=""
analysis=exit
<<<test_output>>>
shmt02 1 TPASS : shmget shmt02 2 TPASS : shmat shmt02 3 TPASS : Correct shared memory contents
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=shmt03 stime=1250003294
cmdline="shmt03"
contacts=""
analysis=exit
<<<test_output>>>
shmt03 1 TPASS : shmget shmt03 2 TPASS : 1st shmat shmt03 3 TPASS : 2nd shmat shmt03 4 TPASS : Correct shared memory contents
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=shmt04 stime=1250003294
cmdline="shmt04"
contacts=""
analysis=exit
<<<test_output>>>
shmt04 1 TPASS : shmget,shmat shmt04 2 TPASS : shmdt
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=1
<<<test_end>>>
<<<test_start>>>
tag=shmt05 stime=1250003294
cmdline="shmt05"
contacts=""
analysis=exit
<<<test_output>>>
shmt05 1 TPASS : shmget & shmat shmt05 2 TPASS : 2nd shmget & shmat
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=shmt06 stime=1250003294
cmdline="shmt06"
contacts=""
analysis=exit
<<<test_output>>>
shmt06 1 TPASS : shmget,shmat shmt06 2 TPASS : shmdt
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=shmt07 stime=1250003294
cmdline="shmt07"
contacts=""
analysis=exit
<<<test_output>>>
shmt07 1 TPASS : shmget,shmat shmt07 1 TPASS : shmget,shmat shmt07 2 TPASS : cp & cp+1 correct
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=1
<<<test_end>>>
<<<test_start>>>
tag=shmt08 stime=1250003294
cmdline="shmt08"
contacts=""
analysis=exit
<<<test_output>>>
shmt08 1 TPASS : shmget,shmat shmt08 2 TPASS : shmdt
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=shmt09 stime=1250003294
cmdline="shmt09"
contacts=""
analysis=exit
<<<test_output>>>
shmt09 1 TPASS : sbrk, sbrk, shmget, shmat shmt09 2 TPASS : sbrk, shmat shmt09 3 TPASS : sbrk, shmat shmt09 4 TPASS : sbrk
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=shmt10 stime=1250003294
cmdline="shmt10"
contacts=""
analysis=exit
<<<test_output>>>
shmt10 1 TPASS : shmat,shmdt
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=3
<<<test_end>>>
<<<test_start>>>
tag=shm_test01 stime=1250003294
cmdline="shm_test -l 10 -t 2"
contacts=""
analysis=exit
<<<test_output>>>
pid[30625]: shmat_rd_wr(): shmget():success got segment id 1212420 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1212420 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1245189 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1245189 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1277956 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1277956 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1310725 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1310725 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1343492 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1343492 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1376261 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1376261 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1409028 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1409028 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1441797 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1441797 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1474564 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1474564 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1507333 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1507333 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 <<<execution_status>>>
initiation_status="ok"
duration=31 termination_type=exited termination_id=0 corefile=no cutime=724 cstime=5363
<<<test_end>>>
<<<test_start>>>
tag=mallocstress01 stime=1250003325 cmdline="mallocstress"
contacts=""
analysis=exit
<<<test_output>>>
Thread [47]: allocate_free() returned 0, succeeded. Thread exiting. Thread [43]: allocate_free() returned 0, succeeded. Thread exiting. Thread [39]: allocate_free() returned 0, succeeded. Thread exiting. Thread [31]: allocate_free() returned 0, succeeded. Thread exiting. Thread [23]: allocate_free() returned 0, succeeded. Thread exiting. Thread [35]: allocate_free() returned 0, succeeded. Thread exiting. Thread [7]: allocate_free() returned 0, succeeded. Thread exiting. Thread [11]: allocate_free() returned 0, succeeded. Thread exiting. Thread [3]: allocate_free() returned 0, succeeded. Thread exiting. Thread [15]: allocate_free() returned 0, succeeded. Thread exiting. Thread [51]: allocate_free() returned 0, succeeded. Thread exiting. Thread [19]: allocate_free() returned 0, succeeded. Thread exiting. Thread [55]: allocate_free() returned 0, succeeded. Thread exiting. Thread [27]: allocate_free() returned 0, succeeded. Thread exiting. Thread [59]: allocate_free() returned 0, succeeded. Thread exiting. Thread [54]: allocate_free() returned 0, succeeded. Thread exiting. Thread [38]: allocate_free() returned 0, succeeded. Thread exiting. Thread [14]: allocate_free() returned 0, succeeded. Thread exiting. Thread [10]: allocate_free() returned 0, succeeded. Thread exiting. Thread [46]: allocate_free() returned 0, succeeded. Thread exiting. Thread [42]: allocate_free() returned 0, succeeded. Thread exiting. Thread [34]: allocate_free() returned 0, succeeded. Thread exiting. Thread [18]: allocate_free() returned 0, succeeded. Thread exiting. Thread [22]: allocate_free() returned 0, succeeded. Thread exiting. Thread [50]: allocate_free() returned 0, succeeded. Thread exiting. Thread [58]: allocate_free() returned 0, succeeded. Thread exiting.
Thread [6]: allocate_free() returned 0, succeeded. Thread exiting. Thread [30]: allocate_free() returned 0, succeeded. Thread exiting. Thread [26]: allocate_free() returned 0, succeeded. Thread exiting. Thread [2]: allocate_free() returned 0, succeeded. Thread exiting.
Thread [41]: allocate_free() returned 0, succeeded. Thread exiting. Thread [21]: allocate_free() returned 0, succeeded. Thread exiting. Thread [33]: allocate_free() returned 0, succeeded. Thread exiting. Thread [57]: allocate_free() returned 0, succeeded. Thread exiting. Thread [49]: allocate_free() returned 0, succeeded. Thread exiting. Thread [13]: allocate_free() returned 0, succeeded. Thread exiting. Thread [29]: allocate_free() returned 0, succeeded. Thread exiting. Thread [45]: allocate_free() returned 0, succeeded. Thread exiting. Thread [53]: allocate_free() returned 0, succeeded. Thread exiting. Thread [17]: allocate_free() returned 0, succeeded. Thread exiting.
Thread [9]: allocate_free() returned 0, succeeded. Thread exiting. Thread [1]: allocate_free() returned 0, succeeded. Thread exiting. Thread [37]: allocate_free() returned 0, succeeded. Thread exiting. Thread [25]: allocate_free() returned 0, succeeded. Thread exiting. Thread [5]: allocate_free() returned 0, succeeded. Thread exiting.
Thread [32]: allocate_free() returned 0, succeeded. Thread exiting. Thread [36]: allocate_free() returned 0, succeeded. Thread exiting. Thread [12]: allocate_free() returned 0, succeeded. Thread exiting. Thread [56]: allocate_free() returned 0, succeeded. Thread exiting. Thread [48]: allocate_free() returned 0, succeeded. Thread exiting. Thread [52]: allocate_free() returned 0, succeeded. Thread exiting. Thread [24]: allocate_free() returned 0, succeeded. Thread exiting. Thread [16]: allocate_free() returned 0, succeeded. Thread exiting. Thread [40]: allocate_free() returned 0, succeeded. Thread exiting. Thread [44]: allocate_free() returned 0, succeeded. Thread exiting.
Thread [4]: allocate_free() returned 0, succeeded. Thread exiting. Thread [28]: allocate_free() returned 0, succeeded. Thread exiting. Thread [0]: allocate_free() returned 0, succeeded. Thread exiting. Thread [8]: allocate_free() returned 0, succeeded. Thread exiting. Thread [20]: allocate_free() returned 0, succeeded. Thread exiting. main(): test passed.
<<<execution_status>>>
initiation_status="ok"
duration=8 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=787
<<<test_end>>>
<<<test_start>>>
tag=mmapstress01 stime=1250003333
cmdline="mmapstress01 -p 20 -t 0.2"
contacts=""
analysis=exit
<<<test_output>>>
file data okay
mmapstress01 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=12 termination_type=exited termination_id=0 corefile=no cutime=1371 cstime=758
<<<test_end>>>
<<<test_start>>>
tag=mmapstress02 stime=1250003345
cmdline="mmapstress02"
contacts=""
analysis=exit
<<<test_output>>>
mmapstress02 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no
cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=mmapstress03 stime=1250003345
cmdline="mmapstress03"
contacts=""
analysis=exit
<<<test_output>>>
mmapstress03 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no
cutime=0 cstime=1
<<<test_end>>>
<<<test_start>>>
tag=mmapstress04 stime=1250003345
cmdline="TMPFILE=mktemp /tmp/example.XXXXXXXXXX; ls -lR /usr/include/ > $TMPFILE; mmapstress04 $TMPFILE" contacts=""
analysis=exit
<<<test_output>>>
mmapstress04 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=8 termination_type=exited termination_id=0 corefile=no cutime=32 cstime=201
<<<test_end>>>
<<<test_start>>>
tag=mmapstress05 stime=1250003353 cmdline="mmapstress05"
contacts=""
analysis=exit
<<<test_output>>>
mmapstress05 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=mmapstress06 stime=1250003353 cmdline="mmapstress06 20"
contacts=""
analysis=exit
<<<test_output>>>
mmapstress06 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=20 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=mmapstress07 stime=1250003373
cmdline="TMPFILE=mktemp /tmp/example.XXXXXXXXXXXX; mmapstress07 $TMPFILE" contacts=""
analysis=exit
<<<test_output>>>
mmapstress07 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=1 termination_type=exited termination_id=0 corefile=no cutime=2 cstime=21
<<<test_end>>>
<<<test_start>>>
tag=mmapstress08 stime=1250003374 cmdline="mmapstress08"
contacts=""
analysis=exit
<<<test_output>>>
mmapstress08 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=1
<<<test_end>>>
<<<test_start>>>
tag=mmapstress09 stime=1250003374 cmdline="mmapstress09 -p 20 -t 0.2"
contacts=""
analysis=exit
<<<test_output>>>
map data okay
mmapstress09 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=12 termination_type=exited termination_id=0 corefile=no cutime=1401 cstime=730
<<<test_end>>>
<<<test_start>>>
tag=mmapstress10 stime=1250003386 cmdline="mmapstress10 -p 20 -t 0.2"
contacts=""
analysis=exit
<<<test_output>>>
file data okay
mmapstress10 1 TPASS : Test passed
incrementing stop
<<<execution_status>>>
initiation_status="ok"
duration=12 termination_type=exited termination_id=0 corefile=no cutime=992 cstime=1123
<<<test_end>>>
================================================================================
================================================================================
# ./runltp -f mm -F 6,15 -o ltp_with_fault_injection.out ================================================================================ <<<test_start>>> tag=mm01 stime=1250003204 cmdline="mmap001 -m 10000" contacts="" analysis=exit <<<test_output>>> mmap001 0 TINFO : mmap()ing file of 10000 pages or 40960000 bytes mmap001 1 TPASS : mmap() completed successfully. mmap001 0 TINFO : touching mmaped memory mmap001 2 TPASS : we're still here, mmaped area must be good mmap001 3 TPASS : msync() was successful mmap001 4 TPASS : munmap() was successful <<<execution_status>>> initiation_status="ok" duration=1 termination_type=exited termination_id=0 corefile=no cutime=4 cstime=52 <<<test_end>>> <<<test_start>>> tag=mm02 stime=1250003205 cmdline="mmap001" contacts="" analysis=exit <<<test_output>>> mmap001 0 TINFO : mmap()ing file of 1000 pages or 4096000 bytes mmap001 1 TPASS : mmap() completed successfully. mmap001 0 TINFO : touching mmaped memory mmap001 2 TPASS : we're still here, mmaped area must be good mmap001 3 TPASS : msync() was successful mmap001 4 TPASS : munmap() was successful <<<execution_status>>> initiation_status="ok" duration=0 termination_type=exited termination_id=0 corefile=no cutime=1 cstime=5 <<<test_end>>> <<<test_start>>> tag=mtest01 stime=1250003205 cmdline="mtest01 -p80" contacts="" analysis=exit <<<test_output>>> mtest01 0 TINFO : Total memory used needed to reach maxpercent = 4923782 kbytes mtest01 0 TINFO : Total memory already used on system = 205396 kbytes mtest01 0 TINFO : Filling up 80% of ram which is 4718386 kbytes mtest01 1 TPASS : 4718386 kbytes allocated only. <<<execution_status>>> initiation_status="ok" duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=1 <<<test_end>>> <<<test_start>>> tag=mtest01w stime=1250003205 cmdline="mtest01 -p80 -w" contacts="" analysis=exit <<<test_output>>> mtest01 0 TINFO : Total memory used needed to reach maxpercent = 4923782 kbytes mtest01 0 TINFO : Total memory already used on system = 215896 kbytes mtest01 0 TINFO : Filling up 80% of ram which is 4707886 kbytes mtest01 1 TPASS : 4707886 kbytes allocated and used. <<<execution_status>>> initiation_status="ok" duration=60 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0 <<<test_end>>> <<<test_start>>> tag=mtest05 stime=1250003265 cmdline=" mmstress" contacts="" analysis=exit <<<test_output>>> mmstress 0 TINFO : run mmstress -h for all options mmstress 0 TINFO : test1: Test case tests the race condition between simultaneous read faults in the same address space. mmstress 1 TPASS : TEST 1 Passed mmstress 0 TINFO : test2: Test case tests the race condition between simultaneous write faults in the same address space. mmstress 2 TPASS : TEST 2 Passed mmstress 0 TINFO : test3: Test case tests the race condition between simultaneous COW faults in the same address space. mmstress 3 TPASS : TEST 3 Passed mmstress 0 TINFO : test4: Test case tests the race condition between simultaneous READ faults in the same address space. The file mapped is /dev/zero mmstress 4 TPASS : TEST 4 Passed mmstress 0 TINFO : test5: Test case tests the race condition between simultaneous fork - exit faults in the same address space. mmstress 5 TPASS : TEST 5 Passed mmstress 0 TINFO : test6: Test case tests the race condition between simultaneous fork -exec - exit faults in the same address space. mmstress 6 TPASS : TEST 6 Passed mmstress 7 TPASS : Test Passed <<<execution_status>>> initiation_status="ok" duration=7 termination_type=exited termination_id=0 corefile=no cutime=2 cstime=782 <<<test_end>>> <<<test_start>>> tag=mtest06_2 stime=1250003272 cmdline="mmap2 -x 0.002 -a -p" contacts="" analysis=exit <<<test_output>>> MM Stress test, map/write/unmap large file Test scheduled to run for: 0.002000 Size of temp file in GB: 1 file mapped at 0x7c53b000 changing file content to 'A' unmapped file at 0x7c53b000 file mapped at 0x7c53b000 changing file content to 'A' unmapped file at 0x7c53b000 file mapped at 0x7c53b000 changing file content to 'A' Test ended, success <<<execution_status>>> initiation_status="ok" duration=7 termination_type=exited termination_id=0 corefile=no cutime=45 cstime=668 <<<test_end>>> <<<test_start>>> tag=mtest06_3 stime=1250003279 cmdline="mmap3 -x 0.002 -p" contacts="" analysis=exit <<<test_output>>>
Test is set to run with the following parameters:
Duration of test: [0.002000]hrs Number of threads created: [40] number of map-write-unmaps: [1000] map_private?(T=1 F=0): [1]
Map address = 0xa3ed6000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa335a000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3480000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3ed6000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3918000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa35a6000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3a3e000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa37f2000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3db0000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3c8a000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa36cc000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3b64000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa2369000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3735000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa1fb8000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3ae6000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa385b000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa287f000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa2d95000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa20de000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3d71000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa25f4000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa0906000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3020000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa1d2d000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa1817000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3536000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa0f8f000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa32ab000
Num iter: [1]
Total Num Iter: [1000]Map address = 0x9ed14000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa0d90000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa2b0a000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa118e000
Num iter: [1]
Total Num Iter: [1000]Map address = 0x9eb15000
Num iter: [1]
Total Num Iter: [1000]Map address = 0x9ef13000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa010a000
Num iter: [2]
Total Num Iter: [1000]Map address = 0x9ff0b000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa0309000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa1aa2000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa23f5000
Num iter: [2]
Total Num Iter: [1000]Map address = 0x9f90e000
Num iter: [2]
Total Num Iter: [1000]Map address = 0x9fb0d000
Num iter: [1]
Total Num Iter: [1000]Map address = 0x9f112000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa0b91000
Num iter: [1]
Total Num Iter: [1000]Map address = 0x9f510000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa0508000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa138d000
Num iter: [1]
Total Num Iter: [1000]Map address = 0x9fd0c000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa158c000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa3a9b000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa0707000
Num iter: [2]
Total Num Iter: [1000]Map address = 0x9f70f000
Num iter: [1]
Total Num Iter: [1000]Map address = 0xa37c5000
Num iter: [2]
Total Num Iter: [1000]Map address = 0xa3d26000
Num iter: [2]
Total Num Iter: [1000]Map address = 0x9f311000
Num iter: [2]
Total Num Iter: [1000]Test ended, success <<<execution_status>>>
initiation_status="ok"
duration=8 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=521
<<<test_end>>>
<<<test_start>>>
tag=mem01 stime=1250003287
cmdline="mem01"
contacts=""
analysis=exit
<<<test_output>>>
mem01 0 TINFO : Free Mem: 1962 Mb mem01 0 TINFO : Free Swap: 3944 Mb mem01 0 TINFO : Total Free: 5906 Mb mem01 0 TINFO : Total Tested: 1008 Mb mem01 0 TINFO : touching 1008MB of malloc'ed memory (linear) mem01 1 TPASS : malloc - alloc of 1008MB succeeded
<<<execution_status>>>
initiation_status="ok"
duration=3 termination_type=exited termination_id=0 corefile=no cutime=7 cstime=289
<<<test_end>>>
<<<test_start>>>
tag=mem02 stime=1250003290
cmdline="mem02"
contacts=""
analysis=exit
<<<test_output>>>
mem02 1 TPASS : calloc - calloc of 64MB of memory succeeded mem02 2 TPASS : malloc - malloc of 64MB of memory succeeded mem02 3 TPASS : realloc - realloc of 5 bytes succeeded mem02 4 TPASS : realloc - realloc of 15 bytes succeeded
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=38 cstime=37
<<<test_end>>>
<<<test_start>>>
tag=mem03 stime=1250003290
cmdline="mem03"
contacts=""
analysis=exit
<<<test_output>>>
<<<execution_status>>>
initiation_status="ok"
duration=1 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=1
<<<test_end>>>
<<<test_start>>>
tag=page01 stime=1250003291
cmdline="page01"
contacts=""
analysis=exit
<<<test_output>>>
page01 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=1 termination_type=exited termination_id=0 corefile=no cutime=6 cstime=24
<<<test_end>>>
<<<test_start>>>
tag=page02 stime=1250003292
cmdline="page02"
contacts=""
analysis=exit
<<<test_output>>>
page02 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=1 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=2
<<<test_end>>>
<<<test_start>>>
tag=data_space stime=1250003293
cmdline="data_space"
contacts=""
analysis=exit
<<<test_output>>>data_space 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=1 termination_type=exited termination_id=0 corefile=no cutime=258 cstime=5
<<<test_end>>>
<<<test_start>>>
tag=stack_space stime=1250003294 cmdline="stack_space"
contacts=""
analysis=exit
<<<test_output>>>stack_space 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=9 cstime=1
<<<test_end>>>
<<<test_start>>>
tag=shmt02 stime=1250003294
cmdline="shmt02"
contacts=""
analysis=exit
<<<test_output>>>
shmt02 1 TPASS : shmget shmt02 2 TPASS : shmat shmt02 3 TPASS : Correct shared memory contents
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=shmt03 stime=1250003294
cmdline="shmt03"
contacts=""
analysis=exit
<<<test_output>>>
shmt03 1 TPASS : shmget shmt03 2 TPASS : 1st shmat shmt03 3 TPASS : 2nd shmat shmt03 4 TPASS : Correct shared memory contents
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=shmt04 stime=1250003294
cmdline="shmt04"
contacts=""
analysis=exit
<<<test_output>>>
shmt04 1 TPASS : shmget,shmat shmt04 2 TPASS : shmdt
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=1
<<<test_end>>>
<<<test_start>>>
tag=shmt05 stime=1250003294
cmdline="shmt05"
contacts=""
analysis=exit
<<<test_output>>>
shmt05 1 TPASS : shmget & shmat shmt05 2 TPASS : 2nd shmget & shmat
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=shmt06 stime=1250003294
cmdline="shmt06"
contacts=""
analysis=exit
<<<test_output>>>
shmt06 1 TPASS : shmget,shmat shmt06 2 TPASS : shmdt
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=shmt07 stime=1250003294
cmdline="shmt07"
contacts=""
analysis=exit
<<<test_output>>>
shmt07 1 TPASS : shmget,shmat shmt07 1 TPASS : shmget,shmat shmt07 2 TPASS : cp & cp+1 correct
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=1
<<<test_end>>>
<<<test_start>>>
tag=shmt08 stime=1250003294
cmdline="shmt08"
contacts=""
analysis=exit
<<<test_output>>>
shmt08 1 TPASS : shmget,shmat shmt08 2 TPASS : shmdt
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=shmt09 stime=1250003294
cmdline="shmt09"
contacts=""
analysis=exit
<<<test_output>>>
shmt09 1 TPASS : sbrk, sbrk, shmget, shmat shmt09 2 TPASS : sbrk, shmat shmt09 3 TPASS : sbrk, shmat shmt09 4 TPASS : sbrk
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=shmt10 stime=1250003294
cmdline="shmt10"
contacts=""
analysis=exit
<<<test_output>>>
shmt10 1 TPASS : shmat,shmdt
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=3
<<<test_end>>>
<<<test_start>>>
tag=shm_test01 stime=1250003294
cmdline="shm_test -l 10 -t 2"
contacts=""
analysis=exit
<<<test_output>>>
pid[30625]: shmat_rd_wr(): shmget():success got segment id 1212420 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1212420 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1245189 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1245189 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1277956 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1277956 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1310725 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1310725 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1343492 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1343492 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1376261 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1376261 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1409028 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1409028 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1441797 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1441797 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1474564 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1474564 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1507333 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6f02000 pid[30625]: shmat_rd_wr(): shmget():success got segment id 1507333 pid[30625]: do_shmat_shmadt(): got shmat address = 0xb6e55000 <<<execution_status>>>
initiation_status="ok"
duration=31 termination_type=exited termination_id=0 corefile=no cutime=724 cstime=5363
<<<test_end>>>
<<<test_start>>>
tag=mallocstress01 stime=1250003325 cmdline="mallocstress"
contacts=""
analysis=exit
<<<test_output>>>
Thread [47]: allocate_free() returned 0, succeeded. Thread exiting. Thread [43]: allocate_free() returned 0, succeeded. Thread exiting. Thread [39]: allocate_free() returned 0, succeeded. Thread exiting. Thread [31]: allocate_free() returned 0, succeeded. Thread exiting. Thread [23]: allocate_free() returned 0, succeeded. Thread exiting. Thread [35]: allocate_free() returned 0, succeeded. Thread exiting. Thread [7]: allocate_free() returned 0, succeeded. Thread exiting. Thread [11]: allocate_free() returned 0, succeeded. Thread exiting. Thread [3]: allocate_free() returned 0, succeeded. Thread exiting. Thread [15]: allocate_free() returned 0, succeeded. Thread exiting. Thread [51]: allocate_free() returned 0, succeeded. Thread exiting. Thread [19]: allocate_free() returned 0, succeeded. Thread exiting. Thread [55]: allocate_free() returned 0, succeeded. Thread exiting. Thread [27]: allocate_free() returned 0, succeeded. Thread exiting. Thread [59]: allocate_free() returned 0, succeeded. Thread exiting. Thread [54]: allocate_free() returned 0, succeeded. Thread exiting. Thread [38]: allocate_free() returned 0, succeeded. Thread exiting. Thread [14]: allocate_free() returned 0, succeeded. Thread exiting. Thread [10]: allocate_free() returned 0, succeeded. Thread exiting. Thread [46]: allocate_free() returned 0, succeeded. Thread exiting. Thread [42]: allocate_free() returned 0, succeeded. Thread exiting. Thread [34]: allocate_free() returned 0, succeeded. Thread exiting. Thread [18]: allocate_free() returned 0, succeeded. Thread exiting. Thread [22]: allocate_free() returned 0, succeeded. Thread exiting. Thread [50]: allocate_free() returned 0, succeeded. Thread exiting. Thread [58]: allocate_free() returned 0, succeeded. Thread exiting.
Thread [6]: allocate_free() returned 0, succeeded. Thread exiting. Thread [30]: allocate_free() returned 0, succeeded. Thread exiting. Thread [26]: allocate_free() returned 0, succeeded. Thread exiting. Thread [2]: allocate_free() returned 0, succeeded. Thread exiting.
Thread [41]: allocate_free() returned 0, succeeded. Thread exiting. Thread [21]: allocate_free() returned 0, succeeded. Thread exiting. Thread [33]: allocate_free() returned 0, succeeded. Thread exiting. Thread [57]: allocate_free() returned 0, succeeded. Thread exiting. Thread [49]: allocate_free() returned 0, succeeded. Thread exiting. Thread [13]: allocate_free() returned 0, succeeded. Thread exiting. Thread [29]: allocate_free() returned 0, succeeded. Thread exiting. Thread [45]: allocate_free() returned 0, succeeded. Thread exiting. Thread [53]: allocate_free() returned 0, succeeded. Thread exiting. Thread [17]: allocate_free() returned 0, succeeded. Thread exiting.
Thread [9]: allocate_free() returned 0, succeeded. Thread exiting. Thread [1]: allocate_free() returned 0, succeeded. Thread exiting. Thread [37]: allocate_free() returned 0, succeeded. Thread exiting. Thread [25]: allocate_free() returned 0, succeeded. Thread exiting. Thread [5]: allocate_free() returned 0, succeeded. Thread exiting.
Thread [32]: allocate_free() returned 0, succeeded. Thread exiting. Thread [36]: allocate_free() returned 0, succeeded. Thread exiting. Thread [12]: allocate_free() returned 0, succeeded. Thread exiting. Thread [56]: allocate_free() returned 0, succeeded. Thread exiting. Thread [48]: allocate_free() returned 0, succeeded. Thread exiting. Thread [52]: allocate_free() returned 0, succeeded. Thread exiting. Thread [24]: allocate_free() returned 0, succeeded. Thread exiting. Thread [16]: allocate_free() returned 0, succeeded. Thread exiting. Thread [40]: allocate_free() returned 0, succeeded. Thread exiting. Thread [44]: allocate_free() returned 0, succeeded. Thread exiting.
Thread [4]: allocate_free() returned 0, succeeded. Thread exiting. Thread [28]: allocate_free() returned 0, succeeded. Thread exiting. Thread [0]: allocate_free() returned 0, succeeded. Thread exiting. Thread [8]: allocate_free() returned 0, succeeded. Thread exiting. Thread [20]: allocate_free() returned 0, succeeded. Thread exiting. main(): test passed.
<<<execution_status>>>
initiation_status="ok"
duration=8 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=787
<<<test_end>>>
<<<test_start>>>
tag=mmapstress01 stime=1250003333
cmdline="mmapstress01 -p 20 -t 0.2"
contacts=""
analysis=exit
<<<test_output>>>
file data okay
mmapstress01 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=12 termination_type=exited termination_id=0 corefile=no cutime=1371 cstime=758
<<<test_end>>>
<<<test_start>>>
tag=mmapstress02 stime=1250003345
cmdline="mmapstress02"
contacts=""
analysis=exit
<<<test_output>>>
mmapstress02 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no
cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=mmapstress03 stime=1250003345
cmdline="mmapstress03"
contacts=""
analysis=exit
<<<test_output>>>
mmapstress03 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no
cutime=0 cstime=1
<<<test_end>>>
<<<test_start>>>
tag=mmapstress04 stime=1250003345
cmdline="TMPFILE=mktemp /tmp/example.XXXXXXXXXX; ls -lR /usr/include/ > $TMPFILE; mmapstress04 $TMPFILE" contacts=""
analysis=exit
<<<test_output>>>
mmapstress04 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=8 termination_type=exited termination_id=0 corefile=no cutime=32 cstime=201
<<<test_end>>>
<<<test_start>>>
tag=mmapstress05 stime=1250003353 cmdline="mmapstress05"
contacts=""
analysis=exit
<<<test_output>>>
mmapstress05 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=mmapstress06 stime=1250003353 cmdline="mmapstress06 20"
contacts=""
analysis=exit
<<<test_output>>>
mmapstress06 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=20 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=0
<<<test_end>>>
<<<test_start>>>
tag=mmapstress07 stime=1250003373
cmdline="TMPFILE=mktemp /tmp/example.XXXXXXXXXXXX; mmapstress07 $TMPFILE" contacts=""
analysis=exit
<<<test_output>>>
mmapstress07 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=1 termination_type=exited termination_id=0 corefile=no cutime=2 cstime=21
<<<test_end>>>
<<<test_start>>>
tag=mmapstress08 stime=1250003374 cmdline="mmapstress08"
contacts=""
analysis=exit
<<<test_output>>>
mmapstress08 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=0 termination_type=exited termination_id=0 corefile=no cutime=0 cstime=1
<<<test_end>>>
<<<test_start>>>
tag=mmapstress09 stime=1250003374 cmdline="mmapstress09 -p 20 -t 0.2"
contacts=""
analysis=exit
<<<test_output>>>
map data okay
mmapstress09 1 TPASS : Test passed
<<<execution_status>>>
initiation_status="ok"
duration=12 termination_type=exited termination_id=0 corefile=no cutime=1401 cstime=730
<<<test_end>>>
<<<test_start>>>
tag=mmapstress10 stime=1250003386 cmdline="mmapstress10 -p 20 -t 0.2"
contacts=""
analysis=exit
<<<test_output>>>
file data okay
mmapstress10 1 TPASS : Test passed
incrementing stop
<<<execution_status>>>
initiation_status="ok"
duration=12 termination_type=exited termination_id=0 corefile=no cutime=992 cstime=1123
<<<test_end>>>
================================================================================
Regards--
Subrata
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list