public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
From: "Gui,Jian" <guij@cn.ibm.com>
To: systemtap@sources.redhat.com
Cc: Vara Prasad <prasadav@us.ibm.com>, Li Guanglei <guanglei@cn.ibm.com>
Subject: a framework of generating whitelist for safe-mode probes
Date: Tue, 17 Oct 2006 08:12:00 -0000	[thread overview]
Message-ID: <45348E36.8040704@cn.ltcfwd.linux.ibm.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 2410 bytes --]

Hi,

Here is an implementation of generating whitelist for safe-mode probes
based on the discussions in former thread
(http://sourceware.org/ml/systemtap/2006-q3/msg00574.html).

Its main idea is:
  1) Fetch a group of probe points from probes.pending, probe them and
     run some workload(e.g. runltp -t 60s) meanwhile.

  2) If the probe test ends without crash, those actually triggered
     probe points are moved into probes.passed and those untriggered
     are into probes.untriggered;
     If the probe test crashes the system, it will be resumed
     automatically after system reboot. Those probe points which have
     been triggered are also moved into probes.passed, but those
     untriggered ones are moved into probes.failed.

  3) Repeat the above until probes.pending becomes empty, then:
     Normally, probes.pending is reinitialized from probes.failed
     (or probes.untriggered if probes.failed is empty) and start the
     next iteration;
     But if max iteration limit (e.g. 5) is reached, or probes.pending,
     probes.failed and probes.untriggered are all empty, stop the
     whole test.

To be able to resume after a crash, this test will register itself as
the last system service at the beginning and unregister itself at the
end.

I also use a script in a remote server to restart the test machine
automatically if it is crashed.

Usage:
   runtest whitelist.exp
   * Please remove "/stp_genwhitelist_running" first if you want to
     restart the test from the scratch.

Rough result on my 2.6.18/ppc64:
root:/home/root/testsuite/systemtap.stress>wc -l probes.*
  13209 probes.all         * all input probe points
      2 probes.failed      * causing crash and unrecorded in probe.out
   1146 probes.passed      * whitelist,for those recorded at least once
  12061 probes.untriggered * probed without crash but unrecorded

Some problems:
1) How to choose workload to trigger as much as many probe points?
    Now only 9% of all are triggered when using "runltp -t 60s".
2) How to set the proper sizes of each group for different iteration
    levels? A smaller group size will help find those probe points
    really crashing the system, but also causes longer running time.
    After all, there are 13209 probe points for kernel.function("*")
    and 31132 for kernel.inline("*").
    btw: do we need to handle module("*").function("*") ?

Any comments? Thanks.

-Guijian


[-- Attachment #2: genwhitelist.1017.tgz --]
[-- Type: application/octet-stream, Size: 5119 bytes --]

                 reply	other threads:[~2006-10-17  8:12 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=45348E36.8040704@cn.ltcfwd.linux.ibm.com \
    --to=guij@cn.ibm.com \
    --cc=guanglei@cn.ibm.com \
    --cc=prasadav@us.ibm.com \
    --cc=systemtap@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).