On Tue, Sep 20, 2022 at 03:11:11PM +0300, Alexander Atanasov wrote:
In (060807f841ac mm, slub: make remaining slub_debug related attributes
read-only) failslab was made read-only.
I think it became a collateral victim to the two other options for which
the reasons are perfectly valid.
Here is why:
- sanity_checks and trace are slab internal debug options,
failslab is used for fault injection.
- for fault injections, which by presumption are random, it
does not matter if it is not set atomically. And you need to
set atleast one more option to trigger fault injection.
- in a testing scenario you may need to change it at runtime
example: module loading - you test all allocations limited
by the space option. Then you move to test only your module's
own slabs.
- when set by command line flags it effectively disables all
cache merges.
Maybe we can make failslab= boot parameter to consider cache filtering?
With that, just pass something like this:
failslab=X,X,X,X,cache_filter slub_debug=A,<cache-name>>
Users should pass slub_debug=A,<cache-name> anyway to prevent cache merging.It will be good to have this in case you want to test cache that is used early. But why push something to command line option only when it can be changed at runtime?