linux/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 USB: add power/persist device attribute 2007-07-12 16:34:30 -07:00
DocBook [NET]: Make NAPI polling independent of struct net_device objects. 2007-10-10 16:47:45 -07:00
RCU Document the fact that RCU callbacks can run in parallel 2007-07-16 09:05:47 -07:00
accounting Documentation: fix getdelays.c printf bug 2007-08-22 19:52:44 -07:00
aoe
arm documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
auxdisplay documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
blackfin Blackfin arch: kgdb specific code 2007-06-29 16:35:17 +08:00
block [BLOCK] Get rid of request_queue_t typedef 2007-07-24 09:28:11 +02:00
cdrom remove the documentation for the legacy CDROM drivers 2007-07-16 14:39:04 +02:00
connector some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
console Typo: fro -> from 2007-07-19 10:04:47 -07:00
cpu-freq misc doc and kconfig typos 2007-05-09 08:58:15 +02:00
cris
crypto async_tx: usage documentation and developer notes (v2) 2007-09-24 10:26:25 -07:00
device-mapper dm: delay target 2007-05-09 12:30:47 -07:00
driver-model Documentation fix devres.txt: lib/iomap.c -> lib/devres.c 2007-07-18 15:49:49 -07:00
drivers/edac drivers/edac: add to edac docs 2007-07-19 10:04:57 -07:00
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 fault-injection: fix example scripts in documentation 2007-07-16 09:05:45 -07:00
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 sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes 2007-07-11 16:09:09 -07:00
fujitsu/frv misc doc and kconfig typos 2007-05-09 08:58:15 +02:00
hrtimer Add a flag to indicate deferrable timers in /proc/timer_stats 2007-07-16 09:05:45 -07:00
hrtimers [PATCH] hrtimers: move and add documentation 2007-02-16 08:13:58 -08:00
hwmon hwmon: (adm1031) Fix broken links in documentation 2007-07-30 21:13:43 -04:00
i2c i2c-piix4: Fix SB700 PCI device ID 2007-08-31 01:42:23 -07:00
i2o documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
i386 i386: Add warning in Documentation that zero-page is not a stable ABI 2007-08-11 15:58:14 -07:00
ia64 [IA64] prevent MCA when performing MMIO mmap to PCI config space 2007-07-11 11:34:49 -07:00
infiniband IB/umad: Clarify documentation of transaction ID 2007-04-24 21:30:38 -07:00
input Fix CRLF line endings in Documentation/input/iforce-protocol.txt 2007-09-20 11:33:45 -07:00
ioctl [PATCH] Document how to decode an IOCTL number 2006-12-10 09:55:40 -08:00
isdn documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
ja_JP HOWTO: sync Japanese HOWTO 2007-07-30 14:25:11 -07:00
kbuild docs: note about select in kconfig-language.txt 2007-08-11 15:47:41 -07:00
kdump [PATCH] PPC64 Kdump documentation update 2007-02-20 17:10:15 -08:00
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 more ACSI removal 2007-07-16 15:02:47 +02:00
mips [MIPS] Delete Documentation/mips/pci/pci.README 2007-05-11 14:28:30 +01:00
netlabel Fix occurrences of "the the " 2007-05-09 08:57:56 +02:00
networking [NET] netconsole: Support dynamic reconfiguration using configfs 2007-10-10 16:48:06 -07:00
parisc
pcmcia add new_id to PCMCIA drivers 2007-05-07 12:12:50 -07:00
power Documentation:reference notifiers.txt in freezing-of-tasks.txt 2007-07-21 17:49:16 -07:00
powerpc Add phy-connection-type to gianfar nodes 2007-07-18 18:29:37 -04:00
s390 [S390] cio: Update documentation. 2007-05-21 11:25:27 +02:00
scsi [SCSI] aacraid: add 51245, 51645 and 52245 adapters to documentation. 2007-07-14 19:09:28 -05:00
serial
sh sh: SH7722 clock framework support. 2007-05-07 02:11:56 +00:00
sound [ALSA] hda-intel: support for iMac 24'' released on 09/2006 2007-07-20 11:12:00 +02:00
sparc
spi spidev_test utility 2007-07-31 15:39:40 -07:00
sysctl handle kernelcore=: generic 2007-07-17 10:22:59 -07:00
telephony
uml Fix typos in /Documentation : 'U-Z' 2006-11-30 04:58:40 +01:00
usb USB: usb/dma doc updates 2007-07-12 16:34:42 -07:00
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 x86_64: mcelog tolerant level cleanup 2007-07-21 18:37:10 -07:00
zh_CN zh_CN/HOWTO: update URLs of git trees 2007-07-18 16:02:12 -07:00
00-INDEX Documentation/00-INDEX: notice ecryptfs.txt moved 2007-09-11 17:21:19 -07:00
BUG-HUNTING Documentation: How to use GDB to decode OOPSes 2007-06-01 08:18:28 -07:00
Changes [x86 setup] Document grub < 0.93 as broken 2007-08-02 13:50:43 -04:00
CodingStyle dev_vdbg() documentation 2007-07-18 15:49:50 -07:00
DMA-API.txt Doc: DMA-API update 2007-07-31 15:39:39 -07:00
DMA-ISA-LPC.txt Fix typos in /Documentation : 'T'' 2006-11-30 04:55:36 +01:00
DMA-mapping.txt PCI: remove pci_dac_dma_... APIs 2007-07-11 16:02:11 -07:00
HOWTO HOWTO: latest lxr url address changed 2007-08-22 14:35:35 -07:00
IO-mapping.txt
IPMI.txt [PATCH] IPMI: system interface hotplug 2006-12-07 08:39:47 -08:00
IRQ-affinity.txt
IRQ.txt
MSI-HOWTO.txt misc doc and kconfig typos 2007-05-09 08:58:15 +02:00
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 SM501: Add Documentation/SM501.txt 2007-06-24 08:59:11 -07:00
SecurityBugs
SubmitChecklist SubmitChecklist update, fix spelling error 2007-07-16 09:05:46 -07:00
SubmittingDrivers Documentation: Ask driver writers to provide PM support 2007-05-08 11:14:59 -07:00
SubmittingPatches fix typo in Documentation/SubmittingPatches 2007-09-11 17:21:20 -07:00
VGA-softcursor.txt
applying-patches.txt
atomic_ops.txt Documentation/atomic_ops.txt typo fix 2007-06-08 17:23:33 -07:00
basic_profiling.txt
binfmt_misc.txt documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
cachetlb.txt [POWERPC] unmap_vm_area becomes unmap_kernel_range for the public 2007-06-14 22:29:56 +10:00
cciss.txt Documentation: cciss: detecting failed drives 2007-05-08 11:15:10 -07:00
cli-sti-removal.txt
computone.txt
cpqarray.txt
cpu-hotplug.txt Add suspend-related notifications for CPU hotplug 2007-05-09 12:30:56 -07:00
cpu-load.txt [PATCH] Documentation: CPU load calculation description 2007-03-01 14:53:39 -08:00
cpusets.txt [PATCH] CPUSETS: add mems to basic usage documentation 2007-04-02 10:06:08 -07:00
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 update dontdiff file 2007-07-31 15:39:36 -07:00
eisa.txt Fix typos in /Documentation : 'U-Z' 2006-11-30 04:58:40 +01:00
exception.txt
feature-removal-schedule.txt sk98lin: resurrect driver 2007-09-15 19:35:14 -04:00
floppy.txt
gpio.txt minor gpio doc update 2007-07-24 12:24:59 -07:00
hayes-esp.txt
highuid.txt
hpet.txt hpet.txt: broken link fix 2007-07-31 15:39:42 -07:00
hw_random.txt
ide.txt ide: make legacy IDE VLB modules check for the "probe" kernel params (v2) 2007-03-03 17:48:55 +01:00
initrd.txt documentation: Documentation/initrd.txt 2007-05-23 20:14:14 -07:00
io_ordering.txt
ioctl-number.txt Remove the last few UMSDOS leftovers 2007-07-16 09:05:51 -07:00
iostats.txt [BLOCK] Get rid of request_queue_t typedef 2007-07-24 09:28:11 +02:00
irqflags-tracing.txt
isapnp.txt
java.txt documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
kernel-doc-nano-HOWTO.txt [PATCH] Discuss a couple common errors in kernel-doc usage. 2007-02-11 10:51:32 -08:00
kernel-docs.txt documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
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 Fix a typo in Documentation/keys.txt 2007-07-31 15:39:39 -07:00
kobject.txt kobject: update documentation 2007-07-30 14:25:13 -07:00
kprobes.txt jprobes: remove JPROBE_ENTRY() 2007-07-19 10:04:44 -07:00
kref.txt Fix wrong identifier name in Documentation/kref.txt 2007-05-11 19:07:14 +02:00
laptop-mode.txt laptop-mode URL update 2007-05-08 11:15:14 -07:00
ldm.txt LDM: Fix for Windows Vista dynamic disks 2007-05-21 09:58:40 -07:00
leds-class.txt
local_ops.txt [PATCH] local_t: Documentation 2007-02-11 10:51:32 -08:00
lockdep-design.txt
locks.txt
lockstat.txt lockstat: documentation 2007-10-07 16:28:43 -07:00
logo.gif
logo.txt
magic-number.txt Magic number prefix consistency change to Documentation/magic-number.txt 2007-05-09 08:58:18 +02:00
mandatory.txt
mca.txt
md.txt md: allow reshape_position for md arrays to be set via sysfs 2007-05-09 12:30:57 -07:00
memory-barriers.txt Documentation/memory-barriers.txt: various fixes 2007-05-23 20:14:15 -07:00
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 [PATCH] fix the defaults mentioned in Documentation/nfsroot.txt 2007-02-12 09:48:28 -08:00
nmi_watchdog.txt
nommu-mmap.txt
numastat.txt
oops-tracing.txt Report that kernel is tainted if there was an OOPS 2007-07-17 10:23:02 -07:00
paride.txt
parport-lowlevel.txt
parport.txt
pci-error-recovery.txt
pci.txt PCI: add pci_try_set_mwi 2007-07-11 16:02:11 -07:00
pcieaer-howto.txt documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
pi-futex.txt
pm.txt
pnp.txt misc doc and kconfig typos 2007-05-09 08:58:15 +02:00
power_supply_class.txt [BATTERY] Universal power supply class (was: battery class) 2007-07-10 11:25:44 +01:00
preempt-locking.txt
prio_tree.txt
ramdisk.txt
rbtree.txt [PATCH] Documentation/rbtree.txt 2007-02-11 10:51:35 -08:00
riscom8.txt
robust-futex-ABI.txt Fix typos in /Documentation : 'U-Z' 2006-11-30 04:58:40 +01:00
robust-futexes.txt Fix typos in /Documentation : Misc 2006-11-30 05:21:10 +01:00
rocket.txt
rpc-cache.txt
rt-mutex-design.txt
rt-mutex.txt
rtc.txt rtc: make example code jump to done instead of return when ioctl not supported 2007-07-17 10:23:08 -07:00
sched-arch.txt
sched-coding.txt
sched-design-CFS.txt sched: mention CONFIG_SCHED_DEBUG in documentation 2007-08-09 11:16:46 +02:00
sched-design.txt
sched-domains.txt
sched-nice-design.txt sched: document nice levels 2007-08-09 11:16:46 +02:00
sched-stats.txt [PATCH] sched: update Documentation/sched-stats.txt 2007-07-26 13:40:43 +02:00
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
sharedsubtree.txt Fix typos in /Documentation : 'T'' 2006-11-30 04:55:36 +01:00
smart-config.txt
smp.txt
sony-laptop.txt sony-laptop: update documentation and Kconfig help 2007-04-10 16:01:19 -04:00
sonypi.txt documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
sparse.txt [PATCH] update 'getting sparse' info. 2007-03-08 16:47:58 -08:00
specialix.txt
spinlocks.txt docs: static initialization of spinlocks is OK 2007-07-16 09:05:52 -07:00
stable_api_nonsense.txt stable_api_nonsense.txt: Disambiguate the use of "this" by using "that" to refer to the syscall interface 2007-07-30 14:25:12 -07:00
stable_kernel_rules.txt Fix typos in /Documentation : Misc 2006-11-30 05:21:10 +01:00
stallion.txt
svga.txt
sx.txt
sysfs-rules.txt Fix Doc/sysfs-rules typos 2007-07-30 14:25:12 -07:00
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 tty: Clarify documentation of ->write() 2007-05-08 11:14:59 -07:00
unicode.txt
unshare.txt
video-output.txt output: Add output class document 2006-12-20 01:46:58 -05:00
volatile-considered-harmful.txt "volatile considered harmful" 2007-06-24 08:59:11 -07:00
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/