]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Create a sysctl kern.cam.{,a,n}da.X.invalidate
authorWarner Losh <imp@FreeBSD.org>
Wed, 14 Mar 2018 17:53:37 +0000 (17:53 +0000)
committerWarner Losh <imp@FreeBSD.org>
Wed, 14 Mar 2018 17:53:37 +0000 (17:53 +0000)
commitd38677d23c2545b2d98c93ef13a6c9af9c2d28cc
tree0e37c6b5f51155c6db22d299fd67a46218e4edd7
parent2a559cb8c8177e89e7bf74a54c8a34fbcf7b7139
Create a sysctl kern.cam.{,a,n}da.X.invalidate

kern.cam.{,a,n}da.X.invalidate=1 forces *daX to detach by calling
cam_periph_invalidate on the underlying periph. This is for testing
purposes only. Include only with options CAM_TEST_FAILURE and rename
the former [AN]DA_TEST_FAILURE, and fix nda to compile with it set.
We're using it at work to harden geom and the buffer cache to be
resilient in the face of drive failure. Today, it far too often
results in a panic. While much work was done on SIM initiated removal
for the USB thumnb drive removal work, little has been done for periph
initiated removal. This simulates what *daerror() does for some errors
nicely: we get the same panics with it that we do with failing drives.

Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D14581
sys/cam/ata/ata_da.c
sys/cam/cam_periph.c
sys/cam/cam_periph.h
sys/cam/nvme/nvme_da.c
sys/cam/scsi/scsi_da.c
sys/conf/NOTES
sys/conf/options