aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>2014-04-23 22:30:00 -0400
committerSteven Rostedt <rostedt@goodmis.org>2014-04-23 23:18:29 -0400
commit4c16b1d6d5e0ca0612de65596a3d1ead8a3372fb (patch)
treef91cbef633d2d101a61439d7beef6518682ee413
parent4cc559bd1d6a24aa0581f64d8cdb0cb54e7d5f8c (diff)
ktest: Update documentation on config_bisect
With the more robust config_bisect, the documentation is out of date and needs to be updated. The new rewrite allows for finding missing configs and such, and is much more robust to use. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--tools/testing/ktest/sample.conf65
1 files changed, 27 insertions, 38 deletions
diff --git a/tools/testing/ktest/sample.conf b/tools/testing/ktest/sample.conf
index 172eec4517fb..911e45ad657a 100644
--- a/tools/testing/ktest/sample.conf
+++ b/tools/testing/ktest/sample.conf
@@ -1098,49 +1098,35 @@
1098# 1098#
1099# The way it works is this: 1099# The way it works is this:
1100# 1100#
1101# First it finds a config to work with. Since a different version, or 1101# You can specify a good config with CONFIG_BISECT_GOOD, otherwise it
1102# MIN_CONFIG may cause different dependecies, it must run through this 1102# will use the MIN_CONFIG, and if that's not specified, it will use
1103# preparation. 1103# the config that comes with "make defconfig".
1104# 1104#
1105# Overwrites any config set in the bad config with a config set in 1105# It runs both the good and bad configs through a make oldconfig to
1106# either the MIN_CONFIG or ADD_CONFIG. Thus, make sure these configs 1106# make sure that they are set up for the kernel that is checked out.
1107# are minimal and do not disable configs you want to test:
1108# (ie. # CONFIG_FOO is not set).
1109# 1107#
1110# An oldconfig is run on the bad config and any new config that 1108# It then reads the configs that are set, as well as the ones that are
1111# appears will be added to the configs to test. 1109# not set for both the good and bad configs, and then compares them.
1110# It will set half of the good configs within the bad config (note,
1111# "set" means to make the bad config match the good config, a config
1112# in the good config that is off, will be turned off in the bad
1113# config. That is considered a "set").
1112# 1114#
1113# Finally, it generates a config with the above result and runs it 1115# It tests this new config and if it works, it becomes the new good
1114# again through make oldconfig to produce a config that should be 1116# config, otherwise it becomes the new bad config. It continues this
1115# satisfied by kconfig. 1117# process until there's only one config left and it will report that
1118# config.
1116# 1119#
1117# Then it starts the bisect. 1120# The "bad config" can also be a config that is needed to boot but was
1121# disabled because it depended on something that wasn't set.
1118# 1122#
1119# The configs to test are cut in half. If all the configs in this 1123# During this process, it saves the current good and bad configs in
1120# half depend on a config in the other half, then the other half 1124# ${TMP_DIR}/good_config and ${TMP_DIR}/bad_config respectively.
1121# is tested instead. If no configs are enabled by either half, then 1125# If you stop the test, you can copy them to a new location to
1122# this means a circular dependency exists and the test fails. 1126# reuse them again.
1123# 1127#
1124# A config is created with the test half, and the bisect test is run. 1128# Although the MIN_CONFIG may be the config it starts with, the
1125# 1129# MIN_CONFIG is ignored.
1126# If the bisect succeeds, then all configs in the generated config
1127# are removed from the configs to test and added to the configs that
1128# will be enabled for all builds (they will be enabled, but not be part
1129# of the configs to examine).
1130#
1131# If the bisect fails, then all test configs that were not enabled by
1132# the config file are removed from the test. These configs will not
1133# be enabled in future tests. Since current config failed, we consider
1134# this to be a subset of the config that we started with.
1135#
1136# When we are down to one config, it is considered the bad config.
1137#
1138# Note, the config chosen may not be the true bad config. Due to
1139# dependencies and selections of the kbuild system, mulitple
1140# configs may be needed to cause a failure. If you disable the
1141# config that was found and restart the test, if the test fails
1142# again, it is recommended to rerun the config_bisect with a new
1143# bad config without the found config enabled.
1144# 1130#
1145# The option BUILD_TYPE will be ignored. 1131# The option BUILD_TYPE will be ignored.
1146# 1132#
@@ -1160,13 +1146,16 @@
1160# CONFIG_BISECT_GOOD (optional) 1146# CONFIG_BISECT_GOOD (optional)
1161# If you have a good config to start with, then you 1147# If you have a good config to start with, then you
1162# can specify it with CONFIG_BISECT_GOOD. Otherwise 1148# can specify it with CONFIG_BISECT_GOOD. Otherwise
1163# the MIN_CONFIG is the base. 1149# the MIN_CONFIG is the base, if MIN_CONFIG is not set
1150# It will build a config with "make defconfig"
1164# 1151#
1165# CONFIG_BISECT_CHECK (optional) 1152# CONFIG_BISECT_CHECK (optional)
1166# Set this to 1 if you want to confirm that the config ktest 1153# Set this to 1 if you want to confirm that the config ktest
1167# generates (the bad config with the min config) is still bad. 1154# generates (the bad config with the min config) is still bad.
1168# It may be that the min config fixes what broke the bad config 1155# It may be that the min config fixes what broke the bad config
1169# and the test will not return a result. 1156# and the test will not return a result.
1157# Set it to "good" to test only the good config and set it
1158# to "bad" to only test the bad config.
1170# 1159#
1171# Example: 1160# Example:
1172# TEST_START 1161# TEST_START