[lkml]   [2011]   [Sep]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    hi all,

    this reworked* patchset enhances dynamic-debug with:

    - multiple queries on bootline, via ddebug_query='"...", formerly just
    1 query was accepted. This also allows cat foo-queries > $CONTROL
    to add numerous rules together.

    - tolerance to errors in ddebug_query. Formerly, a bad rule would
    kill the facility, now it stays up, you can correct the rule without

    - pending queries. bootline can enable pr_debugs in an uninstalled
    module, by adding 'a' flag. When module is loaded later, pr_debug
    callsites are enabled, before module-init is run, so pr_debug can be
    used in module-init. Currently pending queries are readable in

    - filter flags. flags before the operator [+-=] are used to narrow
    selection of callsites. This augments module, filename, function
    filters, allowing:

    echo p+t > $CONTROL # add TID to ALL enabled sites
    echo ml+p > $CONTROL # enable sites marked earlier.

    - src-dir relative paths in $CONTROL. Formerly, filenames were
    printed with full path, and new rules had to use full path if
    basename wasnt enough. Now theyre printed with relative paths, and
    relative paths are accepted when writing new rules.

    Minor things

    - added warn if >1 function, filename, module filter is used. also
    fix a pr_err() conditional on verbose.

    - '_' (empty) flag added. $CONTROL now says '=_' for disabled
    callsites, so your grep command can be more selective than '='

    - printing is enabled by p flag only, formerly any flag enabled
    callsite. this fix is needed for filter-flags as described above.

    - dynamic debug supercedes DEBUG - Formerly ddebug couldnt control
    callsites when module had DEBUG 1, now it can. DEBUG 1 now enables
    callsites by default, but you can turn them off.

    - shrink _ddebug.lineno:24 to 18
    lineno:24 allows 16G-lines files to be 'pr_debug'd, which is silly.
    Largest in tree is 29k-lines, future additions that large are
    *unlikely*. Even allowing for out-of-tree machine-generated code
    (which shouldnt need ddebug, right? ;-), 256k-lines should be

    - pr_fmt_dbg() - like pr_fmt(), but used in dynamic_pr_debug().
    Allows independent control of the prefix-text added by pr_debug vs
    pr_info and others. TBD - Joe Perches had issues with this, maybe
    addressed here. Its also at end of set, so can be trivially
    excluded from upstream.

    - internal ddebug verbosity - this modparam enables several levels of
    internal debugging. Previous patchsets used the ddebug facilities
    within ddebug (eat your own dogfood) but that was deemed too

    Future additions.

    - user flags: If we can free up extra bits (32bit is currently tight),
    adding user-flags (say: x,y,z) would let users mark groups of
    callsites, then enable and disable them in a single operation:

    echo module foo +x > $CONTROL
    echo module bar +x > $CONTROL
    echo x+p > $CONTROL

    1-15 prep, cleanups, minor things
    16-23 major enhancements, doc
    24-26 non-essentials, worth considering, discussing.

    If you like, you can also get it from github,
    git:// dyndbg/on-driver-core

    This is a clone of GregKH's driver-core tree, circa -rc3,
    which includes 8/12 of Jason Barons dynamic-debug patches.
    Ive added Jason's last 4/12, and my 26 patches.

    Jim Cromie

     \ /
      Last update: 2011-09-21 23:57    [W:0.031 / U:12.356 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site