diff options
| author | Johannes Berg <johannes.berg@intel.com> | 2014-09-12 03:01:56 -0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-09-24 01:53:15 -0400 |
| commit | 833c95456a70826d1384883b73fd23aff24d366f (patch) | |
| tree | be9235e0df06fdc85deb13d1193b6120ed7196bd /drivers/base/Kconfig | |
| parent | 00e262fd8744678262a0f662f1b5d45fc1f52e10 (diff) | |
device coredump: add new device coredump class
Many devices run firmware and/or complex hardware, and most of that
can have bugs. When it misbehaves, however, it is often much harder
to debug than software running on the host.
Introduce a "device coredump" mechanism to allow dumping internal
device/firmware state through a generalized mechanism. As devices
are different and information needed can vary accordingly, this
doesn't prescribe a file format - it just provides mechanism to
get data to be able to capture it in a generalized way (e.g. in
distributions.)
The dumped data will be readable in sysfs in the virtual device's
data file under /sys/class/devcoredump/devcd*/. Writing to it will
free the data and remove the device, as does a 5-minute timeout.
Note that generalized capturing of such data may result in privacy
issues, so users generally need to be involved. In order to allow
certain users/system integrators/... to disable the feature at all,
introduce a Kconfig option to override the drivers that would like
to have the feature.
For now, this provides two ways of dumping data:
1) with a vmalloc'ed area, that is then given to the subsystem
and freed after retrieval or timeout
2) with a generalized reader/free function method
We could/should add more options, e.g. a list of pages, since the
vmalloc area is very limited on some architectures.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/base/Kconfig')
| -rw-r--r-- | drivers/base/Kconfig | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig index 4e7f0ff83ae7..134f763d90fd 100644 --- a/drivers/base/Kconfig +++ b/drivers/base/Kconfig | |||
| @@ -165,6 +165,27 @@ config FW_LOADER_USER_HELPER_FALLBACK | |||
| 165 | 165 | ||
| 166 | If you are unsure about this, say N here. | 166 | If you are unsure about this, say N here. |
| 167 | 167 | ||
| 168 | config WANT_DEV_COREDUMP | ||
| 169 | bool | ||
| 170 | help | ||
| 171 | Drivers should "select" this option if they desire to use the | ||
| 172 | device coredump mechanism. | ||
| 173 | |||
| 174 | config DISABLE_DEV_COREDUMP | ||
| 175 | bool "Disable device coredump" if EXPERT | ||
| 176 | help | ||
| 177 | Disable the device coredump mechanism despite drivers wanting to | ||
| 178 | use it; this allows for more sensitive systems or systems that | ||
| 179 | don't want to ever access the information to not have the code, | ||
| 180 | nor keep any data. | ||
| 181 | |||
| 182 | If unsure, say N. | ||
| 183 | |||
| 184 | config DEV_COREDUMP | ||
| 185 | bool | ||
| 186 | default y if WANT_DEV_COREDUMP | ||
| 187 | depends on !DISABLE_DEV_COREDUMP | ||
| 188 | |||
| 168 | config DEBUG_DRIVER | 189 | config DEBUG_DRIVER |
| 169 | bool "Driver Core verbose debug messages" | 190 | bool "Driver Core verbose debug messages" |
| 170 | depends on DEBUG_KERNEL | 191 | depends on DEBUG_KERNEL |
