summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtem Bityutskiy <artem.bityutskiy@linux.intel.com>2014-02-03 17:17:03 +0200
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>2014-02-03 17:17:03 +0200
commit421a256e5f2b2e35a96750078669d61a7576fdda (patch)
treeb986e941aa50817ba7d1a2e08ececea0341b765c
parenta4958d4ed45d08ea59408d280d49dec4750b580c (diff)
downloadaiaiai-421a256e5f2b2e35a96750078669d61a7576fdda.tar.gz
doc: refresh the Aiaiai overview text
Rename the 'README.announcement' file to descriptive 'Overview.txt'. Refresh its contents too. This file is supposed to give general information about what Aiaiai is. Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-rw-r--r--doc/Overview.txt66
-rw-r--r--doc/README.announcement87
2 files changed, 66 insertions, 87 deletions
diff --git a/doc/Overview.txt b/doc/Overview.txt
new file mode 100644
index 0000000..06230dc
--- /dev/null
+++ b/doc/Overview.txt
@@ -0,0 +1,66 @@
+Aiaiai is a tool for validating Linux kernel patches using various available
+open-source tools. Aiaiai is useful for both subsystem maintainers and
+kernel developers.
+
+Aiaiai usage scenarios include:
+
+1. a developer has a patch-set which he/she wants to validate before submitting
+ to the maintainer or the subsystem mailing list
+2. a subsystem maintainer validates incoming patches before merging them to the
+ subsystem kernel tree
+
+Aiaiai roughly works as follows.
+
+1. Build the kernel before applying the patch-set and after applying the
+ patch-set.
+2. Run the following static analysis tools while building: sparse, smatch,
+ coccinelle, cppcheck.
+3. Compare the resulting build logs in a smart way (taking into account line
+ number changes, etc)
+3. Report about new gcc warnings and coccinelle/sparse/smatch/cppcheck
+ complaints. If checkpatch.pl has any complaints, they are also reported by
+ Aiaiai.
+
+Here is an example of Aiaiai report.
+
+--------------------------------------------------------------------------------
+
+1 Successfully built configuration "my_defconfig,i386", results:
+2
+3 --- before_patching.log
+4 +++ after_patching.log
+5 @@ @@
+6 -drivers/staging/cruft/my_drv.c: In function ‘my_pool_destroy’:
+7 -drivers/staging/cruft/my_drv.c:165:22: warning: variable ‘test1’ set but not used [-Wunused-but-set-variable]
+8 @@ @@
+9 +drivers/staging/cruft/my_drv.c: In function ‘my_event_handler’:
+10 +drivers/staging/cruft/my_drv.c:311:36: warning: unused variable ‘reg’ [-Wunused-variable]
+11 +drivers/staging/cruft/my_drv.c:1001:1-7: preceding lock on line 837 [coccinelle]
+12 +drivers/staging/cruft/my_drv.c:834 my_int_data(12) warn: variable dereferenced before check 'priv' (see line 827) [smatch]
+
+--------------------------------------------------------------------------------
+
+o Line 1 says that configuration "my_defconfig" for architecture i386 has been
+ built (so the patch-set compiles).
+o Starting from line 3 we have a diff of 2 build logs - before and after
+ patching.
+o Lines 6 and 7 tell that the patch-set eliminated a warning, which is very
+ welcome.
+o Lines 9 and 10 tell that the patch-set introduced a gcc warning, which is
+ less welcome.
+o Line 11 a complaint form coccinelle about locking. Worth looking closer.
+ The coccinelle scripts that are part of the Linux kernel do not usually
+ produce many false positives.
+o Line 12 tells that smatch has a complaint.
+
+Additionally, Aiaiai runs the bisectability test when there is more than one
+patch. It applies patches one-by-one, compiles at each step, and reports if
+compilation breaks.
+
+Aiaiai also runs checkpatch.pl for the whole patch-set (squashed) and
+every individual patch.
+
+Following are the currently implemented ways of using Aiaiai.
+1. Just run 'aiaiai-test-patchset' from console
+2. Attach Aiaiai to a mailing list using the e-mail front-end
+3. Attach Aiaiai to gerrit using a the Jenkins gerrit notifications plugin.
diff --git a/doc/README.announcement b/doc/README.announcement
deleted file mode 100644
index 42a6ad9..0000000
--- a/doc/README.announcement
+++ /dev/null
@@ -1,87 +0,0 @@
-Hi,
-
-I here is a tool which I find very helpful for subsystem maintainers and
-individual developers. This tool checks patches or patch-sets using various
-existing tools and reports new issues.
-
-The main thing it does is:
-1. Build the kernel before the patch and after the patch
-2. Compare 2 build logs
-3. Report about _new_ gcc warnings, coccinelle/spatch/smatch/cppcheck
- complaints.
-
-For example, you can feed Aiaiai a patch-set, and it may report something
-like this:
-
---------------------------------------------------------------------------------
-
-1 Successfully built configuration "my_defconfig,i386", results:
-2
-3 --- before_patching.log
-4 +++ after_patching.log
-5 @@ @@
-6 -drivers/staging/cruft/my_drv.c: In function ‘my_pool_destroy’:
-7 -drivers/staging/cruft/my_drv.c:165:22: warning: variable ‘test1’ set but not used [-Wunused-but-set-variable]
-8 @@ @@
-9 +drivers/staging/cruft/my_drv.c: In function ‘my_event_handler’:
-10 +drivers/staging/cruft/my_drv.c:311:36: warning: unused variable ‘reg’ [-Wunused-variable]
-11 +drivers/staging/cruft/my_drv.c:1001:1-7: preceding lock on line 837 [coccinelle]
-12 +drivers/staging/cruft/my_drv.c:834 my_int_data(12) warn: variable dereferenced before check 'priv' (see line 827) [smatch]
-
---------------------------------------------------------------------------------
-
-Line 1 says that configuration my_defconfig for architecture i386 has been built,
-so the patch-set is at least compilable.
-
-Starting from line 3 we have a diff of 2 build logs - before and after patching.
-
-Lines 6 and 7 tell that the patch-set eliminated a warning - which is very welcome.
-
-Lines 9 and 10 tell that the patch-set introduced a gcc warning - not good.
-
-Line 11 tells that the patch made coccinelle complain about locking - worth checking
-as coccinelle scripts we have in the kernel are rather high quality.
-
-Line 12 tells that smatch has a complaint - also worth looking if this is a
-false-positive or not.
-
-Additionally, Aiaiai runs the bisectability tests when the patch-set contains
-more than one patch. It applies patches one-by-one and compiles at each step,
-and will report if compilation breaks.
-
-Aiaiai also checks if the patch changes a defconfig file, and if it does, it will
-verify that it is changed properly (make savedefconfig was used).
-
-And Aiaiai also runs checkpatch.pl for the whole patch-set (squashed) and
-every individual patch.
-
-Aiaiai also includes scripts which may be used to attach it to an e-mail address,
-so that when you can send patches to this e-mail address, and it will respond
-with test results.
-
-E.g., I use Aiaiai to verify incoming patches for the MTD subsystem since recently.
-I have small helper scripts which run Aiaiai for several configurations and
-architectures (i386, x86_64, ia64, ppc64, arm, mips). This makes me feel "safe"
-when I apply patches to my l2-mtd.git' tree. I do this also for UBIFS and UBI
-now.
-
-The README file contains more information:
-http://git.infradead.org/users/dedekind/aiaiai.git/blob/refs/heads/master:/README
-
-Sorry if this stuff is not very user-friendly - feel free to ask questions and
-send patches.
-
-You can find Aiaiai here:
-git://git.infradead.org/users/dedekind/aiaiai.git
-Gitweb: http://git.infradead.org/users/dedekind/aiaiai.git
-
-Credits:
-* Intel and my colleagues
-* Kirill Shutemov - he started writing this stuff, review, gave ideas, etc
-* Alexey Gladkov and other AltLinux guys for libshell
- (git://git.altlinux.org/people/legion/packages/libshell.git)
-* Al Viro for the remapper
- (git://git.kernel.org/pub/scm/linux/kernel/git/viro/remap.git)
-* Julia Lawall for amending coccinelle kernel patches to meet Aiaiai needs
-* Dan Carpenter for amending smatch to meet Aiaiai needs
-* Eric Melski for the serialize-log idea