newbus: Change attach failure behavior
In the rare case that we succeed in probing, but fail to attach, flip the default to be to disable the device. hw.bus.disable_failed_devices=false is no required to restore the old behavior. The old behavior dates form a time when dynamic control of devices wasn't yet present (devctl didn't exist). Now that one can retry probe/attach the device with devctl, the default doesn't make sense: The more desirable behaivor is to have stable device numbers when one has several instances of the same device in a system (common for NICs or HBAs). Reviewed by: jhb (verbal) Sponsored by: Netflix
This commit is contained in:
parent
aa52c6bdd7
commit
68c3f03021
8
UPDATING
8
UPDATING
@ -27,6 +27,14 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 14.x IS SLOW:
|
|||||||
world, or to merely disable the most expensive debugging functionality
|
world, or to merely disable the most expensive debugging functionality
|
||||||
at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
|
at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
|
||||||
|
|
||||||
|
20221204:
|
||||||
|
hw.bus.disable_failed_devices has changed from 'false' to 'true' by
|
||||||
|
default. Now if newbus succeeds in probing a device, but fails to attach
|
||||||
|
the device, we'll disable the device. In the past, we'd keep retrying
|
||||||
|
the device on each new driver loaded. To get that behavior now, one
|
||||||
|
needs to use devctl to re-enable the device, and repobe it (or set
|
||||||
|
the sysctl/tunable hw.bus.disable_failed_devices=false).
|
||||||
|
|
||||||
20221122:
|
20221122:
|
||||||
pf no longer accepts 'scrub fragment crop' or 'scrub fragment drop-ovl'.
|
pf no longer accepts 'scrub fragment crop' or 'scrub fragment drop-ovl'.
|
||||||
These configurations are no longer automatically reinterpreted as
|
These configurations are no longer automatically reinterpreted as
|
||||||
|
@ -69,7 +69,7 @@ SYSCTL_NODE(_hw, OID_AUTO, bus, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL,
|
|||||||
SYSCTL_ROOT_NODE(OID_AUTO, dev, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL,
|
SYSCTL_ROOT_NODE(OID_AUTO, dev, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
static bool disable_failed_devs = false;
|
static bool disable_failed_devs = true;
|
||||||
SYSCTL_BOOL(_hw_bus, OID_AUTO, disable_failed_devices, CTLFLAG_RWTUN, &disable_failed_devs,
|
SYSCTL_BOOL(_hw_bus, OID_AUTO, disable_failed_devices, CTLFLAG_RWTUN, &disable_failed_devs,
|
||||||
0, "Do not retry attaching devices that return an error from DEVICE_ATTACH the first time");
|
0, "Do not retry attaching devices that return an error from DEVICE_ATTACH the first time");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user