original_kernel/Documentation
Satyam Sharma 0bcc181618 [NET] netconsole: Support dynamic reconfiguration using configfs
Based upon initial work by Keiichi Kii <k-keiichi@bx.jp.nec.com>.

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 <satyam@infradead.org>
Acked-by: Keiichi Kii <k-keiichi@bx.jp.nec.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-10-10 16:48:06 -07:00
..
ABI
DocBook [NET]: Make NAPI polling independent of struct net_device objects. 2007-10-10 16:47:45 -07:00
RCU
accounting Documentation: fix getdelays.c printf bug 2007-08-22 19:52:44 -07:00
aoe
arm
auxdisplay
blackfin
block
cdrom
connector
console
cpu-freq
cris
crypto async_tx: usage documentation and developer notes (v2) 2007-09-24 10:26:25 -07:00
device-mapper
driver-model
drivers/edac
dvb V4L/DVB (6016): get_dvb_firmware: update script for new location of tda10046 firmware 2007-08-20 12:18:03 -03:00
early-userspace
fault-injection
fb pvr2fb: update Documentation/fb/pvr2fb.txt 2007-08-11 15:47:40 -07:00
filesystems Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2 2007-09-11 17:23:16 -07:00
firmware_class
fujitsu/frv
hrtimer
hrtimers
hwmon
i2c i2c-piix4: Fix SB700 PCI device ID 2007-08-31 01:42:23 -07:00
i2o
i386 i386: Add warning in Documentation that zero-page is not a stable ABI 2007-08-11 15:58:14 -07:00
ia64
infiniband
input Fix CRLF line endings in Documentation/input/iforce-protocol.txt 2007-09-20 11:33:45 -07:00
ioctl
isdn
ja_JP
kbuild docs: note about select in kconfig-language.txt 2007-08-11 15:47:41 -07:00
kdump
ko_KR HOWTO: korean translation of Documentation/HOWTO 2007-08-22 14:35:35 -07:00
lguest lguest example launcher truncates block device file to 0 length on problems 2007-09-26 09:22:04 -07:00
m68k
mips
netlabel
networking [NET] netconsole: Support dynamic reconfiguration using configfs 2007-10-10 16:48:06 -07:00
parisc
pcmcia
power
powerpc
s390
scsi
serial
sh
sound
sparc
spi
sysctl
telephony
uml
usb
video4linux V4L/DVB (6095): ivtv: fix VIDIOC_G_ENC_INDEX flag handling 2007-09-14 13:13:40 -03:00
vm Document Linux Memory Policy 2007-08-22 19:52:44 -07:00
w1
watchdog [WATCHDOG] Add a 00-INDEX file to Documentation/watchdog/ 2007-08-16 20:28:36 +00:00
x86_64
zh_CN
00-INDEX Documentation/00-INDEX: notice ecryptfs.txt moved 2007-09-11 17:21:19 -07:00
BUG-HUNTING
Changes
CodingStyle
DMA-API.txt
DMA-ISA-LPC.txt
DMA-mapping.txt
HOWTO HOWTO: latest lxr url address changed 2007-08-22 14:35:35 -07:00
IO-mapping.txt
IPMI.txt
IRQ-affinity.txt
IRQ.txt
MSI-HOWTO.txt
ManagementStyle Fix this Paul Simon song's name 2007-09-13 08:11:10 -07:00
PCIEBUS-HOWTO.txt
README.DAC960
README.cycladesZ
SAK.txt
SM501.txt
SecurityBugs
SubmitChecklist
SubmittingDrivers
SubmittingPatches fix typo in Documentation/SubmittingPatches 2007-09-11 17:21:20 -07:00
VGA-softcursor.txt
applying-patches.txt
atomic_ops.txt
basic_profiling.txt
binfmt_misc.txt
cachetlb.txt
cciss.txt
cli-sti-removal.txt
computone.txt
cpqarray.txt
cpu-hotplug.txt
cpu-load.txt
cpusets.txt
cputopology.txt
dcdbas.txt
debugging-modules.txt
dell_rbu.txt
devices.txt Add /dev/oldmem to devices.txt documentation 2007-10-01 07:52:23 -07:00
digiepca.txt
dnotify.txt
dontdiff
eisa.txt
exception.txt
feature-removal-schedule.txt sk98lin: resurrect driver 2007-09-15 19:35:14 -04:00
floppy.txt
gpio.txt
hayes-esp.txt
highuid.txt
hpet.txt
hw_random.txt
ide.txt
initrd.txt
io_ordering.txt
ioctl-number.txt
iostats.txt
irqflags-tracing.txt
isapnp.txt
java.txt
kernel-doc-nano-HOWTO.txt
kernel-docs.txt
kernel-parameters.txt V4L/DVB (6173a): Documentation: Remove reference to dead "cpia_pp=" boot-time option 2007-09-17 19:54:30 -03:00
keys-request-key.txt
keys.txt
kobject.txt
kprobes.txt
kref.txt
laptop-mode.txt
ldm.txt
leds-class.txt
local_ops.txt
lockdep-design.txt
locks.txt
lockstat.txt lockstat: documentation 2007-10-07 16:28:43 -07:00
logo.gif
logo.txt
magic-number.txt
mandatory.txt
mca.txt
md.txt
memory-barriers.txt
memory-hotplug.txt Memory hotplug document 2007-08-11 15:47:41 -07:00
memory.txt
mono.txt
moxa-smartio
mtrr.txt
mutex-design.txt
nbd.txt
nfsroot.txt
nmi_watchdog.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt
paride.txt
parport-lowlevel.txt
parport.txt
pci-error-recovery.txt
pci.txt
pcieaer-howto.txt
pi-futex.txt
pm.txt
pnp.txt
power_supply_class.txt
preempt-locking.txt
prio_tree.txt
ramdisk.txt
rbtree.txt
riscom8.txt
robust-futex-ABI.txt
robust-futexes.txt
rocket.txt
rpc-cache.txt
rt-mutex-design.txt
rt-mutex.txt
rtc.txt
sched-arch.txt
sched-coding.txt
sched-design-CFS.txt
sched-design.txt
sched-domains.txt
sched-nice-design.txt
sched-stats.txt
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
sharedsubtree.txt
smart-config.txt
smp.txt
sony-laptop.txt
sonypi.txt
sparse.txt
specialix.txt
spinlocks.txt
stable_api_nonsense.txt
stable_kernel_rules.txt
stallion.txt
svga.txt
sx.txt
sysfs-rules.txt
sysrq.txt sysrq docs: document sequence that actually works 2007-10-07 16:28:43 -07:00
thinkpad-acpi.txt ACPI: thinkpad-acpi: bump up version to 0.16 2007-09-17 00:58:31 -04:00
tipar.txt
tty.txt
unicode.txt
unshare.txt
video-output.txt
volatile-considered-harmful.txt
voyager.txt
xterm-linux.xpm
zorro.txt

README.cycladesZ

The Cyclades-Z must have firmware loaded onto the card before it will
operate.  This operation should be performed during system startup,

The firmware, loader program and the latest device driver code are
available from Cyclades at
    ftp://ftp.cyclades.com/pub/cyclades/cyclades-z/linux/