#
48f1a492 |
| 14-Nov-2017 |
Warner Losh <imp@FreeBSD.org> |
Add two new tunables / sysctls to controll reboot after panic:
kern.poweroff_on_panic which, when enabled, instructs a system to power off on a panic instead of a reboot.
kern.powercyle_on_panic wh
Add two new tunables / sysctls to controll reboot after panic:
kern.poweroff_on_panic which, when enabled, instructs a system to power off on a panic instead of a reboot.
kern.powercyle_on_panic which, when enabled, instructs a system to power cycle, if possible, on a panic instead of a reboot.
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D13042
show more ...
|
#
c2c014f2 |
| 07-Nov-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r323559 through r325504.
|
#
5ff880dc |
| 26-Oct-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r325004
|
#
7d41b6f0 |
| 25-Oct-2017 |
Warner Losh <imp@FreeBSD.org> |
Handle RB_POWERCYCLE in the MI part of the kernel
Signal init with SIGWINCH in shutdown_nice for RB_POWERCYCLE.
Sponsored by: Netflix
|
#
64a16434 |
| 25-Oct-2017 |
Mark Johnston <markj@FreeBSD.org> |
Add support for compressed kernel dumps.
When using a kernel built with the GZIO config option, dumpon -z can be used to configure gzip compression using the in-kernel copy of zlib. This is useful o
Add support for compressed kernel dumps.
When using a kernel built with the GZIO config option, dumpon -z can be used to configure gzip compression using the in-kernel copy of zlib. This is useful on systems with large amounts of RAM, which require a correspondingly large dump device. Recovery of compressed dumps is also faster since fewer bytes need to be copied from the dump device.
Because we have no way of knowing the final size of a compressed dump until it is written, the kernel will always attempt to dump when compression is configured, regardless of the dump device size. If the dump is aborted because we run out of space, an error is reported on the console.
savecore(8) is modified to handle compressed dumps and save them to vmcore.<index>.gz, as it does when given the -z option.
A new rc.conf variable, dumpon_flags, is added. Its value is added to the boot-time dumpon(8) invocation that occurs when a dump device is configured in rc.conf.
Reviewed by: cem (earlier version) Discussed with: def, rgrimes Relnotes: yes Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D11723
show more ...
|
#
0a8f81bc |
| 22-Oct-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r324837
While here, diff reduce some of the changes in sys/boot by moving MK_COVERAGE=no to sys/boot/Makefile.inc .
|
#
46fcd1af |
| 18-Oct-2017 |
Mark Johnston <markj@FreeBSD.org> |
Move kernel dump offset tracking into MI code.
All of the kernel dump implementations keep track of the current offset ("dumplo") within the dump device. However, except for textdumps, they all writ
Move kernel dump offset tracking into MI code.
All of the kernel dump implementations keep track of the current offset ("dumplo") within the dump device. However, except for textdumps, they all write the dump sequentially, so we can reduce code duplication by having the MI code keep track of the current offset. The new dump_append() API can be used to write at the current offset.
This is needed to implement support for kernel dump compression in the MI kernel dump code.
Also simplify dump_encrypted_write() somewhat: use dump_write() instead of duplicating its bounds checks, and get rid of the redundant offset tracking.
Reviewed by: cem Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D11722
show more ...
|
Revision tags: release/10.4.0 |
|
#
1409e715 |
| 21-Aug-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r322398 through r322746.
|
#
a451e711 |
| 18-Aug-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r322675
|
#
e9666bf6 |
| 18-Aug-2017 |
Mark Johnston <markj@FreeBSD.org> |
Remove some unneeded subroutines for padding writes to dump devices.
Right now we only need to pad when writing kernel dump headers, so flatten three related subroutines into one. The encrypted kern
Remove some unneeded subroutines for padding writes to dump devices.
Right now we only need to pad when writing kernel dump headers, so flatten three related subroutines into one. The encrypted kernel dump code already writes out its key in a dumper.blocksize-sized block.
No functional change intended.
Reviewed by: cem, def Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D11647
show more ...
|
#
01938d36 |
| 18-Aug-2017 |
Mark Johnston <markj@FreeBSD.org> |
Rename mkdumpheader() and group EKCD functions in kern_shutdown.c.
This helps simplify the code in kern_shutdown.c and reduces the number of globally visible functions.
No functional change intende
Rename mkdumpheader() and group EKCD functions in kern_shutdown.c.
This helps simplify the code in kern_shutdown.c and reduces the number of globally visible functions.
No functional change intended.
Reviewed by: cem, def Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D11603
show more ...
|
#
50ef60da |
| 18-Aug-2017 |
Mark Johnston <markj@FreeBSD.org> |
Factor out duplicated kernel dump code into dump_{start,finish}().
dump_start() and dump_finish() are responsible for writing kernel dump headers, optionally writing the key when encryption is enabl
Factor out duplicated kernel dump code into dump_{start,finish}().
dump_start() and dump_finish() are responsible for writing kernel dump headers, optionally writing the key when encryption is enabled, and initializing the initial offset into the dump device.
Also remove the unused dump_pad(), and make some functions static now that they're only called from kern_shutdown.c.
No functional change intended.
Reviewed by: cem, def Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D11584
show more ...
|
#
531c2d7a |
| 24-Jul-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r320180
|
#
bca9d05f |
| 23-Jul-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r319973 through 321382.
|
Revision tags: release/11.1.0 |
|
#
2fef18f8 |
| 19-Jul-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r320994 through r321238.
|
#
ab384d75 |
| 15-Jul-2017 |
Mark Johnston <markj@FreeBSD.org> |
Revert r320918 and have mkdumpheader() handle version string truncation.
Reported by: jhb MFC after: 1 week
|
#
6cf0c1db |
| 06-Mar-2017 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Fix compilation of r314784 on 32 bit.
|
#
f2498877 |
| 06-Mar-2017 |
Gleb Smirnoff <glebius@FreeBSD.org> |
In panic() print current timestamp, which matches timestamp in the dump header. This will help to correlate console server logs with dump files, no matter how precise is clock on a console server ap
In panic() print current timestamp, which matches timestamp in the dump header. This will help to correlate console server logs with dump files, no matter how precise is clock on a console server appliance, and how buggy the appliance is.
show more ...
|
#
b4b4b530 |
| 28-Jan-2017 |
Baptiste Daroussin <bapt@FreeBSD.org> |
Revert crap accidentally committed
|
#
814aaaa7 |
| 28-Jan-2017 |
Baptiste Daroussin <bapt@FreeBSD.org> |
Revert r312923 a better approach will be taken later
|
#
8209d3fd |
| 15-Jan-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r312217
|
#
d370fd1c |
| 14-Jan-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r311940 through r312200.
|
#
42d33c1f |
| 14-Jan-2017 |
Mark Johnston <markj@FreeBSD.org> |
Stop the scheduler upon panic even in non-SMP kernels.
This is needed for kernel dumps to work, as the panicking thread will call into code that makes use of kernel locks.
Reported and tested by: E
Stop the scheduler upon panic even in non-SMP kernels.
This is needed for kernel dumps to work, as the panicking thread will call into code that makes use of kernel locks.
Reported and tested by: Eugene Grosbein MFC after: 1 week
show more ...
|
#
3ffd3530 |
| 16-Dec-2016 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r309817 through r310168.
|
#
480f31c2 |
| 10-Dec-2016 |
Konrad Witaszczyk <def@FreeBSD.org> |
Add support for encrypted kernel crash dumps.
Changes include modifications in kernel crash dump routines, dumpon(8) and savecore(8). A new tool called decryptcore(8) was added.
A new DIOCSKERNELDU
Add support for encrypted kernel crash dumps.
Changes include modifications in kernel crash dump routines, dumpon(8) and savecore(8). A new tool called decryptcore(8) was added.
A new DIOCSKERNELDUMP I/O control was added to send a kernel crash dump configuration in the diocskerneldump_arg structure to the kernel. The old DIOCSKERNELDUMP I/O control was renamed to DIOCSKERNELDUMP_FREEBSD11 for backward ABI compatibility.
dumpon(8) generates an one-time random symmetric key and encrypts it using an RSA public key in capability mode. Currently only AES-256-CBC is supported but EKCD was designed to implement support for other algorithms in the future. The public key is chosen using the -k flag. The dumpon rc(8) script can do this automatically during startup using the dumppubkey rc.conf(5) variable. Once the keys are calculated dumpon sends them to the kernel via DIOCSKERNELDUMP I/O control.
When the kernel receives the DIOCSKERNELDUMP I/O control it generates a random IV and sets up the key schedule for the specified algorithm. Each time the kernel tries to write a crash dump to the dump device, the IV is replaced by a SHA-256 hash of the previous value. This is intended to make a possible differential cryptanalysis harder since it is possible to write multiple crash dumps without reboot by repeating the following commands: # sysctl debug.kdb.enter=1 db> call doadump(0) db> continue # savecore
A kernel dump key consists of an algorithm identifier, an IV and an encrypted symmetric key. The kernel dump key size is included in a kernel dump header. The size is an unsigned 32-bit integer and it is aligned to a block size. The header structure has 512 bytes to match the block size so it was required to make a panic string 4 bytes shorter to add a new field to the header structure. If the kernel dump key size in the header is nonzero it is assumed that the kernel dump key is placed after the first header on the dump device and the core dump is encrypted.
Separate functions were implemented to write the kernel dump header and the kernel dump key as they need to be unencrypted. The dump_write function encrypts data if the kernel was compiled with the EKCD option. Encrypted kernel textdumps are not supported due to the way they are constructed which makes it impossible to use the CBC mode for encryption. It should be also noted that textdumps don't contain sensitive data by design as a user decides what information should be dumped.
savecore(8) writes the kernel dump key to a key.# file if its size in the header is nonzero. # is the number of the current core dump.
decryptcore(8) decrypts the core dump using a private RSA key and the kernel dump key. This is performed by a child process in capability mode. If the decryption was not successful the parent process removes a partially decrypted core dump.
Description on how to encrypt crash dumps was added to the decryptcore(8), dumpon(8), rc.conf(5) and savecore(8) manual pages.
EKCD was tested on amd64 using bhyve and i386, mipsel and sparc64 using QEMU. The feature still has to be tested on arm and arm64 as it wasn't possible to run FreeBSD due to the problems with QEMU emulation and lack of hardware.
Designed by: def, pjd Reviewed by: cem, oshogbo, pjd Partial review: delphij, emaste, jhb, kib Approved by: pjd (mentor) Differential Revision: https://reviews.freebsd.org/D4712
show more ...
|