27 Jan, 2009

1 commit


11 Oct, 2007

3 commits

  • Based upon initial work by Keiichi Kii .

    This patch introduces support for dynamic reconfiguration (adding, removing
    and/or modifying parameters of netconsole targets at runtime) using a
    userspace interface exported via configfs. Documentation is also updated
    accordingly.

    Issues and brief design overview:

    (1) Kernel-initiated creation / destruction of kernel objects is not
    possible with configfs -- the lifetimes of the "config items" is managed
    exclusively from userspace. But netconsole must support boot/module
    params too, and these are parsed in kernel and hence netpolls must be
    setup from the kernel. Joel Becker suggested to separately manage the
    lifetimes of the two kinds of netconsole_target objects -- those created
    via configfs mkdir(2) from userspace and those specified from the
    boot/module option string. This adds complexity and some redundancy here
    and also means that boot/module param-created targets are not exposed
    through the configfs namespace (and hence cannot be updated / destroyed
    dynamically). However, this saves us from locking / refcounting
    complexities that would need to be introduced in configfs to support
    kernel-initiated item creation / destroy there.

    (2) In configfs, item creation takes place in the call chain of the
    mkdir(2) syscall in the driver subsystem. If we used an ioctl(2) to
    create / destroy objects from userspace, the special userspace program is
    able to fill out the structure to be passed into the ioctl and hence
    specify attributes such as local interface that are required at the time
    we set up the netpoll. For configfs, this information is not available at
    the time of mkdir(2). So, we keep all newly-created targets (via
    configfs) disabled by default. The user is expected to set various
    attributes appropriately (including the local network interface if
    required) and then write(2) "1" to the "enabled" attribute. Thus,
    netpoll_setup() is then called on the set parameters in the context of
    _this_ write(2) on the "enabled" attribute itself. This design enables
    the user to reconfigure existing netconsole targets at runtime to be
    attached to newly-come-up interfaces that may not have existed when
    netconsole was loaded or when the targets were actually created. All this
    effectively enables us to get rid of custom ioctls.

    (3) Ultra-paranoid configfs attribute show() and store() operations, with
    sanity and input range checking, using only safe string primitives, and
    compliant with the recommendations in Documentation/filesystems/sysfs.txt.

    (4) A new function netpoll_print_options() is created in the netpoll API,
    that just prints out the configured parameters for a netpoll structure.
    netpoll_parse_options() is modified to use that and it is also exported to
    be used from netconsole.

    Signed-off-by: Satyam Sharma
    Acked-by: Keiichi Kii
    Signed-off-by: Andrew Morton
    Signed-off-by: David S. Miller

    Satyam Sharma
     
  • Based upon initial work by Keiichi Kii .

    This patch introduces support for multiple targets, independent of
    CONFIG_NETCONSOLE_DYNAMIC -- this is useful even in the default case and
    (including the infrastructure introduced in previous patches) doesn't really
    add too many bytes to module text. All the complexity (and size) comes with
    the dynamic reconfigurability / userspace interface patch, and so it's
    plausible users may want to keep this enabled but that disabled (say to avoid
    a dependency on CONFIG_CONFIGFS_FS too).

    Also update documentation to mention the use of ";" separator to specify
    multiple logging targets in the boot/module option string.

    Brief overview:

    We maintain a target_list (and corresponding lock). Get rid of the static
    "default_target" and introduce allocation and release functions for our
    netconsole_target objects (but keeping sure to preserve previous behaviour
    such as default values). During init_netconsole(), ";" is used as the
    separator to identify multiple target specifications in the boot/module option
    string. The target specifications are parsed and netpolls setup. During
    exit, the target_list is torn down and all items released.

    Signed-off-by: Satyam Sharma
    Signed-off-by: Keiichi Kii
    Signed-off-by: Andrew Morton
    Signed-off-by: David S. Miller

    Satyam Sharma
     
  • Based upon initial work by Keiichi Kii .

    Add some useful general-purpose tips. Also suggest solution for the frequent
    problem of console loglevel set too low numerically (i.e. for high priority
    messages only) on the sender.

    Signed-off-by: Satyam Sharma
    Acked-by: Keiichi Kii
    Acked-by: Matt Mackall
    Signed-off-by: Andrew Morton
    Signed-off-by: David S. Miller

    Satyam Sharma
     

04 Oct, 2006

1 commit

  • Randy brought it to my attention that in proper english "can not" should always
    be written "cannot". I donot see any reason to argue, even if I mightnot
    understand why this rule exists. This patch fixes "can not" in several
    Documentation files as well as three Kconfigs.

    Signed-off-by: Matt LaPlante
    Acked-by: Randy Dunlap
    Signed-off-by: Adrian Bunk

    Matt LaPlante
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds