On Fri, 08 Aug 2025 09:32:50 -0600, Caleb Sander Mateos wrote: > ublk_ch_uring_cmd_local() is a thin wrapper around __ublk_ch_uring_cmd() > that copies the ublksrv_io_cmd from user-mapped memory to the stack > using READ_ONCE(). This ublksrv_io_cmd is passed by pointer to > __ublk_ch_uring_cmd() and __ublk_ch_uring_cmd() is a large function > unlikely to be inlined, so __ublk_ch_uring_cmd() will have to load the > ublksrv_io_cmd fields back from the stack. Inline __ublk_ch_uring_cmd() > into ublk_ch_uring_cmd_local() and load the ublksrv_io_cmd fields into > local variables with READ_ONCE(). This allows the compiler to delay > loading the fields until they are needed and choose whether to store > them in registers or on the stack. > > [...] Applied, thanks! [1/1] ublk: inline __ublk_ch_uring_cmd() commit: 225dc96f35afce6ffe3d798ffc0064445847a63b Best regards, -- Jens Axboe