* [LTP] [PATCH 00/05] Integration of "Fault Injection Framework" into LTP
@ 2009-08-11 17:29 Subrata Modak
2009-08-11 17:30 ` [LTP] [PATCH 01/05] Provide all necessary information through ltp/README Subrata Modak
` (5 more replies)
0 siblings, 6 replies; 15+ messages in thread
From: Subrata Modak @ 2009-08-11 17:29 UTC (permalink / raw)
To: LTP Mailing List
Cc: Sachin P Sant, Mike Frysinger, Michael Reed, Nate Straz,
Paul Larson, Manoj Iyer, Balbir Singh
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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
* [LTP] [PATCH 01/05] Provide all necessary information through ltp/README
2009-08-11 17:29 [LTP] [PATCH 00/05] Integration of "Fault Injection Framework" into LTP Subrata Modak
@ 2009-08-11 17:30 ` Subrata Modak
2009-08-11 17:30 ` [LTP] [PATCH 02/05] Add Script which would actually do the job of injecting faults Subrata Modak
` (4 subsequent siblings)
5 siblings, 0 replies; 15+ messages in thread
From: Subrata Modak @ 2009-08-11 17:30 UTC (permalink / raw)
To: LTP Mailing List
Cc: Sachin P Sant, Mike Frysinger, Michael Reed, Nate Straz,
Paul Larson, Manoj Iyer, Balbir Singh
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.
Signed-off-by: Subrata Modak <subrata@linux.vnet.ibm.com>
---
--- ltp-full-20090731.orig/README 2009-08-11 21:54:21.000000000 +0530
+++ ltp-full-20090731/README 2009-08-11 21:53:00.000000000 +0530
@@ -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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
* [LTP] [PATCH 02/05] Add Script which would actually do the job of injecting faults
2009-08-11 17:29 [LTP] [PATCH 00/05] Integration of "Fault Injection Framework" into LTP Subrata Modak
2009-08-11 17:30 ` [LTP] [PATCH 01/05] Provide all necessary information through ltp/README Subrata Modak
@ 2009-08-11 17:30 ` Subrata Modak
2009-08-12 8:45 ` Garrett Cooper
2009-08-11 17:30 ` [LTP] [PATCH 03/05] Add Script so the kernel is restored back to its original pristine form Subrata Modak
` (3 subsequent siblings)
5 siblings, 1 reply; 15+ messages in thread
From: Subrata Modak @ 2009-08-11 17:30 UTC (permalink / raw)
To: LTP Mailing List
Cc: Sachin P Sant, Mike Frysinger, Michael Reed, Nate Straz,
Paul Larson, Manoj Iyer, Balbir Singh
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 <subrata@linux.vnet.ibm.com>
---
diff -uprN ltp-full-20090731.orig/tools/insert_kernel_faults.sh ltp-full-20090731/tools/insert_kernel_faults.sh
--- ltp-full-20090731.orig/tools/insert_kernel_faults.sh 1970-01-01 05:30:00.000000000 +0530
+++ ltp-full-20090731/tools/insert_kernel_faults.sh 2009-08-11 18:44:45.000000000 +0530
@@ -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 <subrata@linux.vnet.ibm.com> ##
+# ##
+# 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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
* [LTP] [PATCH 03/05] Add Script so the kernel is restored back to its original pristine form
2009-08-11 17:29 [LTP] [PATCH 00/05] Integration of "Fault Injection Framework" into LTP Subrata Modak
2009-08-11 17:30 ` [LTP] [PATCH 01/05] Provide all necessary information through ltp/README Subrata Modak
2009-08-11 17:30 ` [LTP] [PATCH 02/05] Add Script which would actually do the job of injecting faults Subrata Modak
@ 2009-08-11 17:30 ` Subrata Modak
2009-08-11 17:30 ` [LTP] [PATCH 04/05] Add Script which will be at the heart of this infrastructure Subrata Modak
` (2 subsequent siblings)
5 siblings, 0 replies; 15+ messages in thread
From: Subrata Modak @ 2009-08-11 17:30 UTC (permalink / raw)
To: LTP Mailing List
Cc: Sachin P Sant, Mike Frysinger, Michael Reed, Nate Straz,
Paul Larson, Manoj Iyer, Balbir Singh
Once 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.
Signed-off-by: Subrata Modak <subrata@linux.vnet.ibm.com>
---
diff -uprN ltp-full-20090731.orig/tools/restore_kernel_faults_default.sh ltp-full-20090731/tools/restore_kernel_faults_default.sh
--- ltp-full-20090731.orig/tools/restore_kernel_faults_default.sh 1970-01-01 05:30:00.000000000 +0530
+++ ltp-full-20090731/tools/restore_kernel_faults_default.sh 2009-08-11 18:45:38.000000000 +0530
@@ -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 <subrata@linux.vnet.ibm.com> ##
+# ##
+# 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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
* [LTP] [PATCH 04/05] Add Script which will be at the heart of this infrastructure
2009-08-11 17:29 [LTP] [PATCH 00/05] Integration of "Fault Injection Framework" into LTP Subrata Modak
` (2 preceding siblings ...)
2009-08-11 17:30 ` [LTP] [PATCH 03/05] Add Script so the kernel is restored back to its original pristine form Subrata Modak
@ 2009-08-11 17:30 ` Subrata Modak
2009-08-12 8:42 ` Garrett Cooper
2009-08-11 17:31 ` [LTP] [PATCH 05/05] Add the necessary Interface and Option through "runltp" Subrata Modak
2009-08-11 17:31 ` [LTP] [RESULTS] Results of test run for "Fault Injection Framework" Subrata Modak
5 siblings, 1 reply; 15+ messages in thread
From: Subrata Modak @ 2009-08-11 17:30 UTC (permalink / raw)
To: LTP Mailing List
Cc: Sachin P Sant, Mike Frysinger, Michael Reed, Nate Straz,
Paul Larson, Manoj Iyer, Balbir Singh
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 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",
Signed-off-by: Subrata Modak <subrata@linux.vnet.ibm.com>
---
diff -uprN ltp-full-20090731.orig/tools/create_kernel_faults_in_loops_and_probability.pl ltp-full-20090731/tools/create_kernel_faults_in_loops_and_probability.pl
--- ltp-full-20090731.orig/tools/create_kernel_faults_in_loops_and_probability.pl 1970-01-01 05:30:00.000000000 +0530
+++ ltp-full-20090731/tools/create_kernel_faults_in_loops_and_probability.pl 2009-08-11 20:23:54.000000000 +0530
@@ -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 <subrata@linux.vnet.ibm.com> ##
+# ##
+# 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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
* [LTP] [PATCH 05/05] Add the necessary Interface and Option through "runltp"
2009-08-11 17:29 [LTP] [PATCH 00/05] Integration of "Fault Injection Framework" into LTP Subrata Modak
` (3 preceding siblings ...)
2009-08-11 17:30 ` [LTP] [PATCH 04/05] Add Script which will be at the heart of this infrastructure Subrata Modak
@ 2009-08-11 17:31 ` Subrata Modak
2009-08-11 18:02 ` Paul Larson
` (2 more replies)
2009-08-11 17:31 ` [LTP] [RESULTS] Results of test run for "Fault Injection Framework" Subrata Modak
5 siblings, 3 replies; 15+ messages in thread
From: Subrata Modak @ 2009-08-11 17:31 UTC (permalink / raw)
To: LTP Mailing List
Cc: Sachin P Sant, Mike Frysinger, Michael Reed, Nate Straz,
Paul Larson, Manoj Iyer, Balbir Singh
Change 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",
Signed-off-by: Subrata Modak <subrata@linux.vnet.ibm.com>
---
--- ltp-full-20090731.orig/runltp 2009-08-11 16:55:24.000000000 +0530
+++ ltp-full-20090731/runltp 2009-08-11 20:28:58.000000000 +0530
@@ -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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
* [LTP] [RESULTS] Results of test run for "Fault Injection Framework"
2009-08-11 17:29 [LTP] [PATCH 00/05] Integration of "Fault Injection Framework" into LTP Subrata Modak
` (4 preceding siblings ...)
2009-08-11 17:31 ` [LTP] [PATCH 05/05] Add the necessary Interface and Option through "runltp" Subrata Modak
@ 2009-08-11 17:31 ` Subrata Modak
5 siblings, 0 replies; 15+ messages in thread
From: Subrata Modak @ 2009-08-11 17:31 UTC (permalink / raw)
To: LTP Mailing List
Cc: Sachin P Sant, Mike Frysinger, Michael Reed, Nate Straz,
Paul Larson, Manoj Iyer, Balbir Singh
Now 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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [LTP] [PATCH 05/05] Add the necessary Interface and Option through "runltp"
2009-08-11 17:31 ` [LTP] [PATCH 05/05] Add the necessary Interface and Option through "runltp" Subrata Modak
@ 2009-08-11 18:02 ` Paul Larson
[not found] ` <4A81B1A0.5050708@ubuntu.com>
2009-08-13 7:13 ` Mike Frysinger
2 siblings, 0 replies; 15+ messages in thread
From: Paul Larson @ 2009-08-11 18:02 UTC (permalink / raw)
To: Subrata Modak; +Cc: LTP Mailing List
Subrata Modak wrote:
...
> + -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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [LTP] [PATCH 04/05] Add Script which will be at the heart of this infrastructure
2009-08-11 17:30 ` [LTP] [PATCH 04/05] Add Script which will be at the heart of this infrastructure Subrata Modak
@ 2009-08-12 8:42 ` Garrett Cooper
2009-08-12 11:21 ` Subrata Modak
0 siblings, 1 reply; 15+ messages in thread
From: Garrett Cooper @ 2009-08-12 8:42 UTC (permalink / raw)
To: Subrata Modak
Cc: Sachin P Sant, LTP Mailing List, Mike Frysinger, Michael Reed,
Nate Straz, Paul Larson, Manoj Iyer, Balbir Singh
On Tue, Aug 11, 2009 at 10:30 AM, Subrata
Modak<subrata@linux.vnet.ibm.com> wrote:
> 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 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",
>
> Signed-off-by: Subrata Modak <subrata@linux.vnet.ibm.com>
> ---
>
> diff -uprN ltp-full-20090731.orig/tools/create_kernel_faults_in_loops_and_probability.pl ltp-full-20090731/tools/create_kernel_faults_in_loops_and_probability.pl
> --- ltp-full-20090731.orig/tools/create_kernel_faults_in_loops_and_probability.pl 1970-01-01 05:30:00.000000000 +0530
> +++ ltp-full-20090731/tools/create_kernel_faults_in_loops_and_probability.pl 2009-08-11 20:23:54.000000000 +0530
> @@ -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 <subrata@linux.vnet.ibm.com> ##
> +# ##
> +# 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);
> +
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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [LTP] [PATCH 02/05] Add Script which would actually do the job of injecting faults
2009-08-11 17:30 ` [LTP] [PATCH 02/05] Add Script which would actually do the job of injecting faults Subrata Modak
@ 2009-08-12 8:45 ` Garrett Cooper
2009-08-12 11:20 ` Subrata Modak
0 siblings, 1 reply; 15+ messages in thread
From: Garrett Cooper @ 2009-08-12 8:45 UTC (permalink / raw)
To: Subrata Modak
Cc: Sachin P Sant, LTP Mailing List, Mike Frysinger, Michael Reed,
Nate Straz, Paul Larson, Manoj Iyer, Balbir Singh
On Tue, Aug 11, 2009 at 10:30 AM, Subrata
Modak<subrata@linux.vnet.ibm.com> wrote:
> 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 <subrata@linux.vnet.ibm.com>
> ---
>
> diff -uprN ltp-full-20090731.orig/tools/insert_kernel_faults.sh ltp-full-20090731/tools/insert_kernel_faults.sh
> --- ltp-full-20090731.orig/tools/insert_kernel_faults.sh 1970-01-01 05:30:00.000000000 +0530
> +++ ltp-full-20090731/tools/insert_kernel_faults.sh 2009-08-11 18:44:45.000000000 +0530
> @@ -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 <subrata@linux.vnet.ibm.com> ##
> +# ##
> +# 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
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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [LTP] [PATCH 02/05] Add Script which would actually do the job of injecting faults
2009-08-12 8:45 ` Garrett Cooper
@ 2009-08-12 11:20 ` Subrata Modak
0 siblings, 0 replies; 15+ messages in thread
From: Subrata Modak @ 2009-08-12 11:20 UTC (permalink / raw)
To: Garrett Cooper
Cc: Sachin P Sant, LTP Mailing List, Mike Frysinger, Michael Reed,
Nate Straz, Paul Larson, Manoj Iyer, Balbir Singh
On Wed, 2009-08-12 at 01:45 -0700, Garrett Cooper wrote:
> On Tue, Aug 11, 2009 at 10:30 AM, Subrata
> Modak<subrata@linux.vnet.ibm.com> wrote:
> > 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 <subrata@linux.vnet.ibm.com>
> > ---
> >
> > diff -uprN ltp-full-20090731.orig/tools/insert_kernel_faults.sh ltp-full-20090731/tools/insert_kernel_faults.sh
> > --- ltp-full-20090731.orig/tools/insert_kernel_faults.sh 1970-01-01 05:30:00.000000000 +0530
> > +++ ltp-full-20090731/tools/insert_kernel_faults.sh 2009-08-11 18:44:45.000000000 +0530
> > @@ -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 <subrata@linux.vnet.ibm.com> ##
> > +# ##
> > +# 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
>
> Why ```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
> 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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [LTP] [PATCH 04/05] Add Script which will be at the heart of this infrastructure
2009-08-12 8:42 ` Garrett Cooper
@ 2009-08-12 11:21 ` Subrata Modak
2009-08-13 7:11 ` Mike Frysinger
0 siblings, 1 reply; 15+ messages in thread
From: Subrata Modak @ 2009-08-12 11:21 UTC (permalink / raw)
To: Garrett Cooper
Cc: Sachin P Sant, LTP Mailing List, Mike Frysinger, Michael Reed,
Nate Straz, Paul Larson, Manoj Iyer, Balbir Singh
On Wed, 2009-08-12 at 01:42 -0700, Garrett Cooper wrote:
> On Tue, Aug 11, 2009 at 10:30 AM, Subrata
> Modak<subrata@linux.vnet.ibm.com> wrote:
> > 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 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",
> >
> > Signed-off-by: Subrata Modak <subrata@linux.vnet.ibm.com>
> > ---
> >
> > diff -uprN ltp-full-20090731.orig/tools/create_kernel_faults_in_loops_and_probability.pl ltp-full-20090731/tools/create_kernel_faults_in_loops_and_probability.pl
> > --- ltp-full-20090731.orig/tools/create_kernel_faults_in_loops_and_probability.pl 1970-01-01 05:30:00.000000000 +0530
> > +++ ltp-full-20090731/tools/create_kernel_faults_in_loops_and_probability.pl 2009-08-11 20:23:54.000000000 +0530
> > @@ -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 <subrata@linux.vnet.ibm.com> ##
> > +# ##
> > +# 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);
> > +
>
> 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.
> 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
> 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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [LTP] [PATCH 05/05] Add the necessary Interface and Option through "runltp"
[not found] ` <4A81B1A0.5050708@ubuntu.com>
@ 2009-08-12 11:21 ` Subrata Modak
0 siblings, 0 replies; 15+ messages in thread
From: Subrata Modak @ 2009-08-12 11:21 UTC (permalink / raw)
To: Paul Larson
Cc: Sachin P Sant, LTP Mailing List, Mike Frysinger, Michael Reed,
Nate Straz, Manoj Iyer, Balbir Singh
Hey Paul,
Thanks for taking out time to reply.
On Tue, 2009-08-11 at 13:00 -0500, Paul Larson wrote:
> Subrata Modak wrote:
> ...
> > + -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
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.
> 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.
>
> 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.
>
> 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
>
> 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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [LTP] [PATCH 04/05] Add Script which will be at the heart of this infrastructure
2009-08-12 11:21 ` Subrata Modak
@ 2009-08-13 7:11 ` Mike Frysinger
0 siblings, 0 replies; 15+ messages in thread
From: Mike Frysinger @ 2009-08-13 7:11 UTC (permalink / raw)
To: subrata
Cc: Sachin P Sant, LTP Mailing List, Michael Reed, Nate Straz,
Paul Larson, Manoj Iyer, Balbir Singh
[-- Attachment #1.1: Type: text/plain, Size: 1857 bytes --]
On Wednesday 12 August 2009 07:21:00 Subrata Modak wrote:
> On Wed, 2009-08-12 at 01:42 -0700, Garrett Cooper wrote:
> > On Tue, Aug 11, 2009 at 10:30 AM, Subrata Modak wrote:
> > > 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 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",
> > >
> > > Signed-off-by: Subrata Modak <subrata@linux.vnet.ibm.com>
> > > ---
> > >
> > > tools/create_kernel_faults_in_loops_and_probability.pl
> > > +#!/usr/bin/perl
> >
> > 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
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 355 bytes --]
------------------------------------------------------------------------------
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
[-- Attachment #3: Type: text/plain, Size: 155 bytes --]
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [LTP] [PATCH 05/05] Add the necessary Interface and Option through "runltp"
2009-08-11 17:31 ` [LTP] [PATCH 05/05] Add the necessary Interface and Option through "runltp" Subrata Modak
2009-08-11 18:02 ` Paul Larson
[not found] ` <4A81B1A0.5050708@ubuntu.com>
@ 2009-08-13 7:13 ` Mike Frysinger
2 siblings, 0 replies; 15+ messages in thread
From: Mike Frysinger @ 2009-08-13 7:13 UTC (permalink / raw)
To: Subrata Modak
Cc: Sachin P Sant, LTP Mailing List, Michael Reed, Nate Straz,
Paul Larson, Manoj Iyer, Balbir Singh
[-- Attachment #1.1: Type: text/plain, Size: 640 bytes --]
On Tuesday 11 August 2009 13:31:01 Subrata Modak wrote:
> + 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
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 355 bytes --]
------------------------------------------------------------------------------
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
[-- Attachment #3: Type: text/plain, Size: 155 bytes --]
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2009-08-13 7:13 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-11 17:29 [LTP] [PATCH 00/05] Integration of "Fault Injection Framework" into LTP Subrata Modak
2009-08-11 17:30 ` [LTP] [PATCH 01/05] Provide all necessary information through ltp/README Subrata Modak
2009-08-11 17:30 ` [LTP] [PATCH 02/05] Add Script which would actually do the job of injecting faults Subrata Modak
2009-08-12 8:45 ` Garrett Cooper
2009-08-12 11:20 ` Subrata Modak
2009-08-11 17:30 ` [LTP] [PATCH 03/05] Add Script so the kernel is restored back to its original pristine form Subrata Modak
2009-08-11 17:30 ` [LTP] [PATCH 04/05] Add Script which will be at the heart of this infrastructure Subrata Modak
2009-08-12 8:42 ` Garrett Cooper
2009-08-12 11:21 ` Subrata Modak
2009-08-13 7:11 ` Mike Frysinger
2009-08-11 17:31 ` [LTP] [PATCH 05/05] Add the necessary Interface and Option through "runltp" Subrata Modak
2009-08-11 18:02 ` Paul Larson
[not found] ` <4A81B1A0.5050708@ubuntu.com>
2009-08-12 11:21 ` Subrata Modak
2009-08-13 7:13 ` Mike Frysinger
2009-08-11 17:31 ` [LTP] [RESULTS] Results of test run for "Fault Injection Framework" Subrata Modak
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox