On Wed, Jun 5, 2024 at 7:52 PM Shinichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> wrote: > > On Jun 04, 2024 / 21:05, Yi Zhang wrote: > > null-blk currently power/submit_queues operations which will lead kernel > > null-ptr-dereference[1], add one regression test for it and the fix has > > been merged to v6.10-rc1 by [2]. > > [1] > > https://lore.kernel.org/linux-block/CAHj4cs9LgsHLnjg8z06LQ3Pr5cax-+Ps+xT7AP7TPnEjStuwZA@xxxxxxxxxxxxxx/ > > https://lore.kernel.org/linux-block/20240523153934.1937851-1-yukuai1@xxxxxxxxxxxxxxx/ > > [2] > > commit a2db328b0839 ("null_blk: fix null-ptr-dereference while configuring 'power' and 'submit_queues'") > > Thank you Yi. I ran the test case and it looks working good. It passes with > the kernel v6.10-rc2. It causes the hang with the kernel v6.9. To not confuse > blktests users with the hang, I will wait for the commit a2db328b0839 to land on > the stable kernels before I apply this patch. > > One more thing I noticed is that your current patch requires loadable null_blk. > To allow it run with built-in null_blk, I would like to suggest additional > change below on top of your patch. It, > > - calls _have_null_blk instead of _have_module null_blk, > - checks submit_queues parameter with _have_null_blk_feature instead of > _have_module_param, > - does not call _init_null_blk, and > - uses nullb1 instead for nullb0. > > Please let me know your thought about these changes. If you are ok with them, I > can fold them in the commit. Sure, I'm OK with the change, thanks. :) > > diff --git a/tests/block/038 b/tests/block/038 > index fe3c7cd..56272be 100755 > --- a/tests/block/038 > +++ b/tests/block/038 > @@ -12,9 +12,10 @@ DESCRIPTION="Test null-blk concurrent power/submit_queues operations" > QUICK=1 > > requires() { > - _have_module null_blk > - _have_module_param null_blk nr_devices > - _have_module_param null_blk submit_queues > + _have_null_blk > + if ! _have_null_blk_feature submit_queues; then > + SKIP_REASONS+=("null_blk does not support submit_queues") > + fi > } > > null_blk_power_loop() { > @@ -36,23 +37,15 @@ null_blk_submit_queues_loop() { > test() { > echo "Running ${TEST_NAME}" > > - local nullb_params=( > - nr_devices=0 > - ) > - if ! _init_null_blk "${nullb_params[@]}"; then > - echo "Loading null_blk failed" > - return 1 > - fi > - > - if ! _configure_null_blk nullb0; then > - echo "Configuring null_blk nullb0 failed" > + if ! _configure_null_blk nullb1; then > + echo "Configuring null_blk nullb1 failed" > return 1 > fi > > # fire off two null-blk power/submit_queues concurrently and wait > # for them to complete... > - null_blk_power_loop nullb0 & > - null_blk_submit_queues_loop nullb0 & > + null_blk_power_loop nullb1 & > + null_blk_submit_queues_loop nullb1 & > wait > > _exit_null_blk > -- Best Regards, Yi Zhang