Linux block layer
 help / color / mirror / Atom feed
* [PATCH v5 4/9] rust: macros: auto-insert OwnerModule in #[vtable]
From: Alvin Sun @ 2026-06-24 12:57 UTC (permalink / raw)
  To: Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron,
	Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross,
	Danilo Krummrich, Luis Chamberlain, Petr Pavlu, Daniel Gomez,
	Sami Tolvanen, Aaron Tomlin, Greg Kroah-Hartman,
	Rafael J. Wysocki, David Airlie, Simona Vetter, Daniel Almeida,
	Arnd Bergmann, Brendan Higgins, David Gow, Rae Moar, Breno Leitao,
	Jens Axboe, Dave Ertman, Leon Romanovsky, Igor Korotin,
	FUJITA Tomonori, Bjorn Helgaas, Krzysztof Wilczyński,
	Arve Hjønnevåg, Todd Kjos, Christian Brauner,
	Carlos Llamas
  Cc: rust-for-linux, linux-modules, driver-core, dri-devel, nova-gpu,
	linux-kselftest, kunit-dev, linux-block, linux-kernel, netdev,
	linux-pci, Alvin Sun
In-Reply-To: <20260624-fix-fops-owner-v5-0-aa1cba242f05@linux.dev>

Auto-add `type OwnerModule: ::kernel::ModuleMetadata;` as a required
associated type on the trait side if not already defined, and
auto-insert `type OwnerModule = crate::LocalModule;` on the impl side
if not explicitly provided, eliminating the need to manually declare
and implement `OwnerModule` in every vtable trait and impl.

Assisted-by: opencode:glm-5.2
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Suggested-by: Gary Guo <gary@garyguo.net>
Link: https://lore.kernel.org/all/DIMMWHUOLPSH.13JFRHDKDQJGO@garyguo.net
Reviewed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
---
 rust/macros/lib.rs    |  6 ++++++
 rust/macros/vtable.rs | 41 ++++++++++++++++++++++++++++++++++++-----
 2 files changed, 42 insertions(+), 5 deletions(-)

diff --git a/rust/macros/lib.rs b/rust/macros/lib.rs
index 2cfd59e0f9e7c..bc7ded353c5ca 100644
--- a/rust/macros/lib.rs
+++ b/rust/macros/lib.rs
@@ -176,6 +176,12 @@ pub fn module(input: TokenStream) -> TokenStream {
 ///
 /// This macro should not be used when all functions are required.
 ///
+/// Additionally, this macro automatically handles the `OwnerModule`
+/// associated type: on the trait side, `type OwnerModule: ModuleMetadata;`
+/// is added as a required associated type if not already defined; on the
+/// impl side, `type OwnerModule = LocalModule;` is automatically inserted
+/// if not explicitly defined.
+///
 /// # Examples
 ///
 /// ```
diff --git a/rust/macros/vtable.rs b/rust/macros/vtable.rs
index c6510b0c4ea1d..be9a5ed8abe5e 100644
--- a/rust/macros/vtable.rs
+++ b/rust/macros/vtable.rs
@@ -30,6 +30,22 @@ fn handle_trait(mut item: ItemTrait) -> Result<ItemTrait> {
          const USE_VTABLE_ATTR: ();
     });
 
+    // Add `type OwnerModule: ModuleMetadata` as a required associated type if
+    // the trait does not already define it.
+    if !item
+        .items
+        .iter()
+        .any(|i| matches!(i, TraitItem::Type(t) if t.ident == "OwnerModule"))
+    {
+        gen_items.push(parse_quote! {
+            /// The module implementing this vtable trait.
+            ///
+            /// Automatically set to `crate::LocalModule` by the `#[vtable]`
+            /// impl macro.
+            type OwnerModule: ::kernel::ModuleMetadata;
+        });
+    }
+
     for item in &item.items {
         if let TraitItem::Fn(fn_item) = item {
             let name = &fn_item.sig.ident;
@@ -57,12 +73,18 @@ fn handle_trait(mut item: ItemTrait) -> Result<ItemTrait> {
 
 fn handle_impl(mut item: ItemImpl) -> Result<ItemImpl> {
     let mut gen_items = Vec::new();
-    let mut defined_consts = HashSet::new();
+    let mut defined_items = HashSet::new();
 
-    // Iterate over all user-defined constants to gather any possible explicit overrides.
+    // Iterate over all user-defined items to gather any possible explicit overrides.
     for item in &item.items {
-        if let ImplItem::Const(const_item) = item {
-            defined_consts.insert(const_item.ident.clone());
+        match item {
+            ImplItem::Const(const_item) => {
+                defined_items.insert(const_item.ident.clone());
+            }
+            ImplItem::Type(type_item) => {
+                defined_items.insert(type_item.ident.clone());
+            }
+            _ => {}
         }
     }
 
@@ -70,6 +92,15 @@ fn handle_impl(mut item: ItemImpl) -> Result<ItemImpl> {
         const USE_VTABLE_ATTR: () = ();
     });
 
+    // Auto-insert `type OwnerModule = crate::LocalModule` if not explicitly defined.
+    // `crate::LocalModule` resolves to the real module type (via `module!`) or a
+    // dummy fallback in non-module contexts (e.g., doctests).
+    if !defined_items.contains(&parse_quote!(OwnerModule)) {
+        gen_items.push(parse_quote! {
+            type OwnerModule = crate::LocalModule;
+        });
+    }
+
     for item in &item.items {
         if let ImplItem::Fn(fn_item) = item {
             let name = &fn_item.sig.ident;
@@ -78,7 +109,7 @@ fn handle_impl(mut item: ItemImpl) -> Result<ItemImpl> {
                 name.span(),
             );
             // Skip if it's declared already -- this allows user override.
-            if defined_consts.contains(&gen_const_name) {
+            if defined_items.contains(&gen_const_name) {
                 continue;
             }
             let cfg_attrs = crate::helpers::gather_cfg_attrs(&fn_item.attrs);

-- 
2.43.0



^ permalink raw reply related

* [PATCH v5 3/9] rust: doctest: add LocalModule fallback for #[vtable] ThisModule
From: Alvin Sun @ 2026-06-24 12:57 UTC (permalink / raw)
  To: Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron,
	Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross,
	Danilo Krummrich, Luis Chamberlain, Petr Pavlu, Daniel Gomez,
	Sami Tolvanen, Aaron Tomlin, Greg Kroah-Hartman,
	Rafael J. Wysocki, David Airlie, Simona Vetter, Daniel Almeida,
	Arnd Bergmann, Brendan Higgins, David Gow, Rae Moar, Breno Leitao,
	Jens Axboe, Dave Ertman, Leon Romanovsky, Igor Korotin,
	FUJITA Tomonori, Bjorn Helgaas, Krzysztof Wilczyński,
	Arve Hjønnevåg, Todd Kjos, Christian Brauner,
	Carlos Llamas
  Cc: rust-for-linux, linux-modules, driver-core, dri-devel, nova-gpu,
	linux-kselftest, kunit-dev, linux-block, linux-kernel, netdev,
	linux-pci, Alvin Sun
In-Reply-To: <20260624-fix-fops-owner-v5-0-aa1cba242f05@linux.dev>

Add a `LocalModule` struct with a null-pointer `ModuleMetadata` impl
in the doctest harness, so that `crate::LocalModule` (auto-inserted
by `#[vtable]`) resolves correctly when there is no `module!` macro.

Assisted-by: opencode:glm-5.2
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Reviewed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
---
 scripts/rustdoc_test_gen.rs | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/scripts/rustdoc_test_gen.rs b/scripts/rustdoc_test_gen.rs
index ee76e96b41eea..198af4e446c8c 100644
--- a/scripts/rustdoc_test_gen.rs
+++ b/scripts/rustdoc_test_gen.rs
@@ -239,6 +239,22 @@ macro_rules! assert_eq {{
 
 const __LOG_PREFIX: &[u8] = b"rust_doctests_kernel\0";
 
+/// Dummy module type for doctest context.
+struct LocalModule;
+
+use kernel::{{
+    str::CStr,
+    ModuleMetadata,
+    ThisModule, //
+}};
+use core::ptr::null_mut;
+
+impl ModuleMetadata for LocalModule {{
+    const NAME: &'static CStr = c"rust_doctests_kernel";
+    // SAFETY: `try_module_get`/`module_put` handle null module pointers gracefully.
+    const THIS_MODULE: ThisModule = unsafe {{ ThisModule::from_ptr(null_mut()) }};
+}}
+
 {rust_tests}
 "#
     )

-- 
2.43.0



^ permalink raw reply related

* [PATCH v5 1/9] rust: module: move module types into `module.rs`
From: Alvin Sun @ 2026-06-24 12:57 UTC (permalink / raw)
  To: Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron,
	Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross,
	Danilo Krummrich, Luis Chamberlain, Petr Pavlu, Daniel Gomez,
	Sami Tolvanen, Aaron Tomlin, Greg Kroah-Hartman,
	Rafael J. Wysocki, David Airlie, Simona Vetter, Daniel Almeida,
	Arnd Bergmann, Brendan Higgins, David Gow, Rae Moar, Breno Leitao,
	Jens Axboe, Dave Ertman, Leon Romanovsky, Igor Korotin,
	FUJITA Tomonori, Bjorn Helgaas, Krzysztof Wilczyński,
	Arve Hjønnevåg, Todd Kjos, Christian Brauner,
	Carlos Llamas
  Cc: rust-for-linux, linux-modules, driver-core, dri-devel, nova-gpu,
	linux-kselftest, kunit-dev, linux-block, linux-kernel, netdev,
	linux-pci, Alvin Sun
In-Reply-To: <20260624-fix-fops-owner-v5-0-aa1cba242f05@linux.dev>

Move `Module`, `InPlaceModule`, `ModuleMetadata` and `ThisModule` from
`lib.rs` into a new `rust/kernel/module.rs`. Re-export them from `lib.rs`
to avoid tree-wide changes.

Switch six bus driver registrations from `module.0` to the public
`ThisModule::as_ptr()` accessor, since the field is no longer visible
outside the new `module` submodule.

No functional change.

Assisted-by: opencode:glm-5.2
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
---
 rust/kernel/auxiliary.rs |  2 +-
 rust/kernel/i2c.rs       |  2 +-
 rust/kernel/lib.rs       | 75 +++++-------------------------------------------
 rust/kernel/module.rs    | 71 +++++++++++++++++++++++++++++++++++++++++++++
 rust/kernel/net/phy.rs   |  6 +++-
 rust/kernel/pci.rs       |  2 +-
 rust/kernel/platform.rs  |  2 +-
 rust/kernel/usb.rs       |  2 +-
 8 files changed, 88 insertions(+), 74 deletions(-)

diff --git a/rust/kernel/auxiliary.rs b/rust/kernel/auxiliary.rs
index 93c0db1f66555..4a02f83240be3 100644
--- a/rust/kernel/auxiliary.rs
+++ b/rust/kernel/auxiliary.rs
@@ -63,7 +63,7 @@ unsafe fn register(
 
         // SAFETY: `adrv` is guaranteed to be a valid `DriverType`.
         to_result(unsafe {
-            bindings::__auxiliary_driver_register(adrv.get(), module.0, name.as_char_ptr())
+            bindings::__auxiliary_driver_register(adrv.get(), module.as_ptr(), name.as_char_ptr())
         })
     }
 
diff --git a/rust/kernel/i2c.rs b/rust/kernel/i2c.rs
index 7b908f0c5a58d..24eff08f47123 100644
--- a/rust/kernel/i2c.rs
+++ b/rust/kernel/i2c.rs
@@ -142,7 +142,7 @@ unsafe fn register(
         }
 
         // SAFETY: `idrv` is guaranteed to be a valid `DriverType`.
-        to_result(unsafe { bindings::i2c_register_driver(module.0, idrv.get()) })
+        to_result(unsafe { bindings::i2c_register_driver(module.as_ptr(), idrv.get()) })
     }
 
     unsafe fn unregister(idrv: &Opaque<Self::DriverType>) {
diff --git a/rust/kernel/lib.rs b/rust/kernel/lib.rs
index b72b2fbe046d6..040ae85056509 100644
--- a/rust/kernel/lib.rs
+++ b/rust/kernel/lib.rs
@@ -93,6 +93,7 @@
 pub mod maple_tree;
 pub mod miscdevice;
 pub mod mm;
+pub mod module;
 pub mod module_param;
 #[cfg(CONFIG_NET)]
 pub mod net;
@@ -139,79 +140,17 @@
 #[doc(hidden)]
 pub use bindings;
 pub use macros;
+pub use module::{
+    InPlaceModule,
+    Module,
+    ModuleMetadata,
+    ThisModule, //
+};
 pub use uapi;
 
 /// Prefix to appear before log messages printed from within the `kernel` crate.
 const __LOG_PREFIX: &[u8] = b"rust_kernel\0";
 
-/// The top level entrypoint to implementing a kernel module.
-///
-/// For any teardown or cleanup operations, your type may implement [`Drop`].
-pub trait Module: Sized + Sync + Send {
-    /// Called at module initialization time.
-    ///
-    /// Use this method to perform whatever setup or registration your module
-    /// should do.
-    ///
-    /// Equivalent to the `module_init` macro in the C API.
-    fn init(module: &'static ThisModule) -> error::Result<Self>;
-}
-
-/// A module that is pinned and initialised in-place.
-pub trait InPlaceModule: Sync + Send {
-    /// Creates an initialiser for the module.
-    ///
-    /// It is called when the module is loaded.
-    fn init(module: &'static ThisModule) -> impl pin_init::PinInit<Self, error::Error>;
-}
-
-impl<T: Module> InPlaceModule for T {
-    fn init(module: &'static ThisModule) -> impl pin_init::PinInit<Self, error::Error> {
-        let initer = move |slot: *mut Self| {
-            let m = <Self as Module>::init(module)?;
-
-            // SAFETY: `slot` is valid for write per the contract with `pin_init_from_closure`.
-            unsafe { slot.write(m) };
-            Ok(())
-        };
-
-        // SAFETY: On success, `initer` always fully initialises an instance of `Self`.
-        unsafe { pin_init::pin_init_from_closure(initer) }
-    }
-}
-
-/// Metadata attached to a [`Module`] or [`InPlaceModule`].
-pub trait ModuleMetadata {
-    /// The name of the module as specified in the `module!` macro.
-    const NAME: &'static crate::str::CStr;
-}
-
-/// Equivalent to `THIS_MODULE` in the C API.
-///
-/// C header: [`include/linux/init.h`](srctree/include/linux/init.h)
-pub struct ThisModule(*mut bindings::module);
-
-// SAFETY: `THIS_MODULE` may be used from all threads within a module.
-unsafe impl Sync for ThisModule {}
-
-impl ThisModule {
-    /// Creates a [`ThisModule`] given the `THIS_MODULE` pointer.
-    ///
-    /// # Safety
-    ///
-    /// The pointer must be equal to the right `THIS_MODULE`.
-    pub const unsafe fn from_ptr(ptr: *mut bindings::module) -> ThisModule {
-        ThisModule(ptr)
-    }
-
-    /// Access the raw pointer for this module.
-    ///
-    /// It is up to the user to use it correctly.
-    pub const fn as_ptr(&self) -> *mut bindings::module {
-        self.0
-    }
-}
-
 #[cfg(not(testlib))]
 #[panic_handler]
 fn panic(info: &core::panic::PanicInfo<'_>) -> ! {
diff --git a/rust/kernel/module.rs b/rust/kernel/module.rs
new file mode 100644
index 0000000000000..be242a82e86d2
--- /dev/null
+++ b/rust/kernel/module.rs
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: GPL-2.0
+
+//! Module-related types and helpers.
+
+/// The entrypoint to implementing a kernel module.
+///
+/// For any teardown or cleanup operations, your type may implement [`Drop`].
+pub trait Module: Sized + Sync + Send {
+    /// Called at module initialization time.
+    ///
+    /// Use this method to perform whatever setup or registration your module
+    /// should do.
+    ///
+    /// Equivalent to the `module_init` macro in the C API.
+    fn init(module: &'static ThisModule) -> crate::error::Result<Self>;
+}
+
+/// A module that is pinned and initialised in-place.
+pub trait InPlaceModule: Sync + Send {
+    /// Creates an initialiser for the module.
+    ///
+    /// It is called when the module is loaded.
+    fn init(module: &'static ThisModule) -> impl pin_init::PinInit<Self, crate::error::Error>;
+}
+
+impl<T: Module> InPlaceModule for T {
+    fn init(module: &'static ThisModule) -> impl pin_init::PinInit<Self, crate::error::Error> {
+        let initer = move |slot: *mut Self| {
+            let m = <Self as Module>::init(module)?;
+
+            // SAFETY: `slot` is valid for write per the contract with `pin_init_from_closure`.
+            unsafe { slot.write(m) };
+            Ok(())
+        };
+
+        // SAFETY: On success, `initer` always fully initialises an instance of `Self`.
+        unsafe { pin_init::pin_init_from_closure(initer) }
+    }
+}
+
+/// Metadata attached to a [`Module`] or [`InPlaceModule`].
+pub trait ModuleMetadata {
+    /// The name of the module as specified in the `module!` macro.
+    const NAME: &'static crate::str::CStr;
+}
+
+/// Equivalent to `THIS_MODULE` in the C API.
+///
+/// C header: [`include/linux/init.h`](srctree/include/linux/init.h)
+pub struct ThisModule(*mut crate::bindings::module);
+
+// SAFETY: `THIS_MODULE` may be used from all threads within a module.
+unsafe impl Sync for ThisModule {}
+
+impl ThisModule {
+    /// Creates a [`ThisModule`] given the `THIS_MODULE` pointer.
+    ///
+    /// # Safety
+    ///
+    /// The pointer must be equal to the right `THIS_MODULE`.
+    pub const unsafe fn from_ptr(ptr: *mut crate::bindings::module) -> ThisModule {
+        ThisModule(ptr)
+    }
+
+    /// Access the raw pointer for this module.
+    ///
+    /// It is up to the user to use it correctly.
+    pub const fn as_ptr(&self) -> *mut crate::bindings::module {
+        self.0
+    }
+}
diff --git a/rust/kernel/net/phy.rs b/rust/kernel/net/phy.rs
index 3ca99db5cccf2..8b7036b8fe480 100644
--- a/rust/kernel/net/phy.rs
+++ b/rust/kernel/net/phy.rs
@@ -659,7 +659,11 @@ pub fn register(
         // the `drivers` slice are initialized properly. `drivers` will not be moved.
         // So it's just an FFI call.
         to_result(unsafe {
-            bindings::phy_drivers_register(drivers[0].0.get(), drivers.len().try_into()?, module.0)
+            bindings::phy_drivers_register(
+                drivers[0].0.get(),
+                drivers.len().try_into()?,
+                module.as_ptr(),
+            )
         })?;
         // INVARIANT: The `drivers` slice is successfully registered to the kernel via `phy_drivers_register`.
         Ok(Registration { drivers })
diff --git a/rust/kernel/pci.rs b/rust/kernel/pci.rs
index af74ddff6114d..916ed2cb6b70b 100644
--- a/rust/kernel/pci.rs
+++ b/rust/kernel/pci.rs
@@ -86,7 +86,7 @@ unsafe fn register(
 
         // SAFETY: `pdrv` is guaranteed to be a valid `DriverType`.
         to_result(unsafe {
-            bindings::__pci_register_driver(pdrv.get(), module.0, name.as_char_ptr())
+            bindings::__pci_register_driver(pdrv.get(), module.as_ptr(), name.as_char_ptr())
         })
     }
 
diff --git a/rust/kernel/platform.rs b/rust/kernel/platform.rs
index 8917d4ee499fb..9fdbafd53bc21 100644
--- a/rust/kernel/platform.rs
+++ b/rust/kernel/platform.rs
@@ -82,7 +82,7 @@ unsafe fn register(
         }
 
         // SAFETY: `pdrv` is guaranteed to be a valid `DriverType`.
-        to_result(unsafe { bindings::__platform_driver_register(pdrv.get(), module.0) })
+        to_result(unsafe { bindings::__platform_driver_register(pdrv.get(), module.as_ptr()) })
     }
 
     unsafe fn unregister(pdrv: &Opaque<Self::DriverType>) {
diff --git a/rust/kernel/usb.rs b/rust/kernel/usb.rs
index 9c17a672cd275..213db32727c17 100644
--- a/rust/kernel/usb.rs
+++ b/rust/kernel/usb.rs
@@ -63,7 +63,7 @@ unsafe fn register(
 
         // SAFETY: `udrv` is guaranteed to be a valid `DriverType`.
         to_result(unsafe {
-            bindings::usb_register_driver(udrv.get(), module.0, name.as_char_ptr())
+            bindings::usb_register_driver(udrv.get(), module.as_ptr(), name.as_char_ptr())
         })
     }
 

-- 
2.43.0



^ permalink raw reply related

* [PATCH v5 2/9] rust: module: add `THIS_MODULE` const to `ModuleMetadata` trait
From: Alvin Sun @ 2026-06-24 12:57 UTC (permalink / raw)
  To: Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron,
	Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross,
	Danilo Krummrich, Luis Chamberlain, Petr Pavlu, Daniel Gomez,
	Sami Tolvanen, Aaron Tomlin, Greg Kroah-Hartman,
	Rafael J. Wysocki, David Airlie, Simona Vetter, Daniel Almeida,
	Arnd Bergmann, Brendan Higgins, David Gow, Rae Moar, Breno Leitao,
	Jens Axboe, Dave Ertman, Leon Romanovsky, Igor Korotin,
	FUJITA Tomonori, Bjorn Helgaas, Krzysztof Wilczyński,
	Arve Hjønnevåg, Todd Kjos, Christian Brauner,
	Carlos Llamas
  Cc: rust-for-linux, linux-modules, driver-core, dri-devel, nova-gpu,
	linux-kselftest, kunit-dev, linux-block, linux-kernel, netdev,
	linux-pci, Alvin Sun
In-Reply-To: <20260624-fix-fops-owner-v5-0-aa1cba242f05@linux.dev>

Since `const_refs_to_static` has been stable as of the MSRV bump, a
`ThisModule` pointer can now be used in const contexts.

Add a `THIS_MODULE` const to the `ModuleMetadata` trait so that modules
can provide their `ThisModule` pointer in const contexts such as static
`file_operations`.

Add a `this_module()` helper to retrieve the `THIS_MODULE` pointer of a
given module type, and update `__init` to use it instead of the
`THIS_MODULE` static generated by the `module!` macro.

The `static THIS_MODULE` generated by the `module!` macro is retained
for backwards compatibility with existing users and removed in a later
patch once all references have been migrated.

Assisted-by: opencode:glm-5.2
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Reviewed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
---
 rust/kernel/module.rs |  9 +++++++++
 rust/macros/module.rs | 18 +++++++++++++++++-
 2 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/rust/kernel/module.rs b/rust/kernel/module.rs
index be242a82e86d2..d713705984477 100644
--- a/rust/kernel/module.rs
+++ b/rust/kernel/module.rs
@@ -42,6 +42,15 @@ fn init(module: &'static ThisModule) -> impl pin_init::PinInit<Self, crate::erro
 pub trait ModuleMetadata {
     /// The name of the module as specified in the `module!` macro.
     const NAME: &'static crate::str::CStr;
+
+    /// The module's `THIS_MODULE` pointer.
+    const THIS_MODULE: ThisModule;
+}
+
+/// Returns a reference to the `THIS_MODULE` of the given module type.
+#[inline]
+pub const fn this_module<M: ModuleMetadata>() -> &'static ThisModule {
+    &M::THIS_MODULE
 }
 
 /// Equivalent to `THIS_MODULE` in the C API.
diff --git a/rust/macros/module.rs b/rust/macros/module.rs
index 06c18e2075083..aa9a618d5d19e 100644
--- a/rust/macros/module.rs
+++ b/rust/macros/module.rs
@@ -519,6 +519,22 @@ pub(crate) fn module(info: ModuleInfo) -> Result<TokenStream> {
 
         impl ::kernel::ModuleMetadata for #type_ {
             const NAME: &'static ::kernel::str::CStr = #name_cstr;
+
+            #[cfg(MODULE)]
+            const THIS_MODULE: ::kernel::ThisModule = {
+                extern "C" {
+                    static __this_module: ::kernel::types::Opaque<::kernel::bindings::module>;
+                }
+
+                // SAFETY: `__this_module` is constructed by the kernel at load time
+                // and lives until the module is unloaded.
+                unsafe { ::kernel::ThisModule::from_ptr(__this_module.get()) }
+            };
+
+            #[cfg(not(MODULE))]
+            const THIS_MODULE: ::kernel::ThisModule = unsafe {
+                ::kernel::ThisModule::from_ptr(::core::ptr::null_mut())
+            };
         }
 
         // Double nested modules, since then nobody can access the public items inside.
@@ -616,7 +632,7 @@ pub extern "C" fn #ident_exit() {
                 /// This function must only be called once.
                 unsafe fn __init() -> ::kernel::ffi::c_int {
                     let initer = <super::super::LocalModule as ::kernel::InPlaceModule>::init(
-                        &super::super::THIS_MODULE
+                        ::kernel::module::this_module::<super::super::LocalModule>()
                     );
                     // SAFETY: No data race, since `__MOD` can only be accessed by this module
                     // and there only `__init` and `__exit` access it. These functions are only

-- 
2.43.0



^ permalink raw reply related

* [PATCH v5 0/9] Fix missing fops.owner in Rust DRM/misc abstractions
From: Alvin Sun @ 2026-06-24 12:57 UTC (permalink / raw)
  To: Miguel Ojeda, Boqun Feng, Gary Guo, Björn Roy Baron,
	Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross,
	Danilo Krummrich, Luis Chamberlain, Petr Pavlu, Daniel Gomez,
	Sami Tolvanen, Aaron Tomlin, Greg Kroah-Hartman,
	Rafael J. Wysocki, David Airlie, Simona Vetter, Daniel Almeida,
	Arnd Bergmann, Brendan Higgins, David Gow, Rae Moar, Breno Leitao,
	Jens Axboe, Dave Ertman, Leon Romanovsky, Igor Korotin,
	FUJITA Tomonori, Bjorn Helgaas, Krzysztof Wilczyński,
	Arve Hjønnevåg, Todd Kjos, Christian Brauner,
	Carlos Llamas
  Cc: rust-for-linux, linux-modules, driver-core, dri-devel, nova-gpu,
	linux-kselftest, kunit-dev, linux-block, linux-kernel, netdev,
	linux-pci, Alvin Sun

During tyr debugfs development, a kernel NULL pointer dereference was
encountered after `rmmod tyr` while gnome-shell still held /dev/card1 open:

```
  [158827.868132] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
  [158827.868918] Mem abort info:
  [158827.869177]   ESR = 0x0000000086000004
  [158827.869519]   EC = 0x21: IABT (current EL), IL = 32 bits
  [158827.870000]   SET = 0, FnV = 0
  [158827.870281]   EA = 0, S1PTW = 0
  [158827.870571]   FSC = 0x04: level 0 translation fault
  [158827.871043] user pgtable: 4k pages, 48-bit VAs, pgdp=0000000108dec000
  [158827.871623] [0000000000000000] pgd=0000000000000000, p4d=0000000000000000
  [158827.872242] Internal error: Oops: 0000000086000004 [#1]  SMP
  [158827.872246] Modules linked in: tyr sunrpc snd_soc_simple_card rk805_pwrkey snd_soc_simple_card_utils rtw88_8822bu display_connector rtw88_usb rtw88_8822b snd_soc_rockchip_i2s_tdm snd_soc_hdmi_codec
  rtw88_core]
  [158827.872337] CPU: 4 UID: 1000 PID: 11276 Comm: gnome-s:disk$0 Tainted: G                 N  7.1.0-rc1+ #331 PREEMPT
  [158827.880534] Tainted: [N]=TEST
  [158827.880535] Hardware name: FriendlyElec NanoPi R6C/NanoPi R6C, BIOS v1.1 04/09/2025
  [158827.880538] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
  [158827.880542] pc : 0x0
  [158827.880547] lr : _RNvNtCs257m05FHVbX_3tyr2vm8pt_unmap+0x8c/0x12c [tyr]
  [158827.880578] sp : ffff800083c236b0
  [158827.880579] x29: ffff800083c236d0 x28: ffff00013f8a0000 x27: 0000000000000000
  [158827.880585] x26: 000000000000007c x25: ffff000108e6ed80 x24: 0000000000401000
  [158827.880590] x23: 0000000000000000 x22: 0000000040000000 x21: 0000000000001000
  [158827.880595] x20: ffff00010f778138 x19: 0000000000400000 x18: 00000000ffffffff
  [158827.880600] x17: 000000040044ffff x16: 045000f2b5503510 x15: 0720072007200720
  [158827.880606] x14: 0720072007200720 x13: 0000000000401000 x12: 0000000000400000
  [158827.880611] x11: ffff800083c239d0 x10: ffff000141e4fd88 x9 : 0000000000000000
  [158827.880615] x8 : 0000000000000000 x7 : 0000000000000000 x6 : 0000000000400000
  [158827.880620] x5 : ffff00013f8a0000 x4 : 0000000000000000 x3 : 0000000000000001
  [158827.880625] x2 : 0000000000001000 x1 : 0000000000400000 x0 : ffff00010f778138
  [158827.880630] Call trace:
  [158827.880632]  0x0 (P)
  [158827.880635]  _RNvXs6_NtCs257m05FHVbX_3tyr2vmNtB5_9GpuVmDataNtNtNtCsgmSOfgXi5CZ_6kernel3drm5gpuvm11DriverGpuVm13sm_step_unmap+0x3c/0x120 [tyr]
  [158827.891166]  _RNvMs4_NtNtNtCsgmSOfgXi5CZ_6kernel3drm5gpuvm6sm_opsINtB7_5GpuVmNtNtCs257m05FHVbX_3tyr2vm9GpuVmDataE13sm_step_unmapB13_+0x18/0x34 [tyr]
  [158827.891187]  op_unmap_cb+0x78/0xb0
  [158827.891196]  __drm_gpuvm_sm_unmap+0x18c/0x1b4
  [158827.891204]  drm_gpuvm_sm_unmap+0x38/0x4c
  [158827.891209]  _RNvMs5_NtCs257m05FHVbX_3tyr2vmNtB5_2Vm7exec_op+0x1cc/0x254 [tyr]
  [158827.894085]  _RNvMs5_NtCs257m05FHVbX_3tyr2vmNtB5_2Vm11unmap_range+0x124/0x188 [tyr]
  [158827.894105]  _RINvNtCs5hGKnPbRUFW_4core3ptr13drop_in_placeNtNtCs257m05FHVbX_3tyr3gem8KernelBoEBK_+0x44/0xd8 [tyr]
  [158827.894125]  _RINvNtCs5hGKnPbRUFW_4core3ptr13drop_in_placeINtNtNtCsgmSOfgXi5CZ_6kernel5alloc4kvec3VecNtNtCs257m05FHVbX_3tyr2fw7SectionNtNtBL_9allocator7KmallocEEB1r_+0x3c/0x100 [tyr]
  [158827.894147]  _RINvNtCs5hGKnPbRUFW_4core3ptr13drop_in_placeINtNtNtCsgmSOfgXi5CZ_6kernel4sync3arc3ArcNtNtCs257m05FHVbX_3tyr2fw8FirmwareEEB1p_+0x94/0x190 [tyr]
  [158827.894167]  _RNvMs4_NtNtCsgmSOfgXi5CZ_6kernel3drm6deviceINtB5_6DeviceNtNtCs257m05FHVbX_3tyr6driver12TyrDrmDriverE7releaseBW_+0x30/0x98 [tyr]
  [158827.899550]  drm_dev_put.part.0+0x88/0xc0
  [158827.899557]  drm_minor_release+0x18/0x28
  [158827.899562]  drm_release+0x144/0x170
  [158827.899567]  __fput+0xe4/0x30c
  [158827.899573]  ____fput+0x14/0x20
  [158827.899579]  task_work_run+0x7c/0xe8
  [158827.899586]  do_exit+0x2a8/0xac4
  [158827.899590]  do_group_exit+0x34/0x90
  [158827.899594]  get_signal+0xaac/0xabc
  [158827.899599]  arch_do_signal_or_restart+0x90/0x3e8
  [158827.899606]  exit_to_user_mode_loop+0x140/0x1d0
  [158827.899613]  el0_svc+0x2f4/0x2f8
  [158827.899620]  el0t_64_sync_handler+0xa0/0xe4
  [158827.899627]  el0t_64_sync+0x198/0x19c
  [158827.899632] ---[ end trace 0000000000000000 ]---
```

The root cause: `fops.owner` was `NULL` in Rust DRM drivers, so the kernel
never blocked module unloading while file descriptors were open. This leads to
use-after-free when drm_release (or other fops) is called on freed module code.

The series moves `THIS_MODULE` into the `ModuleMetadata` as a const, threads it
through `#[vtable]` to set `fops.owner` in DRM/miscdevice, and updates configfs
and rnull to use `this_module::<LocalModule>()`.

Assisted-by: opencode:glm-5.2
Signed-off-by: Alvin Sun <alvin.sun@linux.dev>
---
Changes in v5:
- Add `#[inline]` to the `this_module()` helper.
- Fix configfs doc comment to reference `crate::LocalModule` instead of
  bare `LocalModule`.
- Link to v4: https://lore.kernel.org/r/20260623-fix-fops-owner-v4-0-0daf5f077d5c@linux.dev

Changes in v4:
- Move module-related types into a new `rust/kernel/module.rs`.
- Migrate binder from the `module!`-generated `THIS_MODULE` static to
  `this_module::<LocalModule>()`.
- Reorganise the series so that every commit builds independently, and
  drop the legacy `THIS_MODULE` static once all users are migrated.
- Link to v3: https://lore.kernel.org/r/20260622-fix-fops-owner-v3-0-49d45cb37032@linux.dev

Changes in v3:
- Renamed vtable associated type `ThisModule` to `OwnerModule`
- Added `this_module()` helper for ergonomic `THIS_MODULE` access
- Refined vtable macro implementation: one-liner detection and single `defined_items` set
- Reordered commits to place doctest fallback before vtable auto-insert
- Link to v2: https://lore.kernel.org/r/20260521-fix-fops-owner-v2-0-fd99079c5a04@linux.dev

Changes in v2:
- Merged old `static THIS_MODULE` and v1's `MODULE_PTR` into a single
  `ModuleMetadata::THIS_MODULE` const
- `#[vtable]` macro now auto-inserts `type ThisModule`, removing all per-driver
  manual patches from v1
- Added configfs & rnull usage site updates and doctest `LocalModule` fallback
- Link to v1: https://lore.kernel.org/r/20260519-fix-fops-owner-v1-0-2ded9830da14@linux.dev

---
Alvin Sun (9):
      rust: module: move module types into `module.rs`
      rust: module: add `THIS_MODULE` const to `ModuleMetadata` trait
      rust: doctest: add LocalModule fallback for #[vtable] ThisModule
      rust: macros: auto-insert OwnerModule in #[vtable]
      rust: drm: set fops.owner from driver module pointer
      rust: miscdevice: set fops.owner from driver module pointer
      rust: configfs: use `LocalModule` for `THIS_MODULE`
      rust: binder: use `LocalModule` for `THIS_MODULE`
      rust: macros: remove `THIS_MODULE` static from `module!`

 drivers/android/binder/rust_binder_main.rs |  3 +-
 drivers/block/rnull/configfs.rs            |  6 +--
 rust/kernel/auxiliary.rs                   |  2 +-
 rust/kernel/configfs.rs                    |  8 +--
 rust/kernel/drm/device.rs                  |  3 +-
 rust/kernel/drm/gem/mod.rs                 |  4 +-
 rust/kernel/i2c.rs                         |  2 +-
 rust/kernel/lib.rs                         | 75 +++-------------------------
 rust/kernel/miscdevice.rs                  |  4 +-
 rust/kernel/module.rs                      | 80 ++++++++++++++++++++++++++++++
 rust/kernel/net/phy.rs                     |  6 ++-
 rust/kernel/pci.rs                         |  2 +-
 rust/kernel/platform.rs                    |  2 +-
 rust/kernel/usb.rs                         |  2 +-
 rust/macros/lib.rs                         |  6 +++
 rust/macros/module.rs                      | 34 ++++++-------
 rust/macros/vtable.rs                      | 41 +++++++++++++--
 scripts/rustdoc_test_gen.rs                | 16 ++++++
 18 files changed, 188 insertions(+), 108 deletions(-)
---
base-commit: b7e5ac83cb16f7ffd11dc23736f84276602100ed
change-id: 20260519-fix-fops-owner-e3a77bb27c6c
prerequisite-change-id: 20260519-miscdev-use-format-9ab7e83b1c11:v3
prerequisite-patch-id: 405b334ff0d48ad350014f05a2321bdbaa025400
prerequisite-patch-id: 604b631c81d5423f4ebb2e12ba2d22e9ce371bfc
prerequisite-patch-id: cb550d94cefe01920e0d3ced2b2bcbecd76f3907
prerequisite-patch-id: 3bc830839742591460cb86d9472c04f4686dc600
prerequisite-patch-id: 571058244bc8c7088638d2e3225713011246c7e9
prerequisite-patch-id: 347c5a3c6dbef9832bfce8419fc23e6e08ba477f
prerequisite-patch-id: 3e202d988b56b88446f7535e90d3f00cf5f15701

Best regards,
-- 
Alvin Sun <alvin.sun@linux.dev>



^ permalink raw reply

* Re: PI fixes v2
From: Jens Axboe @ 2026-06-24 12:53 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: Caleb Sander Mateos, Martin K. Petersen, linux-block
In-Reply-To: <20260624080014.1998650-1-hch@lst.de>


On Wed, 24 Jun 2026 10:00:01 +0200, Christoph Hellwig wrote:
> this series has two unrelated PI/metadata fixes that came up
> during a little testing surge.
> 
> Changes since v1:
>  - take operator precedence into account so that zeroing doesn't disable
>    other GFP_ flags.
>  - add a commit log blurb on why Zone Append does not require remapping
> 
> [...]

Applied, thanks!

[1/2] block: fix GFP_ flags confusion in bio_integrity_alloc_buf
      commit: e7c1627afda2484baf65449be15873c2550f917a
[2/2] block: handle REQ_OP_ZONE_APPEND in __bio_integrity_action
      commit: a1c8bdbbd72564cebb0d02948c1ed57b80b2e773

Best regards,
-- 
Jens Axboe




^ permalink raw reply

* Re: [PATCH 0/8] blk-cgroup: remove queue_lock nesting from blkcg paths
From: Jens Axboe @ 2026-06-24 12:53 UTC (permalink / raw)
  To: nilay, tom.leiming, bvanassche, tj, josef, yukuai, Yu Kuai
  Cc: akpm, chrisl, kasong, shikemeng, nphamcs, baohua, youngjun.park,
	cgroups, linux-block, linux-kernel, linux-mm, Baoquan He
In-Reply-To: <cover.1780621988.git.yukuai@fygo.io>


On Mon, 08 Jun 2026 11:42:41 +0800, Yu Kuai wrote:
> This series is the follow-up blk-cgroup locking cleanup on top of the
> earlier blkg-list protection fixes, and prepares blk-cgroup to stop using
> q->queue_lock as the global blkg lifetime/iteration lock.
> 
> The current queue_lock based protection is hard to maintain because
> queue_lock is used from hardirq and softirq completion paths, while some
> blkcg cgroup file paths also need to iterate blkgs, print policy data, or
> create blkgs from RCU-protected contexts.  This series first tightens the
> blkcg-side lifetime rules:
> 
> [...]

Applied, thanks!

[1/8] blk-cgroup: protect iterating blkgs with blkcg->lock in blkcg_print_stat()
      commit: 25656304dabd26198ec69460c594a19d086ef099
[2/8] blk-cgroup: delay freeing policy data after rcu grace period
      commit: 0af3fedb8c8ed3c07b4f76927bd7fc88f6f82efb
[3/8] blk-cgroup: don't nest queue_lock under rcu in blkcg_print_blkgs()
      commit: 56cc24f59c145ce6938959f792df04b8a4f5a4d8
[4/8] blk-cgroup: don't nest queue_lock under rcu in blkg_lookup_create()
      commit: 9327a865e395a53f67dffac4710beb1d4730495e
[5/8] blk-cgroup: don't nest queue_lock under rcu in bio_associate_blkg()
      commit: 457d3c4f0fdd6cf8a4bd8115bf470809984a9f02
[6/8] blk-cgroup: don't nest queue_lock under blkcg->lock in blkcg_destroy_blkgs()
      commit: 4cfd7c1cff8f4c863b99d420cdbe0563802a9e80
[7/8] mm/page_io: don't nest queue_lock under rcu in bio_associate_blkg_from_page()
      commit: f928145cbcb52544203808f159461d0a25543df7
[8/8] block, bfq: don't grab queue_lock to initialize bfq
      commit: 3ca4f4e3ae811d414076a491cbf0dfcdae0dc01e

Best regards,
-- 
Jens Axboe




^ permalink raw reply

* Re: [PATCH 0/8] blk-cgroup: remove queue_lock nesting from blkcg paths
From: Jens Axboe @ 2026-06-24 12:43 UTC (permalink / raw)
  To: yukuai, Yu Kuai, nilay, tom.leiming, bvanassche, tj, josef
  Cc: akpm, chrisl, kasong, shikemeng, nphamcs, bhe, baohua,
	youngjun.park, cgroups, linux-block, linux-kernel, linux-mm
In-Reply-To: <1c739fcc-5132-4cb2-bf34-cec94de26509@fygo.io>

On 6/24/26 12:57 AM, yu kuai wrote:
> Friendly ping ...
> 
> This set can still be applied cleanly for block-7.2 branch.

Not sure how you checked that, because patch 3 very much needs some
manual attention to get applied. I have applied it now.

-- 
Jens Axboe


^ permalink raw reply

* [PATCH] tools/cgroup: iocost_monitor: parse help before importing drgn
From: Yousef Alhouseen @ 2026-06-24 12:36 UTC (permalink / raw)
  To: tj, josef, axboe; +Cc: cgroups, linux-block, linux-kernel, Yousef Alhouseen

iocost_monitor.py imports drgn before argparse can handle "-h" or report
argument errors. That makes basic usage help fail on systems where drgn is
not installed.

Parse arguments before importing drgn so the help and argument-error paths
work without the runtime debugging dependency. Normal execution still
imports drgn before reading kernel state.

Signed-off-by: Yousef Alhouseen <alhouseenyousef@gmail.com>
---
 tools/cgroup/iocost_monitor.py | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/tools/cgroup/iocost_monitor.py b/tools/cgroup/iocost_monitor.py
index 933c750b3..bdd78ba27 100644
--- a/tools/cgroup/iocost_monitor.py
+++ b/tools/cgroup/iocost_monitor.py
@@ -15,11 +15,6 @@ import time
 import json
 import math
 
-import drgn
-from drgn import container_of
-from drgn.helpers.linux.list import list_for_each_entry,list_empty
-from drgn.helpers.linux.radixtree import radix_tree_for_each,radix_tree_lookup
-
 import argparse
 parser = argparse.ArgumentParser(description=desc,
                                  formatter_class=argparse.RawTextHelpFormatter)
@@ -34,6 +29,11 @@ parser.add_argument('--json', action='store_true',
                     help='Output in json')
 args = parser.parse_args()
 
+import drgn
+from drgn import container_of
+from drgn.helpers.linux.list import list_for_each_entry,list_empty
+from drgn.helpers.linux.radixtree import radix_tree_for_each,radix_tree_lookup
+
 def err(s):
     print(s, file=sys.stderr, flush=True)
     sys.exit(1)
-- 
2.54.0


^ permalink raw reply related

* Re: [GIT PULL] md-7.2-20260623
From: Jens Axboe @ 2026-06-24 12:33 UTC (permalink / raw)
  To: Yu Kuai; +Cc: linux-raid, linux-block, Abd-Alrhman Masalkhi, Chen Cheng
In-Reply-To: <20260623090327.1097428-1-yukuai@kernel.org>

On 6/23/26 3:03 AM, Yu Kuai wrote:
> Hi Jens,
> 
> Please consider pulling the following changes into your block-7.2
> branch.
> 
> This pull request contains:
> 
> Bug Fixes:
> - Fix raid1 writes_pending and barrier reference leaks on write failures.
>   (Abd-Alrhman Masalkhi)
> - Fix raid10 writes_pending leak on write request failures.
>   (Abd-Alrhman Masalkhi)
> - Fix raid10 writes_pending and barrier reference leaks on discard failures.
>   (Abd-Alrhman Masalkhi)
> - Fix raid1 REQ_NOWAIT handling while waiting for behind writes.
>   (Abd-Alrhman Masalkhi)
> - Fix raid1 r1_bio leak when a REQ_NOWAIT retry would block.
>   (Abd-Alrhman Masalkhi)
> - Fix raid1 read-balance head_position data race. (Chen Cheng)
> - Fix raid5 stripe batch bm_seq wraparound comparison. (Chen Cheng)
> - Fix raid5 stripe batch state snapshot KCSAN noise. (Chen Cheng)
> - Fix raid5 R5_Overlap races while breaking stripe batches. (Chen Cheng)
> 
> Improvements:
> - Add raid5 discard IO accounting. (Yu Kuai)
> - Always convert raid5 llbitmap bits for discard. (Yu Kuai)
> 
> Cleanups:
> - Simplify raid1_write_request() error handling. (Abd-Alrhman Masalkhi)

Pulled, thanks.

-- 
Jens Axboe


^ permalink raw reply

* Re: [PATCH v3 0/7] Prepare mutable list iterators to cache cursor state
From: Kaitao Cheng @ 2026-06-24 12:29 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Alexei Starovoitov, Andrew Morton, David Hildenbrand, Jens Axboe,
	Tejun Heo, Alexander Viro, Christian Brauner, Alexei Starovoitov,
	Daniel Borkmann, Andrii Nakryiko, Johannes Weiner, Peter Zijlstra,
	Ingo Molnar, Arnaldo Carvalho de Melo, Namhyung Kim,
	Thomas Gleixner, Juri Lelli, Vincent Guittot, Paul Moore,
	Paul E. McKenney, Shakeel Butt, Christian König,
	David Howells, Simona Vetter, Randy Dunlap, Luca Ceresoli,
	Philipp Stanner, linux-block, LKML,
	open list:CONTROL GROUP (CGROUP), linux-ntfs-dev, Linux-Fsdevel,
	io-uring, audit, bpf, Network Development, dri-devel,
	linux-perf-use., linux-trace-kernel, kexec, live-patching,
	linux-modules, Linux Crypto Mailing List, Linux Power Management,
	rcu, sched-ext, linux-mm, virtualization, damon,
	clang-built-linux, chengkaitao, Muchun Song
In-Reply-To: <ajkSftEbdGoiJXYs@ashevche-desk.local>



在 2026/6/22 18:46, Andy Shevchenko 写道:
> On Mon, Jun 22, 2026 at 02:15:01PM +0800, Kaitao Cheng wrote:
>> 在 2026/6/22 13:28, Alexei Starovoitov 写道:
>>> On Sun, Jun 21, 2026 at 9:06 PM Kaitao Cheng <kaitao.cheng@linux.dev> wrote:
> 
> ...
> 
>>>>  block/bfq-iosched.c                 |  17 +-
>>>>  block/blk-cgroup.c                  |  12 +-
>>>>  block/blk-flush.c                   |   4 +-
>>>>  block/blk-iocost.c                  |  18 +-
>>>>  block/blk-mq.c                      |   8 +-
>>>>  block/blk-throttle.c                |   4 +-
>>>>  block/kyber-iosched.c               |   4 +-
>>>>  block/partitions/ldm.c              |   8 +-
>>>>  block/sed-opal.c                    |   4 +-
>>>>  include/linux/list.h                | 269 ++++++++++++++++++++++++----
>>>>  include/linux/llist.h               |  81 +++++++--
>>>>  init/initramfs.c                    |   5 +-
>>>>  io_uring/cancel.c                   |   6 +-
>>>>  io_uring/poll.c                     |   3 +-
>>>>  io_uring/rw.c                       |   4 +-
>>>>  io_uring/timeout.c                  |   8 +-
>>>>  io_uring/uring_cmd.c                |   3 +-
>>>>  kernel/audit_tree.c                 |   4 +-
>>>>  kernel/audit_watch.c                |  16 +-
>>>>  kernel/auditfilter.c                |   4 +-
>>>>  kernel/auditsc.c                    |   4 +-
>>>>  kernel/bpf/arena.c                  |  10 +-
>>>>  kernel/bpf/arraymap.c               |   8 +-
>>>>  kernel/bpf/bpf_local_storage.c      |   3 +-
>>>>  kernel/bpf/bpf_lru_list.c           |  25 ++-
>>>>  kernel/bpf/btf.c                    |  18 +-
>>>>  kernel/bpf/cgroup.c                 |   7 +-
>>>>  kernel/bpf/cpumap.c                 |   4 +-
>>>>  kernel/bpf/devmap.c                 |  10 +-
>>>>  kernel/bpf/helpers.c                |   8 +-
>>>>  kernel/bpf/local_storage.c          |   4 +-
>>>>  kernel/bpf/memalloc.c               |  16 +-
>>>>  kernel/bpf/offload.c                |   8 +-
>>>>  kernel/bpf/states.c                 |   4 +-
>>>>  kernel/bpf/stream.c                 |   4 +-
>>>>  kernel/bpf/verifier.c               |   6 +-
>>>>  kernel/cgroup/cgroup-v1.c           |   4 +-
>>>>  kernel/cgroup/cgroup.c              |  54 +++---
>>>>  kernel/cgroup/dmem.c                |  12 +-
>>>>  kernel/cgroup/rdma.c                |   8 +-
>>>>  kernel/events/core.c                |  44 +++--
>>>>  kernel/events/uprobes.c             |  12 +-
>>>>  kernel/exit.c                       |   8 +-
>>>>  kernel/fail_function.c              |   4 +-
>>>>  kernel/gcov/clang.c                 |   4 +-
>>>>  kernel/irq_work.c                   |   4 +-
>>>>  kernel/kexec_core.c                 |   4 +-
>>>>  kernel/kprobes.c                    |  16 +-
>>>>  kernel/livepatch/core.c             |   4 +-
>>>>  kernel/livepatch/core.h             |   4 +-
>>>>  kernel/liveupdate/kho_block.c       |   4 +-
>>>>  kernel/liveupdate/luo_flb.c         |   4 +-
>>>>  kernel/locking/rwsem.c              |   2 +-
>>>>  kernel/locking/test-ww_mutex.c      |   2 +-
>>>>  kernel/module/main.c                |  11 +-
>>>>  kernel/padata.c                     |   4 +-
>>>>  kernel/power/snapshot.c             |   8 +-
>>>>  kernel/power/wakelock.c             |   4 +-
>>>>  kernel/printk/printk.c              |  11 +-
>>>>  kernel/ptrace.c                     |   4 +-
>>>>  kernel/rcu/rcutorture.c             |   3 +-
>>>>  kernel/rcu/tasks.h                  |   9 +-
>>>>  kernel/rcu/tree.c                   |   6 +-
>>>>  kernel/resource.c                   |   4 +-
>>>>  kernel/sched/core.c                 |   4 +-
>>>>  kernel/sched/ext.c                  |  22 +--
>>>>  kernel/sched/fair.c                 |  28 +--
>>>>  kernel/sched/topology.c             |   4 +-
>>>>  kernel/sched/wait.c                 |   4 +-
>>>>  kernel/seccomp.c                    |   4 +-
>>>>  kernel/signal.c                     |  11 +-
>>>>  kernel/smp.c                        |   4 +-
>>>>  kernel/taskstats.c                  |   8 +-
>>>>  kernel/time/clockevents.c           |   6 +-
>>>>  kernel/time/clocksource.c           |   4 +-
>>>>  kernel/time/posix-cpu-timers.c      |   4 +-
>>>>  kernel/time/posix-timers.c          |   3 +-
>>>>  kernel/torture.c                    |   3 +-
>>>>  kernel/trace/bpf_trace.c            |   4 +-
>>>>  kernel/trace/ftrace.c               |  49 +++--
>>>>  kernel/trace/ring_buffer.c          |  25 ++-
>>>>  kernel/trace/trace.c                |  12 +-
>>>>  kernel/trace/trace_dynevent.c       |   6 +-
>>>>  kernel/trace/trace_dynevent.h       |   5 +-
>>>>  kernel/trace/trace_events.c         |  35 ++--
>>>>  kernel/trace/trace_events_filter.c  |   4 +-
>>>>  kernel/trace/trace_events_hist.c    |   8 +-
>>>>  kernel/trace/trace_events_trigger.c |  17 +-
>>>>  kernel/trace/trace_events_user.c    |  16 +-
>>>>  kernel/trace/trace_stat.c           |   4 +-
>>>>  kernel/user-return-notifier.c       |   3 +-
>>>>  kernel/workqueue.c                  |  16 +-
>>>>  mm/backing-dev.c                    |   8 +-
>>>>  mm/balloon.c                        |   8 +-
>>>>  mm/cma.c                            |   4 +-
>>>>  mm/compaction.c                     |   4 +-
>>>>  mm/damon/core.c                     |   4 +-
>>>>  mm/damon/sysfs-schemes.c            |   4 +-
>>>>  mm/dmapool.c                        |   4 +-
>>>>  mm/huge_memory.c                    |   8 +-
>>>>  mm/hugetlb.c                        |  56 +++---
>>>>  mm/hugetlb_vmemmap.c                |  16 +-
>>>>  mm/khugepaged.c                     |  14 +-
>>>>  mm/kmemleak.c                       |   7 +-
>>>>  mm/ksm.c                            |  25 +--
>>>>  mm/list_lru.c                       |   4 +-
>>>>  mm/memcontrol-v1.c                  |   8 +-
>>>>  mm/memory-failure.c                 |  12 +-
>>>>  mm/memory-tiers.c                   |   4 +-
>>>>  mm/migrate.c                        |  23 ++-
>>>>  mm/mmu_notifier.c                   |   9 +-
>>>>  mm/page_alloc.c                     |   8 +-
>>>>  mm/page_reporting.c                 |   2 +-
>>>>  mm/percpu.c                         |  11 +-
>>>>  mm/pgtable-generic.c                |   4 +-
>>>>  mm/rmap.c                           |  10 +-
>>>>  mm/shmem.c                          |   9 +-
>>>>  mm/slab_common.c                    |  14 +-
>>>>  mm/slub.c                           |  33 ++--
>>>>  mm/swapfile.c                       |   4 +-
>>>>  mm/userfaultfd.c                    |  12 +-
>>>>  mm/vmalloc.c                        |  24 +--
>>>>  mm/vmscan.c                         |   7 +-
>>>>  mm/zsmalloc.c                       |   4 +-
>>>>  124 files changed, 875 insertions(+), 681 deletions(-)
>>>
>>> Not sure what you were thinking, but this diff stat
>>> is not landable.
>>
>> [PATCH v3 1/7] and [PATCH v3 2/7] contain the main logic and can
>> be merged directly. They are also compatible with the old API.
>> [PATCH v3 3/7] through [PATCH v3 7/7] are just simple interface
>> replacements and do not change any functional logic. They can be
>> left unmerged for now; individual modules can pick them up later
>> if needed.
>>
>> In v2, Andy Shevchenko mentioned: "If it's done by Linus himself
>> during the day when he prepares -rc1, it's fine."
> 
> Yes, but you need to get his blessing first to go with this.
> Have you communicated with him on this?

Not yet, because the overall approach is still not mature. People
have different opinions on the implementation details and on how
to move this forward, so I think we should iterate through a few
versions first before making a final decision.

>> Even so, the
>> changes in this patch series are indeed quite large and touch
>> almost every subsystem. I have only converted part of them for
>> now, so I wanted to send this out first and see what people think.
> 
> That's why it's better to provide a script to convert (e.g., coccinelle)
> instead of tons of patches.

I tried writing conversion scripts with Coccinelle, but there were
always cases that got missed. In contrast, I found that using AI
for focused replacements was actually more efficient.

As David Hildenbrand mentioned, "If we decide we want this, I guess
we should target per-subsystem conversions." I would like to provide
the new interface first; adapting each subsystem on demand later may
be easier to achieve.
-- 
Thanks
Kaitao Cheng


^ permalink raw reply

* Re: PI fixes v2
From: Martin K. Petersen @ 2026-06-24 12:26 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Jens Axboe, Caleb Sander Mateos, Martin K. Petersen, linux-block
In-Reply-To: <20260624080014.1998650-1-hch@lst.de>


Christoph,

> this series has two unrelated PI/metadata fixes that came up
> during a little testing surge.

These look good to me.

Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>

-- 
Martin K. Petersen

^ permalink raw reply

* Re: [PATCH v2] block: serialize elevator changes for the same queue using a writer lock
From: Shin'ichiro Kawasaki @ 2026-06-24 11:48 UTC (permalink / raw)
  To: Ming Lei; +Cc: linux-block, Jens Axboe, Nilay Shroff
In-Reply-To: <ajum7l5BPDRoeJgi@fedora>

On Jun 24, 2026 / 04:44, Ming Lei wrote:
> On Tue, Jun 23, 2026 at 10:32:38AM +0900, Shin'ichiro Kawasaki wrote:
[...]
> > Please refer to [1] for details of the failure. Also, I created a
> > blktests test case that recreates the hang [2], which I used to test the
> > fix.
> > 
> > * Changes from RFC v1
> > - Instead of adding a new mutex to struct request_queue, replace the
> >   reader lock on update_nr_hwq_lock with the writer lock in
> >   elv_iosched_store().
> > 
> > [1] https://lore.kernel.org/linux-block/20260611074200.474676-1-shinichiro.kawasaki@wdc.com/
> > [2] https://github.com/kawasaki/blktests/commit/8e80b3ccc0bbbe3f209d00eacd138d020de97fc6
> > 
> >  block/elevator.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
[...]
> I feel this is still abuse of the above lock, which serves writer vs
> reader wrt. updating hw queue.
> 
> How about the following fix?

(snip)

Thank you for the idea. I applied the suggested fix on top of the v7.1 kernel,
and ran the test case that does the concurrent write to the sysfs sched file
[2]. Unfortunately, the test case hung. Before the hang, the kernel reported
WARNs in sysfs_create_dir_ns() [3]. KASAN slab-use-after-free was observed also.
I also noticed that another WARN was observed during boot [4].

[3]

[   75.184223] [   T1820] run blktests block/044 at 2026-06-24 20:37:20
[   75.229561] [   T1830] null_blk: disk nullb0 created
[   75.234717] [   T1830] null_blk: module loaded
[   75.249186] [   T1820] null_blk: disk nullb1 created
[   88.092222] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[   88.102051] [   T1842] CPU: 6 UID: 0 PID: 1842 Comm: check Tainted: G        W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   88.102067] [   T1842] Tainted: [W]=WARN
[   88.102070] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   88.102075] [   T1842] Call Trace:
[   88.102080] [   T1842]  <TASK>
[   88.102084] [   T1842]  dump_stack_lvl+0x6e/0xa0
[   88.102105] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[   88.102117] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[   88.102132] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[   88.102146] [   T1842]  ? kfree+0x1d6/0x620
[   88.102156] [   T1842]  kobject_add_internal+0x26f/0x800
[   88.102171] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   88.102180] [   T1842]  kobject_add+0x139/0x1a0
[   88.102190] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[   88.102199] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[   88.102208] [   T1842]  ? kasan_quarantine_put+0xf5/0x240
[   88.102218] [   T1842]  ? kfree+0x21c/0x620
[   88.102228] [   T1842]  ? trace_hardirqs_on+0x53/0x1a0
[   88.102237] [   T1842]  elevator_change_done+0x26f/0x690
[   88.102250] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[   88.102259] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   88.102274] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   88.102285] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   88.102293] [   T1842]  elevator_change+0x283/0x4f0
[   88.102305] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   88.102314] [   T1842]  elv_iosched_store+0x30c/0x3a0
[   88.102326] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[   88.102335] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   88.102351] [   T1842]  ? lock_acquire+0x126/0x140
[   88.102364] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   88.102373] [   T1842]  queue_attr_store+0x23f/0x360
[   88.102382] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   88.102393] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[   88.102401] [   T1842]  ? lock_release+0xfa/0x120
[   88.102412] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[   88.102442] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[   88.102452] [   T1842]  ? lock_acquire+0x126/0x140
[   88.102462] [   T1842]  ? lock_acquire+0x126/0x140
[   88.102473] [   T1842]  ? lock_release+0xfa/0x120
[   88.102483] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[   88.102492] [   T1842]  ? sysfs_kf_write+0x65/0x170
[   88.102503] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   88.102511] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[   88.102522] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   88.102530] [   T1842]  vfs_write+0x524/0x1010
[   88.102541] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[   88.102548] [   T1842]  ? do_raw_spin_unlock+0x59/0x230
[   88.102558] [   T1842]  ? wp_page_reuse+0x160/0x1e0
[   88.102574] [   T1842]  ? handle_pte_fault+0x54e/0x760
[   88.102586] [   T1842]  ksys_write+0xff/0x200
[   88.102595] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[   88.102607] [   T1842]  do_syscall_64+0xf4/0x660
[   88.102620] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[   88.102637] [   T1842]  ? count_memcg_events+0x37f/0x480
[   88.102651] [   T1842]  ? lock_release+0xfa/0x120
[   88.102662] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   88.102670] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[   88.102680] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[   88.102693] [   T1842]  ? lock_release+0xfa/0x120
[   88.102703] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[   88.102713] [   T1842]  ? irqentry_exit+0xb0/0x810
[   88.102720] [   T1842]  ? do_syscall_64+0x34/0x660
[   88.102730] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[   88.102737] [   T1842]  ? irqentry_exit+0xb5/0x810
[   88.102743] [   T1842]  ? do_syscall_64+0xab/0x660
[   88.102754] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   88.102762] [   T1842] RIP: 0033:0x7f96f4878bbe
[   88.102772] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   88.102779] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   88.102789] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   88.102800] [   T1842] RDX: 0000000000000004 RSI: 0000562ec532aa50 RDI: 0000000000000001
[   88.102809] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[   88.102818] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000004
[   88.102827] [   T1842] R13: 0000000000000004 R14: 0000562ec532aa50 R15: 0000562ec5397300
[   88.102854] [   T1842]  </TASK>
[   88.536717] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[   90.116333] [   T1841] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[   90.127915] [   T1841] CPU: 0 UID: 0 PID: 1841 Comm: check Tainted: G        W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   90.127935] [   T1841] Tainted: [W]=WARN
[   90.127937] [   T1841] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   90.127941] [   T1841] Call Trace:
[   90.127945] [   T1841]  <TASK>
[   90.127952] [   T1841]  dump_stack_lvl+0x6e/0xa0
[   90.127971] [   T1841]  sysfs_warn_dup.cold+0x17/0x24
[   90.127982] [   T1841]  sysfs_create_dir_ns+0x1fc/0x270
[   90.128000] [   T1841]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[   90.128010] [   T1841]  ? kfree+0x1d6/0x620
[   90.128024] [   T1841]  kobject_add_internal+0x26f/0x800
[   90.128032] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   90.128039] [   T1841]  kobject_add+0x139/0x1a0
[   90.128044] [   T1841]  ? trace_hardirqs_on+0x19/0x1a0
[   90.128048] [   T1841]  ? __pfx_kobject_add+0x10/0x10
[   90.128053] [   T1841]  ? kasan_quarantine_put+0xf5/0x240
[   90.128058] [   T1841]  ? kfree+0x21c/0x620
[   90.128063] [   T1841]  ? trace_hardirqs_on+0x53/0x1a0
[   90.128066] [   T1841]  elevator_change_done+0x26f/0x690
[   90.128074] [   T1841]  ? __pfx_elevator_change_done+0x10/0x10
[   90.128078] [   T1841]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   90.128086] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   90.128091] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   90.128095] [   T1841]  elevator_change+0x283/0x4f0
[   90.128103] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   90.128107] [   T1841]  elv_iosched_store+0x30c/0x3a0
[   90.128112] [   T1841]  ? __pfx_elv_iosched_store+0x10/0x10
[   90.128116] [   T1841]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   90.128131] [   T1841]  ? lock_acquire+0x126/0x140
[   90.128138] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   90.128142] [   T1841]  queue_attr_store+0x23f/0x360
[   90.128150] [   T1841]  ? __mutex_lock+0x1536/0x25a0
[   90.128155] [   T1841]  ? __pfx_queue_attr_store+0x10/0x10
[   90.128159] [   T1841]  ? lock_release+0xfa/0x120
[   90.128164] [   T1841]  ? __pfx___mutex_lock+0x10/0x10
[   90.128169] [   T1841]  ? __pfx__copy_from_iter+0x10/0x10
[   90.128175] [   T1841]  ? lock_acquire+0x126/0x140
[   90.128179] [   T1841]  ? lock_acquire+0x126/0x140
[   90.128184] [   T1841]  ? lock_release+0xfa/0x120
[   90.128192] [   T1841]  ? sysfs_file_kobj+0xb9/0x1b0
[   90.128196] [   T1841]  ? sysfs_kf_write+0x65/0x170
[   90.128201] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   90.128205] [   T1841]  kernfs_fop_write_iter+0x3da/0x5e0
[   90.128214] [   T1841]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   90.128218] [   T1841]  vfs_write+0x524/0x1010
[   90.128223] [   T1841]  ? __pfx_vfs_write+0x10/0x10
[   90.128229] [   T1841]  ? __pfx_do_raw_spin_lock+0x10/0x10
[   90.128238] [   T1841]  ? __pfx_pte_val+0x10/0x10
[   90.128244] [   T1841]  ksys_write+0xff/0x200
[   90.128248] [   T1841]  ? __pfx_ksys_write+0x10/0x10
[   90.128252] [   T1841]  ? lock_release+0xfa/0x120
[   90.128257] [   T1841]  ? rcu_read_unlock+0x1c/0x60
[   90.128260] [   T1841]  ? wp_page_reuse+0x160/0x1e0
[   90.128265] [   T1841]  do_syscall_64+0xf4/0x660
[   90.128277] [   T1841]  ? handle_pte_fault+0x54e/0x760
[   90.128283] [   T1841]  ? __pfx_handle_pte_fault+0x10/0x10
[   90.128288] [   T1841]  ? __pfx_pmd_val+0x10/0x10
[   90.128293] [   T1841]  ? __handle_mm_fault+0xa02/0xef0
[   90.128302] [   T1841]  ? do_raw_spin_unlock+0x59/0x230
[   90.128306] [   T1841]  ? __pfx___css_rstat_updated+0x10/0x10
[   90.128315] [   T1841]  ? count_memcg_events+0x37f/0x480
[   90.128328] [   T1841]  ? lock_release+0xfa/0x120
[   90.128332] [   T1841]  ? rcu_read_unlock+0x1c/0x60
[   90.128336] [   T1841]  ? handle_mm_fault+0x4d1/0x7d0
[   90.128341] [   T1841]  ? do_user_addr_fault+0x15d/0xed0
[   90.128347] [   T1841]  ? lock_release+0xfa/0x120
[   90.128351] [   T1841]  ? do_user_addr_fault+0x811/0xed0
[   90.128356] [   T1841]  ? irqentry_exit+0xb0/0x810
[   90.128359] [   T1841]  ? do_syscall_64+0x34/0x660
[   90.128367] [   T1841]  ? trace_hardirqs_on+0x19/0x1a0
[   90.128370] [   T1841]  ? irqentry_exit+0xb5/0x810
[   90.128373] [   T1841]  ? do_syscall_64+0xab/0x660
[   90.128378] [   T1841]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   90.128388] [   T1841] RIP: 0033:0x7f96f4878bbe
[   90.128393] [   T1841] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   90.128396] [   T1841] RSP: 002b:00007ffcb76eba90 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   90.128402] [   T1841] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   90.128405] [   T1841] RDX: 000000000000000c RSI: 0000562ec532aa50 RDI: 0000000000000001
[   90.128410] [   T1841] RBP: 00007ffcb76ebaa0 R08: 0000000000000000 R09: 0000000000000000
[   90.128413] [   T1841] R10: 0000000000000000 R11: 0000000000000202 R12: 000000000000000c
[   90.128415] [   T1841] R13: 000000000000000c R14: 0000562ec532aa50 R15: 0000562ec5397e70
[   90.128421] [   T1841]  </TASK>
[   90.128435] [   T1841] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[   90.638084] [   T1841] ==================================================================
[   90.646403] [   T1841] BUG: KASAN: slab-use-after-free in blk_mq_free_sched_tags+0x124/0x160
[   90.654950] [   T1841] Read of size 4 at addr ffff88818265ad40 by task check/1841

[   90.665102] [   T1841] CPU: 4 UID: 0 PID: 1841 Comm: check Tainted: G        W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   90.665108] [   T1841] Tainted: [W]=WARN
[   90.665109] [   T1841] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   90.665111] [   T1841] Call Trace:
[   90.665113] [   T1841]  <TASK>
[   90.665115] [   T1841]  dump_stack_lvl+0x6e/0xa0
[   90.665123] [   T1841]  print_address_description.constprop.0+0x70/0x300
[   90.665129] [   T1841]  ? blk_mq_free_sched_tags+0x124/0x160
[   90.665132] [   T1841]  print_report+0xfc/0x1ff
[   90.665136] [   T1841]  ? __virt_addr_valid+0x1d1/0x3f0
[   90.665141] [   T1841]  ? blk_mq_free_sched_tags+0x124/0x160
[   90.665143] [   T1841]  kasan_report+0xf6/0x1c0
[   90.665148] [   T1841]  ? blk_mq_free_sched_tags+0x124/0x160
[   90.665152] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   90.665157] [   T1841]  blk_mq_free_sched_tags+0x124/0x160
[   90.665160] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   90.665163] [   T1841]  blk_mq_free_sched_res+0x50/0x170
[   90.665167] [   T1841]  elevator_change_done+0x4f6/0x690
[   90.665172] [   T1841]  ? __pfx_elevator_change_done+0x10/0x10
[   90.665175] [   T1841]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   90.665181] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   90.665185] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   90.665188] [   T1841]  elevator_change+0x283/0x4f0
[   90.665192] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   90.665196] [   T1841]  elv_iosched_store+0x30c/0x3a0
[   90.665200] [   T1841]  ? __pfx_elv_iosched_store+0x10/0x10
[   90.665204] [   T1841]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   90.665209] [   T1841]  ? lock_acquire+0x126/0x140
[   90.665215] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   90.665218] [   T1841]  queue_attr_store+0x23f/0x360
[   90.665222] [   T1841]  ? __mutex_lock+0x1536/0x25a0
[   90.665226] [   T1841]  ? __pfx_queue_attr_store+0x10/0x10
[   90.665229] [   T1841]  ? lock_release+0xfa/0x120
[   90.665233] [   T1841]  ? __pfx___mutex_lock+0x10/0x10
[   90.665237] [   T1841]  ? __pfx__copy_from_iter+0x10/0x10
[   90.665241] [   T1841]  ? lock_acquire+0x126/0x140
[   90.665244] [   T1841]  ? lock_acquire+0x126/0x140
[   90.665248] [   T1841]  ? lock_release+0xfa/0x120
[   90.665252] [   T1841]  ? sysfs_file_kobj+0xb9/0x1b0
[   90.665255] [   T1841]  ? sysfs_kf_write+0x65/0x170
[   90.665259] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   90.665262] [   T1841]  kernfs_fop_write_iter+0x3da/0x5e0
[   90.665266] [   T1841]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   90.665268] [   T1841]  vfs_write+0x524/0x1010
[   90.665273] [   T1841]  ? __pfx_vfs_write+0x10/0x10
[   90.665278] [   T1841]  ? __pfx_do_raw_spin_lock+0x10/0x10
[   90.665281] [   T1841]  ? __pfx_pte_val+0x10/0x10
[   90.665286] [   T1841]  ksys_write+0xff/0x200
[   90.665289] [   T1841]  ? __pfx_ksys_write+0x10/0x10
[   90.665292] [   T1841]  ? lock_release+0xfa/0x120
[   90.665295] [   T1841]  ? rcu_read_unlock+0x1c/0x60
[   90.665298] [   T1841]  ? wp_page_reuse+0x160/0x1e0
[   90.665302] [   T1841]  do_syscall_64+0xf4/0x660
[   90.665308] [   T1841]  ? handle_pte_fault+0x54e/0x760
[   90.665312] [   T1841]  ? __pfx_handle_pte_fault+0x10/0x10
[   90.665316] [   T1841]  ? __pfx_pmd_val+0x10/0x10
[   90.665320] [   T1841]  ? __handle_mm_fault+0xa02/0xef0
[   90.665324] [   T1841]  ? do_raw_spin_unlock+0x59/0x230
[   90.665327] [   T1841]  ? __pfx___css_rstat_updated+0x10/0x10
[   90.665334] [   T1841]  ? count_memcg_events+0x37f/0x480
[   90.665339] [   T1841]  ? lock_release+0xfa/0x120
[   90.665343] [   T1841]  ? rcu_read_unlock+0x1c/0x60
[   90.665345] [   T1841]  ? handle_mm_fault+0x4d1/0x7d0
[   90.665349] [   T1841]  ? do_user_addr_fault+0x15d/0xed0
[   90.665353] [   T1841]  ? lock_release+0xfa/0x120
[   90.665357] [   T1841]  ? do_user_addr_fault+0x811/0xed0
[   90.665360] [   T1841]  ? irqentry_exit+0xb0/0x810
[   90.665363] [   T1841]  ? do_syscall_64+0x34/0x660
[   90.665366] [   T1841]  ? trace_hardirqs_on+0x19/0x1a0
[   90.665369] [   T1841]  ? irqentry_exit+0xb5/0x810
[   90.665372] [   T1841]  ? do_syscall_64+0xab/0x660
[   90.665375] [   T1841]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   90.665378] [   T1841] RIP: 0033:0x7f96f4878bbe
[   90.665383] [   T1841] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   90.665385] [   T1841] RSP: 002b:00007ffcb76eba90 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   90.665390] [   T1841] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   90.665392] [   T1841] RDX: 000000000000000c RSI: 0000562ec532aa50 RDI: 0000000000000001
[   90.665394] [   T1841] RBP: 00007ffcb76ebaa0 R08: 0000000000000000 R09: 0000000000000000
[   90.665396] [   T1841] R10: 0000000000000000 R11: 0000000000000202 R12: 000000000000000c
[   90.665397] [   T1841] R13: 000000000000000c R14: 0000562ec532aa50 R15: 0000562ec5397e70
[   90.665402] [   T1841]  </TASK>

[   91.124911] [   T1841] Allocated by task 1841:
[   91.129401] [   T1841]  kasan_save_stack+0x30/0x50
[   91.134237] [   T1841]  kasan_save_track+0x14/0x30
[   91.139072] [   T1841]  __kasan_kmalloc+0x9a/0xb0
[   91.143822] [   T1841]  __kmalloc_noprof+0x2bb/0x820
[   91.148832] [   T1841]  blk_mq_alloc_sched_tags+0x72/0x2f0
[   91.154364] [   T1841]  blk_mq_alloc_sched_res+0x86/0x220
[   91.159802] [   T1841]  elevator_change+0x113/0x4f0
[   91.164725] [   T1841]  elv_iosched_store+0x30c/0x3a0
[   91.169821] [   T1841]  queue_attr_store+0x23f/0x360
[   91.174832] [   T1841]  kernfs_fop_write_iter+0x3da/0x5e0
[   91.180276] [   T1841]  vfs_write+0x524/0x1010
[   91.184765] [   T1841]  ksys_write+0xff/0x200
[   91.189168] [   T1841]  do_syscall_64+0xf4/0x660
[   91.193833] [   T1841]  entry_SYSCALL_64_after_hwframe+0x76/0x7e

[   91.202386] [   T1841] Freed by task 1842:
[   91.206535] [   T1841]  kasan_save_stack+0x30/0x50
[   91.211380] [   T1841]  kasan_save_track+0x14/0x30
[   91.216222] [   T1841]  kasan_save_free_info+0x3b/0x70
[   91.221414] [   T1841]  __kasan_slab_free+0x6b/0x90
[   91.226346] [   T1841]  kfree+0x21c/0x620
[   91.230409] [   T1841]  blk_mq_free_sched_res+0x50/0x170
[   91.235777] [   T1841]  elevator_change_done+0x17f/0x690
[   91.241141] [   T1841]  elevator_change+0x283/0x4f0
[   91.246069] [   T1841]  elv_iosched_store+0x30c/0x3a0
[   91.251174] [   T1841]  queue_attr_store+0x23f/0x360
[   91.256195] [   T1841]  kernfs_fop_write_iter+0x3da/0x5e0
[   91.261647] [   T1841]  vfs_write+0x524/0x1010
[   91.266146] [   T1841]  ksys_write+0xff/0x200
[   91.270556] [   T1841]  do_syscall_64+0xf4/0x660
[   91.275227] [   T1841]  entry_SYSCALL_64_after_hwframe+0x76/0x7e

[   91.283792] [   T1841] The buggy address belongs to the object at ffff88818265ad40
                           which belongs to the cache kmalloc-rnd-04-32 of size 32
[   91.298776] [   T1841] The buggy address is located 0 bytes inside of
                           freed 32-byte region [ffff88818265ad40, ffff88818265ad60)

[   91.315327] [   T1841] The buggy address belongs to the physical page:
[   91.321911] [   T1841] page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x18265a
[   91.330919] [   T1841] flags: 0x17ffffc0000000(node=0|zone=2|lastcpupid=0x1fffff)
[   91.338457] [   T1841] page_type: f5(slab)
[   91.342604] [   T1841] raw: 0017ffffc0000000 ffff88810004ca00 dead000000000100 dead000000000122
[   91.351361] [   T1841] raw: 0000000000000000 0000000800400040 00000000f5000000 0000000000000000
[   91.360116] [   T1841] page dumped because: kasan: bad access detected

[   91.369218] [   T1841] Memory state around the buggy address:
[   91.375028] [   T1841]  ffff88818265ac00: fa fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc
[   91.383280] [   T1841]  ffff88818265ac80: fc fc fc fc fc fc fc fc fa fb fb fb fc fc fc fc
[   91.391530] [   T1841] >ffff88818265ad00: fc fc fc fc fc fc fc fc fa fb fb fb fc fc fc fc
[   91.399782] [   T1841]                                            ^
[   91.406132] [   T1841]  ffff88818265ad80: fc fc fc fc fc fc fc fc fa fb fb fb fc fc fc fc
[   91.414400] [   T1841]  ffff88818265ae00: fa fb fb fb fc fc fc fc fa fb fb fb fc fc fc fc
[   91.422666] [   T1841] ==================================================================
[   91.431032] [   T1841] Oops: general protection fault, probably for non-canonical address 0xe066fc31c00000fa: 0000 [#1] SMP KASAN PTI
[   91.449248] [   T1841] KASAN: maybe wild-memory-access in range [0x0338018e000007d0-0x0338018e000007d7]
[   91.458755] [   T1841] CPU: 0 UID: 0 PID: 1841 Comm: check Tainted: G    B   W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   91.469576] [   T1841] Tainted: [B]=BAD_PAGE, [W]=WARN
[   91.474834] [   T1841] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   91.483316] [   T1841] RIP: 0010:blk_mq_free_rqs+0x38/0x790
[   91.489034] [   T1841] Code: 00 00 fc ff df 41 57 49 89 f7 48 81 c6 a0 00 00 00 41 56 49 89 fe 41 55 41 54 55 53 48 83 ec 48 89 14 24 48 89 f2 48 c1 ea 03 <80> 3c 02 00 0f 85 fa 05 00 00 49 8b 87 a0 00 00 00 48 39 c6 0f 84
[   91.509311] [   T1841] RSP: 0018:ffff88815455f530 EFLAGS: 00010206
[   91.515656] [   T1841] RAX: dffffc0000000000 RBX: 0338018e00000732 RCX: 0000000000000000
[   91.523920] [   T1841] RDX: 00670031c00000fa RSI: 0338018e000007d2 RDI: ffff888148d6f838
[   91.532185] [   T1841] RBP: ffff888148d6f838 R08: ffffffffa7baa33a R09: fffffbfff5c10688
[   91.540452] [   T1841] R10: fffffbfff5c10689 R11: 0000000000000001 R12: ffff88818265ad40
[   91.548727] [   T1841] R13: ffff888148d6f838 R14: ffff888148d6f838 R15: 0338018e00000732
[   91.557009] [   T1841] FS:  00007f96f4807780(0000) GS:ffff8887afe48000(0000) knlGS:0000000000000000
[   91.566248] [   T1841] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   91.573153] [   T1841] CR2: 0000562ec532aa51 CR3: 0000000144fee001 CR4: 00000000001726f0
[   91.581447] [   T1841] Call Trace:
[   91.585060] [   T1841]  <TASK>
[   91.588325] [   T1841]  blk_mq_free_map_and_rqs+0x23/0x130
[   91.594029] [   T1841]  blk_mq_free_sched_tags+0xbd/0x160
[   91.599636] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   91.605159] [   T1841]  blk_mq_free_sched_res+0x50/0x170
[   91.610681] [   T1841]  elevator_change_done+0x4f6/0x690
[   91.616204] [   T1841]  ? __pfx_elevator_change_done+0x10/0x10
[   91.622245] [   T1841]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   91.628363] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   91.633880] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   91.639384] [   T1841]  elevator_change+0x283/0x4f0
[   91.644453] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   91.649987] [   T1841]  elv_iosched_store+0x30c/0x3a0
[   91.655224] [   T1841]  ? __pfx_elv_iosched_store+0x10/0x10
[   91.660981] [   T1841]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   91.667337] [   T1841]  ? lock_acquire+0x126/0x140
[   91.672301] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   91.677778] [   T1841]  queue_attr_store+0x23f/0x360
[   91.682911] [   T1841]  ? __mutex_lock+0x1536/0x25a0
[   91.688037] [   T1841]  ? __pfx_queue_attr_store+0x10/0x10
[   91.693674] [   T1841]  ? lock_release+0xfa/0x120
[   91.698532] [   T1841]  ? __pfx___mutex_lock+0x10/0x10
[   91.703815] [   T1841]  ? __pfx__copy_from_iter+0x10/0x10
[   91.709362] [   T1841]  ? lock_acquire+0x126/0x140
[   91.714306] [   T1841]  ? lock_acquire+0x126/0x140
[   91.719248] [   T1841]  ? lock_release+0xfa/0x120
[   91.724094] [   T1841]  ? sysfs_file_kobj+0xb9/0x1b0
[   91.729198] [   T1841]  ? sysfs_kf_write+0x65/0x170
[   91.734214] [   T1841]  ? __pfx_sysfs_kf_write+0x10/0x10
[   91.739640] [   T1841]  kernfs_fop_write_iter+0x3da/0x5e0
[   91.745162] [   T1841]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   91.751187] [   T1841]  vfs_write+0x524/0x1010
[   91.755728] [   T1841]  ? __pfx_vfs_write+0x10/0x10
[   91.760694] [   T1841]  ? __pfx_do_raw_spin_lock+0x10/0x10
[   91.766260] [   T1841]  ? __pfx_pte_val+0x10/0x10
[   91.771042] [   T1841]  ksys_write+0xff/0x200
[   91.775465] [   T1841]  ? __pfx_ksys_write+0x10/0x10
[   91.780477] [   T1841]  ? lock_release+0xfa/0x120
[   91.785218] [   T1841]  ? rcu_read_unlock+0x1c/0x60
[   91.790134] [   T1841]  ? wp_page_reuse+0x160/0x1e0
[   91.795053] [   T1841]  do_syscall_64+0xf4/0x660
[   91.799701] [   T1841]  ? handle_pte_fault+0x54e/0x760
[   91.804864] [   T1841]  ? __pfx_handle_pte_fault+0x10/0x10
[   91.810371] [   T1841]  ? __pfx_pmd_val+0x10/0x10
[   91.815090] [   T1841]  ? __handle_mm_fault+0xa02/0xef0
[   91.820327] [   T1841]  ? do_raw_spin_unlock+0x59/0x230
[   91.825555] [   T1841]  ? __pfx___css_rstat_updated+0x10/0x10
[   91.831307] [   T1841]  ? count_memcg_events+0x37f/0x480
[   91.836623] [   T1841]  ? lock_release+0xfa/0x120
[   91.841334] [   T1841]  ? rcu_read_unlock+0x1c/0x60
[   91.846214] [   T1841]  ? handle_mm_fault+0x4d1/0x7d0
[   91.851268] [   T1841]  ? do_user_addr_fault+0x15d/0xed0
[   91.856588] [   T1841]  ? lock_release+0xfa/0x120
[   91.861293] [   T1841]  ? do_user_addr_fault+0x811/0xed0
[   91.866606] [   T1841]  ? irqentry_exit+0xb0/0x810
[   91.871396] [   T1841]  ? do_syscall_64+0x34/0x660
[   91.876188] [   T1841]  ? trace_hardirqs_on+0x19/0x1a0
[   91.881331] [   T1841]  ? irqentry_exit+0xb5/0x810
[   91.886129] [   T1841]  ? do_syscall_64+0xab/0x660
[   91.890926] [   T1841]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   91.896937] [   T1841] RIP: 0033:0x7f96f4878bbe
[   91.901471] [   T1841] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   91.921483] [   T1841] RSP: 002b:00007ffcb76eba90 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   91.930047] [   T1841] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   91.938176] [   T1841] RDX: 000000000000000c RSI: 0000562ec532aa50 RDI: 0000000000000001
[   91.946306] [   T1841] RBP: 00007ffcb76ebaa0 R08: 0000000000000000 R09: 0000000000000000
[   91.954436] [   T1841] R10: 0000000000000000 R11: 0000000000000202 R12: 000000000000000c
[   91.962567] [   T1841] R13: 000000000000000c R14: 0000562ec532aa50 R15: 0000562ec5397e70
[   91.970702] [   T1841]  </TASK>
[   91.973886] [   T1841] Modules linked in: null_blk nft_masq nft_reject_ipv4 act_csum cls_u32 sch_htb nf_nat_tftp nf_conntrack_tftp bridge stp llc target_core_user target_core_mod rfkill nf_conntrack_netbios_ns nf_conntrack_broadcast nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nft_chain_nat ip6table_nat ip6table_mangle ip6table_raw ip6table_security iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_mangle iptable_raw iptable_security nf_tables ip6table_filter ip6_tables iptable_filter ip_tables qrtr intel_rapl_msr intel_rapl_common sb_edac x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel iTCO_wdt intel_pmc_bxt kvm irqbypass rapl sunrpc intel_cstate intel_uncore pcspkr i2c_i801 i2c_smbus igb mei_me lpc_ich mei ioatdma dca wmi binfmt_misc joydev acpi_pad acpi_power_meter btrfs raid6_pq xor ses enclosure loop dm_multipath nfnetlink zram lz4hc_compress lz4_compress zstd_compress ast drm_client_lib i2c_algo_bit drm_shmem_helper
[   91.974026] [   T1841]  drm_kms_helper drm mpt3sas mpi3mr raid_class scsi_transport_sas scsi_dh_rdac scsi_dh_emc scsi_dh_alua i2c_dev fuse
[   92.080026] [   T1841] ---[ end trace 0000000000000000 ]---
[   92.106503] [   T1841] pstore: backend (erst) writing error (-28)
[   92.112860] [   T1841] RIP: 0010:blk_mq_free_rqs+0x38/0x790
[   92.118708] [   T1841] Code: 00 00 fc ff df 41 57 49 89 f7 48 81 c6 a0 00 00 00 41 56 49 89 fe 41 55 41 54 55 53 48 83 ec 48 89 14 24 48 89 f2 48 c1 ea 03 <80> 3c 02 00 0f 85 fa 05 00 00 49 8b 87 a0 00 00 00 48 39 c6 0f 84
[   92.139931] [   T1841] RSP: 0018:ffff88815455f530 EFLAGS: 00010206
[   92.140007] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[   92.145981] [   T1841] RAX: dffffc0000000000 RBX: 0338018e00000732 RCX: 0000000000000000
[   92.155553] [   T1842] CPU: 0 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   92.155560] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[   92.155561] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   92.155563] [   T1842] Call Trace:
[   92.155564] [   T1842]  <TASK>
[   92.155566] [   T1842]  dump_stack_lvl+0x6e/0xa0
[   92.155624] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[   92.155644] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[   92.155652] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[   92.155666] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   92.155672] [   T1842]  ? kfree+0x1d6/0x620
[   92.155682] [   T1842]  kobject_add_internal+0x26f/0x800
[   92.155690] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   92.155693] [   T1842]  kobject_add+0x139/0x1a0
[   92.155696] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[   92.155703] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[   92.155707] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[   92.155710] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[   92.155713] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[   92.155716] [   T1842]  elevator_change_done+0x26f/0x690
[   92.155725] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[   92.155728] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   92.155733] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   92.155737] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   92.155740] [   T1842]  elevator_change+0x283/0x4f0
[   92.155749] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   92.155752] [   T1842]  elv_iosched_store+0x30c/0x3a0
[   92.155755] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[   92.155759] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   92.155764] [   T1842]  ? lock_acquire+0x126/0x140
[   92.155773] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   92.155776] [   T1842]  queue_attr_store+0x23f/0x360
[   92.155779] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   92.155782] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[   92.155785] [   T1842]  ? lock_release+0xfa/0x120
[   92.155793] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[   92.155796] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[   92.155801] [   T1842]  ? lock_acquire+0x126/0x140
[   92.155804] [   T1842]  ? lock_acquire+0x126/0x140
[   92.155807] [   T1842]  ? lock_release+0xfa/0x120
[   92.155811] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[   92.155816] [   T1842]  ? sysfs_kf_write+0x65/0x170
[   92.155820] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   92.155823] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[   92.155826] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   92.155829] [   T1842]  vfs_write+0x524/0x1010
[   92.155843] [   T1842]  ? __pfx_do_raw_spin_lock+0x10/0x10
[   92.155845] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[   92.155850] [   T1842]  ? do_fcntl+0x605/0x1030
[   92.155860] [   T1842]  ? __pfx_do_fcntl+0x10/0x10
[   92.155864] [   T1842]  ksys_write+0xff/0x200
[   92.155867] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[   92.155869] [   T1842]  ? selinux_file_fcntl+0x1e/0x110
[   92.155876] [   T1842]  ? __pfx_pte_val+0x10/0x10
[   92.155881] [   T1842]  do_syscall_64+0xf4/0x660
[   92.155885] [   T1842]  ? ptep_set_access_flags+0xe5/0x130
[   92.155888] [   T1842]  ? __pfx_folio_xchg_last_cpupid+0x10/0x10
[   92.155892] [   T1842]  ? __pfx_ptep_set_access_flags+0x10/0x10
[   92.155897] [   T1842]  ? do_raw_spin_unlock+0x59/0x230
[   92.155901] [   T1842]  ? lock_release+0xfa/0x120
[   92.155904] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   92.155907] [   T1842]  ? wp_page_reuse+0x160/0x1e0
[   92.155911] [   T1842]  ? do_wp_page+0x57e/0xf40
[   92.155917] [   T1842]  ? handle_pte_fault+0x54e/0x760
[   92.155959] [   T1842]  ? __pfx_handle_pte_fault+0x10/0x10
[   92.155982] [   T1842]  ? __pfx_pmd_val+0x10/0x10
[   92.155991] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[   92.155998] [   T1842]  ? do_raw_spin_unlock+0x59/0x230
[   92.156003] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[   92.156017] [   T1842]  ? count_memcg_events+0x37f/0x480
[   92.156028] [   T1842]  ? lock_release+0xfa/0x120
[   92.156033] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   92.156036] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[   92.156039] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[   92.156044] [   T1842]  ? lock_release+0xfa/0x120
[   92.156057] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[   92.156060] [   T1842]  ? irqentry_exit+0xb0/0x810
[   92.156063] [   T1842]  ? do_syscall_64+0x34/0x660
[   92.156066] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[   92.156073] [   T1842]  ? irqentry_exit+0xb5/0x810
[   92.156075] [   T1842]  ? do_syscall_64+0xab/0x660
[   92.156079] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   92.156081] [   T1842] RIP: 0033:0x7f96f4878bbe
[   92.156085] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   92.156087] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   92.156096] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   92.156098] [   T1842] RDX: 000000000000000c RSI: 0000562ec532aa50 RDI: 0000000000000001
[   92.156100] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[   92.156102] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 000000000000000c
[   92.156103] [   T1842] R13: 000000000000000c R14: 0000562ec532aa50 R15: 0000562ec5394f20
[   92.156108] [   T1842]  </TASK>
[   92.156122] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[   92.163427] [   T1841] RDX: 00670031c00000fa RSI: 0338018e000007d2 RDI: ffff888148d6f838
[   92.701628] [   T1841] RBP: ffff888148d6f838 R08: ffffffffa7baa33a R09: fffffbfff5c10688
[   92.717075] [   T1841] R10: fffffbfff5c10689 R11: 0000000000000001 R12: ffff88818265ad40
[   92.732771] [   T1841] R13: ffff888148d6f838 R14: ffff888148d6f838 R15: 0338018e00000732
[   92.748062] [   T1841] FS:  00007f96f4807780(0000) GS:ffff8887aff48000(0000) knlGS:0000000000000000
[   92.763917] [   T1841] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   92.779232] [   T1841] CR2: 0000562ec532aa50 CR3: 0000000144fee003 CR4: 00000000001726f0
[   92.831074] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[   92.841145] [   T1842] CPU: 3 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   92.841152] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[   92.841154] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   92.841155] [   T1842] Call Trace:
[   92.841157] [   T1842]  <TASK>
[   92.841159] [   T1842]  dump_stack_lvl+0x6e/0xa0
[   92.841168] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[   92.841173] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[   92.841179] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[   92.841183] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   92.841188] [   T1842]  ? kfree+0x1d6/0x620
[   92.841192] [   T1842]  kobject_add_internal+0x26f/0x800
[   92.841197] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   92.841200] [   T1842]  kobject_add+0x139/0x1a0
[   92.841203] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[   92.841208] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[   92.841212] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[   92.841215] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[   92.841219] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[   92.841222] [   T1842]  elevator_change_done+0x26f/0x690
[   92.841227] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[   92.841230] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   92.841236] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   92.841239] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   92.841242] [   T1842]  elevator_change+0x283/0x4f0
[   92.841246] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   92.841249] [   T1842]  elv_iosched_store+0x30c/0x3a0
[   92.841253] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[   92.841256] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   92.841261] [   T1842]  ? lock_acquire+0x126/0x140
[   92.841266] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   92.841269] [   T1842]  queue_attr_store+0x23f/0x360
[   92.841273] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   92.841276] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[   92.841279] [   T1842]  ? lock_release+0xfa/0x120
[   92.841283] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[   92.841286] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[   92.841290] [   T1842]  ? lock_acquire+0x126/0x140
[   92.841294] [   T1842]  ? lock_acquire+0x126/0x140
[   92.841297] [   T1842]  ? lock_release+0xfa/0x120
[   92.841301] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[   92.841304] [   T1842]  ? sysfs_kf_write+0x65/0x170
[   92.841307] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   92.841310] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[   92.841314] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   92.841317] [   T1842]  vfs_write+0x524/0x1010
[   92.841321] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[   92.841327] [   T1842]  ksys_write+0xff/0x200
[   92.841330] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[   92.841333] [   T1842]  ? count_memcg_events+0x37f/0x480
[   92.841338] [   T1842]  do_syscall_64+0xf4/0x660
[   92.841342] [   T1842]  ? lock_release+0xfa/0x120
[   92.841345] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   92.841349] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[   92.841353] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[   92.841358] [   T1842]  ? lock_release+0xfa/0x120
[   92.841362] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[   92.841365] [   T1842]  ? irqentry_exit+0xb0/0x810
[   92.841368] [   T1842]  ? do_syscall_64+0x34/0x660
[   92.841371] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[   92.841374] [   T1842]  ? irqentry_exit+0xb5/0x810
[   92.841376] [   T1842]  ? do_syscall_64+0xab/0x660
[   92.841380] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   92.841382] [   T1842] RIP: 0033:0x7f96f4878bbe
[   92.841386] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   92.841389] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   92.841393] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   92.841395] [   T1842] RDX: 000000000000000c RSI: 0000562ec532aa50 RDI: 0000000000000001
[   92.841397] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[   92.841398] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 000000000000000c
[   92.841400] [   T1842] R13: 000000000000000c R14: 0000562ec532aa50 R15: 0000562ec5382090
[   92.841405] [   T1842]  </TASK>
[   92.841410] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[   93.347152] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[   93.357995] [   T1842] CPU: 7 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   93.358003] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[   93.358004] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   93.358006] [   T1842] Call Trace:
[   93.358008] [   T1842]  <TASK>
[   93.358015] [   T1842]  dump_stack_lvl+0x6e/0xa0
[   93.358025] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[   93.358030] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[   93.358042] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[   93.358047] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   93.358051] [   T1842]  ? kasan_save_track+0x14/0x30
[   93.358060] [   T1842]  ? kfree+0x1d6/0x620
[   93.358064] [   T1842]  kobject_add_internal+0x26f/0x800
[   93.358071] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   93.358074] [   T1842]  kobject_add+0x139/0x1a0
[   93.358085] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[   93.358090] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[   93.358094] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[   93.358097] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[   93.358109] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[   93.358112] [   T1842]  elevator_change_done+0x26f/0x690
[   93.358122] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[   93.358125] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   93.358131] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   93.358134] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   93.358137] [   T1842]  elevator_change+0x283/0x4f0
[   93.358144] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   93.358147] [   T1842]  elv_iosched_store+0x30c/0x3a0
[   93.358151] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[   93.358154] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   93.358160] [   T1842]  ? lock_acquire+0x126/0x140
[   93.358181] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   93.358190] [   T1842]  queue_attr_store+0x23f/0x360
[   93.358195] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   93.358198] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[   93.358200] [   T1842]  ? lock_release+0xfa/0x120
[   93.358204] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[   93.358211] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[   93.358216] [   T1842]  ? lock_acquire+0x126/0x140
[   93.358219] [   T1842]  ? lock_acquire+0x126/0x140
[   93.358223] [   T1842]  ? lock_release+0xfa/0x120
[   93.358226] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[   93.358238] [   T1842]  ? sysfs_kf_write+0x65/0x170
[   93.358241] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   93.358244] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[   93.358248] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   93.358254] [   T1842]  vfs_write+0x524/0x1010
[   93.358259] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[   93.358262] [   T1842]  ? __pfx_pte_val+0x10/0x10
[   93.358266] [   T1842]  ? ptep_set_access_flags+0xe5/0x130
[   93.358274] [   T1842]  ? __pfx_folio_xchg_last_cpupid+0x10/0x10
[   93.358280] [   T1842]  ? do_raw_spin_unlock+0x59/0x230
[   93.358282] [   T1842]  ? lock_release+0xfa/0x120
[   93.358285] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   93.358290] [   T1842]  ksys_write+0xff/0x200
[   93.358297] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[   93.358300] [   T1842]  ? handle_pte_fault+0x54e/0x760
[   93.358305] [   T1842]  do_syscall_64+0xf4/0x660
[   93.358310] [   T1842]  ? __pfx_pmd_val+0x10/0x10
[   93.358317] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[   93.358324] [   T1842]  ? fput_close+0x137/0x1a0
[   93.358328] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[   93.358349] [   T1842]  ? count_memcg_events+0x37f/0x480
[   93.358365] [   T1842]  ? lock_release+0xfa/0x120
[   93.358371] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   93.358375] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[   93.358381] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[   93.358390] [   T1842]  ? lock_release+0xfa/0x120
[   93.358395] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[   93.358400] [   T1842]  ? irqentry_exit+0xb0/0x810
[   93.358415] [   T1842]  ? do_syscall_64+0x34/0x660
[   93.358420] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[   93.358427] [   T1842]  ? irqentry_exit+0xb5/0x810
[   93.358430] [   T1842]  ? do_syscall_64+0xab/0x660
[   93.358436] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   93.358440] [   T1842] RIP: 0033:0x7f96f4878bbe
[   93.358450] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   93.358453] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   93.358459] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   93.358462] [   T1842] RDX: 0000000000000006 RSI: 0000562ec532aa50 RDI: 0000000000000001
[   93.358465] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[   93.358469] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000006
[   93.358471] [   T1842] R13: 0000000000000006 R14: 0000562ec532aa50 R15: 0000562ec53929c0
[   93.358478] [   T1842]  </TASK>
[   93.358495] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[   93.906005] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[   93.916008] [   T1842] CPU: 0 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   93.916015] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[   93.916017] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   93.916018] [   T1842] Call Trace:
[   93.916020] [   T1842]  <TASK>
[   93.916022] [   T1842]  dump_stack_lvl+0x6e/0xa0
[   93.916031] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[   93.916037] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[   93.916043] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[   93.916048] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   93.916052] [   T1842]  ? kfree+0x1d6/0x620
[   93.916056] [   T1842]  kobject_add_internal+0x26f/0x800
[   93.916062] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   93.916065] [   T1842]  kobject_add+0x139/0x1a0
[   93.916069] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[   93.916073] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[   93.916077] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[   93.916080] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[   93.916085] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[   93.916088] [   T1842]  elevator_change_done+0x26f/0x690
[   93.916093] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[   93.916096] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   93.916102] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   93.916106] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   93.916109] [   T1842]  elevator_change+0x283/0x4f0
[   93.916113] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   93.916116] [   T1842]  elv_iosched_store+0x30c/0x3a0
[   93.916120] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[   93.916123] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   93.916129] [   T1842]  ? lock_acquire+0x126/0x140
[   93.916133] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   93.916137] [   T1842]  queue_attr_store+0x23f/0x360
[   93.916141] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   93.916144] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[   93.916146] [   T1842]  ? lock_release+0xfa/0x120
[   93.916150] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[   93.916154] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[   93.916158] [   T1842]  ? lock_acquire+0x126/0x140
[   93.916162] [   T1842]  ? lock_acquire+0x126/0x140
[   93.916165] [   T1842]  ? lock_release+0xfa/0x120
[   93.916169] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[   93.916172] [   T1842]  ? sysfs_kf_write+0x65/0x170
[   93.916176] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   93.916179] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[   93.916183] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   93.916185] [   T1842]  vfs_write+0x524/0x1010
[   93.916189] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[   93.916193] [   T1842]  ? fput_close+0x137/0x1a0
[   93.916198] [   T1842]  ? __pfx_pte_val+0x10/0x10
[   93.916202] [   T1842]  ksys_write+0xff/0x200
[   93.916205] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[   93.916208] [   T1842]  ? do_raw_spin_unlock+0x59/0x230
[   93.916211] [   T1842]  ? lock_release+0xfa/0x120
[   93.916215] [   T1842]  do_syscall_64+0xf4/0x660
[   93.916219] [   T1842]  ? do_wp_page+0x57e/0xf40
[   93.916224] [   T1842]  ? handle_pte_fault+0x54e/0x760
[   93.916228] [   T1842]  ? __pfx_handle_pte_fault+0x10/0x10
[   93.916231] [   T1842]  ? fput_close_sync+0x137/0x1a0
[   93.916234] [   T1842]  ? __pfx_pmd_val+0x10/0x10
[   93.916238] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[   93.916242] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[   93.916249] [   T1842]  ? count_memcg_events+0x37f/0x480
[   93.916255] [   T1842]  ? lock_release+0xfa/0x120
[   93.916258] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   93.916261] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[   93.916265] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[   93.916270] [   T1842]  ? lock_release+0xfa/0x120
[   93.916274] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[   93.916277] [   T1842]  ? irqentry_exit+0xb0/0x810
[   93.916280] [   T1842]  ? do_syscall_64+0x34/0x660
[   93.916283] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[   93.916286] [   T1842]  ? irqentry_exit+0xb5/0x810
[   93.916289] [   T1842]  ? do_syscall_64+0xab/0x660
[   93.916292] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   93.916295] [   T1842] RIP: 0033:0x7f96f4878bbe
[   93.916299] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   93.916302] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   93.916306] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   93.916308] [   T1842] RDX: 000000000000000c RSI: 0000562ec532aa50 RDI: 0000000000000001
[   93.916310] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[   93.916311] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 000000000000000c
[   93.916313] [   T1842] R13: 000000000000000c R14: 0000562ec532aa50 R15: 0000562ec5397300
[   93.916318] [   T1842]  </TASK>
[   93.916324] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[   94.437220] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[   94.447276] [   T1842] CPU: 0 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   94.447287] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[   94.447289] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   94.447292] [   T1842] Call Trace:
[   94.447295] [   T1842]  <TASK>
[   94.447297] [   T1842]  dump_stack_lvl+0x6e/0xa0
[   94.447310] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[   94.447317] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[   94.447326] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[   94.447333] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   94.447338] [   T1842]  ? kasan_save_track+0x14/0x30
[   94.447344] [   T1842]  ? kfree+0x1d6/0x620
[   94.447350] [   T1842]  kobject_add_internal+0x26f/0x800
[   94.447390] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   94.447455] [   T1842]  kobject_add+0x139/0x1a0
[   94.447521] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[   94.447630] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[   94.447696] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[   94.447761] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[   94.447849] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[   94.447915] [   T1842]  elevator_change_done+0x26f/0x690
[   94.447943] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[   94.447947] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   94.448008] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   94.448094] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   94.448117] [   T1842]  elevator_change+0x283/0x4f0
[   94.448204] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   94.448291] [   T1842]  elv_iosched_store+0x30c/0x3a0
[   94.448379] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[   94.448422] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   94.448552] [   T1842]  ? lock_acquire+0x126/0x140
[   94.448619] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   94.448684] [   T1842]  queue_attr_store+0x23f/0x360
[   94.448771] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   94.448837] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[   94.448880] [   T1842]  ? lock_release+0xfa/0x120
[   94.448926] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[   94.448933] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[   94.449011] [   T1842]  ? lock_acquire+0x126/0x140
[   94.449077] [   T1842]  ? lock_acquire+0x126/0x140
[   94.449121] [   T1842]  ? lock_release+0xfa/0x120
[   94.449186] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[   94.449251] [   T1842]  ? sysfs_kf_write+0x65/0x170
[   94.449296] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   94.449360] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[   94.449426] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   94.449513] [   T1842]  vfs_write+0x524/0x1010
[   94.449622] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[   94.449688] [   T1842]  ksys_write+0xff/0x200
[   94.449732] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[   94.449797] [   T1842]  ? lock_release+0xfa/0x120
[   94.449862] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[   94.449933] [   T1842]  do_syscall_64+0xf4/0x660
[   94.449940] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[   94.449945] [   T1842]  ? irqentry_exit+0xb5/0x810
[   94.449961] [   T1842]  ? do_syscall_64+0xab/0x660
[   94.449983] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   94.449988] [   T1842] RIP: 0033:0x7f96f4878bbe
[   94.450027] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   94.450071] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   94.450179] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   94.450223] [   T1842] RDX: 0000000000000006 RSI: 0000562ec532aa50 RDI: 0000000000000001
[   94.450246] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[   94.450289] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000006
[   94.450311] [   T1842] R13: 0000000000000006 R14: 0000562ec532aa50 R15: 0000562ec5395410
[   94.450420] [   T1842]  </TASK>
[   95.163048] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[   95.211096] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[   95.221135] [   T1842] CPU: 7 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   95.221215] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[   95.221258] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   95.221260] [   T1842] Call Trace:
[   95.221303] [   T1842]  <TASK>
[   95.221367] [   T1842]  dump_stack_lvl+0x6e/0xa0
[   95.221528] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[   95.221636] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[   95.221768] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[   95.221855] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   95.221943] [   T1842]  ? kfree+0x1d6/0x620
[   95.221950] [   T1842]  kobject_add_internal+0x26f/0x800
[   95.221958] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   95.222036] [   T1842]  kobject_add+0x139/0x1a0
[   95.222102] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[   95.222210] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[   95.222297] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[   95.222363] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[   95.222451] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[   95.222495] [   T1842]  elevator_change_done+0x26f/0x690
[   95.222624] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[   95.222690] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   95.222798] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   95.222865] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   95.222930] [   T1842]  elevator_change+0x283/0x4f0
[   95.222958] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   95.222963] [   T1842]  elv_iosched_store+0x30c/0x3a0
[   95.222969] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[   95.222974] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   95.222984] [   T1842]  ? lock_acquire+0x126/0x140
[   95.222992] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   95.222997] [   T1842]  queue_attr_store+0x23f/0x360
[   95.223003] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   95.223009] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[   95.223014] [   T1842]  ? lock_release+0xfa/0x120
[   95.223031] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[   95.223117] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[   95.223204] [   T1842]  ? lock_acquire+0x126/0x140
[   95.223249] [   T1842]  ? lock_acquire+0x126/0x140
[   95.223314] [   T1842]  ? lock_release+0xfa/0x120
[   95.223379] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[   95.223444] [   T1842]  ? sysfs_kf_write+0x65/0x170
[   95.223489] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   95.223553] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[   95.223640] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   95.223684] [   T1842]  vfs_write+0x524/0x1010
[   95.223772] [   T1842]  ? __pfx_locks_remove_posix+0x10/0x10
[   95.223902] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[   95.223953] [   T1842]  ksys_write+0xff/0x200
[   95.223972] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[   95.223977] [   T1842]  ? do_raw_spin_unlock+0x59/0x230
[   95.224036] [   T1842]  ? lock_release+0xfa/0x120
[   95.224122] [   T1842]  do_syscall_64+0xf4/0x660
[   95.224189] [   T1842]  ? do_wp_page+0x57e/0xf40
[   95.224256] [   T1842]  ? handle_pte_fault+0x54e/0x760
[   95.224340] [   T1842]  ? __pfx_handle_pte_fault+0x10/0x10
[   95.224385] [   T1842]  ? __pfx_pmd_val+0x10/0x10
[   95.224429] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[   95.224516] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[   95.224690] [   T1842]  ? count_memcg_events+0x37f/0x480
[   95.224777] [   T1842]  ? lock_release+0xfa/0x120
[   95.224843] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   95.224908] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[   95.224954] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[   95.224973] [   T1842]  ? lock_release+0xfa/0x120
[   95.225039] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[   95.225084] [   T1842]  ? irqentry_exit+0xb0/0x810
[   95.225148] [   T1842]  ? do_syscall_64+0x34/0x660
[   95.225214] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[   95.225279] [   T1842]  ? irqentry_exit+0xb5/0x810
[   95.225322] [   T1842]  ? do_syscall_64+0xab/0x660
[   95.225388] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   95.225454] [   T1842] RIP: 0033:0x7f96f4878bbe
[   95.225562] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   95.225628] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   95.225715] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   95.225780] [   T1842] RDX: 000000000000000c RSI: 0000562ec532aa50 RDI: 0000000000000001
[   95.225803] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[   95.225846] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 000000000000000c
[   95.225890] [   T1842] R13: 000000000000000c R14: 0000562ec532aa50 R15: 0000562ec5395360
[   95.225959] [   T1842]  </TASK>
[   96.121095] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[   96.243207] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[   96.254050] [   T1842] CPU: 7 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   96.254058] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[   96.254064] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   96.254066] [   T1842] Call Trace:
[   96.254068] [   T1842]  <TASK>
[   96.254070] [   T1842]  dump_stack_lvl+0x6e/0xa0
[   96.254079] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[   96.254089] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[   96.254096] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[   96.254100] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   96.254111] [   T1842]  ? kfree+0x1d6/0x620
[   96.254115] [   T1842]  kobject_add_internal+0x26f/0x800
[   96.254121] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   96.254127] [   T1842]  kobject_add+0x139/0x1a0
[   96.254131] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[   96.254135] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[   96.254139] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[   96.254142] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[   96.254151] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[   96.254154] [   T1842]  elevator_change_done+0x26f/0x690
[   96.254159] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[   96.254162] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   96.254170] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   96.254174] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   96.254177] [   T1842]  elevator_change+0x283/0x4f0
[   96.254180] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   96.254183] [   T1842]  elv_iosched_store+0x30c/0x3a0
[   96.254187] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[   96.254192] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   96.254198] [   T1842]  ? lock_acquire+0x126/0x140
[   96.254202] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   96.254205] [   T1842]  queue_attr_store+0x23f/0x360
[   96.254209] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   96.254216] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[   96.254219] [   T1842]  ? lock_release+0xfa/0x120
[   96.254223] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[   96.254227] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[   96.254231] [   T1842]  ? lock_acquire+0x126/0x140
[   96.254235] [   T1842]  ? lock_acquire+0x126/0x140
[   96.254238] [   T1842]  ? lock_release+0xfa/0x120
[   96.254242] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[   96.254245] [   T1842]  ? sysfs_kf_write+0x65/0x170
[   96.254248] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   96.254251] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[   96.254265] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   96.254268] [   T1842]  vfs_write+0x524/0x1010
[   96.254272] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[   96.254284] [   T1842]  ksys_write+0xff/0x200
[   96.254287] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[   96.254290] [   T1842]  ? lock_release+0xfa/0x120
[   96.254294] [   T1842]  do_syscall_64+0xf4/0x660
[   96.254301] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[   96.254307] [   T1842]  ? lock_release+0xfa/0x120
[   96.254310] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[   96.254314] [   T1842]  ? irqentry_exit+0xb0/0x810
[   96.254316] [   T1842]  ? do_syscall_64+0x34/0x660
[   96.254321] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[   96.254326] [   T1842]  ? irqentry_exit+0xb5/0x810
[   96.254328] [   T1842]  ? do_syscall_64+0xab/0x660
[   96.254331] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   96.254334] [   T1842] RIP: 0033:0x7f96f4878bbe
[   96.254338] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   96.254348] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   96.254352] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   96.254354] [   T1842] RDX: 000000000000000c RSI: 0000562ec532aa50 RDI: 0000000000000001
[   96.254356] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[   96.254357] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 000000000000000c
[   96.254359] [   T1842] R13: 000000000000000c R14: 0000562ec532aa50 R15: 0000562ec53956a0
[   96.254373] [   T1842]  </TASK>
[   96.254379] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[   96.715123] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[   96.725123] [   T1842] CPU: 3 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   96.725129] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[   96.725131] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   96.725133] [   T1842] Call Trace:
[   96.725135] [   T1842]  <TASK>
[   96.725136] [   T1842]  dump_stack_lvl+0x6e/0xa0
[   96.725145] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[   96.725150] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[   96.725156] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[   96.725161] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   96.725165] [   T1842]  ? kfree+0x1d6/0x620
[   96.725169] [   T1842]  kobject_add_internal+0x26f/0x800
[   96.725175] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   96.725178] [   T1842]  kobject_add+0x139/0x1a0
[   96.725181] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[   96.725185] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[   96.725189] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[   96.725192] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[   96.725196] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[   96.725199] [   T1842]  elevator_change_done+0x26f/0x690
[   96.725204] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[   96.725207] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   96.725212] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   96.725216] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   96.725219] [   T1842]  elevator_change+0x283/0x4f0
[   96.725223] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   96.725226] [   T1842]  elv_iosched_store+0x30c/0x3a0
[   96.725230] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[   96.725233] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   96.725238] [   T1842]  ? lock_acquire+0x126/0x140
[   96.725243] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   96.725245] [   T1842]  queue_attr_store+0x23f/0x360
[   96.725249] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   96.725252] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[   96.725255] [   T1842]  ? lock_release+0xfa/0x120
[   96.725259] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[   96.725262] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[   96.725267] [   T1842]  ? lock_acquire+0x126/0x140
[   96.725270] [   T1842]  ? lock_acquire+0x126/0x140
[   96.725274] [   T1842]  ? lock_release+0xfa/0x120
[   96.725277] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[   96.725280] [   T1842]  ? sysfs_kf_write+0x65/0x170
[   96.725284] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   96.725286] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[   96.725290] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   96.725293] [   T1842]  vfs_write+0x524/0x1010
[   96.725297] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[   96.725302] [   T1842]  ? __pfx_do_raw_spin_lock+0x10/0x10
[   96.725304] [   T1842]  ? lock_acquire+0x126/0x140
[   96.725308] [   T1842]  ksys_write+0xff/0x200
[   96.725311] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[   96.725314] [   T1842]  ? __pfx_pte_val+0x10/0x10
[   96.725318] [   T1842]  ? folio_xchg_last_cpupid+0xc6/0x130
[   96.725323] [   T1842]  do_syscall_64+0xf4/0x660
[   96.725327] [   T1842]  ? __pfx_ptep_set_access_flags+0x10/0x10
[   96.725331] [   T1842]  ? do_raw_spin_unlock+0x59/0x230
[   96.725334] [   T1842]  ? lock_release+0xfa/0x120
[   96.725337] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   96.725340] [   T1842]  ? wp_page_reuse+0x160/0x1e0
[   96.725344] [   T1842]  ? do_wp_page+0x57e/0xf40
[   96.725348] [   T1842]  ? handle_pte_fault+0x54e/0x760
[   96.725352] [   T1842]  ? __pfx_handle_pte_fault+0x10/0x10
[   96.725355] [   T1842]  ? __pfx_pmd_val+0x10/0x10
[   96.725359] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[   96.725363] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[   96.725370] [   T1842]  ? count_memcg_events+0x37f/0x480
[   96.725375] [   T1842]  ? lock_release+0xfa/0x120
[   96.725378] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   96.725381] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[   96.725385] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[   96.725389] [   T1842]  ? lock_release+0xfa/0x120
[   96.725393] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[   96.725396] [   T1842]  ? irqentry_exit+0xb0/0x810
[   96.725399] [   T1842]  ? do_syscall_64+0x34/0x660
[   96.725402] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[   96.725405] [   T1842]  ? irqentry_exit+0xb5/0x810
[   96.725407] [   T1842]  ? do_syscall_64+0xab/0x660
[   96.725411] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   96.725413] [   T1842] RIP: 0033:0x7f96f4878bbe
[   96.725417] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   96.725419] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   96.725423] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   96.725425] [   T1842] RDX: 0000000000000004 RSI: 0000562ec532aa50 RDI: 0000000000000001
[   96.725427] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[   96.725429] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000004
[   96.725430] [   T1842] R13: 0000000000000004 R14: 0000562ec532aa50 R15: 0000562ec5399dc0
[   96.725435] [   T1842]  </TASK>
[   96.725440] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[   97.266189] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[   97.276171] [   T1842] CPU: 7 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   97.276178] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[   97.276179] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   97.276181] [   T1842] Call Trace:
[   97.276183] [   T1842]  <TASK>
[   97.276185] [   T1842]  dump_stack_lvl+0x6e/0xa0
[   97.276194] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[   97.276199] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[   97.276206] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[   97.276210] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   97.276214] [   T1842]  ? kasan_save_track+0x14/0x30
[   97.276218] [   T1842]  ? kfree+0x1d6/0x620
[   97.276222] [   T1842]  kobject_add_internal+0x26f/0x800
[   97.276228] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   97.276232] [   T1842]  kobject_add+0x139/0x1a0
[   97.276235] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[   97.276239] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[   97.276243] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[   97.276246] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[   97.276250] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[   97.276253] [   T1842]  elevator_change_done+0x26f/0x690
[   97.276259] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[   97.276262] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   97.276268] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   97.276272] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   97.276275] [   T1842]  elevator_change+0x283/0x4f0
[   97.276279] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   97.276282] [   T1842]  elv_iosched_store+0x30c/0x3a0
[   97.276286] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[   97.276289] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   97.276295] [   T1842]  ? lock_acquire+0x126/0x140
[   97.276300] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   97.276303] [   T1842]  queue_attr_store+0x23f/0x360
[   97.276307] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   97.276310] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[   97.276313] [   T1842]  ? lock_release+0xfa/0x120
[   97.276317] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[   97.276321] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[   97.276325] [   T1842]  ? lock_acquire+0x126/0x140
[   97.276329] [   T1842]  ? lock_acquire+0x126/0x140
[   97.276332] [   T1842]  ? lock_release+0xfa/0x120
[   97.276336] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[   97.276339] [   T1842]  ? sysfs_kf_write+0x65/0x170
[   97.276343] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   97.276345] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[   97.276349] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   97.276352] [   T1842]  vfs_write+0x524/0x1010
[   97.276356] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[   97.276361] [   T1842]  ? __pfx_fput_close_sync+0x10/0x10
[   97.276365] [   T1842]  ? do_raw_spin_unlock+0x59/0x230
[   97.276369] [   T1842]  ksys_write+0xff/0x200
[   97.276372] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[   97.276374] [   T1842]  ? ptep_set_access_flags+0xe5/0x130
[   97.276378] [   T1842]  ? __pfx_ptep_set_access_flags+0x10/0x10
[   97.276381] [   T1842]  do_syscall_64+0xf4/0x660
[   97.276386] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   97.276390] [   T1842]  ? wp_page_reuse+0x160/0x1e0
[   97.276394] [   T1842]  ? do_wp_page+0x57e/0xf40
[   97.276398] [   T1842]  ? handle_pte_fault+0x54e/0x760
[   97.276402] [   T1842]  ? __pfx_handle_pte_fault+0x10/0x10
[   97.276406] [   T1842]  ? __pfx_pmd_val+0x10/0x10
[   97.276410] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[   97.276414] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[   97.276422] [   T1842]  ? count_memcg_events+0x37f/0x480
[   97.276428] [   T1842]  ? lock_release+0xfa/0x120
[   97.276431] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   97.276434] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[   97.276437] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[   97.276443] [   T1842]  ? lock_release+0xfa/0x120
[   97.276446] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[   97.276450] [   T1842]  ? irqentry_exit+0xb0/0x810
[   97.276452] [   T1842]  ? do_syscall_64+0x34/0x660
[   97.276456] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[   97.276458] [   T1842]  ? irqentry_exit+0xb5/0x810
[   97.276461] [   T1842]  ? do_syscall_64+0xab/0x660
[   97.276464] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   97.276467] [   T1842] RIP: 0033:0x7f96f4878bbe
[   97.276470] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   97.276473] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   97.276477] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   97.276479] [   T1842] RDX: 0000000000000006 RSI: 0000562ec532aa50 RDI: 0000000000000001
[   97.276481] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[   97.276483] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000006
[   97.276484] [   T1842] R13: 0000000000000006 R14: 0000562ec532aa50 R15: 0000562ec53972c0
[   97.276489] [   T1842]  </TASK>
[   97.276495] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[   97.804201] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[   97.814639] [   T1842] CPU: 7 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   97.814813] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[   97.814835] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   97.814879] [   T1842] Call Trace:
[   97.814923] [   T1842]  <TASK>
[   97.814988] [   T1842]  dump_stack_lvl+0x6e/0xa0
[   97.815022] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[   97.815123] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[   97.815233] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[   97.815320] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   97.815407] [   T1842]  ? kfree+0x1d6/0x620
[   97.815494] [   T1842]  kobject_add_internal+0x26f/0x800
[   97.815605] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   97.815669] [   T1842]  kobject_add+0x139/0x1a0
[   97.815734] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[   97.815843] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[   97.815888] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[   97.815931] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[   97.815998] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[   97.816004] [   T1842]  elevator_change_done+0x26f/0x690
[   97.816105] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[   97.816149] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   97.816237] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   97.816323] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   97.816367] [   T1842]  elevator_change+0x283/0x4f0
[   97.816454] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   97.816520] [   T1842]  elv_iosched_store+0x30c/0x3a0
[   97.816564] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[   97.816585] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   97.816672] [   T1842]  ? lock_acquire+0x126/0x140
[   97.816803] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   97.816847] [   T1842]  queue_attr_store+0x23f/0x360
[   97.816935] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   97.817002] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[   97.817007] [   T1842]  ? lock_release+0xfa/0x120
[   97.817014] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[   97.817052] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[   97.817073] [   T1842]  ? lock_acquire+0x126/0x140
[   97.817139] [   T1842]  ? lock_acquire+0x126/0x140
[   97.817183] [   T1842]  ? lock_release+0xfa/0x120
[   97.817205] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[   97.817269] [   T1842]  ? sysfs_kf_write+0x65/0x170
[   97.817335] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   97.817400] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[   97.817467] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   97.817509] [   T1842]  vfs_write+0x524/0x1010
[   97.817597] [   T1842]  ? folio_xchg_last_cpupid+0xc6/0x130
[   97.817667] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[   97.817684] [   T1842]  ? __pfx_folio_xchg_last_cpupid+0x10/0x10
[   97.817772] [   T1842]  ? do_raw_spin_unlock+0x59/0x230
[   97.817859] [   T1842]  ? do_wp_page+0x57e/0xf40
[   97.817926] [   T1842]  ksys_write+0xff/0x200
[   97.817989] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[   97.818005] [   T1842]  ? __pfx_handle_pte_fault+0x10/0x10
[   97.818033] [   T1842]  do_syscall_64+0xf4/0x660
[   97.818103] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[   97.818143] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[   97.818295] [   T1842]  ? count_memcg_events+0x37f/0x480
[   97.818405] [   T1842]  ? lock_release+0xfa/0x120
[   97.818471] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   97.818557] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[   97.818624] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[   97.818733] [   T1842]  ? lock_release+0xfa/0x120
[   97.818818] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[   97.818885] [   T1842]  ? irqentry_exit+0xb0/0x810
[   97.818929] [   T1842]  ? do_syscall_64+0x34/0x660
[   97.818995] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[   97.819000] [   T1842]  ? irqentry_exit+0xb5/0x810
[   97.819016] [   T1842]  ? do_syscall_64+0xab/0x660
[   97.819103] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   97.819169] [   T1842] RIP: 0033:0x7f96f4878bbe
[   97.819256] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   97.819300] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   97.819408] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   97.819452] [   T1842] RDX: 0000000000000004 RSI: 0000562ec532aa50 RDI: 0000000000000001
[   97.819475] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[   97.819539] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000004
[   97.819543] [   T1842] R13: 0000000000000004 R14: 0000562ec532aa50 R15: 0000562ec53997a0
[   97.819649] [   T1842]  </TASK>
[   98.701369] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[   98.743363] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[   98.753340] [   T1842] CPU: 0 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   98.753346] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[   98.753347] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   98.753349] [   T1842] Call Trace:
[   98.753351] [   T1842]  <TASK>
[   98.753353] [   T1842]  dump_stack_lvl+0x6e/0xa0
[   98.753362] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[   98.753367] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[   98.753373] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[   98.753377] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   98.753381] [   T1842]  ? kasan_save_track+0x14/0x30
[   98.753385] [   T1842]  ? kfree+0x1d6/0x620
[   98.753388] [   T1842]  kobject_add_internal+0x26f/0x800
[   98.753395] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   98.753398] [   T1842]  kobject_add+0x139/0x1a0
[   98.753402] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[   98.753406] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[   98.753410] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[   98.753413] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[   98.753417] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[   98.753420] [   T1842]  elevator_change_done+0x26f/0x690
[   98.753426] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[   98.753429] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   98.753435] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   98.753439] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   98.753442] [   T1842]  elevator_change+0x283/0x4f0
[   98.753446] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   98.753449] [   T1842]  elv_iosched_store+0x30c/0x3a0
[   98.753453] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[   98.753456] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   98.753461] [   T1842]  ? lock_acquire+0x126/0x140
[   98.753466] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   98.753469] [   T1842]  queue_attr_store+0x23f/0x360
[   98.753473] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   98.753476] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[   98.753479] [   T1842]  ? lock_release+0xfa/0x120
[   98.753482] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[   98.753486] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[   98.753490] [   T1842]  ? lock_acquire+0x126/0x140
[   98.753494] [   T1842]  ? lock_acquire+0x126/0x140
[   98.753497] [   T1842]  ? lock_release+0xfa/0x120
[   98.753501] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[   98.753504] [   T1842]  ? sysfs_kf_write+0x65/0x170
[   98.753508] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   98.753510] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[   98.753514] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   98.753517] [   T1842]  vfs_write+0x524/0x1010
[   98.753521] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[   98.753525] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[   98.753528] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[   98.753534] [   T1842]  ? count_memcg_events+0x37f/0x480
[   98.753540] [   T1842]  ksys_write+0xff/0x200
[   98.753543] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[   98.753545] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   98.753550] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[   98.753556] [   T1842]  do_syscall_64+0xf4/0x660
[   98.753561] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[   98.753565] [   T1842]  ? irqentry_exit+0xb0/0x810
[   98.753567] [   T1842]  ? do_syscall_64+0x34/0x660
[   98.753571] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[   98.753573] [   T1842]  ? irqentry_exit+0xb5/0x810
[   98.753576] [   T1842]  ? do_syscall_64+0xab/0x660
[   98.753579] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   98.753582] [   T1842] RIP: 0033:0x7f96f4878bbe
[   98.753585] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   98.753588] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   98.753592] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   98.753594] [   T1842] RDX: 0000000000000006 RSI: 0000562ec532aa50 RDI: 0000000000000001
[   98.753596] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[   98.753598] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000006
[   98.753599] [   T1842] R13: 0000000000000006 R14: 0000562ec532aa50 R15: 0000562ec5399990
[   98.753604] [   T1842]  </TASK>
[   98.753610] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[   99.221237] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[   99.231263] [   T1842] CPU: 0 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[   99.231273] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[   99.231275] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   99.231278] [   T1842] Call Trace:
[   99.231280] [   T1842]  <TASK>
[   99.231283] [   T1842]  dump_stack_lvl+0x6e/0xa0
[   99.231295] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[   99.231355] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[   99.231528] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[   99.231594] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   99.231660] [   T1842]  ? kfree+0x1d6/0x620
[   99.231726] [   T1842]  kobject_add_internal+0x26f/0x800
[   99.231855] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   99.231921] [   T1842]  kobject_add+0x139/0x1a0
[   99.231965] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[   99.232031] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[   99.232039] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[   99.232044] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[   99.232081] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[   99.232126] [   T1842]  elevator_change_done+0x26f/0x690
[   99.232234] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[   99.232278] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   99.232387] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   99.232452] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   99.232496] [   T1842]  elevator_change+0x283/0x4f0
[   99.232583] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   99.232649] [   T1842]  elv_iosched_store+0x30c/0x3a0
[   99.232715] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[   99.232801] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   99.232888] [   T1842]  ? lock_acquire+0x126/0x140
[   99.232955] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   99.233019] [   T1842]  queue_attr_store+0x23f/0x360
[   99.233047] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[   99.233052] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[   99.233057] [   T1842]  ? lock_release+0xfa/0x120
[   99.233063] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[   99.233070] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[   99.233077] [   T1842]  ? lock_acquire+0x126/0x140
[   99.233082] [   T1842]  ? lock_acquire+0x126/0x140
[   99.233089] [   T1842]  ? lock_release+0xfa/0x120
[   99.233094] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[   99.233100] [   T1842]  ? sysfs_kf_write+0x65/0x170
[   99.233106] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[   99.233163] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[   99.233208] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[   99.233228] [   T1842]  vfs_write+0x524/0x1010
[   99.233294] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   99.233381] [   T1842]  ? wp_page_reuse+0x160/0x1e0
[   99.233447] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[   99.233584] [   T1842]  ? __pfx_handle_pte_fault+0x10/0x10
[   99.233671] [   T1842]  ksys_write+0xff/0x200
[   99.233737] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[   99.233824] [   T1842]  do_syscall_64+0xf4/0x660
[   99.233913] [   T1842]  ? count_memcg_events+0x37f/0x480
[   99.233977] [   T1842]  ? lock_release+0xfa/0x120
[   99.234023] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[   99.234028] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[   99.234045] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[   99.234066] [   T1842]  ? lock_release+0xfa/0x120
[   99.234132] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[   99.234197] [   T1842]  ? irqentry_exit+0xb0/0x810
[   99.234262] [   T1842]  ? do_syscall_64+0x34/0x660
[   99.234306] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[   99.234328] [   T1842]  ? irqentry_exit+0xb5/0x810
[   99.234372] [   T1842]  ? do_syscall_64+0xab/0x660
[   99.234437] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   99.234524] [   T1842] RIP: 0033:0x7f96f4878bbe
[   99.234611] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[   99.234676] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[   99.234764] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[   99.234808] [   T1842] RDX: 000000000000000c RSI: 0000562ec532aa50 RDI: 0000000000000001
[   99.234873] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[   99.234895] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 000000000000000c
[   99.234918] [   T1842] R13: 000000000000000c R14: 0000562ec532aa50 R15: 0000562ec5399ad0
[   99.235027] [   T1842]  </TASK>
[  100.030097] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[  100.109352] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[  100.119423] [   T1842] CPU: 6 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[  100.119434] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[  100.119436] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[  100.119439] [   T1842] Call Trace:
[  100.119442] [   T1842]  <TASK>
[  100.119444] [   T1842]  dump_stack_lvl+0x6e/0xa0
[  100.119468] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[  100.119534] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[  100.119665] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[  100.119751] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  100.119817] [   T1842]  ? kasan_save_track+0x14/0x30
[  100.119882] [   T1842]  ? kfree+0x1d6/0x620
[  100.119948] [   T1842]  kobject_add_internal+0x26f/0x800
[  100.120035] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  100.120061] [   T1842]  kobject_add+0x139/0x1a0
[  100.120066] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[  100.120105] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[  100.120170] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[  100.120216] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[  100.120302] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[  100.120346] [   T1842]  elevator_change_done+0x26f/0x690
[  100.120454] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[  100.120498] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[  100.120628] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  100.120695] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  100.120760] [   T1842]  elevator_change+0x283/0x4f0
[  100.120829] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  100.120891] [   T1842]  elv_iosched_store+0x30c/0x3a0
[  100.120977] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[  100.121022] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  100.121052] [   T1842]  ? lock_acquire+0x126/0x140
[  100.121153] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  100.121219] [   T1842]  queue_attr_store+0x23f/0x360
[  100.121306] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  100.121372] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[  100.121437] [   T1842]  ? lock_release+0xfa/0x120
[  100.121524] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[  100.121589] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[  100.121676] [   T1842]  ? lock_acquire+0x126/0x140
[  100.121721] [   T1842]  ? lock_acquire+0x126/0x140
[  100.121765] [   T1842]  ? lock_release+0xfa/0x120
[  100.121808] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[  100.121895] [   T1842]  ? sysfs_kf_write+0x65/0x170
[  100.121940] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  100.122004] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[  100.122053] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[  100.122058] [   T1842]  vfs_write+0x524/0x1010
[  100.122137] [   T1842]  ? ptep_set_access_flags+0xe5/0x130
[  100.122203] [   T1842]  ? __pfx_folio_xchg_last_cpupid+0x10/0x10
[  100.122224] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[  100.122289] [   T1842]  ? __pfx_ptep_set_access_flags+0x10/0x10
[  100.122349] [   T1842]  ? do_raw_spin_unlock+0x59/0x230
[  100.122406] [   T1842]  ? lock_release+0xfa/0x120
[  100.122471] [   T1842]  ? do_wp_page+0x57e/0xf40
[  100.122536] [   T1842]  ksys_write+0xff/0x200
[  100.122561] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[  100.122603] [   T1842]  ? __pfx_pmd_val+0x10/0x10
[  100.122646] [   T1842]  ? fput_close_sync+0x137/0x1a0
[  100.122755] [   T1842]  do_syscall_64+0xf4/0x660
[  100.122864] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[  100.122911] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[  100.123040] [   T1842]  ? count_memcg_events+0x37f/0x480
[  100.123049] [   T1842]  ? lock_release+0xfa/0x120
[  100.123083] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[  100.123148] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[  100.123193] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[  100.123280] [   T1842]  ? lock_release+0xfa/0x120
[  100.123324] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[  100.123367] [   T1842]  ? irqentry_exit+0xb0/0x810
[  100.123411] [   T1842]  ? do_syscall_64+0x34/0x660
[  100.123457] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[  100.123542] [   T1842]  ? irqentry_exit+0xb5/0x810
[  100.123585] [   T1842]  ? do_syscall_64+0xab/0x660
[  100.123650] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  100.123737] [   T1842] RIP: 0033:0x7f96f4878bbe
[  100.123825] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[  100.123890] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[  100.123956] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[  100.124021] [   T1842] RDX: 0000000000000006 RSI: 0000562ec532aa50 RDI: 0000000000000001
[  100.124044] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[  100.124047] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000006
[  100.124050] [   T1842] R13: 0000000000000006 R14: 0000562ec532aa50 R15: 0000562ec5394f20
[  100.124110] [   T1842]  </TASK>
[  101.040053] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[  101.115173] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[  101.125215] [   T1842] CPU: 3 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[  101.125222] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[  101.125223] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[  101.125225] [   T1842] Call Trace:
[  101.125227] [   T1842]  <TASK>
[  101.125229] [   T1842]  dump_stack_lvl+0x6e/0xa0
[  101.125238] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[  101.125243] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[  101.125249] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[  101.125254] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  101.125258] [   T1842]  ? kfree+0x1d6/0x620
[  101.125262] [   T1842]  kobject_add_internal+0x26f/0x800
[  101.125268] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  101.125271] [   T1842]  kobject_add+0x139/0x1a0
[  101.125274] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[  101.125278] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[  101.125283] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[  101.125285] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[  101.125290] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[  101.125293] [   T1842]  elevator_change_done+0x26f/0x690
[  101.125298] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[  101.125301] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[  101.125306] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  101.125310] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  101.125313] [   T1842]  elevator_change+0x283/0x4f0
[  101.125318] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  101.125321] [   T1842]  elv_iosched_store+0x30c/0x3a0
[  101.125325] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[  101.125328] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  101.125333] [   T1842]  ? lock_acquire+0x126/0x140
[  101.125338] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  101.125341] [   T1842]  queue_attr_store+0x23f/0x360
[  101.125345] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  101.125348] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[  101.125351] [   T1842]  ? lock_release+0xfa/0x120
[  101.125355] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[  101.125358] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[  101.125363] [   T1842]  ? lock_acquire+0x126/0x140
[  101.125366] [   T1842]  ? lock_acquire+0x126/0x140
[  101.125370] [   T1842]  ? lock_release+0xfa/0x120
[  101.125373] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[  101.125377] [   T1842]  ? sysfs_kf_write+0x65/0x170
[  101.125380] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  101.125383] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[  101.125387] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[  101.125390] [   T1842]  vfs_write+0x524/0x1010
[  101.125394] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[  101.125397] [   T1842]  ? fput_close_sync+0x137/0x1a0
[  101.125402] [   T1842]  ? folio_xchg_last_cpupid+0xc6/0x130
[  101.125406] [   T1842]  ? do_syscall_64+0x1b9/0x660
[  101.125410] [   T1842]  ? ptep_set_access_flags+0xe5/0x130
[  101.125414] [   T1842]  ksys_write+0xff/0x200
[  101.125418] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[  101.125420] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[  101.125424] [   T1842]  ? wp_page_reuse+0x160/0x1e0
[  101.125429] [   T1842]  do_syscall_64+0xf4/0x660
[  101.125432] [   T1842]  ? handle_pte_fault+0x54e/0x760
[  101.125437] [   T1842]  ? __pfx_handle_pte_fault+0x10/0x10
[  101.125440] [   T1842]  ? trace_hardirqs_on_prepare+0x150/0x1a0
[  101.125444] [   T1842]  ? __pfx_pmd_val+0x10/0x10
[  101.125446] [   T1842]  ? do_syscall_64+0x1d7/0x660
[  101.125451] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[  101.125455] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[  101.125462] [   T1842]  ? count_memcg_events+0x37f/0x480
[  101.125467] [   T1842]  ? lock_release+0xfa/0x120
[  101.125471] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[  101.125474] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[  101.125477] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[  101.125482] [   T1842]  ? lock_release+0xfa/0x120
[  101.125485] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[  101.125489] [   T1842]  ? irqentry_exit+0xb0/0x810
[  101.125492] [   T1842]  ? do_syscall_64+0x34/0x660
[  101.125495] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[  101.125497] [   T1842]  ? irqentry_exit+0xb5/0x810
[  101.125500] [   T1842]  ? do_syscall_64+0xab/0x660
[  101.125504] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  101.125506] [   T1842] RIP: 0033:0x7f96f4878bbe
[  101.125510] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[  101.125513] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[  101.125517] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[  101.125519] [   T1842] RDX: 0000000000000004 RSI: 0000562ec532aa50 RDI: 0000000000000001
[  101.125521] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[  101.125523] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000004
[  101.125524] [   T1842] R13: 0000000000000004 R14: 0000562ec532aa50 R15: 0000562ec5382090
[  101.125529] [   T1842]  </TASK>
[  101.125535] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[  101.664224] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[  101.675194] [   T1842] CPU: 0 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[  101.675208] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[  101.675210] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[  101.675212] [   T1842] Call Trace:
[  101.675214] [   T1842]  <TASK>
[  101.675216] [   T1842]  dump_stack_lvl+0x6e/0xa0
[  101.675236] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[  101.675245] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[  101.675253] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[  101.675258] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  101.675277] [   T1842]  ? kfree+0x1d6/0x620
[  101.675282] [   T1842]  kobject_add_internal+0x26f/0x800
[  101.675296] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  101.675300] [   T1842]  kobject_add+0x139/0x1a0
[  101.675304] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[  101.675318] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[  101.675323] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[  101.675326] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[  101.675336] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[  101.675340] [   T1842]  elevator_change_done+0x26f/0x690
[  101.675346] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[  101.675353] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[  101.675361] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  101.675366] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  101.675369] [   T1842]  elevator_change+0x283/0x4f0
[  101.675382] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  101.675385] [   T1842]  elv_iosched_store+0x30c/0x3a0
[  101.675390] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[  101.675394] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  101.675403] [   T1842]  ? lock_acquire+0x126/0x140
[  101.675409] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  101.675413] [   T1842]  queue_attr_store+0x23f/0x360
[  101.675424] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  101.675427] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[  101.675431] [   T1842]  ? lock_release+0xfa/0x120
[  101.675435] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[  101.675443] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[  101.675447] [   T1842]  ? lock_acquire+0x126/0x140
[  101.675451] [   T1842]  ? lock_acquire+0x126/0x140
[  101.675455] [   T1842]  ? lock_release+0xfa/0x120
[  101.675463] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[  101.675467] [   T1842]  ? sysfs_kf_write+0x65/0x170
[  101.675471] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  101.675474] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[  101.675479] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[  101.675484] [   T1842]  vfs_write+0x524/0x1010
[  101.675489] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[  101.675493] [   T1842]  ? __pfx_locks_remove_posix+0x10/0x10
[  101.675518] [   T1842]  ksys_write+0xff/0x200
[  101.675521] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[  101.675524] [   T1842]  ? __pfx_pte_val+0x10/0x10
[  101.675529] [   T1842]  do_syscall_64+0xf4/0x660
[  101.675543] [   T1842]  ? ptep_set_access_flags+0xe5/0x130
[  101.675547] [   T1842]  ? __pfx_folio_xchg_last_cpupid+0x10/0x10
[  101.675553] [   T1842]  ? __pfx_ptep_set_access_flags+0x10/0x10
[  101.675558] [   T1842]  ? do_raw_spin_unlock+0x59/0x230
[  101.675560] [   T1842]  ? lock_release+0xfa/0x120
[  101.675564] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[  101.675567] [   T1842]  ? wp_page_reuse+0x160/0x1e0
[  101.675572] [   T1842]  ? do_wp_page+0x57e/0xf40
[  101.675583] [   T1842]  ? handle_pte_fault+0x54e/0x760
[  101.675586] [   T1842]  ? do_syscall_64+0x1d7/0x660
[  101.675590] [   T1842]  ? __pfx_handle_pte_fault+0x10/0x10
[  101.675592] [   T1842]  ? do_syscall_64+0x1d7/0x660
[  101.675601] [   T1842]  ? __pfx_pmd_val+0x10/0x10
[  101.675605] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[  101.675609] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[  101.675620] [   T1842]  ? count_memcg_events+0x37f/0x480
[  101.675629] [   T1842]  ? lock_release+0xfa/0x120
[  101.675633] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[  101.675635] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[  101.675639] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[  101.675648] [   T1842]  ? lock_release+0xfa/0x120
[  101.675651] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[  101.675655] [   T1842]  ? irqentry_exit+0xb0/0x810
[  101.675657] [   T1842]  ? do_syscall_64+0x34/0x660
[  101.675665] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[  101.675673] [   T1842]  ? irqentry_exit+0xb5/0x810
[  101.675675] [   T1842]  ? do_syscall_64+0xab/0x660
[  101.675679] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  101.675692] [   T1842] RIP: 0033:0x7f96f4878bbe
[  101.675695] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[  101.675698] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[  101.675702] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[  101.675707] [   T1842] RDX: 0000000000000004 RSI: 0000562ec532aa50 RDI: 0000000000000001
[  101.675709] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[  101.675710] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000004
[  101.675712] [   T1842] R13: 0000000000000004 R14: 0000562ec532aa50 R15: 0000562ec5397e70
[  101.675717] [   T1842]  </TASK>
[  101.675723] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[  102.235777] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[  102.245750] [   T1842] CPU: 4 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[  102.245756] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[  102.245757] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[  102.245759] [   T1842] Call Trace:
[  102.245761] [   T1842]  <TASK>
[  102.245763] [   T1842]  dump_stack_lvl+0x6e/0xa0
[  102.245771] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[  102.245776] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[  102.245782] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[  102.245786] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  102.245789] [   T1842]  ? kasan_save_track+0x14/0x30
[  102.245793] [   T1842]  ? kfree+0x1d6/0x620
[  102.245796] [   T1842]  kobject_add_internal+0x26f/0x800
[  102.245802] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  102.245805] [   T1842]  kobject_add+0x139/0x1a0
[  102.245808] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[  102.245812] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[  102.245816] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[  102.245819] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[  102.245823] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[  102.245826] [   T1842]  elevator_change_done+0x26f/0x690
[  102.245831] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[  102.245834] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[  102.245839] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  102.245843] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  102.245846] [   T1842]  elevator_change+0x283/0x4f0
[  102.245850] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  102.245853] [   T1842]  elv_iosched_store+0x30c/0x3a0
[  102.245856] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[  102.245860] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  102.245865] [   T1842]  ? lock_acquire+0x126/0x140
[  102.245869] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  102.245872] [   T1842]  queue_attr_store+0x23f/0x360
[  102.245876] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  102.245879] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[  102.245882] [   T1842]  ? lock_release+0xfa/0x120
[  102.245885] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[  102.245889] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[  102.245893] [   T1842]  ? lock_acquire+0x126/0x140
[  102.245896] [   T1842]  ? lock_acquire+0x126/0x140
[  102.245900] [   T1842]  ? lock_release+0xfa/0x120
[  102.245903] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[  102.245906] [   T1842]  ? sysfs_kf_write+0x65/0x170
[  102.245910] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  102.245913] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[  102.245917] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[  102.245919] [   T1842]  vfs_write+0x524/0x1010
[  102.245922] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[  102.245926] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[  102.245930] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[  102.245936] [   T1842]  ? count_memcg_events+0x37f/0x480
[  102.245941] [   T1842]  ksys_write+0xff/0x200
[  102.245944] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[  102.245947] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[  102.245951] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[  102.245957] [   T1842]  do_syscall_64+0xf4/0x660
[  102.245961] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[  102.245964] [   T1842]  ? irqentry_exit+0xb0/0x810
[  102.245967] [   T1842]  ? do_syscall_64+0x34/0x660
[  102.245970] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[  102.245973] [   T1842]  ? irqentry_exit+0xb5/0x810
[  102.245975] [   T1842]  ? do_syscall_64+0xab/0x660
[  102.245979] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  102.245982] [   T1842] RIP: 0033:0x7f96f4878bbe
[  102.245985] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[  102.245987] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[  102.245991] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[  102.245993] [   T1842] RDX: 0000000000000006 RSI: 0000562ec532aa50 RDI: 0000000000000001
[  102.245995] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[  102.245997] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000006
[  102.245998] [   T1842] R13: 0000000000000006 R14: 0000562ec532aa50 R15: 0000562ec53929c0
[  102.246003] [   T1842]  </TASK>
[  102.246009] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[  102.718245] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[  102.728223] [   T1842] CPU: 0 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[  102.728230] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[  102.728231] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[  102.728233] [   T1842] Call Trace:
[  102.728235] [   T1842]  <TASK>
[  102.728237] [   T1842]  dump_stack_lvl+0x6e/0xa0
[  102.728246] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[  102.728251] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[  102.728259] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[  102.728263] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  102.728267] [   T1842]  ? kfree+0x1d6/0x620
[  102.728272] [   T1842]  kobject_add_internal+0x26f/0x800
[  102.728278] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  102.728282] [   T1842]  kobject_add+0x139/0x1a0
[  102.728285] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[  102.728289] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[  102.728293] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[  102.728296] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[  102.728301] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[  102.728304] [   T1842]  elevator_change_done+0x26f/0x690
[  102.728310] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[  102.728313] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[  102.728319] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  102.728322] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  102.728325] [   T1842]  elevator_change+0x283/0x4f0
[  102.728329] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  102.728332] [   T1842]  elv_iosched_store+0x30c/0x3a0
[  102.728336] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[  102.728340] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  102.728345] [   T1842]  ? lock_acquire+0x126/0x140
[  102.728350] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  102.728353] [   T1842]  queue_attr_store+0x23f/0x360
[  102.728358] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  102.728361] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[  102.728363] [   T1842]  ? lock_release+0xfa/0x120
[  102.728367] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[  102.728371] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[  102.728375] [   T1842]  ? lock_acquire+0x126/0x140
[  102.728379] [   T1842]  ? lock_acquire+0x126/0x140
[  102.728382] [   T1842]  ? lock_release+0xfa/0x120
[  102.728386] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[  102.728389] [   T1842]  ? sysfs_kf_write+0x65/0x170
[  102.728393] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  102.728395] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[  102.728399] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[  102.728402] [   T1842]  vfs_write+0x524/0x1010
[  102.728406] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[  102.728409] [   T1842]  ? filp_close+0x25/0x40
[  102.728415] [   T1842]  ? do_syscall_64+0x1b9/0x660
[  102.728420] [   T1842]  ? __pfx_pte_val+0x10/0x10
[  102.728425] [   T1842]  ksys_write+0xff/0x200
[  102.728428] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[  102.728430] [   T1842]  ? lock_release+0xfa/0x120
[  102.728434] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[  102.728437] [   T1842]  ? wp_page_reuse+0x160/0x1e0
[  102.728441] [   T1842]  do_syscall_64+0xf4/0x660
[  102.728445] [   T1842]  ? handle_pte_fault+0x54e/0x760
[  102.728450] [   T1842]  ? do_syscall_64+0x1d7/0x660
[  102.728453] [   T1842]  ? __pfx_handle_pte_fault+0x10/0x10
[  102.728457] [   T1842]  ? __pfx_pmd_val+0x10/0x10
[  102.728459] [   T1842]  ? __pfx_locks_remove_posix+0x10/0x10
[  102.728465] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[  102.728469] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[  102.728477] [   T1842]  ? count_memcg_events+0x37f/0x480
[  102.728483] [   T1842]  ? lock_release+0xfa/0x120
[  102.728486] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[  102.728489] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[  102.728493] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[  102.728497] [   T1842]  ? lock_release+0xfa/0x120
[  102.728501] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[  102.728504] [   T1842]  ? irqentry_exit+0xb0/0x810
[  102.728507] [   T1842]  ? do_syscall_64+0x34/0x660
[  102.728510] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[  102.728513] [   T1842]  ? irqentry_exit+0xb5/0x810
[  102.728515] [   T1842]  ? do_syscall_64+0xab/0x660
[  102.728519] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  102.728521] [   T1842] RIP: 0033:0x7f96f4878bbe
[  102.728525] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[  102.728528] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[  102.728532] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[  102.728534] [   T1842] RDX: 000000000000000c RSI: 0000562ec532aa50 RDI: 0000000000000001
[  102.728536] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[  102.728537] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 000000000000000c
[  102.728539] [   T1842] R13: 000000000000000c R14: 0000562ec532aa50 R15: 0000562ec5397300
[  102.728544] [   T1842]  </TASK>
[  102.728549] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[  103.292307] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[  103.302399] [   T1842] CPU: 7 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[  103.302408] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[  103.302410] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[  103.302422] [   T1842] Call Trace:
[  103.302446] [   T1842]  <TASK>
[  103.302489] [   T1842]  dump_stack_lvl+0x6e/0xa0
[  103.302728] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[  103.302816] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[  103.302990] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[  103.303077] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  103.303124] [   T1842]  ? kasan_save_track+0x14/0x30
[  103.303129] [   T1842]  ? kfree+0x1d6/0x620
[  103.303135] [   T1842]  kobject_add_internal+0x26f/0x800
[  103.303258] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  103.303324] [   T1842]  kobject_add+0x139/0x1a0
[  103.303389] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[  103.303476] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[  103.303563] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[  103.303629] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[  103.303716] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[  103.303782] [   T1842]  elevator_change_done+0x26f/0x690
[  103.303912] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[  103.303978] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[  103.304088] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  103.304114] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  103.304131] [   T1842]  elevator_change+0x283/0x4f0
[  103.304218] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  103.304262] [   T1842]  elv_iosched_store+0x30c/0x3a0
[  103.304306] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[  103.304349] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  103.304396] [   T1842]  ? lock_acquire+0x126/0x140
[  103.304481] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  103.304546] [   T1842]  queue_attr_store+0x23f/0x360
[  103.304612] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  103.304678] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[  103.304699] [   T1842]  ? lock_release+0xfa/0x120
[  103.304785] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[  103.304851] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[  103.304960] [   T1842]  ? lock_acquire+0x126/0x140
[  103.305005] [   T1842]  ? lock_acquire+0x126/0x140
[  103.305091] [   T1842]  ? lock_release+0xfa/0x120
[  103.305117] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[  103.305123] [   T1842]  ? sysfs_kf_write+0x65/0x170
[  103.305129] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  103.305146] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[  103.305211] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[  103.305255] [   T1842]  vfs_write+0x524/0x1010
[  103.305279] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[  103.305322] [   T1842]  ? __pfx_pte_val+0x10/0x10
[  103.305430] [   T1842]  ? folio_xchg_last_cpupid+0xc6/0x130
[  103.305539] [   T1842]  ? __pfx_ptep_set_access_flags+0x10/0x10
[  103.305649] [   T1842]  ksys_write+0xff/0x200
[  103.305715] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[  103.305760] [   T1842]  do_syscall_64+0xf4/0x660
[  103.305802] [   T1842]  ? __pfx_handle_pte_fault+0x10/0x10
[  103.305910] [   T1842]  ? __pfx_pmd_val+0x10/0x10
[  103.305934] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[  103.305975] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[  103.306106] [   T1842]  ? count_memcg_events+0x37f/0x480
[  103.306115] [   T1842]  ? lock_release+0xfa/0x120
[  103.306194] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[  103.306260] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[  103.306326] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[  103.306434] [   T1842]  ? lock_release+0xfa/0x120
[  103.306478] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[  103.306547] [   T1842]  ? irqentry_exit+0xb0/0x810
[  103.306609] [   T1842]  ? do_syscall_64+0x34/0x660
[  103.306674] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[  103.306740] [   T1842]  ? irqentry_exit+0xb5/0x810
[  103.306783] [   T1842]  ? do_syscall_64+0xab/0x660
[  103.306870] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  103.306936] [   T1842] RIP: 0033:0x7f96f4878bbe
[  103.307023] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[  103.307088] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[  103.307114] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[  103.307118] [   T1842] RDX: 0000000000000006 RSI: 0000562ec532aa50 RDI: 0000000000000001
[  103.307133] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[  103.307157] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000006
[  103.307179] [   T1842] R13: 0000000000000006 R14: 0000562ec532aa50 R15: 0000562ec5395360
[  103.307215] [   T1842]  </TASK>
[  104.197683] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[  104.269345] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[  104.279320] [   T1842] CPU: 3 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[  104.279326] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[  104.279327] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[  104.279329] [   T1842] Call Trace:
[  104.279331] [   T1842]  <TASK>
[  104.279333] [   T1842]  dump_stack_lvl+0x6e/0xa0
[  104.279341] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[  104.279346] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[  104.279352] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[  104.279356] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  104.279360] [   T1842]  ? kasan_save_track+0x14/0x30
[  104.279363] [   T1842]  ? kfree+0x1d6/0x620
[  104.279367] [   T1842]  kobject_add_internal+0x26f/0x800
[  104.279372] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  104.279375] [   T1842]  kobject_add+0x139/0x1a0
[  104.279379] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[  104.279383] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[  104.279387] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[  104.279390] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[  104.279394] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[  104.279397] [   T1842]  elevator_change_done+0x26f/0x690
[  104.279402] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[  104.279404] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[  104.279410] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  104.279413] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  104.279416] [   T1842]  elevator_change+0x283/0x4f0
[  104.279420] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  104.279423] [   T1842]  elv_iosched_store+0x30c/0x3a0
[  104.279427] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[  104.279430] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  104.279435] [   T1842]  ? lock_acquire+0x126/0x140
[  104.279440] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  104.279443] [   T1842]  queue_attr_store+0x23f/0x360
[  104.279446] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  104.279449] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[  104.279452] [   T1842]  ? lock_release+0xfa/0x120
[  104.279456] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[  104.279460] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[  104.279464] [   T1842]  ? lock_acquire+0x126/0x140
[  104.279467] [   T1842]  ? lock_acquire+0x126/0x140
[  104.279471] [   T1842]  ? lock_release+0xfa/0x120
[  104.279474] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[  104.279477] [   T1842]  ? sysfs_kf_write+0x65/0x170
[  104.279481] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  104.279484] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[  104.279487] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[  104.279490] [   T1842]  vfs_write+0x524/0x1010
[  104.279494] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[  104.279497] [   T1842]  ? folio_xchg_last_cpupid+0xc6/0x130
[  104.279501] [   T1842]  ? ptep_set_access_flags+0xe5/0x130
[  104.279505] [   T1842]  ? __pfx_folio_xchg_last_cpupid+0x10/0x10
[  104.279509] [   T1842]  ? do_raw_spin_unlock+0x59/0x230
[  104.279511] [   T1842]  ? lock_release+0xfa/0x120
[  104.279515] [   T1842]  ksys_write+0xff/0x200
[  104.279518] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[  104.279521] [   T1842]  ? handle_pte_fault+0x54e/0x760
[  104.279526] [   T1842]  do_syscall_64+0xf4/0x660
[  104.279530] [   T1842]  ? __x64_sys_fcntl+0x10d/0x1c0
[  104.279534] [   T1842]  ? __pfx_pmd_val+0x10/0x10
[  104.279538] [   T1842]  ? trace_hardirqs_on_prepare+0x150/0x1a0
[  104.279542] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[  104.279546] [   T1842]  ? kmem_cache_free+0x144/0x5f0
[  104.279549] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[  104.279556] [   T1842]  ? count_memcg_events+0x37f/0x480
[  104.279561] [   T1842]  ? lock_release+0xfa/0x120
[  104.279565] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[  104.279568] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[  104.279571] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[  104.279576] [   T1842]  ? lock_release+0xfa/0x120
[  104.279579] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[  104.279583] [   T1842]  ? irqentry_exit+0xb0/0x810
[  104.279585] [   T1842]  ? do_syscall_64+0x34/0x660
[  104.279588] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[  104.279591] [   T1842]  ? irqentry_exit+0xb5/0x810
[  104.279593] [   T1842]  ? do_syscall_64+0xab/0x660
[  104.279597] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  104.279599] [   T1842] RIP: 0033:0x7f96f4878bbe
[  104.279603] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[  104.279605] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[  104.279609] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[  104.279611] [   T1842] RDX: 0000000000000006 RSI: 0000562ec532aa50 RDI: 0000000000000001
[  104.279613] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[  104.279614] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000006
[  104.279616] [   T1842] R13: 0000000000000006 R14: 0000562ec532aa50 R15: 0000562ec5395470
[  104.279621] [   T1842]  </TASK>
[  104.279626] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[  104.808451] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[  104.818469] [   T1842] CPU: 4 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[  104.818479] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[  104.818482] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[  104.818485] [   T1842] Call Trace:
[  104.818488] [   T1842]  <TASK>
[  104.818491] [   T1842]  dump_stack_lvl+0x6e/0xa0
[  104.818502] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[  104.818508] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[  104.818514] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[  104.818518] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  104.818522] [   T1842]  ? kasan_save_track+0x14/0x30
[  104.818525] [   T1842]  ? kfree+0x1d6/0x620
[  104.818528] [   T1842]  kobject_add_internal+0x26f/0x800
[  104.818534] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  104.818537] [   T1842]  kobject_add+0x139/0x1a0
[  104.818540] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[  104.818544] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[  104.818548] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[  104.818551] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[  104.818555] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[  104.818558] [   T1842]  elevator_change_done+0x26f/0x690
[  104.818563] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[  104.818566] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[  104.818572] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  104.818575] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  104.818578] [   T1842]  elevator_change+0x283/0x4f0
[  104.818582] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  104.818585] [   T1842]  elv_iosched_store+0x30c/0x3a0
[  104.818589] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[  104.818592] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  104.818597] [   T1842]  ? lock_acquire+0x126/0x140
[  104.818602] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  104.818605] [   T1842]  queue_attr_store+0x23f/0x360
[  104.818609] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  104.818612] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[  104.818614] [   T1842]  ? lock_release+0xfa/0x120
[  104.818618] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[  104.818622] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[  104.818626] [   T1842]  ? lock_acquire+0x126/0x140
[  104.818629] [   T1842]  ? lock_acquire+0x126/0x140
[  104.818633] [   T1842]  ? lock_release+0xfa/0x120
[  104.818636] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[  104.818639] [   T1842]  ? sysfs_kf_write+0x65/0x170
[  104.818643] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  104.818646] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[  104.818649] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[  104.818652] [   T1842]  vfs_write+0x524/0x1010
[  104.818656] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[  104.818660] [   T1842]  ? __pfx_pmd_val+0x10/0x10
[  104.818664] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[  104.818669] [   T1842]  ksys_write+0xff/0x200
[  104.818672] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[  104.818675] [   T1842]  ? count_memcg_events+0x37f/0x480
[  104.818679] [   T1842]  do_syscall_64+0xf4/0x660
[  104.818684] [   T1842]  ? lock_release+0xfa/0x120
[  104.818688] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[  104.818690] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[  104.818694] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[  104.818699] [   T1842]  ? lock_release+0xfa/0x120
[  104.818702] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[  104.818706] [   T1842]  ? irqentry_exit+0xb0/0x810
[  104.818708] [   T1842]  ? do_syscall_64+0x34/0x660
[  104.818712] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[  104.818715] [   T1842]  ? irqentry_exit+0xb5/0x810
[  104.818717] [   T1842]  ? do_syscall_64+0xab/0x660
[  104.818720] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  104.818723] [   T1842] RIP: 0033:0x7f96f4878bbe
[  104.818726] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[  104.818729] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[  104.818733] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[  104.818735] [   T1842] RDX: 0000000000000006 RSI: 0000562ec532aa50 RDI: 0000000000000001
[  104.818737] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[  104.818739] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000006
[  104.818740] [   T1842] R13: 0000000000000006 R14: 0000562ec532aa50 R15: 0000562ec5397d90
[  104.818745] [   T1842]  </TASK>
[  104.818750] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[  105.300372] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[  105.310342] [   T1842] CPU: 0 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[  105.310349] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[  105.310350] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[  105.310352] [   T1842] Call Trace:
[  105.310354] [   T1842]  <TASK>
[  105.310355] [   T1842]  dump_stack_lvl+0x6e/0xa0
[  105.310364] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[  105.310370] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[  105.310376] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[  105.310381] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  105.310384] [   T1842]  ? kasan_save_track+0x14/0x30
[  105.310388] [   T1842]  ? kfree+0x1d6/0x620
[  105.310392] [   T1842]  kobject_add_internal+0x26f/0x800
[  105.310398] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  105.310401] [   T1842]  kobject_add+0x139/0x1a0
[  105.310405] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[  105.310409] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[  105.310413] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[  105.310416] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[  105.310420] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[  105.310423] [   T1842]  elevator_change_done+0x26f/0x690
[  105.310429] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[  105.310432] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[  105.310438] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  105.310442] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  105.310444] [   T1842]  elevator_change+0x283/0x4f0
[  105.310448] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  105.310451] [   T1842]  elv_iosched_store+0x30c/0x3a0
[  105.310456] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[  105.310459] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  105.310464] [   T1842]  ? lock_acquire+0x126/0x140
[  105.310469] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  105.310472] [   T1842]  queue_attr_store+0x23f/0x360
[  105.310477] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  105.310480] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[  105.310482] [   T1842]  ? lock_release+0xfa/0x120
[  105.310486] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[  105.310490] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[  105.310494] [   T1842]  ? lock_acquire+0x126/0x140
[  105.310497] [   T1842]  ? lock_acquire+0x126/0x140
[  105.310501] [   T1842]  ? lock_release+0xfa/0x120
[  105.310504] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[  105.310508] [   T1842]  ? sysfs_kf_write+0x65/0x170
[  105.310511] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  105.310514] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[  105.310518] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[  105.310521] [   T1842]  vfs_write+0x524/0x1010
[  105.310524] [   T1842]  ? folio_xchg_last_cpupid+0xc6/0x130
[  105.310529] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[  105.310531] [   T1842]  ? __pfx_folio_xchg_last_cpupid+0x10/0x10
[  105.310536] [   T1842]  ? do_raw_spin_unlock+0x59/0x230
[  105.310539] [   T1842]  ? do_wp_page+0x57e/0xf40
[  105.310544] [   T1842]  ksys_write+0xff/0x200
[  105.310547] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[  105.310550] [   T1842]  ? __pfx_handle_pte_fault+0x10/0x10
[  105.310555] [   T1842]  do_syscall_64+0xf4/0x660
[  105.310560] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[  105.310564] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[  105.310572] [   T1842]  ? count_memcg_events+0x37f/0x480
[  105.310578] [   T1842]  ? lock_release+0xfa/0x120
[  105.310582] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[  105.310585] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[  105.310589] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[  105.310595] [   T1842]  ? lock_release+0xfa/0x120
[  105.310599] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[  105.310602] [   T1842]  ? irqentry_exit+0xb0/0x810
[  105.310605] [   T1842]  ? do_syscall_64+0x34/0x660
[  105.310608] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[  105.310611] [   T1842]  ? irqentry_exit+0xb5/0x810
[  105.310613] [   T1842]  ? do_syscall_64+0xab/0x660
[  105.310617] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  105.310619] [   T1842] RIP: 0033:0x7f96f4878bbe
[  105.310623] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[  105.310626] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[  105.310629] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[  105.310632] [   T1842] RDX: 0000000000000006 RSI: 0000562ec532aa50 RDI: 0000000000000001
[  105.310633] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[  105.310635] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000006
[  105.310636] [   T1842] R13: 0000000000000006 R14: 0000562ec532aa50 R15: 0000562ec53956a0
[  105.310641] [   T1842]  </TASK>
[  105.310646] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.
[  105.851457] [   T1842] sysfs: cannot create duplicate filename '/devices/virtual/block/nullb1/queue/iosched'
[  105.861445] [   T1842] CPU: 4 UID: 0 PID: 1842 Comm: check Tainted: G    B D W           7.1.0-kts+ #57 PREEMPT(lazy) 
[  105.861456] [   T1842] Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN
[  105.861458] [   T1842] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[  105.861461] [   T1842] Call Trace:
[  105.861464] [   T1842]  <TASK>
[  105.861467] [   T1842]  dump_stack_lvl+0x6e/0xa0
[  105.861479] [   T1842]  sysfs_warn_dup.cold+0x17/0x24
[  105.861484] [   T1842]  sysfs_create_dir_ns+0x1fc/0x270
[  105.861490] [   T1842]  ? __pfx_sysfs_create_dir_ns+0x10/0x10
[  105.861495] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  105.861499] [   T1842]  ? kasan_save_track+0x14/0x30
[  105.861502] [   T1842]  ? kfree+0x1d6/0x620
[  105.861506] [   T1842]  kobject_add_internal+0x26f/0x800
[  105.861511] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  105.861514] [   T1842]  kobject_add+0x139/0x1a0
[  105.861517] [   T1842]  ? __blk_mq_unfreeze_queue+0x24/0x1a0
[  105.861521] [   T1842]  ? __pfx_kobject_add+0x10/0x10
[  105.861526] [   T1842]  ? __mutex_unlock_slowpath+0x15d/0x860
[  105.861528] [   T1842]  ? do_raw_spin_lock+0x128/0x270
[  105.861532] [   T1842]  ? __mutex_lock+0x2bc/0x25a0
[  105.861535] [   T1842]  elevator_change_done+0x26f/0x690
[  105.861540] [   T1842]  ? __pfx_elevator_change_done+0x10/0x10
[  105.861543] [   T1842]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[  105.861549] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  105.861552] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  105.861555] [   T1842]  elevator_change+0x283/0x4f0
[  105.861559] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  105.861562] [   T1842]  elv_iosched_store+0x30c/0x3a0
[  105.861566] [   T1842]  ? __pfx_elv_iosched_store+0x10/0x10
[  105.861569] [   T1842]  ? entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  105.861575] [   T1842]  ? lock_acquire+0x126/0x140
[  105.861579] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  105.861582] [   T1842]  queue_attr_store+0x23f/0x360
[  105.861586] [   T1842]  ? __mutex_lock+0x1536/0x25a0
[  105.861589] [   T1842]  ? __pfx_queue_attr_store+0x10/0x10
[  105.861592] [   T1842]  ? lock_release+0xfa/0x120
[  105.861595] [   T1842]  ? __pfx___mutex_lock+0x10/0x10
[  105.861599] [   T1842]  ? __pfx__copy_from_iter+0x10/0x10
[  105.861603] [   T1842]  ? lock_acquire+0x126/0x140
[  105.861606] [   T1842]  ? lock_acquire+0x126/0x140
[  105.861610] [   T1842]  ? lock_release+0xfa/0x120
[  105.861613] [   T1842]  ? sysfs_file_kobj+0xb9/0x1b0
[  105.861617] [   T1842]  ? sysfs_kf_write+0x65/0x170
[  105.861621] [   T1842]  ? __pfx_sysfs_kf_write+0x10/0x10
[  105.861623] [   T1842]  kernfs_fop_write_iter+0x3da/0x5e0
[  105.861627] [   T1842]  ? __pfx_kernfs_fop_write_iter+0x10/0x10
[  105.861630] [   T1842]  vfs_write+0x524/0x1010
[  105.861634] [   T1842]  ? lock_release+0xfa/0x120
[  105.861637] [   T1842]  ? __pfx_vfs_write+0x10/0x10
[  105.861639] [   T1842]  ? wp_page_reuse+0x160/0x1e0
[  105.861644] [   T1842]  ? do_wp_page+0x57e/0xf40
[  105.861649] [   T1842]  ? __pfx_handle_pte_fault+0x10/0x10
[  105.861653] [   T1842]  ksys_write+0xff/0x200
[  105.861656] [   T1842]  ? __pfx_ksys_write+0x10/0x10
[  105.861659] [   T1842]  ? __handle_mm_fault+0xa02/0xef0
[  105.861663] [   T1842]  do_syscall_64+0xf4/0x660
[  105.861667] [   T1842]  ? __pfx___css_rstat_updated+0x10/0x10
[  105.861674] [   T1842]  ? count_memcg_events+0x37f/0x480
[  105.861679] [   T1842]  ? lock_release+0xfa/0x120
[  105.861683] [   T1842]  ? rcu_read_unlock+0x1c/0x60
[  105.861685] [   T1842]  ? handle_mm_fault+0x4d1/0x7d0
[  105.861689] [   T1842]  ? do_user_addr_fault+0x15d/0xed0
[  105.861694] [   T1842]  ? lock_release+0xfa/0x120
[  105.861698] [   T1842]  ? do_user_addr_fault+0x811/0xed0
[  105.861701] [   T1842]  ? irqentry_exit+0xb0/0x810
[  105.861704] [   T1842]  ? do_syscall_64+0x34/0x660
[  105.861707] [   T1842]  ? trace_hardirqs_on+0x19/0x1a0
[  105.861710] [   T1842]  ? irqentry_exit+0xb5/0x810
[  105.861712] [   T1842]  ? do_syscall_64+0xab/0x660
[  105.861716] [   T1842]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  105.861719] [   T1842] RIP: 0033:0x7f96f4878bbe
[  105.861722] [   T1842] Code: 4d 89 d8 e8 34 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
[  105.861725] [   T1842] RSP: 002b:00007ffcb76ebbb0 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
[  105.861729] [   T1842] RAX: ffffffffffffffda RBX: 00007f96f49f45c0 RCX: 00007f96f4878bbe
[  105.861732] [   T1842] RDX: 0000000000000006 RSI: 0000562ec532aa50 RDI: 0000000000000001
[  105.861734] [   T1842] RBP: 00007ffcb76ebbc0 R08: 0000000000000000 R09: 0000000000000000
[  105.861735] [   T1842] R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000000006
[  105.861737] [   T1842] R13: 0000000000000006 R14: 0000562ec532aa50 R15: 0000562ec53972c0
[  105.861742] [   T1842]  </TASK>
[  105.861748] [   T1842] kobject: kobject_add_internal failed for iosched with -EEXIST, don't try to register things with the same name in the same directory.


[4] dmesg during the sysytem boot

...
[   14.387131] [    T117] ata7.00: Features: HIPM DIPM NCQ-sndrcv NCQ-prio
[   14.387200] [    T129] sd 4:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/466 GiB)
[   14.387319] [    T129] sd 4:0:0:0: [sda] Write Protect is off
[   14.387370] [    T129] sd 4:0:0:0: [sda] Mode Sense: 00 3a 00 00
[   14.387492] [    T129] sd 4:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   14.387696] [    T129] sd 4:0:0:0: [sda] Preferred minimum I/O size 512 bytes
[   14.391829] [      T1] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   14.391835] [      T1] usb usb4: Product: xHCI Host Controller
[   14.391837] [      T1] usb usb4: Manufacturer: Linux 7.1.0-kts+ xhci-hcd
[   14.411827] [    T117] ata7.00: configured for UDMA/133
[   14.417307] [      T1] usb usb4: SerialNumber: 0000:00:14.0
[   14.417647] [    T129] ------------[ cut here ]------------
[   14.417668] [    T129] WARNING: block/blk-mq-debugfs.c:621 at debugfs_create_files+0x162/0x210, CPU#7: kworker/u32:11/129
[   14.417681] [    T129] Modules linked in:
[   14.417694] [    T129] CPU: 7 UID: 0 PID: 129 Comm: kworker/u32:11 Not tainted 7.1.0-kts+ #57 PREEMPT(lazy) 
[   14.417698] [    T129] Hardware name: Supermicro Super Server/X10SRL-F, BIOS 2.0 12/17/2015
[   14.417701] [    T129] Workqueue: async async_run_entry_fn
[   14.417708] [    T129] RIP: 0010:debugfs_create_files+0x162/0x210
[   14.417713] [    T129] Code: 0f 85 aa 00 00 00 8b 15 e0 bc e1 03 85 d2 0f 84 0c ff ff ff 49 8d be 88 05 00 00 be ff ff ff ff e8 f3 ac a9 01 83 f8 01 75 02 <0f> 0b 48 b8 00 00 00 00 00 fc ff df 48 89 ea 83 e5 07 48 c1 ea 03
[   14.417716] [    T129] RSP: 0000:ffff88811750f648 EFLAGS: 00010246
[   14.417720] [    T129] RAX: 0000000000000001 RBX: ffffffffaaffa7e0 RCX: 0000000000000000
[   14.417723] [    T129] RDX: 0000000000000001 RSI: ffff888119603418 RDI: ffff888116521060
[   14.417726] [    T129] RBP: ffffffffacf3cc24 R08: 0000000000000001 R09: ffffed10200b2365
[   14.417729] [    T129] R10: ffffed10200b2366 R11: 0000000000000001 R12: ffff888100591a70
[   14.417731] [    T129] R13: ffff888119602e90 R14: ffff888119602e90 R15: ffff888101ff5818
[   14.417734] [    T129] FS:  0000000000000000(0000) GS:ffff8887b01c8000(0000) knlGS:0000000000000000
[   14.417737] [    T129] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   14.417740] [    T129] CR2: 0000000000000000 CR3: 00000004f909c001 CR4: 00000000001706f0
[   14.417743] [    T129] Call Trace:
[   14.417745] [    T129]  <TASK>
[   14.417751] [    T129]  blk_mq_sched_reg_debugfs+0x8d/0x1a0
[   14.417761] [    T129]  elevator_change_done+0x329/0x690
[   14.417771] [    T129]  ? __pfx_elevator_change_done+0x10/0x10
[   14.417776] [    T129]  ? __lock_release.isra.0+0x59/0x170
[   14.417789] [    T129]  elevator_change+0x283/0x4f0
[   14.417798] [    T129]  elevator_set_default+0x236/0x2e0
[   14.417804] [    T129]  ? __pfx_elevator_set_default+0x10/0x10
[   14.417815] [    T129]  ? disk_register_independent_access_ranges+0x24f/0x310
[   14.417825] [    T129]  blk_register_queue+0x412/0x5b0
[   14.417837] [    T129]  __add_disk+0x5fd/0xd50
[   14.417843] [    T129]  ? __pfx_do_raw_spin_lock+0x10/0x10
[   14.417847] [    T129]  ? find_held_lock+0x2b/0x80
[   14.417853] [    T129]  add_disk_fwnode+0x113/0x590
[   14.417863] [    T129]  sd_probe+0x8b5/0xf90
[   14.417873] [    T129]  call_driver_probe+0x64/0x1e0
[   14.417880] [    T129]  really_probe+0x194/0x740
[   14.417889] [    T129]  ? __pfx___device_attach_driver+0x10/0x10
[   14.417893] [    T129]  __driver_probe_device+0x1cb/0x400
[   14.417900] [    T129]  driver_probe_device+0x4a/0x120
[   14.417906] [    T129]  __device_attach_driver+0x156/0x2a0
[   14.417913] [    T129]  bus_for_each_drv+0x114/0x1a0
[   14.417917] [    T129]  ? mark_held_locks+0x40/0x70
[   14.417922] [    T129]  ? __pfx_bus_for_each_drv+0x10/0x10
[   14.417927] [    T129]  ? trace_hardirqs_on+0x19/0x1a0
[   14.417933] [    T129]  ? _raw_spin_unlock_irqrestore+0x44/0x60
[   14.417942] [    T129]  __device_attach_async_helper+0x19f/0x250
[   14.417948] [    T129]  ? __pfx___device_attach_async_helper+0x10/0x10
[   14.417953] [    T129]  ? seqcount_lockdep_reader_access+0x94/0xb0
[   14.417961] [    T129]  ? ktime_get+0x35/0x1b0
[   14.417965] [    T129]  ? ktime_get+0x35/0x1b0
[   14.417972] [    T129]  async_run_entry_fn+0x97/0x550
[   14.417979] [    T129]  process_one_work+0x8b7/0x1650
[   14.417995] [    T129]  ? __pfx_process_one_work+0x10/0x10
[   14.418073] [    T129]  ? lock_acquire.part.0+0xb8/0x230
[   14.418083] [    T129]  ? lock_is_held_type+0x9a/0x110
[   14.418096] [    T129]  worker_thread+0x60a/0xff0
[   14.418110] [    T129]  ? __pfx_worker_thread+0x10/0x10
[   14.418114] [    T129]  kthread+0x35d/0x460
[   14.418119] [    T129]  ? _raw_spin_unlock_irq+0x28/0x50
[   14.418124] [    T129]  ? __pfx_kthread+0x10/0x10
[   14.418130] [    T129]  ret_from_fork+0x55b/0x850
[   14.418137] [    T129]  ? __pfx_ret_from_fork+0x10/0x10
[   14.418144] [    T129]  ? __switch_to+0x474/0xd80
[   14.418148] [    T129]  ? __switch_to_asm+0x39/0x70
[   14.418153] [    T129]  ? __switch_to_asm+0x33/0x70
[   14.418157] [    T129]  ? __pfx_kthread+0x10/0x10
[   14.418163] [    T129]  ret_from_fork_asm+0x1a/0x30
[   14.418179] [    T129]  </TASK>
[   14.418181] [    T129] irq event stamp: 4509
[   14.418183] [    T129] hardirqs last  enabled at (4515): [<ffffffffa7dd11d5>] console_trylock_spinning+0x1c5/0x1f0
[   14.418188] [    T129] hardirqs last disabled at (4520): [<ffffffffa7dd1188>] console_trylock_spinning+0x178/0x1f0
[   14.418193] [    T129] softirqs last  enabled at (4028): [<ffffffffa7bc5b91>] handle_softirqs+0x5c1/0x8b0
[   14.418198] [    T129] softirqs last disabled at (4023): [<ffffffffa7bc5fe2>] __irq_exit_rcu+0x152/0x280
[   14.418203] [    T129] ---[ end trace 0000000000000000 ]---
[   14.445938] [     T84] usb 1-1: New USB device found, idVendor=8087, idProduct=8002, bcdDevice= 0.05
[   14.456687] [      T1] hub 4-0:1.0: USB hub found
[   14.460399] [     T84] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[   14.468534] [      T1] hub 4-0:1.0: 6 ports detected
[   14.477755] [    T129]  sda: sda1 sda2 sda3
[   14.478903] [     T84] hub 1-1:1.0: USB hub found
[   14.479235] [     T84] hub 1-1:1.0: 8 ports detected
[   14.500815] [     T14] Freeing initrd memory: 58856K
[   14.511419] [    T129] sd 4:0:0:0: [sda] Attached SCSI disk
[   14.591054] [      T1] usbcore: registered new interface driver usbserial_generic
[   14.624054] [    T133] usb 3-1: new high-speed USB device number 2 using ehci-pci
[   14.630659] [      T1] usbserial: USB Serial support registered for generic
[   14.642060] [     T82] usb 2-12: new high-speed USB device number 2 using xhci_hcd
[   14.647384] [      T1] i8042: PNP: No PS/2 controller found.
[   14.783710] [     T82] usb 2-12: New USB device found, idVendor=0557, idProduct=7000, bcdDevice= 0.00
[   14.788031] [      T1] mousedev: PS/2 mouse device common for all mice
[   14.791695] [     T82] usb 2-12: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[   14.798401] [      T1] rtc_cmos PNP0B00:00: RTC can wake from S4
[   14.806361] [     T82] hub 2-12:1.0: USB hub found
[   14.809380] [      T1] rtc_cmos PNP0B00:00: registered as rtc0
[   14.811778] [     T82] hub 2-12:1.0: 4 ports detected
[   14.816589] [      T1] rtc_cmos PNP0B00:00: setting system clock to 2026-06-24T11:36:20 UTC (1782300980)
[   14.875529] [    T133] usb 3-1: New USB device found, idVendor=8087, idProduct=800a, bcdDevice=
...

^ permalink raw reply

* Re: [PATCH 10/16] fs/buffer: Remove fs-layer decryption code
From: Jan Kara @ 2026-06-24 11:40 UTC (permalink / raw)
  To: Eric Biggers
  Cc: linux-fscrypt, linux-fsdevel, linux-ext4, linux-f2fs-devel,
	linux-block, Christoph Hellwig, Theodore Ts'o, Andreas Dilger,
	Baokun Li, Jan Kara, Ojaswin Mujoo, Ritesh Harjani, Zhang Yi,
	Jaegeuk Kim, Chao Yu
In-Reply-To: <20260624050334.124606-11-ebiggers@kernel.org>

On Tue 23-06-26 22:03:28, Eric Biggers wrote:
> Now that fscrypt's file contents en/decryption is always implemented
> using blk-crypto when the filesystem is block-based, the fs-layer
> decryption code in fs/buffer.c is unused code.  Remove it.
> 
> Signed-off-by: Eric Biggers <ebiggers@kernel.org>

Fine by me. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> ---
>  fs/buffer.c | 45 ++++++++-------------------------------------
>  1 file changed, 8 insertions(+), 37 deletions(-)
> 
> diff --git a/fs/buffer.c b/fs/buffer.c
> index 9af5f061a1f8..21dd9596a941 100644
> --- a/fs/buffer.c
> +++ b/fs/buffer.c
> @@ -334,82 +334,53 @@ static void end_buffer_async_read(struct buffer_head *bh, int uptodate)
>  
>  still_busy:
>  	spin_unlock_irqrestore(&first->b_uptodate_lock, flags);
>  }
>  
> -struct postprocess_bh_ctx {
> +struct verify_bh_ctx {
>  	struct work_struct work;
>  	struct buffer_head *bh;
>  	struct fsverity_info *vi;
>  };
>  
>  static void verify_bh(struct work_struct *work)
>  {
> -	struct postprocess_bh_ctx *ctx =
> -		container_of(work, struct postprocess_bh_ctx, work);
> +	struct verify_bh_ctx *ctx =
> +		container_of(work, struct verify_bh_ctx, work);
>  	struct buffer_head *bh = ctx->bh;
>  	bool valid;
>  
>  	valid = fsverity_verify_blocks(ctx->vi, bh->b_folio, bh->b_size,
>  				       bh_offset(bh));
>  	end_buffer_async_read(bh, valid);
>  	kfree(ctx);
>  }
>  
> -static void decrypt_bh(struct work_struct *work)
> -{
> -	struct postprocess_bh_ctx *ctx =
> -		container_of(work, struct postprocess_bh_ctx, work);
> -	struct buffer_head *bh = ctx->bh;
> -	int err;
> -
> -	err = fscrypt_decrypt_pagecache_blocks(bh->b_folio, bh->b_size,
> -					       bh_offset(bh));
> -	if (err == 0 && ctx->vi) {
> -		/*
> -		 * We use different work queues for decryption and for verity
> -		 * because verity may require reading metadata pages that need
> -		 * decryption, and we shouldn't recurse to the same workqueue.
> -		 */
> -		INIT_WORK(&ctx->work, verify_bh);
> -		fsverity_enqueue_verify_work(&ctx->work);
> -		return;
> -	}
> -	end_buffer_async_read(bh, err == 0);
> -	kfree(ctx);
> -}
> -
>  /*
>   * I/O completion handler for block_read_full_folio() - folios
>   * which come unlocked at the end of I/O.
>   */
>  static void bh_end_async_read(struct bio *bio)
>  {
>  	struct buffer_head *bh;
>  	bool uptodate = bio_endio_bh(bio, &bh);
>  	struct inode *inode = bh->b_folio->mapping->host;
> -	bool decrypt = fscrypt_inode_uses_fs_layer_crypto(inode);
>  	struct fsverity_info *vi = NULL;
>  
>  	/* needed by ext4 */
>  	if (bh->b_folio->index < DIV_ROUND_UP(inode->i_size, PAGE_SIZE))
>  		vi = fsverity_get_info(inode);
>  
> -	/* Decrypt (with fscrypt) and/or verify (with fsverity) if needed. */
> -	if (uptodate && (decrypt || vi)) {
> -		struct postprocess_bh_ctx *ctx = kmalloc_obj(*ctx, GFP_ATOMIC);
> +	/* Verify (with fsverity) if needed. */
> +	if (vi && uptodate) {
> +		struct verify_bh_ctx *ctx = kmalloc_obj(*ctx, GFP_ATOMIC);
>  
>  		if (ctx) {
>  			ctx->bh = bh;
>  			ctx->vi = vi;
> -			if (decrypt) {
> -				INIT_WORK(&ctx->work, decrypt_bh);
> -				fscrypt_enqueue_decrypt_work(&ctx->work);
> -			} else {
> -				INIT_WORK(&ctx->work, verify_bh);
> -				fsverity_enqueue_verify_work(&ctx->work);
> -			}
> +			INIT_WORK(&ctx->work, verify_bh);
> +			fsverity_enqueue_verify_work(&ctx->work);
>  			return;
>  		}
>  		uptodate = false;
>  	}
>  	end_buffer_async_read(bh, uptodate);
> -- 
> 2.54.0
> 
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR

^ permalink raw reply

* Re: [PATCH 2/2] dm-raid1: don't fail the mirror for invalid I/O errors
From: Mikulas Patocka @ 2026-06-24 11:14 UTC (permalink / raw)
  To: Keith Busch, Benjamin Marzinski
  Cc: Keith Busch, dm-devel, linux-block, Dr. David Alan Gilbert,
	Vjaceslavs Klimovs
In-Reply-To: <ajFyuoMqnvQm738z@kbusch-mbp>

Hi

This approach is OK, I will stage the patches when 7.2-rc1 comes out and 
when I'll fork the dm git branches.

I suggest one change - it is kind of hacky when multiple I/O completion 
callbacks write into io->orig_bio->bi_status concurrently - so it would be 
better to not do it and maintain and return separate bit mask for 
non-retryable errors.

For example:

static void complete_io(struct io *io)
{
        unsigned long error_bits = io->error_bits;
        unsigned long nonretryable_error_bits = io->nonretryable_error_bits;
        io_notify_fn fn = io->callback;
        void *context = io->context;

        if (io->vma_invalidate_size)
                invalidate_kernel_vmap_range(io->vma_invalidate_address,
                                             io->vma_invalidate_size);

        mempool_free(io, &io->client->pool);
        fn(error_bits, nonretryable_error_bits, context);
}

static void dec_count(struct io *io, unsigned int region, blk_status_t error)
{
        if (unlikely(error == BLK_STS_NOTSUPP) || unlikely(error == BLK_STS_INVAL))
		set_bit(region, &io->nonretryable_error_bits);
        else if (unlikely(error != BLK_STS_OK))
                set_bit(region, &io->error_bits);

        if (atomic_dec_and_test(&io->count))
                complete_io(io);
}

Please send the updated patch that uses this approach.

BTW. I think that blk_path_error should also test for BLK_STS_INVAL and 
return false, otherwise, dm-multipath would be suffering from this bug 
too. Ben, could you test it?

Mikulas


On Tue, 16 Jun 2026, Keith Busch wrote:

> BLK_STS_INVAL indicates the I/O request itself was invalid (for example a
> misaligned direct I/O), not that the device has failed. dm-raid1 treated
> any read or write completion error as a device failure: it failed the
> mirror leg, retried on the alternatives - which fail identically - and
> eventually returned EIO while spuriously degrading the array.
> 
> Since commit 5ff3f74e145a ("block: simplify direct io validity check") the
> direct I/O path no longer rejects misaligned buffers up front, so an
> invalid bio now reaches the lower block layers, which fail it with
> BLK_STS_INVAL. dm-io collapses the block status into a per-region error
> bit before invoking the completion callback, so record BLK_STS_INVAL on
> the originating bio and have the dm-raid1 read, write and end_io paths
> propagate it instead of failing the device.
> 
> This mirrors the raid1/raid10 fix in commit f7b24c7b41f23
> ("md/raid1,raid10: don't fail devices for invalid IO errors") for the
> device-mapper mirror target.
> 
> Fixes: 7eac33186957 ("iomap: simplify direct io validity check")
> Fixes: 5ff3f74e145a ("block: simplify direct io validity check")
> Reported-by: Dr. David Alan Gilbert <linux@treblig.org>
> Reported-by: Vjaceslavs Klimovs <vklimovs@gmail.com>
> Signed-off-by: Keith Busch <kbusch@kernel.org>
> ---
> Resending patch 2/2 from a different machine. For some reason, only 1/2
> is getting through with git-send-email, so manually replying to the
> thread with the missing second patch.
> 
>  drivers/md/dm-io.c    | 14 +++++++++++++-
>  drivers/md/dm-raid1.c | 28 +++++++++++++++++++++++++++-
>  2 files changed, 40 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/md/dm-io.c b/drivers/md/dm-io.c
> index 28adfeb58f240..f382e9f9be059 100644
> --- a/drivers/md/dm-io.c
> +++ b/drivers/md/dm-io.c
> @@ -37,6 +37,7 @@ struct io {
>  	struct dm_io_client *client;
>  	io_notify_fn callback;
>  	void *context;
> +	struct bio *orig_bio;
>  	void *vma_invalidate_address;
>  	unsigned long vma_invalidate_size;
>  } __aligned(DM_IO_MAX_REGIONS);
> @@ -132,8 +133,18 @@ static void complete_io(struct io *io)
>  
>  static void dec_count(struct io *io, unsigned int region, blk_status_t error)
>  {
> -	if (error)
> +	if (error) {
>  		set_bit(region, &io->error_bits);
> +		/*
> +		 * BLK_STS_INVAL means the bio was not valid for the underlying
> +		 * device (e.g. a misaligned direct I/O), which is a caller error
> +		 * rather than a device failure. Record it on the original bio so
> +		 * bio-based targets can propagate it instead of treating it as a
> +		 * media error and failing the device.
> +		 */
> +		if (error == BLK_STS_INVAL && io->orig_bio)
> +			io->orig_bio->bi_status = error;
> +	}
>  
>  	if (atomic_dec_and_test(&io->count))
>  		complete_io(io);
> @@ -398,6 +409,7 @@ static void async_io(struct dm_io_client *client, unsigned int num_regions,
>  	io->client = client;
>  	io->callback = fn;
>  	io->context = context;
> +	io->orig_bio = dp->orig_bio;
>  
>  	io->vma_invalidate_address = dp->vma_invalidate_address;
>  	io->vma_invalidate_size = dp->vma_invalidate_size;
> diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
> index de5c00704e69c..022ad791c2957 100644
> --- a/drivers/md/dm-raid1.c
> +++ b/drivers/md/dm-raid1.c
> @@ -524,6 +524,17 @@ static void read_callback(unsigned long error, void *context)
>  		return;
>  	}
>  
> +	/*
> +	 * BLK_STS_INVAL means the bio was not valid for the underlying device,
> +	 * e.g. a misaligned direct I/O. That is a caller error, not a device
> +	 * failure, so propagate it rather than failing the mirror and retrying
> +	 * on the other legs, which would fail the same way.
> +	 */
> +	if (bio->bi_status == BLK_STS_INVAL) {
> +		bio_endio(bio);
> +		return;
> +	}
> +
>  	fail_mirror(m, DM_RAID1_READ_ERROR);
>  
>  	if (likely(default_ok(m)) || mirror_available(m->ms, bio)) {
> @@ -622,6 +633,16 @@ static void write_callback(unsigned long error, void *context)
>  		return;
>  	}
>  
> +	/*
> +	 * BLK_STS_INVAL means the bio was not valid for the underlying device,
> +	 * e.g. a misaligned direct I/O. Propagate the error without degrading
> +	 * the array.
> +	 */
> +	if (bio->bi_status == BLK_STS_INVAL) {
> +		bio_endio(bio);
> +		return;
> +	}
> +
>  	/*
>  	 * If the bio is discard, return an error, but do not
>  	 * degrade the array.
> @@ -1262,7 +1283,12 @@ static int mirror_end_io(struct dm_target *ti, struct bio *bio,
>  		return DM_ENDIO_DONE;
>  	}
>  
> -	if (*error == BLK_STS_NOTSUPP)
> +	/*
> +	 * BLK_STS_INVAL means the bio was not valid for the underlying device,
> +	 * e.g. a misaligned direct I/O. Propagate it rather than failing the
> +	 * mirror and retrying, which would fail the same way on every leg.
> +	 */
> +	if (*error == BLK_STS_NOTSUPP || *error == BLK_STS_INVAL)
>  		goto out;
>  
>  	if (bio->bi_opf & REQ_RAHEAD)
> -- 
> 2.52.0
> 
> 


^ permalink raw reply

* Re: [PATCH v2] block: serialize elevator changes for the same queue using a writer lock
From: Ming Lei @ 2026-06-24  9:44 UTC (permalink / raw)
  To: Shin'ichiro Kawasaki; +Cc: linux-block, Jens Axboe, Nilay Shroff
In-Reply-To: <20260623013238.642052-1-shinichiro.kawasaki@wdc.com>

On Tue, Jun 23, 2026 at 10:32:38AM +0900, Shin'ichiro Kawasaki wrote:
> When elevator_change() is called concurrently for the same queue, the
> elevator_change_done() function runs concurrently as well. This function
> adds or deletes kobjects for the debugfs entry of the queue. Then the
> concurrent calls cause memory corruption of the kobjects and result in a
> process hang. The core part of the elevator switch is protected by queue
> freeze and q->elevator_lock. However, since the commit 559dc11143eb
> ("block: move elv_register[unregister]_queue out of elevator_lock"), the
> elevator_change_done() is not serialized. Hence the memory corruption
> and the hang.
> 
> The failures are observed when udev-worker writes to a sysfs
> queue/scheduler attribute file while the blktests test case block/005
> writes to the same attribute file. The failure also can be recreated by
> running two processes that write to the same queue/scheduler file
> concurrently. The failure is observed since another commit 370ac285f23a
> ("block: avoid cpu_hotplug_lock depedency on freeze_lock"). This commit
> changed the behavior of queue freeze and it unveiled the failure.
> 
> Fix the failure by changing elv_iosched_store() to acquire
> update_nr_hwq_lock as the writer lock instead of the reader lock. This
> serializes the whole elevator switch steps, including the
> elevator_change_done() call.
> 
> Fixes: 559dc11143eb ("block: move elv_register[unregister]_queue out of elevator_lock")
> Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
> ---
> I observed that the blktests test case block/005 hung on a specific
> server hardware using a specific HDD as a block device. During the test
> case run, the kernel reported KASAN null-ptr-deref and slab-use-after-
> free errors. The failure happened when a sysfs queue/scheduler attribute
> file is written concurrently. I reported the failure and shared a
> candidate fix patch as RFC [1]. Based on the comments and discussion on
> the RFC patch, I propose this v2 patch that avoids introducing a new
> lock. My thanks go to Ming and Nilay for the discussion.
> 
> Please refer to [1] for details of the failure. Also, I created a
> blktests test case that recreates the hang [2], which I used to test the
> fix.
> 
> * Changes from RFC v1
> - Instead of adding a new mutex to struct request_queue, replace the
>   reader lock on update_nr_hwq_lock with the writer lock in
>   elv_iosched_store().
> 
> [1] https://lore.kernel.org/linux-block/20260611074200.474676-1-shinichiro.kawasaki@wdc.com/
> [2] https://github.com/kawasaki/blktests/commit/8e80b3ccc0bbbe3f209d00eacd138d020de97fc6
> 
>  block/elevator.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/block/elevator.c b/block/elevator.c
> index 3bcd37c2aa34..b03185a217ff 100644
> --- a/block/elevator.c
> +++ b/block/elevator.c
> @@ -813,7 +813,7 @@ ssize_t elv_iosched_store(struct gendisk *disk, const char *buf,
>  	 *   update_nr_hwq_lock -> kn->active (via del_gendisk -> kobject_del)
>  	 *   kn->active -> update_nr_hwq_lock (via this sysfs write path)
>  	 */
> -	if (!down_read_trylock(&set->update_nr_hwq_lock)) {
> +	if (!down_write_trylock(&set->update_nr_hwq_lock)) {
>  		ret = -EBUSY;
>  		goto out;
>  	}
> @@ -824,7 +824,7 @@ ssize_t elv_iosched_store(struct gendisk *disk, const char *buf,
>  	} else {
>  		ret = -ENOENT;
>  	}
> -	up_read(&set->update_nr_hwq_lock);
> +	up_write(&set->update_nr_hwq_lock);

I feel this is still abuse of the above lock, which serves writer vs
reader wrt. updating hw queue.

How about the following fix?


diff --git a/block/elevator.c b/block/elevator.c
index 3bcd37c2aa34..0375eb77646e 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -627,8 +627,10 @@ static void elv_exit_and_release(struct elv_change_ctx *ctx,
 static int elevator_change_done(struct request_queue *q,
 				struct elv_change_ctx *ctx)
 {
+	bool exit_and_release = false;
 	int ret = 0;
 
+	mutex_lock(&q->elevator_lock);
 	if (ctx->old) {
 		struct elevator_resources res = {
 			.et = ctx->old->et,
@@ -640,10 +642,24 @@ static int elevator_change_done(struct request_queue *q,
 		kobject_put(&ctx->old->kobj);
 	}
 	if (ctx->new) {
+		if (ctx->new != q->elevator) {
+			ret = -EBUSY;
+			goto unlock;
+		}
 		ret = elv_register_queue(q, ctx->new, !ctx->no_uevent);
+		/*
+		 * Tear down the failed elevator after dropping elevator_lock:
+		 * elv_exit_and_release() freezes the queue and re-acquires
+		 * elevator_lock itself, so it must not be called nested here.
+		 */
 		if (ret)
-			elv_exit_and_release(ctx, q);
+			exit_and_release = true;
 	}
+unlock:
+	mutex_unlock(&q->elevator_lock);
+
+	if (exit_and_release)
+		elv_exit_and_release(ctx, q);
 	return ret;
 }
 


Thanks,
Ming

^ permalink raw reply related

* [PATCH 2/2] block: handle REQ_OP_ZONE_APPEND in __bio_integrity_action
From: Christoph Hellwig @ 2026-06-24  8:00 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Caleb Sander Mateos, Martin K. Petersen, linux-block
In-Reply-To: <20260624080014.1998650-1-hch@lst.de>

Otherwise zone append commands will miss their integrity data.  While
this works "fine" for auto-PI, it break file system PI and non-PI
metadata.

With this XFS on ZNS namespace with non-PI metadata and 512 byte sectors
with PI work, while PI 4k sector formats with PI work only when Caleb's
"block: fix integrity offset/length conversions" is applied as well.

Note that unlike regular writes, zone append does need remapping as
partitions are not supported on zoned block devices.

Fixes: df3c485e0e60 ("block: switch on bio operation in bio_integrity_prep")
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 block/bio-integrity.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/block/bio-integrity.c b/block/bio-integrity.c
index a53b38cf8a1a..b23e2434d80c 100644
--- a/block/bio-integrity.c
+++ b/block/bio-integrity.c
@@ -38,6 +38,7 @@ unsigned int __bio_integrity_action(struct bio *bio)
 		}
 		return BI_ACT_BUFFER | BI_ACT_CHECK;
 	case REQ_OP_WRITE:
+	case REQ_OP_ZONE_APPEND:
 		/*
 		 * Flush masquerading as write?
 		 */
-- 
2.53.0


^ permalink raw reply related

* [PATCH 1/2] block: fix GFP_ flags confusion in bio_integrity_alloc_buf
From: Christoph Hellwig @ 2026-06-24  8:00 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Caleb Sander Mateos, Martin K. Petersen, linux-block
In-Reply-To: <20260624080014.1998650-1-hch@lst.de>

bio_integrity_alloc_buf usage of GFP_ flags is messed up.  For one it
mixes GFP_NOFS and GFP_NOIO for neighbouring allocations, but it also
makes the allocations fail more often than needed.  That code was copied
from bio_alloc_bioset which needs to do that so that it can punt to the
rescuer workqueue, but none of that is needed for the integrity
allocations that either sits in the file system or at the very bottom
of the I/O stack.  Failing early means we'll do a fully waiting
allocation from the mempool ->alloc callback which is usually much
larger than required.

Fix this by passing a gfp_t so that the file system path can pass
GFP_NOFS and the auto-integrity code can pass GFP_NOIO, and don't
modify the allocation type except for disabling warnings.

Fixes: ec7f31b2a2d3 ("block: make bio auto-integrity deadlock safe")
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 block/bio-integrity-auto.c    | 2 +-
 block/bio-integrity-fs.c      | 4 ++--
 block/bio-integrity.c         | 8 +++-----
 include/linux/bio-integrity.h | 2 +-
 4 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/block/bio-integrity-auto.c b/block/bio-integrity-auto.c
index 353eed632fcc..b1c733ecfd2e 100644
--- a/block/bio-integrity-auto.c
+++ b/block/bio-integrity-auto.c
@@ -94,7 +94,7 @@ void bio_integrity_prep(struct bio *bio, unsigned int action)
 	bio_integrity_init(bio, &bid->bip, &bid->bvec, 1);
 	bid->bio = bio;
 	bid->bip.bip_flags |= BIP_BLOCK_INTEGRITY;
-	bio_integrity_alloc_buf(bio, action & BI_ACT_ZERO);
+	bio_integrity_alloc_buf(bio, GFP_NOIO, action & BI_ACT_ZERO);
 	if (action & BI_ACT_CHECK)
 		bio_integrity_setup_default(bio);
 
diff --git a/block/bio-integrity-fs.c b/block/bio-integrity-fs.c
index 0daa42d9ead7..9c5fe5fa8f0d 100644
--- a/block/bio-integrity-fs.c
+++ b/block/bio-integrity-fs.c
@@ -23,10 +23,10 @@ unsigned int fs_bio_integrity_alloc(struct bio *bio)
 	if (!action)
 		return 0;
 
-	iib = mempool_alloc(&fs_bio_integrity_pool, GFP_NOIO);
+	iib = mempool_alloc(&fs_bio_integrity_pool, GFP_NOFS);
 	bio_integrity_init(bio, &iib->bip, &iib->bvec, 1);
 
-	bio_integrity_alloc_buf(bio, action & BI_ACT_ZERO);
+	bio_integrity_alloc_buf(bio, GFP_NOFS, action & BI_ACT_ZERO);
 	if (action & BI_ACT_CHECK)
 		bio_integrity_setup_default(bio);
 	return action;
diff --git a/block/bio-integrity.c b/block/bio-integrity.c
index e796de1a749e..a53b38cf8a1a 100644
--- a/block/bio-integrity.c
+++ b/block/bio-integrity.c
@@ -64,20 +64,18 @@ unsigned int __bio_integrity_action(struct bio *bio)
 }
 EXPORT_SYMBOL_GPL(__bio_integrity_action);
 
-void bio_integrity_alloc_buf(struct bio *bio, bool zero_buffer)
+void bio_integrity_alloc_buf(struct bio *bio, gfp_t gfp, bool zero_buffer)
 {
 	struct blk_integrity *bi = blk_get_integrity(bio->bi_bdev->bd_disk);
 	struct bio_integrity_payload *bip = bio_integrity(bio);
 	unsigned int len = bio_integrity_bytes(bi, bio_sectors(bio));
-	gfp_t gfp = GFP_NOIO | (zero_buffer ? __GFP_ZERO : 0);
 	void *buf;
 
-	buf = kmalloc(len, (gfp & ~__GFP_DIRECT_RECLAIM) |
-			__GFP_NOMEMALLOC | __GFP_NORETRY | __GFP_NOWARN);
+	buf = kmalloc(len, gfp | __GFP_NOWARN | (zero_buffer ? __GFP_ZERO : 0));
 	if (unlikely(!buf)) {
 		struct page *page;
 
-		page = mempool_alloc(&integrity_buf_pool, GFP_NOFS);
+		page = mempool_alloc(&integrity_buf_pool, gfp);
 		if (zero_buffer)
 			memset(page_address(page), 0, len);
 		bvec_set_page(&bip->bip_vec[0], page, len, 0);
diff --git a/include/linux/bio-integrity.h b/include/linux/bio-integrity.h
index af5178434ec6..c3dda32fd803 100644
--- a/include/linux/bio-integrity.h
+++ b/include/linux/bio-integrity.h
@@ -141,7 +141,7 @@ static inline int bio_integrity_add_page(struct bio *bio, struct page *page,
 }
 #endif /* CONFIG_BLK_DEV_INTEGRITY */
 
-void bio_integrity_alloc_buf(struct bio *bio, bool zero_buffer);
+void bio_integrity_alloc_buf(struct bio *bio, gfp_t gfp, bool zero_buffer);
 void bio_integrity_free_buf(struct bio_integrity_payload *bip);
 void bio_integrity_setup_default(struct bio *bio);
 
-- 
2.53.0


^ permalink raw reply related

* PI fixes v2
From: Christoph Hellwig @ 2026-06-24  8:00 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Caleb Sander Mateos, Martin K. Petersen, linux-block

Hi all,

this series has two unrelated PI/metadata fixes that came up
during a little testing surge.

Changes since v1:
 - take operator precedence into account so that zeroing doesn't disable
   other GFP_ flags.
 - add a commit log blurb on why Zone Append does not require remapping

Diffstat:
 block/bio-integrity-auto.c    |    2 +-
 block/bio-integrity-fs.c      |    4 ++--
 block/bio-integrity.c         |    9 ++++-----
 include/linux/bio-integrity.h |    2 +-
 4 files changed, 8 insertions(+), 9 deletions(-)

^ permalink raw reply

* Re: [PATCHv2 6/6] block: validate user space vectors during extraction
From: Christoph Hellwig @ 2026-06-24  7:39 UTC (permalink / raw)
  To: Keith Busch
  Cc: Christoph Hellwig, Keith Busch, linux-block, linux-fsdevel,
	dm-devel, axboe, brauner, djwong, viro, stable
In-Reply-To: <ajqxoeZ0R_RwqEKe@kbusch-mbp>

On Tue, Jun 23, 2026 at 10:17:37AM -0600, Keith Busch wrote:
> Exactly, the in-kernel users of ITER_BVEC that allocate their own
> buffers are, as far as I know, aligned already. Fabric storage targets
> like nvme allocate their own SGLs on page boundaries so the bio is
> aligned at the point it was constructed.
> 
> The ones that forward user buffers like loop and zloop are addressed in
> the previous two patches. They generally should have been fine for most
> hardware without those updates, but they're included in case a backing
> device has more restrictive constraints than 512b "sector_t" aligned.
> 
> The only other user space provided alignment that I think may trip this
> up is the io_uring registered buffer, so that's what I'm trying to call
> out here.

Sounds reasonable, but it would be really helpful to have this in
the API documentation somewhere..

Talking about documented APIs and related bits:  do you still plan
to get back to exposing our pre-vector alignment requirements and
add tests to blktests/xfstests based on that?

^ permalink raw reply

* [PATCH] loop: serialize backing file swaps with sysfs readers
From: Cen Zhang @ 2026-06-24  7:18 UTC (permalink / raw)
  To: Jens Axboe, Kay Sievers
  Cc: linux-block, linux-kernel, baijiaju1990, zzzccc427

The backing_file sysfs attribute formats lo->lo_backing_file while holding
lo_lock, but LOOP_CHANGE_FD replaced lo_backing_file without that lock.
The old file can then be fput() after the swap, and that fput may be the
last reference. This leaves a sysfs reader that observed the old pointer
able to run file_path() on a file whose final put is underway.

Validation reproduced this kernel report:
BUG: KCSAN: data-race in lo_ioctl / loop_attr_do_show_backing_file

The buggy scenario involves two paths, with each column showing the order
within that path:

sysfs backing_file show:            LOOP_CHANGE_FD:
1. Take lo_lock.                    1. Save old_file from lo_backing_file.
2. Read lo_backing_file.            2. Store the replacement file pointer.
3. Pass it to file_path().          3. Drop the loop-owned old_file ref.

Serialize loop_assign_backing_file()'s pointer store with lo_lock, the
same lock used by the sysfs show path and by __loop_clr_fd(). This keeps a
sysfs reader that entered before the swap ordered before the old file can
be detached and fput(), and makes readers entering after the swap see the
new file.

Validation reproduced this kernel report:
[   56.673265] BUG: KCSAN: data-race in lo_ioctl / loop_attr_do_show_backing_file
[   56.674430] write to 0xffff888101d21060 of 8 bytes by task 498 on cpu 1:
[   56.675365]  lo_ioctl+0x99d/0xca0
[   56.675819]  blkdev_ioctl+0x2bc/0x380
[   56.676331]  __x64_sys_ioctl+0xc7/0x110
[   56.676846]  x64_sys_call+0x1092/0x1fb0
[   56.677372]  do_syscall_64+0x100/0x570
[   56.677878]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   56.678777] read to 0xffff888101d21060 of 8 bytes by task 489 on cpu 2:
[   56.679617]  loop_attr_do_show_backing_file+0x51/0xe0
[   56.680280]  dev_attr_show+0x3b/0x90
[   56.680769]  sysfs_kf_seq_show+0x139/0x1e0
[   56.681321]  kernfs_seq_show+0x9c/0xb0
[   56.681823]  seq_read_iter+0x2b3/0x830
[   56.682336]  kernfs_fop_read_iter+0x26b/0x2d0
[   56.682917]  vfs_read+0x414/0x5c0
[   56.683393]  ksys_read+0xa3/0x130
[   56.683844]  __x64_sys_read+0x41/0x50
[   56.684344]  x64_sys_call+0x1efb/0x1fb0
[   56.684856]  do_syscall_64+0x100/0x570
[   56.685364]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   56.686252] value changed: 0xffff888104d62900 -> 0xffff888104d53680
[   56.687275] Reported by Kernel Concurrency Sanitizer on:
[   56.687963] CPU: 2 UID: 0 PID: 489 Comm: loop_changefd_r Not tainted 7.1.0-02794-g5c7804e3279c #1 PREEMPT(lazy)
[   56.689251] Hardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   56.690673] ==================================================================
[   62.334003] ==================================================================
[   62.334986] BUG: KCSAN: data-race in lo_ioctl / loop_attr_do_show_backing_file
[   62.336145] write to 0xffff888101d21060 of 8 bytes by task 498 on cpu 3:
[   62.337000]  lo_ioctl+0x99d/0xca0
[   62.337452]  blkdev_ioctl+0x2bc/0x380
[   62.337955]  __x64_sys_ioctl+0xc7/0x110
[   62.338468]  x64_sys_call+0x1092/0x1fb0
[   62.338993]  do_syscall_64+0x100/0x570
[   62.339493]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   62.340381] read to 0xffff888101d21060 of 8 bytes by task 495 on cpu 0:
[   62.341235]  loop_attr_do_show_backing_file+0x51/0xe0
[   62.341900]  dev_attr_show+0x3b/0x90
[   62.342385]  sysfs_kf_seq_show+0x139/0x1e0
[   62.342943]  kernfs_seq_show+0x9c/0xb0
[   62.343447]  seq_read_iter+0x2b3/0x830
[   62.343955]  kernfs_fop_read_iter+0x26b/0x2d0
[   62.344537]  vfs_read+0x414/0x5c0
[   62.344988]  ksys_read+0xa3/0x130
[   62.345438]  __x64_sys_read+0x41/0x50
[   62.345937]  x64_sys_call+0x1efb/0x1fb0
[   62.346446]  do_syscall_64+0x100/0x570
[   62.346956]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   62.347832] value changed: 0xffff888104d50f00 -> 0xffff888104cf4f00
[   62.348871] Reported by Kernel Concurrency Sanitizer on:
[   62.349548] CPU: 0 UID: 0 PID: 495 Comm: loop_changefd_r Not tainted 7.1.0-02794-g5c7804e3279c #1 PREEMPT(lazy)
[   62.350823] Hardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   62.352260] ==================================================================
[   65.676721] ==================================================================
[   65.677703] BUG: KCSAN: data-race in lo_ioctl / loop_attr_do_show_backing_file
[   65.678870] write to 0xffff888101d21060 of 8 bytes by task 498 on cpu 0:
[   65.679712]  lo_ioctl+0x99d/0xca0
[   65.680166]  blkdev_ioctl+0x2bc/0x380
[   65.680673]  __x64_sys_ioctl+0xc7/0x110
[   65.681187]  x64_sys_call+0x1092/0x1fb0
[   65.681707]  do_syscall_64+0x100/0x570
[   65.682214]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   65.683113] read to 0xffff888101d21060 of 8 bytes by task 497 on cpu 2:
[   65.683955]  loop_attr_do_show_backing_file+0x51/0xe0
[   65.684617]  dev_attr_show+0x3b/0x90
[   65.685109]  sysfs_kf_seq_show+0x139/0x1e0
[   65.685663]  kernfs_seq_show+0x9c/0xb0
[   65.686165]  seq_read_iter+0x2b3/0x830
[   65.686679]  kernfs_fop_read_iter+0x26b/0x2d0
[   65.687265]  vfs_read+0x414/0x5c0
[   65.687720]  ksys_read+0xa3/0x130
[   65.688171]  __x64_sys_read+0x41/0x50
[   65.688665]  x64_sys_call+0x1efb/0x1fb0
[   65.689177]  do_syscall_64+0x100/0x570
[   65.689688]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[   65.690582] value changed: 0xffff888100c52600 -> 0xffff888104d54180
[   65.691615] Reported by Kernel Concurrency Sanitizer on:
[   65.692309] CPU: 2 UID: 0 PID: 497 Comm: loop_changefd_r Not tainted 7.1.0-02794-g5c7804e3279c #1 PREEMPT(lazy)
[   65.693596] Hardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   65.695035] ==================================================================
[   68.697953] ==================================================================
[   68.698927] BUG: KCSAN: data-race in lo_ioctl / loop_attr_do_show_backing_file
[   68.700101] write to 0xffff888101d21060 of 8 bytes by task 498 on cpu 1:

Fixes: 05eb0f252b04 ("loop: fix deadlock when sysfs and LOOP_CLR_FD race against each other")
Assisted-by: Codex:gpt-5.5
Signed-off-by: Cen Zhang <zzzccc427@gmail.com>
---
 drivers/block/loop.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 310de0463beb..45937741fcb6 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -503,11 +503,18 @@ static int loop_validate_file(struct file *file, struct block_device *bdev)
 
 static void loop_assign_backing_file(struct loop_device *lo, struct file *file)
 {
+	/*
+	 * Serialize the pointer update with sysfs backing_file show, which
+	 * formats the file path under lo_lock without taking a file reference.
+	 */
+	spin_lock_irq(&lo->lo_lock);
 	lo->lo_backing_file = file;
+	spin_unlock_irq(&lo->lo_lock);
+
 	lo->old_gfp_mask = mapping_gfp_mask(file->f_mapping);
 	mapping_set_gfp_mask(file->f_mapping,
 			lo->old_gfp_mask & ~(__GFP_IO | __GFP_FS));
-	if (lo->lo_backing_file->f_flags & O_DIRECT)
+	if (file->f_flags & O_DIRECT)
 		lo->lo_flags |= LO_FLAGS_DIRECT_IO;
 	lo->lo_min_dio_size = loop_query_min_dio_size(lo);
 }
-- 
2.43.0


^ permalink raw reply related

* [PATCH blktests] README.md, check: require getconf
From: Shin'ichiro Kawasaki @ 2026-06-24  7:18 UTC (permalink / raw)
  To: linux-block
  Cc: Omar Sandoval, Chaitanya Kulkarni, Bart Van Assche, Jeff Moyer,
	Shin'ichiro Kawasaki

Some test cases use the getconf command to query the page size that the
kernel supports (e.g. scsi/011, throtl/{002,003,007}, zbd/{010,014}).
Add getconf to the list of required commands so its absence is reported
clearly, and document it as a dependency in README.md.

Link: https://lore.kernel.org/linux-block/ajm1x0koQ4BftBOc@shinmob/
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
---
 README.md | 1 +
 check     | 1 +
 2 files changed, 2 insertions(+)

diff --git a/README.md b/README.md
index b137a43..b62540a 100644
--- a/README.md
+++ b/README.md
@@ -19,6 +19,7 @@ The dependencies are minimal, but make sure you have them installed:
 - fio
 - gcc
 - make
+- getconf
 - systemd-udev (udevadm)
 
 Some tests require the following:
diff --git a/check b/check
index a68049b..bc2dde9 100755
--- a/check
+++ b/check
@@ -1118,6 +1118,7 @@ _check_dependencies() {
 	required_commands_and_packages[blockdev]="util-linux"
 	required_commands_and_packages[fio]="fio"
 	required_commands_and_packages[udevadm]="systemd-udev"
+	required_commands_and_packages[getconf]="glibc-common or libc-bin"
 
 	for cmd in "${!required_commands_and_packages[@]}"; do
 		command -v "$cmd" &> /dev/null && continue
-- 
2.54.0


^ permalink raw reply related

* [PATCH] null_blk: cancel bw_timer on add-device error unwind
From: Cen Zhang @ 2026-06-24  7:18 UTC (permalink / raw)
  To: Jens Axboe, Keith Busch, Johannes Thumshirn, Chaitanya Kulkarni,
	Damien Le Moal, Genjian Zhang, Hans Holmberg, Nilay Shroff,
	Kees Cook, Matthew Wilcox, Christophe JAILLET, Kyungchan Koh,
	Shaohua Li
  Cc: linux-block, linux-kernel, baijiaju1990, zzzccc427

null_blk starts the bandwidth hrtimer before the later add_disk/device_add
failure points. If setup fails after the timer is queued, the shared error
unwind frees struct nullb without draining bw_timer, so the callback can
run on freed owner state.

The buggy scenario involves two paths, with each column showing the order
within that path:

null_add_dev() error unwind:        nullb_bwtimer_fn() callback path:
1. Start bw_timer for a throttled   1. The hrtimer expires after the free.
   device.                          2. nullb_bwtimer_fn() recovers the
2. Hit a later add_disk/device_add     embedded owner.
   failure.                         3. The callback reads nullb->dev and
3. Free struct nullb.                  nullb->q.
4. Release the remaining queue and   4. The stale owner storage is used
   disk resources.                     after free.

Cancel bw_timer in the shared error unwind before put_disk() and the
remaining frees. The normal delete path already uses the same
hrtimer_cancel() drain.

Validation reproduced this kernel report:
BUG: KASAN: slab-use-after-free in nullb_bwtimer_fn+0x13f/0x170 [null_blk]

Call Trace:
<IRQ>
 dump_stack_lvl+0x66/0xa0
 print_report+0xce/0x630
 ? nullb_bwtimer_fn+0x13f/0x170 [null_blk]
 ? srso_alias_return_thunk+0x5/0xfbef5
 ? __virt_addr_valid+0x20d/0x410
 ? nullb_bwtimer_fn+0x13f/0x170 [null_blk]
 kasan_report+0xe0/0x110
 ? nullb_bwtimer_fn+0x13f/0x170 [null_blk]
 ? __pfx_nullb_bwtimer_fn+0x10/0x10 [null_blk]
 nullb_bwtimer_fn+0x13f/0x170 [null_blk]
 __hrtimer_run_queues+0x172/0x810
 hrtimer_interrupt+0x377/0x7f0
 __sysvec_apic_timer_interrupt+0xc3/0x390
 sysvec_apic_timer_interrupt+0x67/0x80
</IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x1a/0x20

Allocated by task 529:
 kasan_save_stack+0x33/0x60
 kasan_save_track+0x14/0x30
 __kasan_kmalloc+0xaa/0xb0
 null_add_dev+0x4f9/0x1d10 [null_blk]
 nullb_device_power_store+0x25f/0x320 [null_blk]
 configfs_write_iter+0x2be/0x4a0
 vfs_write+0x604/0x11f0
 ksys_write+0xf9/0x1d0
 do_syscall_64+0x115/0x6a0
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

Freed by task 529:
 kasan_save_stack+0x33/0x60
 kasan_save_track+0x14/0x30
 kasan_save_free_info+0x3b/0x60
 __kasan_slab_free+0x5f/0x80
 kfree+0x307/0x580
 null_add_dev+0x1272/0x1d10 [null_blk]
 nullb_device_power_store+0x25f/0x320 [null_blk]
 configfs_write_iter+0x2be/0x4a0
 vfs_write+0x604/0x11f0
 ksys_write+0xf9/0x1d0
 do_syscall_64+0x115/0x6a0
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

Fixes: eff2c4f10873 ("nullb: bandwidth control")
Assisted-by: Codex:gpt-5.5
Signed-off-by: Cen Zhang <zzzccc427@gmail.com>
---
 drivers/block/null_blk/main.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c
index f8c0fd57e041..8f1ad76710a0 100644
--- a/drivers/block/null_blk/main.c
+++ b/drivers/block/null_blk/main.c
@@ -2062,6 +2062,8 @@ static int null_add_dev(struct nullb_device *dev)
 out_ida_free:
 	ida_free(&nullb_indexes, nullb->index);
 out_cleanup_disk:
+	if (test_bit(NULLB_DEV_FL_THROTTLED, &dev->flags))
+		hrtimer_cancel(&nullb->bw_timer);
 	put_disk(nullb->disk);
 out_cleanup_zone:
 	null_free_zoned_dev(dev);
-- 
2.43.0


^ permalink raw reply related

* Re: [PATCH 0/8] blk-cgroup: remove queue_lock nesting from blkcg paths
From: yu kuai @ 2026-06-24  6:57 UTC (permalink / raw)
  To: Yu Kuai, nilay, tom.leiming, bvanassche, tj, josef, axboe
  Cc: akpm, chrisl, kasong, shikemeng, nphamcs, bhe, baohua,
	youngjun.park, cgroups, linux-block, linux-kernel, linux-mm,
	yukuai
In-Reply-To: <cover.1780621988.git.yukuai@fygo.io>

Friendly ping ...

This set can still be applied cleanly for block-7.2 branch.

在 2026/6/8 11:42, Yu Kuai 写道:
> From: Yu Kuai <yukuai@fygo.io>
>
> Hi,
>
> This series is the follow-up blk-cgroup locking cleanup on top of the
> earlier blkg-list protection fixes, and prepares blk-cgroup to stop using
> q->queue_lock as the global blkg lifetime/iteration lock.
>
> The current queue_lock based protection is hard to maintain because
> queue_lock is used from hardirq and softirq completion paths, while some
> blkcg cgroup file paths also need to iterate blkgs, print policy data, or
> create blkgs from RCU-protected contexts.  This series first tightens the
> blkcg-side lifetime rules:
>
> - blkcg_print_stat() iterates blkgs under blkcg->lock with IRQs disabled.
> - policy data freeing is delayed past an RCU grace period.
> - blkcg_print_blkgs(), blkg lookup/create, bio association, page-IO
>    association, blkg destruction, and BFQ initialization stop nesting
>    queue_lock under RCU or blkcg->lock.
>
> Using blkcg->lock and RCU for blkcg-owned lists/data keeps the lock order
> local to blk-cgroup and avoids extending queue_lock into cgroup file
> iteration paths.  It also makes the subsequent conversion to q->blkcg_mutex
> possible without carrying forward queue_lock's interrupt-context
> constraints.
>
> Yu Kuai (8):
>    blk-cgroup: protect iterating blkgs with blkcg->lock in
>      blkcg_print_stat()
>    blk-cgroup: delay freeing policy data after rcu grace period
>    blk-cgroup: don't nest queue_lock under rcu in blkcg_print_blkgs()
>    blk-cgroup: don't nest queue_lock under rcu in blkg_lookup_create()
>    blk-cgroup: don't nest queue_lock under rcu in bio_associate_blkg()
>    blk-cgroup: don't nest queue_lock under blkcg->lock in
>      blkcg_destroy_blkgs()
>    mm/page_io: don't nest queue_lock under rcu in
>      bio_associate_blkg_from_page()
>    block, bfq: don't grab queue_lock to initialize bfq
>
>   block/bfq-cgroup.c        |  17 ++++-
>   block/bfq-iosched.c       |   5 --
>   block/blk-cgroup-rwstat.c |  15 ++--
>   block/blk-cgroup.c        | 151 ++++++++++++++++++++++----------------
>   block/blk-cgroup.h        |   8 +-
>   block/blk-iocost.c        |  22 ++++--
>   block/blk-iolatency.c     |  10 ++-
>   block/blk-throttle.c      |  13 +++-
>   mm/page_io.c              |   7 +-
>   9 files changed, 158 insertions(+), 90 deletions(-)
>
>
> base-commit: b23df513de562739af61fa61ba80ef5e8059a636

-- 
Thanks,
Kuai

^ permalink raw reply

* Re: [PATCH 1/2] md/linear: add fault-tolerant mode for unraid-like setups
From: yu kuai @ 2026-06-24  6:55 UTC (permalink / raw)
  To: Yu Kuai, Tejun Heo, Josef Bacik, Jens Axboe
  Cc: Zheng Qixing, Christoph Hellwig, Tang Yizhou, Nilay Shroff,
	Ming Lei, cgroups, linux-block, linux-kernel, yukuai
In-Reply-To: <20260624064625.1743650-1-yukuai@kernel.org>

Hi,

Please ignore this patch, this patch is supposed only used downstream.
Ai somehow generate the cmd to send it together with the patchset:

blk-cgroup: fix blkg list and policy data races

Same for the other ext4 patch.

Sorry for the noise. :(

在 2026/6/24 14:46, Yu Kuai 写道:
> From: Yu Kuai<yukuai@fnnas.com>
>
> Add a module parameter 'fault_tolerant' that changes how md-linear
> handles disk failures. When enabled:
>
> - Disk failures are isolated instead of failing the entire array
> - I/O to failed disks returns -EIO while healthy disks continue
> - The array remains operational with reduced capacity
> - Failed disk count is tracked and shown in /proc/mdstat
>
> This enables unraid-like functionality where individual disk failures
> don't bring down the entire array, allowing continued access to data
> on healthy disks.
>
> The fault_tolerant parameter can be set at module load time or
> dynamically via /sys/module/md_linear/parameters/fault_tolerant.
>
> Signed-off-by: Yu Kuai<yukuai@fnnas.com>
> ---
>   drivers/md/md-linear.c | 63 ++++++++++++++++++++++++++++++++++++------
>   1 file changed, 55 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/md/md-linear.c b/drivers/md/md-linear.c

-- 
Thanks,
Kuai

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox