freebsd-nq/sys/kern
Poul-Henning Kamp 81661c94b6 Here follows the new kernel dumping infrastructure.
Caveats:

The new savecore program is not complete in the sense that it emulates
enough of the old savecores features to do the job, but implements none
of the options yet.

I would appreciate if a userland hacker could help me out getting savecore
to do what we want it to do from a users point of view, compression,
email-notification, space reservation etc etc.  (send me email if
you are interested).

Currently, savecore will scan all devices marked as "swap" or "dump" in
/etc/fstab _or_ any devices specified on the command-line.

All architectures but i386 lack an implementation of dumpsys(), but
looking at the i386 version it should be trivial for anybody familiar
with the platform(s) to provide this function.

Documentation is quite sparse at this time, more to come.

Details:

ATA and SCSI drivers should work as the dump formatting code has been
removed.  The IDA, TWE and AAC have not yet been converted.

Dumpon now opens the device and uses ioctl(DIOCGKERNELDUMP) to set
the device as dumpdev.  To implement the "off" argument, /dev/null
is used as the device.

Savecore will fail if handed any options since they are not (yet)
implemented.  All devices marked "dump" or "swap" in /etc/fstab
will be scanned and dumps found will be saved to diskfiles
named from the MD5 hash of the header record.  The header record
is dumped in readable format in the .info file.  The kernel
is not saved.  Only complete dumps will be saved.

All maintainer rights for this code are disclaimed: feel free to
improve and extend.

Sponsored by:   DARPA, NAI Labs
2002-03-31 22:37:00 +00:00
..
bus_if.m "Fixed" -Wshadow warnings by changing the name of some function parameters 2002-03-27 04:04:17 +00:00
device_if.m
genassym.sh Allow one to specify the AWK used in the environment(commandline). 2002-02-11 03:54:30 +00:00
imgact_aout.c Remove __P. 2002-03-19 21:25:46 +00:00
imgact_elf.c Remove __P. 2002-03-19 21:25:46 +00:00
imgact_gzip.c Modernize my email address. 2002-03-25 13:52:45 +00:00
imgact_shell.c Return a more meaningful errno when the length of the interpreter 2001-11-28 03:26:58 +00:00
inflate.c Modernize my email address. 2002-03-25 13:52:45 +00:00
init_main.c The description of fd_mtx is "filedesc structure." 2002-03-29 11:26:05 +00:00
init_sysent.c Part II: update various mechanically generated files to allow for new 2002-03-05 16:13:01 +00:00
kern_acct.c Remove __P. 2002-03-19 21:25:46 +00:00
kern_acl.c Fix a gcc-3.1+ warning. 2002-03-19 11:02:06 +00:00
kern_cap.c - Attempt to help declutter kern. sysctl by moving security out from 2002-01-16 06:55:30 +00:00
kern_clock.c Remove __P. 2002-03-19 21:25:46 +00:00
kern_condvar.c Nuke CV_DEBUG in favour of INVARIANTS. 2002-03-30 03:52:52 +00:00
kern_conf.c Make the proposed name arg to dev_stdclone() const. 2002-03-10 10:50:05 +00:00
kern_descrip.c The description of fd_mtx is "filedesc structure." 2002-03-29 11:26:05 +00:00
kern_environment.c Fix an inverted test csae. Success of getenv() is determined by a return 2001-10-25 17:22:31 +00:00
kern_event.c Remove references to vm_zone.h and switch over to the new uma API. 2002-03-20 04:09:59 +00:00
kern_exec.c Add a local proc *p in exec_new_vmspace() to avoid repeated dereferencing 2002-03-31 00:05:30 +00:00
kern_exit.c Close some holes with p->p_args by NULL'ing out the p->p_args pointer 2002-03-31 10:33:12 +00:00
kern_fork.c Make the reference counting of 'struct pargs' SMP safe. 2002-03-27 21:36:18 +00:00
kern_idle.c Pre-KSE/M3 commit. 2002-02-07 20:58:47 +00:00
kern_intr.c Remove __P. 2002-03-19 21:25:46 +00:00
kern_jail.c Make getcredhostname() take a buffer and the buffer's size 2002-02-27 16:43:20 +00:00
kern_kthread.c Fix a couple of style bugs introduced (or touched by) previous commit. 2002-02-07 23:06:26 +00:00
kern_ktr.c Read KTR_CPU into a temporary variable so that we use a consistent value 2002-03-08 18:55:59 +00:00
kern_ktrace.c Remove __P. 2002-03-19 21:25:46 +00:00
kern_linker.c - Recommit the securelevel_gt() calls removed by commits rev. 1.84 of 2002-03-25 18:26:34 +00:00
kern_lock.c Change wmesg to const char * instead of char * 2002-03-05 17:45:12 +00:00
kern_lockf.c Remove __P. 2002-03-19 21:25:46 +00:00
kern_malloc.c Remove __P. 2002-03-19 21:25:46 +00:00
kern_mib.c Simple p_ucred -> td_ucred changes to start using the per-thread ucred 2002-02-27 18:32:23 +00:00
kern_module.c - Lock down the ``module'' structure by adding an SX lock that is used by 2002-03-18 07:45:30 +00:00
kern_mtxpool.c Rename SI_SUB_MUTEX to SI_SUB_MTX_POOL to make the name at all accurate. 2002-03-13 23:48:08 +00:00
kern_mutex.c Add a new mtx_init option "MTX_DUPOK" which allows duplicate acquires of locks 2002-03-27 09:23:41 +00:00
kern_ntptime.c Revise timercounters to use binary fixed point format internally. 2002-02-07 21:21:55 +00:00
kern_physio.c
kern_poll.c Make the DEVICE_POLLING code compile with -Werror and in LINT 2002-03-09 08:02:52 +00:00
kern_proc.c Close some holes with p->p_args by NULL'ing out the p->p_args pointer 2002-03-31 10:33:12 +00:00
kern_prot.c Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
kern_random.c Load the current timecounter into tc. The timecounter global can change 2002-02-18 19:49:30 +00:00
kern_resource.c Remove __P. 2002-03-19 21:25:46 +00:00
kern_sema.c Repeat after me -- "Use of ANSI string concatenation can be bad." 2001-12-10 05:40:12 +00:00
kern_shutdown.c Here follows the new kernel dumping infrastructure. 2002-03-31 22:37:00 +00:00
kern_sig.c Fixed some style bugs in the removal of __P(()). The main ones were 2002-03-24 05:09:11 +00:00
kern_subr.c In a threaded world, differnt priorirites become properties of 2002-02-11 20:37:54 +00:00
kern_switch.c Compromise for critical*()/cpu_critical*() recommit. Cleanup the interrupt 2002-03-27 05:39:23 +00:00
kern_sx.c Invert the test of sx_xholder for SX_LOCKED. We need to warn if a 2002-01-18 09:21:15 +00:00
kern_synch.c Remove __P. 2002-03-19 21:25:46 +00:00
kern_syscalls.c - Lock down the ``module'' structure by adding an SX lock that is used by 2002-03-18 07:45:30 +00:00
kern_sysctl.c In sysctl, req->td is believed always to be non-NULL, so there's no need 2002-03-22 14:58:27 +00:00
kern_tc.c Get the magnitude of the NTP adjustment right. 2002-03-28 16:02:44 +00:00
kern_time.c Remove __P. 2002-03-19 21:25:46 +00:00
kern_timeout.c Remove __P. 2002-03-19 21:25:46 +00:00
kern_xxx.c KSE Milestone 2 2001-09-12 08:38:13 +00:00
ksched.c In a threaded world, differnt priorirites become properties of 2002-02-11 20:37:54 +00:00
link_aout.c Simple p_ucred -> td_ucred changes to start using the per-thread ucred 2002-02-27 18:32:23 +00:00
link_elf_obj.c Simple p_ucred -> td_ucred changes to start using the per-thread ucred 2002-02-27 18:32:23 +00:00
link_elf.c Simple p_ucred -> td_ucred changes to start using the per-thread ucred 2002-02-27 18:32:23 +00:00
linker_if.m Add the sysctl "kern.function_list", which currently exports all 2001-10-30 15:21:45 +00:00
Make.tags.inc Don't hardcode /sys when making tags, instead use ${.CURDIR}/.. this 2002-02-27 10:07:15 +00:00
Makefile Don't generate <sys/syscalls-hide.h> it has never had any users anywhere in 2001-10-13 09:17:49 +00:00
makeobjops.pl Switch warnings and strict back on again in a way that's compatible 2001-11-16 02:02:42 +00:00
makesyscalls.sh don't generate files with __P. 2002-03-19 20:48:32 +00:00
md4c.c Import kernel part of SMB/CIFS requester. 2001-04-10 07:59:06 +00:00
md5c.c
p1003_1b.c Pre-KSE/M3 commit. 2002-02-07 20:58:47 +00:00
posix4_mib.c
subr_acl_posix1e.c Fix a gcc-3.1+ warning. 2002-03-19 11:02:06 +00:00
subr_autoconf.c Remove __P. 2002-03-19 21:25:46 +00:00
subr_blist.c With Alfred's permission, remove vm_mtx in favor of a fine-grained approach 2001-07-04 16:20:28 +00:00
subr_bus.c Add resource_list_add_next() which returns the RID for the resource added. 2002-03-29 06:42:54 +00:00
subr_clist.c Remove __P. 2002-03-19 21:25:46 +00:00
subr_devstat.c GC: BIO_ORDERED, various infrastructure dealing with BIO_ORDERED. 2002-02-22 09:26:35 +00:00
subr_disk.c Here follows the new kernel dumping infrastructure. 2002-03-31 22:37:00 +00:00
subr_disklabel.c Fixed handling of short reads in readdisklabel() and writedisklabel(). 2002-03-30 16:02:43 +00:00
subr_diskmbr.c Remove __P. 2002-03-19 21:25:46 +00:00
subr_diskslice.c Implement the two "GEOM" ioctls DIOCGSECTORSIZE and DIOCGMEDIASIZE for 2002-03-31 21:17:12 +00:00
subr_eventhandler.c KSE Milestone 2 2001-09-12 08:38:13 +00:00
subr_hints.c Fix a fatal type mismatch (char *static_env; vs char static_env[]). 2001-09-17 21:27:41 +00:00
subr_kobj.c Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
subr_log.c Use the passed in thread to selrecord() instead of curthread. 2001-09-21 22:46:54 +00:00
subr_mbuf.c Fix bug in mb_alloc that made systems configured with 2002-03-03 22:10:04 +00:00
subr_mchain.c Add support for iovcnt greater than 1. This should resolve problems 2002-02-21 16:23:38 +00:00
subr_module.c Preceed/preceeding are not english words. Use precede and preceding. 2001-02-18 10:43:53 +00:00
subr_param.c Unconditionally limit maxproc so that it is not possible 2002-03-07 04:50:36 +00:00
subr_pcpu.c Add a per-cpu variable, cpumask, the preshifted equivalent of 1 << cpuid. 2002-01-05 09:35:50 +00:00
subr_power.c Add generalized power profile code. 2002-03-04 18:46:13 +00:00
subr_prf.c Remove __P. 2002-03-19 21:25:46 +00:00
subr_prof.c Remove __P. 2002-03-19 21:25:46 +00:00
subr_rman.c Add a rman_reserve_resource_bound() function that takes an additional 2001-12-21 21:40:55 +00:00
subr_sbuf.c Fix warnings on gcc-3.1+ where __func__ is a const char * instead of a 2002-03-19 10:56:46 +00:00
subr_scanf.c
subr_smp.c - Remove a semi-colon from after SYSINIT that was introduced in rev. 1.163. 2002-03-20 14:46:38 +00:00
subr_taskqueue.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
subr_trap.c Style fixes purposefully left out of last commit. I checked the kse tree 2002-03-29 16:45:03 +00:00
subr_turnstile.c Add a new mtx_init option "MTX_DUPOK" which allows duplicate acquires of locks 2002-03-27 09:23:41 +00:00
subr_witness.c Add a new mtx_init option "MTX_DUPOK" which allows duplicate acquires of locks 2002-03-27 09:23:41 +00:00
subr_xxx.c Here follows the new kernel dumping infrastructure. 2002-03-31 22:37:00 +00:00
sys_generic.c Remove __P. 2002-03-19 21:25:46 +00:00
sys_pipe.c Allow resursion on the pipe mutex because filt_piperead() and filt_pipewrite() 2002-03-27 21:47:50 +00:00
sys_process.c Convert all pmap_kenter/pmap_kremove pairs in MI code to use pmap_qenter/ 2002-03-17 00:56:41 +00:00
sys_socket.c Giant pushdown for read/write/pread/pwrite syscalls. 2002-03-15 08:03:46 +00:00
syscalls.c Part II: update various mechanically generated files to allow for new 2002-03-05 16:13:01 +00:00
syscalls.master Reserve system call numbers for the MAC framework. This will prevent 2002-03-05 16:11:11 +00:00
sysv_ipc.c Simple p_ucred -> td_ucred changes to start using the per-thread ucred 2002-02-27 18:32:23 +00:00
sysv_msg.c Remove __P. 2002-03-19 21:25:46 +00:00
sysv_sem.c Remove __P. 2002-03-19 21:25:46 +00:00
sysv_shm.c Remove __P. 2002-03-19 21:25:46 +00:00
tty_compat.c Fixed some style bugs in the removal of __P(()). The main ones were 2002-03-24 05:09:11 +00:00
tty_conf.c KSE Milestone 2 2001-09-12 08:38:13 +00:00
tty_cons.c Simple p_ucred -> td_ucred changes to start using the per-thread ucred 2002-02-27 18:32:23 +00:00
tty_pty.c Remove __P. 2002-03-19 21:25:46 +00:00
tty_subr.c Remove __P. 2002-03-19 21:25:46 +00:00
tty_tty.c Remove __P. 2002-03-19 21:25:46 +00:00
tty.c Remove __P. 2002-03-19 21:25:46 +00:00
uipc_accf.c Revert the last bits of my bogus move of NMBCLUSTERS 2001-06-01 21:47:34 +00:00
uipc_domain.c Add calls to uma_zone_set_max() to restore previously enforced limits. 2002-03-20 05:30:58 +00:00
uipc_mbuf2.c Remove __P. 2002-03-19 21:25:46 +00:00
uipc_mbuf.c Get rid of the twisted MFREE() macro entirely. 2002-02-05 02:00:56 +00:00
uipc_proto.c Implement a LOCAL_PEERCRED socket option which returns a 2001-08-17 22:01:18 +00:00
uipc_sockbuf.c Backout part of my previous commit; I was wrong about vm_zone's handling of 2002-03-20 04:39:32 +00:00
uipc_socket2.c Backout part of my previous commit; I was wrong about vm_zone's handling of 2002-03-20 04:39:32 +00:00
uipc_socket.c UMA permited us to utilize the 'waitok' flag to soalloc. 2002-03-20 21:23:26 +00:00
uipc_syscalls.c Fixed some style bugs in the removal of __P(()). The main ones were 2002-03-24 05:09:11 +00:00
uipc_usrreq.c Fixed some style bugs in the removal of __P(()). The main ones were 2002-03-24 05:09:11 +00:00
vfs_acl.c Fix a gcc-3.1+ warning. 2002-03-19 11:02:06 +00:00
vfs_aio.c Keep the reference to the file acquired in _aio_aqueue() until the operation 2002-03-31 20:17:56 +00:00
vfs_bio.c Remove __P. 2002-03-19 21:25:46 +00:00
vfs_cache.c Remove __P. 2002-03-19 21:25:46 +00:00
vfs_cluster.c Remove __P. 2002-03-19 21:25:46 +00:00
vfs_conf.c Centralize the "bootdev" and "dumpdev" variables. They are still pretty 2002-03-31 07:15:28 +00:00
vfs_default.c Remove references to vm_zone.h and switch over to the new uma API. 2002-03-20 04:09:59 +00:00
vfs_export.c Fixed some style bugs in the removal of __P(()). The main ones were 2002-03-24 05:09:11 +00:00
vfs_extattr.c - Properly sync vfs_nmount() with changes that have be already done 2002-03-28 13:47:32 +00:00
vfs_init.c Commit work-around for panics when mounting FS's that are auto-loaded as 2002-03-25 21:30:50 +00:00
vfs_lookup.c Remove references to vm_zone.h and switch over to the new uma API. 2002-03-20 04:09:59 +00:00
vfs_mount.c Centralize the "bootdev" and "dumpdev" variables. They are still pretty 2002-03-31 07:15:28 +00:00
vfs_subr.c As discussed in -arch, add the new nmount(2) system call and the 2002-03-26 15:33:44 +00:00
vfs_syscalls.c - Properly sync vfs_nmount() with changes that have be already done 2002-03-28 13:47:32 +00:00
vfs_vnops.c Added used include of <sys/sx.h>. Don't depend on namespace pollution in 2002-03-26 01:09:51 +00:00
vnode_if.pl Throw the $FreeBSD$s back in, properly escaping them. 2002-01-04 05:27:47 +00:00
vnode_if.src Introduce the new 64-bit size disk block, daddr64_t. Change 2002-03-15 18:49:47 +00:00