#
6b6e2954 |
| 06-May-2019 |
Conrad Meyer <cem@FreeBSD.org> |
List-ify kernel dump device configuration
Allow users to specify multiple dump configurations in a prioritized list. This enables fallback to secondary device(s) if primary dump fails. E.g., one mi
List-ify kernel dump device configuration
Allow users to specify multiple dump configurations in a prioritized list. This enables fallback to secondary device(s) if primary dump fails. E.g., one might configure a preference for netdump, but fallback to disk dump as a second choice if netdump is unavailable.
This change does not list-ify netdump configuration, which is tracked separately from ordinary disk dumps internally; only one netdump configuration can be made at a time, for now. It also does not implement IPv6 netdump.
savecore(8) is already capable of scanning and iterating multiple devices from /etc/fstab or passed on the command line.
This change doesn't update the rc or loader variables 'dumpdev' in any way; it can still be set to configure a single dump device, and rc.d/savecore still uses it as a single device. Only dumpon(8) is updated to be able to configure the more complicated configurations for now.
As part of revving the ABI, unify netdump and disk dump configuration ioctl / structure, and leave room for ipv6 netdump as a future possibility. Backwards-compatibility ioctls are added to smooth ABI transition, especially for developers who may not keep kernel and userspace perfectly synced.
Reviewed by: markj, scottl (earlier version) Relnotes: maybe Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D19996
show more ...
|
Revision tags: release/12.0.0 |
|
#
2a22df74 |
| 04-Nov-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r339813 through r340125.
|
#
b317cfd4 |
| 01-Nov-2018 |
John Baldwin <jhb@FreeBSD.org> |
Don't enter DDB for fatal traps before panic by default.
Add a new 'debugger_on_trap' knob separate from 'debugger_on_panic' and make the calls to kdb_trap() in MD fatal trap handlers prior to calli
Don't enter DDB for fatal traps before panic by default.
Add a new 'debugger_on_trap' knob separate from 'debugger_on_panic' and make the calls to kdb_trap() in MD fatal trap handlers prior to calling panic() conditional on this new knob instead of 'debugger_on_panic'. Disable the new knob by default. Developers who wish to recover from a fatal fault by adjusting saved register state and retrying the faulting instruction can still do so by enabling the new knob. However, for the more common case this makes the user experience for panics due to a fatal fault match the user experience for other panics, e.g. 'c' in DDB will generate a crash dump and reboot the system rather than being stuck in an infinite loop of fatal fault messages and DDB prompts.
Reviewed by: kib, avg MFC after: 2 months Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D17768
show more ...
|
#
7847e041 |
| 24-Aug-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r338026 through r338297, and resolve conflicts.
|
#
4ca8c1ef |
| 23-Aug-2018 |
Conrad Meyer <cem@FreeBSD.org> |
KASSERT: Make runtime optionality optional
Add an option, KASSERT_PANIC_OPTIONAL, that allows runtime KASSERT() behavior changes. When this option is not enabled, code that allows KASSERTs to becom
KASSERT: Make runtime optionality optional
Add an option, KASSERT_PANIC_OPTIONAL, that allows runtime KASSERT() behavior changes. When this option is not enabled, code that allows KASSERTs to become optional is not enabled, and all violated assertions cause termination.
The runtime KASSERT behavior was added in r243980.
One important distinction here is that panic has __dead2 ("attribute((noreturn))"), while kassert_panic does not. Static analyzers like Coverity understand __dead2. Without it, KASSERTs go misunderstood, resulting in many false positives that result from violation of program invariants.
Reviewed by: jhb, jtl, np, vangyzen Relnotes: yes Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D16835
show more ...
|
Revision tags: release/11.2.0 |
|
#
11d4f748 |
| 19-May-2018 |
Matt Macy <mmacy@FreeBSD.org> |
remove unused variable
|
#
bd92e6b6 |
| 06-May-2018 |
Mark Johnston <markj@FreeBSD.org> |
Refactor some of the MI kernel dump code in preparation for netdump.
- Add clear_dumper() to complement set_dumper(). - Drain netdump's preallocated mbuf pool when clearing the dumper. - Don't do bo
Refactor some of the MI kernel dump code in preparation for netdump.
- Add clear_dumper() to complement set_dumper(). - Drain netdump's preallocated mbuf pool when clearing the dumper. - Don't do bounds checking for dumpers with mediasize 0. - Add dumper callbacks for initialization for writing out headers.
Reviewed by: sbruno MFC after: 1 month Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D15252
show more ...
|
#
65df1248 |
| 24-Apr-2018 |
Conrad Meyer <cem@FreeBSD.org> |
Do not totally silence suppressed secondary kasserts unless debug.kassert.do_log is disabled
To totally silence and ignore secondary kassert violations after a primary panic, set debug.kassert.do_lo
Do not totally silence suppressed secondary kasserts unless debug.kassert.do_log is disabled
To totally silence and ignore secondary kassert violations after a primary panic, set debug.kassert.do_log=0 and debug.kassert.suppress_in_panic=1.
Additional assertion warnings shouldn't block core dump and may alert the developer to another erroneous condition. Secondary stack traces may be printed, identically to the unsuppressed case where panic() is reentered -- controlled via debug.trace_all_panics.
Sponsored by: Dell EMC Isilon
show more ...
|
#
07aa6ea6 |
| 24-Apr-2018 |
Conrad Meyer <cem@FreeBSD.org> |
Fix debug.kassert.do_log description text
This has been an (incorrect) copy-paste duplicate of debug.kassert.warn_only since it was originally committed in r243980.
Sponsored by: Dell EMC Isilon
|
#
ad1fc315 |
| 24-Apr-2018 |
Conrad Meyer <cem@FreeBSD.org> |
panic: Optionally, trace secondary panics
To diagnose and fix secondary panics, it is useful to have a stack trace. When panic tracing is enabled, optionally trace secondary panics as well.
The opt
panic: Optionally, trace secondary panics
To diagnose and fix secondary panics, it is useful to have a stack trace. When panic tracing is enabled, optionally trace secondary panics as well.
The option is configured with the tunable/sysctl debug.trace_all_panics.
(The original concern that inspired only tracing the primary panic was likely that the secondary trace may scroll the original panic message or trace off the screen. This is less of a concern for serial consoles with logging. Not everything has a serial console, though, so the behavior is optional.)
Discussed with: jhb Sponsored by: Dell EMC Isilon
show more ...
|
#
18959b69 |
| 24-Apr-2018 |
Jonathan T. Looney <jtl@FreeBSD.org> |
Update r332860 by changing the default from suppressing post-panic assertions to not suppressing post-panic assertions.
There are some post-panic assertions that are valuable and we shouldn't defaul
Update r332860 by changing the default from suppressing post-panic assertions to not suppressing post-panic assertions.
There are some post-panic assertions that are valuable and we shouldn't default to disabling them. However, when a user trips over them, the user can still adjust the tunable/sysctl to suppress them temporarily to get conduct troubleshooting (e.g. get a core dump).
Reported by: cem, markj
show more ...
|
#
44b71282 |
| 21-Apr-2018 |
Jonathan T. Looney <jtl@FreeBSD.org> |
When running with INVARIANTS, the kernel contains extra checks. However, these assumptions may not hold true once we've panic'd. Therefore, the checks hold less value after a panic. Additionally, i
When running with INVARIANTS, the kernel contains extra checks. However, these assumptions may not hold true once we've panic'd. Therefore, the checks hold less value after a panic. Additionally, if one of the checks fails while we are already panic'd, this creates a double-panic which can interfere with debugging the original panic.
Therefore, this commit allows an administrator to suppress a response to KASSERT checks after a panic by setting a tunable/sysctl. The tunable/sysctl (debug.kassert.suppress_in_panic) defaults to being enabled.
Reviewed by: kib Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D12920
show more ...
|
#
c3982007 |
| 22-Mar-2018 |
Konstantin Belousov <kib@FreeBSD.org> |
Do not send signals to init directly from shutdown_nice(9), do it from the task context.
shutdown_nice() is used from the fast interrupt handlers, mostly for console drivers, where we cannot lock bl
Do not send signals to init directly from shutdown_nice(9), do it from the task context.
shutdown_nice() is used from the fast interrupt handlers, mostly for console drivers, where we cannot lock blockable locks. Schedule the task in the fast queue to send the signal from the proper context.
Reviewed by: imp Discussed with: bde Sponsored by: The FreeBSD Foundation MFC after: 1 week
show more ...
|
#
f0d847af |
| 22-Mar-2018 |
Warner Losh <imp@FreeBSD.org> |
Drop any recursed taking of Giant once and for all at the top of kern_reboot(). The shutdown path is now safe to run without Giant.
Discussed with: kib@ Sponsored by: Netflix
|
#
d5292812 |
| 21-Mar-2018 |
Warner Losh <imp@FreeBSD.org> |
Remove Giant from init creation and vfs_mountroot.
Sponsored by: Netflix Discussed with: kib@, mckusick@ Differential Review: https://reviews.freebsd.org/D14712
|
#
bde3b1e1 |
| 08-Mar-2018 |
Mark Johnston <markj@FreeBSD.org> |
Return E2BIG if we run out of space writing a compressed kernel dump.
ENOSPC causes the MD kernel dump code to retry the dump, but this is undesirable in the case where we legitimately ran out of sp
Return E2BIG if we run out of space writing a compressed kernel dump.
ENOSPC causes the MD kernel dump code to retry the dump, but this is undesirable in the case where we legitimately ran out of space.
show more ...
|
#
6026dcd7 |
| 13-Feb-2018 |
Mark Johnston <markj@FreeBSD.org> |
Add support for zstd-compressed user and kernel core dumps.
This works similarly to the existing gzip compression support, but zstd is typically faster and gives better compression ratios.
Support
Add support for zstd-compressed user and kernel core dumps.
This works similarly to the existing gzip compression support, but zstd is typically faster and gives better compression ratios.
Support for this functionality must be configured by adding ZSTDIO to one's kernel configuration file. dumpon(8)'s new -Z option is used to configure zstd compression for kernel dumps. savecore(8) now recognizes and saves zstd-compressed kernel dumps with a .zst extension.
Submitted by: cem (original version) Relnotes: yes Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D13101, https://reviews.freebsd.org/D13633
show more ...
|
#
c79126f2 |
| 12-Jan-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r327624 through r327885.
|
#
78f57a9c |
| 08-Jan-2018 |
Mark Johnston <markj@FreeBSD.org> |
Generalize the gzio API.
We currently use a set of subroutines in kern_gzio.c to perform compression of user and kernel core dumps. In the interest of adding support for other compression algorithms
Generalize the gzio API.
We currently use a set of subroutines in kern_gzio.c to perform compression of user and kernel core dumps. In the interest of adding support for other compression algorithms (zstd) in this role without complicating the API consumers, add a simple compressor API which can be used to select an algorithm.
Also change the (non-default) GZIO kernel option to not enable compressed user cores by default. It's not clear that such a default would be desirable with support for multiple algorithms implemented, and it's inconsistent in that it isn't applied to kernel dumps.
Reviewed by: cem Differential Revision: https://reviews.freebsd.org/D13632
show more ...
|
#
54b4b13c |
| 24-Dec-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r326936 through r327149.
|
#
4daa09f3 |
| 23-Dec-2017 |
Alexander Kabaev <kan@FreeBSD.org> |
Remove dead store to local variable.
|
#
efe67753 |
| 26-Nov-2017 |
Nathan Whitehorn <nwhitehorn@FreeBSD.org> |
Remove some, but not all, assumptions that the BSP is CPU 0 and that CPUs are numbered densely from there to n_cpus.
MFC after: 1 month
|
#
82725ba9 |
| 23-Nov-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r325999 through r326131.
|
#
51369649 |
| 20-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 3-Clause license.
The Software Package Data Exchange (SPDX) group provides a specification to make it easier for
sys: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 3-Clause license.
The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point.
show more ...
|
#
55b1c6e7 |
| 15-Nov-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r325663 through r325841.
|