All of lore.kernel.org
 help / color / mirror / Atom feed
From: KII Keiichi <k-keiichi@bx.jp.nec.com>
To: Satyam Sharma <ssatyam@cse.iitk.ac.in>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Matt Mackall <mpm@selenic.com>, Netdev <netdev@vger.kernel.org>,
	Joel Becker <joel.becker@oracle.com>,
	Stephen Hemminger <shemminger@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	David Miller <davem@davemloft.net>
Subject: Re: [PATCH v2 -mm 9/9] netconsole: Support dynamic reconfiguration using configfs
Date: Fri, 13 Jul 2007 22:50:16 +0900	[thread overview]
Message-ID: <46978318.9080804@bx.jp.nec.com> (raw)
In-Reply-To: <20070710092006.23907.33652.sendpatchset@cselinux1.cse.iitk.ac.in>

Hi Satyam,

> From: Satyam Sharma <ssatyam@cse.iitk.ac.in>
> 
> [9/9] netconsole: Support dynamic reconfiguration using configfs
> 
> 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. Also, this is similar to present behaviour in any case so
> not really a problem.
> 
> (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. This all
> 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 <ssatyam@cse.iitk.ac.in>
> Cc: Keiichi Kii <k-keiichi@bx.jp.nec.com>
> 
Acked-by: Keiichi Kii <k-keiichi@bx.jp.nec.com>

Thanks
--
Keiichi KII
NEC Corporation OSS Platform Development Division
E-mail: k-keiichi@bx.jp.nec.com



  parent reply	other threads:[~2007-07-13 13:50 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-10  9:19 [RFC][PATCH v2 -mm 0/9] netconsole: Multiple targets and dynamic reconfigurability Satyam Sharma
2007-07-10  9:19 ` [PATCH v2 -mm 1/9] netconsole: Cleanups, codingstyle, prettyfication Satyam Sharma
2007-07-10  9:02   ` Matt Mackall
2007-07-13 13:40   ` KII Keiichi
2007-07-10  9:19 ` [PATCH v2 -mm 2/9] netconsole: Remove bogus check Satyam Sharma
2007-07-10  9:05   ` Matt Mackall
2007-07-13 13:41   ` KII Keiichi
2007-07-10  9:19 ` [PATCH v2 -mm 3/9] netconsole: Simplify boot/module option setup logic Satyam Sharma
2007-07-10  9:23   ` Matt Mackall
2007-07-13 13:42   ` KII Keiichi
2007-07-10  9:19 ` [PATCH v2 -mm 4/9] netconsole: Add some useful tips to documentation Satyam Sharma
2007-07-10  9:41   ` Matt Mackall
2007-07-10 12:34     ` Jesper Juhl
2007-07-10 22:10       ` Satyam Sharma
2007-07-11  4:20         ` Joel Becker
2007-07-11  6:05           ` Satyam Sharma
2007-07-11 11:56             ` Jesper Juhl
2007-07-10  9:19 ` [PATCH v2 -mm 5/9] netconsole: Introduce netconsole_target Satyam Sharma
2007-07-13 13:46   ` KII Keiichi
2007-07-10  9:19 ` [PATCH v2 -mm 6/9] netconsole: Introduce netconsole_netdev_notifier Satyam Sharma
2007-07-13 13:47   ` KII Keiichi
2007-07-10  9:19 ` [PATCH v2 -mm 7/9] netconsole: Use netif_running() in write_msg() Satyam Sharma
2007-07-13 13:48   ` KII Keiichi
2007-07-10  9:20 ` [PATCH v2 -mm 8/9] netconsole: Support multiple logging targets Satyam Sharma
2007-07-10 10:23   ` Duane Griffin
2007-07-10 22:17     ` Satyam Sharma
2007-07-11  4:29       ` Joel Becker
2007-07-11  6:24         ` Satyam Sharma
2007-07-13 13:49   ` KII Keiichi
2007-07-10  9:20 ` [PATCH v2 -mm 9/9] netconsole: Support dynamic reconfiguration using configfs Satyam Sharma
2007-07-12 10:04   ` Keiichi KII
2007-07-12 17:08     ` Satyam Sharma
2007-07-13 13:50   ` KII Keiichi [this message]
2007-07-11  9:59 ` [RFC][PATCH v2 -mm 0/9] netconsole: Multiple targets and dynamic reconfigurability Keiichi KII
2007-07-13 13:39 ` KII Keiichi
2007-07-13 17:30   ` Satyam Sharma

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=46978318.9080804@bx.jp.nec.com \
    --to=k-keiichi@bx.jp.nec.com \
    --cc=akpm@linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=joel.becker@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpm@selenic.com \
    --cc=netdev@vger.kernel.org \
    --cc=shemminger@linux-foundation.org \
    --cc=ssatyam@cse.iitk.ac.in \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.