From patchwork Sat Mar 28 18:22:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 11463723 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EADC91667 for ; Sat, 28 Mar 2020 18:23:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D426E20717 for ; Sat, 28 Mar 2020 18:23:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725807AbgC1SXB (ORCPT ); Sat, 28 Mar 2020 14:23:01 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:37031 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726497AbgC1SXB (ORCPT ); Sat, 28 Mar 2020 14:23:01 -0400 Received: by mail-pg1-f193.google.com with SMTP id a32so6398279pga.4 for ; Sat, 28 Mar 2020 11:22:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KDjQeevQOInHdNkxmzxDHiEtpmAei2DG8ChF+Sw5kqI=; b=LbyFSbXj2WOWem8mI7+ndA3nWlKsGkKOKQ13lWXpaFWsgly6IJsRfcS3X5xszwaOPc Qm36vXCC5aibKwH98P/LXtE0MGG+QNIuOcupRTXqB1wgLe+giyomR3c+pXFuViKtd1Zf IM04UM9ZnxUpnkKOSq7TJkgLtqm6xuRD6GXCNYlOeeWd+EXIqEVEOWL4WFndh+irfdqU 5OS6UjEQ3OcxcSmGLQI0eAZxaS1aM182TNkACHUGW7BapWcNtG/LEjp/CSrCCei7gkZN TNvzzv7Q17F5pFGK6WOjnQjpYnV7SzNa5KFixAlEpnilj112763EOvUPy634ER3srXJP E+tQ== X-Gm-Message-State: ANhLgQ2LrMeujvyHvh6pXFyoER1bgrlbiz7iGAduFcuHzTEM2kkQmb7X jY5SEZSj0g3LxWAlfEjrwoM= X-Google-Smtp-Source: ADFU+vsPorw4Oxlni7LYED9b/pcEujCKD55brsvX+0nBj+CkdI1QV7+WOs3XHD4+YPIawF/dgqlazg== X-Received: by 2002:a63:d943:: with SMTP id e3mr5191620pgj.434.1585419778245; Sat, 28 Mar 2020 11:22:58 -0700 (PDT) Received: from asus.hsd1.ca.comcast.net ([2601:647:4000:d7:597d:a863:13de:4665]) by smtp.gmail.com with ESMTPSA id e126sm6659179pfa.122.2020.03.28.11.22.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Mar 2020 11:22:57 -0700 (PDT) From: Bart Van Assche To: Omar Sandoval Cc: linux-block@vger.kernel.org, Chaitanya Kulkarni , Daniel Wagner , Bart Van Assche Subject: [PATCH blktests v4 1/4] Make _exit_null_blk remove all null_blk device instances Date: Sat, 28 Mar 2020 11:22:48 -0700 Message-Id: <20200328182251.19945-2-bvanassche@acm.org> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200328182251.19945-1-bvanassche@acm.org> References: <20200328182251.19945-1-bvanassche@acm.org> MIME-Version: 1.0 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org Instead of making every test remove null_blk device instances before calling _exit_null_blk(), move the null_blk device instance removal code into _exit_null_blk(). Reviewed-by: Chaitanya Kulkarni Reviewed-by: Daniel Wagner Signed-off-by: Bart Van Assche --- common/null_blk | 7 ++++++- tests/block/022 | 3 --- tests/block/029 | 1 - 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/common/null_blk b/common/null_blk index 2e300c20bbc7..a4140e365955 100644 --- a/common/null_blk +++ b/common/null_blk @@ -8,11 +8,15 @@ _have_null_blk() { _have_modules null_blk } -_init_null_blk() { +_remove_null_blk_devices() { if [[ -d /sys/kernel/config/nullb ]]; then find /sys/kernel/config/nullb -mindepth 1 -maxdepth 1 \ -type d -delete fi +} + +_init_null_blk() { + _remove_null_blk_devices local zoned="" if (( RUN_FOR_ZONED )); then zoned="zoned=1"; fi @@ -26,6 +30,7 @@ _init_null_blk() { } _exit_null_blk() { + _remove_null_blk_devices udevadm settle modprobe -r null_blk } diff --git a/tests/block/022 b/tests/block/022 index 1404aacef295..b2c53e266d81 100755 --- a/tests/block/022 +++ b/tests/block/022 @@ -50,9 +50,6 @@ test() { wait $pid1 } 2>/dev/null - rmdir /sys/kernel/config/nullb/1 - rmdir /sys/kernel/config/nullb/0 - _exit_null_blk echo "Test complete" } diff --git a/tests/block/029 b/tests/block/029 index d298bac8db5c..0d521edb0cf6 100755 --- a/tests/block/029 +++ b/tests/block/029 @@ -58,7 +58,6 @@ test() { else echo "Skipping test because $sq cannot be modified" >>"$FULL" fi - rmdir /sys/kernel/config/nullb/nullb0 _exit_null_blk echo Passed } From patchwork Sat Mar 28 18:22:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 11463721 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8905792C for ; Sat, 28 Mar 2020 18:23:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7161820714 for ; Sat, 28 Mar 2020 18:23:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726518AbgC1SXA (ORCPT ); Sat, 28 Mar 2020 14:23:00 -0400 Received: from mail-pg1-f194.google.com ([209.85.215.194]:46973 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725807AbgC1SXA (ORCPT ); Sat, 28 Mar 2020 14:23:00 -0400 Received: by mail-pg1-f194.google.com with SMTP id k191so6379790pgc.13 for ; Sat, 28 Mar 2020 11:23:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rxQwUex0J61YPXEhUY1i6yWSOf6pgDXtAcBgQ+1Rgh4=; b=d1YyOsgJmqRadx7aPHQPekCNdw9BvOjix3NwFXxLmTEogL4Jeunot5WNFdK1Ino7cR ueEBQZMjBLIO77PV0/UTf4PHZt6itPrfjdG7gkTIkZd3pOowwXuzsDtb6DKg/9XWmAKD 9DfbG8uTeFF/FVoaNZ2afaYoG+uNOjm80TxfJcNkgDbjt12+TSx8yXUMPoEmaor8t8vg Om7L6D48NTtAmuHAi5rMzCcIuvPhbtObgSU2H8R07ic5IJ8RMam8net/4zsf9wv9FvfR iT40/jB+kGkE+3z56nN4ZnFQI5KdhXUj5cFAsgAuN4q12I9o2SrqF6pDq2CZo5Wn9DXl pL6g== X-Gm-Message-State: ANhLgQ1957hArutoohPgxW1qKr4J2NjuiodH4/gow4gywwXainLTR1Jb 9gJPI+IVrtviniKVFgD461s= X-Google-Smtp-Source: ADFU+vsGyEH+rMrST1Q/W7tQnpRvfXwXZsYqgbULYQCVhZj0141k6Nq+4S74tYeDwkO8/UtLwnIb+Q== X-Received: by 2002:aa7:947c:: with SMTP id t28mr4890632pfq.239.1585419779543; Sat, 28 Mar 2020 11:22:59 -0700 (PDT) Received: from asus.hsd1.ca.comcast.net ([2601:647:4000:d7:597d:a863:13de:4665]) by smtp.gmail.com with ESMTPSA id e126sm6659179pfa.122.2020.03.28.11.22.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Mar 2020 11:22:58 -0700 (PDT) From: Bart Van Assche To: Omar Sandoval Cc: linux-block@vger.kernel.org, Chaitanya Kulkarni , Daniel Wagner , Bart Van Assche Subject: [PATCH blktests v4 2/4] Use _{init,exit}_null_blk instead of open-coding these functions Date: Sat, 28 Mar 2020 11:22:49 -0700 Message-Id: <20200328182251.19945-3-bvanassche@acm.org> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200328182251.19945-1-bvanassche@acm.org> References: <20200328182251.19945-1-bvanassche@acm.org> MIME-Version: 1.0 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org This patch reduces code duplication. Reviewed-by: Chaitanya Kulkarni Reviewed-by: Daniel Wagner Signed-off-by: Bart Van Assche --- common/multipath-over-rdma | 12 +++--------- tests/nvmeof-mp/rc | 2 +- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/common/multipath-over-rdma b/common/multipath-over-rdma index 40efc4b3aa2e..a56e7a8269db 100644 --- a/common/multipath-over-rdma +++ b/common/multipath-over-rdma @@ -5,6 +5,7 @@ # Functions and global variables used by both the srp and nvmeof-mp tests. . common/shellcheck +. common/null_blk debug= filesystem_type=ext4 @@ -634,13 +635,6 @@ configure_null_blk() { ls -l /dev/nullb* &>>"$FULL" } -unload_null_blk() { - local d - - for d in /sys/kernel/config/nullb/*; do [ -d "$d" ] && rmdir "$d"; done - unload_module null_blk -} - setup_rdma() { start_soft_rdma ( @@ -662,7 +656,7 @@ teardown_uncond() { rm -f /etc/multipath.conf stop_target stop_soft_rdma - unload_null_blk + _exit_null_blk } teardown() { @@ -698,7 +692,7 @@ setup_test() { [ -e "/sys/module/$m" ] || modprobe "$m" || return $? done - modprobe null_blk nr_devices=0 || return $? + _init_null_blk nr_devices=0 || return $? configure_null_blk || return $? diff --git a/tests/nvmeof-mp/rc b/tests/nvmeof-mp/rc index 1fd631445921..136163bc73ad 100755 --- a/tests/nvmeof-mp/rc +++ b/tests/nvmeof-mp/rc @@ -278,7 +278,7 @@ stop_nvme_target() { ) unload_module nvmet_rdma && unload_module nvmet && - unload_null_blk + _exit_null_blk } start_target() { From patchwork Sat Mar 28 18:22:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 11463725 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 76A6892C for ; Sat, 28 Mar 2020 18:23:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 600CF2071B for ; Sat, 28 Mar 2020 18:23:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726981AbgC1SXE (ORCPT ); Sat, 28 Mar 2020 14:23:04 -0400 Received: from mail-pl1-f193.google.com ([209.85.214.193]:35686 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726977AbgC1SXD (ORCPT ); Sat, 28 Mar 2020 14:23:03 -0400 Received: by mail-pl1-f193.google.com with SMTP id c12so2013301plz.2 for ; Sat, 28 Mar 2020 11:23:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=uB5N1k04tBIlN5tMFckVBv+F0f8wm42FV5OnAp7qRiE=; b=JN0y9fI6iJG0RdJfJJIhpsxkz5ZOY9RmPlee49H0e2EvdhrYlqqiltDvuGW18fDLfM fjualDOwSwyWW1nreX9zfIyrddfIDFXoyMfxhCXxZeNO3NHiLx24YUSnjVx6efeQt0xo tNSKYmAz4bN6ffDksASybC3EN3LSWAkIYu0fK7GKn2EI1rKJke337y4GlRbVo1d3bNHE UQginMA2CZIB9kVZATOPxiX7i0jBX0iHPqbCyZ+ZQClE7dha0Ca39Y73XDUF/LntQ+3Z oG6uaJZQwQikaJTOSxFlt72TwRHWJ6ilhTMGGUX5GIQx9A5l47CEpmAAJPVXByvazpRH q3RA== X-Gm-Message-State: ANhLgQ3c9tebSXx+kzAahX/lS27cFFhJ7Y3jWxR0IlCnQtrfTd5dorMq HaITYlbviLa886nnhhjv0sA= X-Google-Smtp-Source: ADFU+vv0nfXfuEZ+ax1XvElOfvMWQnw9oj6oc5RdCQmBP07vwTvYMPqT4dsa1yeMtYtuhn2IzkjAzA== X-Received: by 2002:a17:902:b28c:: with SMTP id u12mr3976471plr.262.1585419781045; Sat, 28 Mar 2020 11:23:01 -0700 (PDT) Received: from asus.hsd1.ca.comcast.net ([2601:647:4000:d7:597d:a863:13de:4665]) by smtp.gmail.com with ESMTPSA id e126sm6659179pfa.122.2020.03.28.11.22.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Mar 2020 11:23:00 -0700 (PDT) From: Bart Van Assche To: Omar Sandoval Cc: linux-block@vger.kernel.org, Chaitanya Kulkarni , Daniel Wagner , Bart Van Assche , Chaitanya Kulkarni Subject: [PATCH blktests v4 3/4] Introduce the function _configure_null_blk() Date: Sat, 28 Mar 2020 11:22:50 -0700 Message-Id: <20200328182251.19945-4-bvanassche@acm.org> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200328182251.19945-1-bvanassche@acm.org> References: <20200328182251.19945-1-bvanassche@acm.org> MIME-Version: 1.0 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org Introduce a function for creating a null_blk device instance through configfs. Suggested-by: Chaitanya Kulkarni Reviewed-by: Chaitanya Kulkarni Reviewed-by: Daniel Wagner Signed-off-by: Bart Van Assche --- common/multipath-over-rdma | 17 +++++------------ common/null_blk | 14 ++++++++++++++ tests/block/029 | 16 ++-------------- 3 files changed, 21 insertions(+), 26 deletions(-) diff --git a/common/multipath-over-rdma b/common/multipath-over-rdma index a56e7a8269db..e689a9633d13 100644 --- a/common/multipath-over-rdma +++ b/common/multipath-over-rdma @@ -620,18 +620,11 @@ run_fio() { configure_null_blk() { local i - ( - cd /sys/kernel/config/nullb || return $? - for i in nullb0 nullb1; do ( - { mkdir -p $i && - cd $i && - echo 0 > completion_nsec && - echo 512 > blocksize && - echo $((ramdisk_size>>20)) > size && - echo 1 > memory_backed && - echo 1 > power; } || exit $? - ) done - ) + for i in nullb0 nullb1; do + _configure_null_blk $i completion_nsec=0 blocksize=512 \ + size=$((ramdisk_size>>20)) memory_backed=1 \ + power=1 || return $? + done ls -l /dev/nullb* &>>"$FULL" } diff --git a/common/null_blk b/common/null_blk index a4140e365955..6611db03a00e 100644 --- a/common/null_blk +++ b/common/null_blk @@ -29,6 +29,20 @@ _init_null_blk() { return 0 } +# Configure one null_blk instance with name $1 and parameters $2..${$#}. +_configure_null_blk() { + local nullb=/sys/kernel/config/nullb/$1 param val + + shift + mkdir "$nullb" || return $? + while [[ $# -gt 0 ]]; do + param="${1%%=*}" + val="${1#*=}" + shift + echo "$val" > "$nullb/$param" || return $? + done +} + _exit_null_blk() { _remove_null_blk_devices udevadm settle diff --git a/tests/block/029 b/tests/block/029 index 0d521edb0cf6..dbb582eab473 100755 --- a/tests/block/029 +++ b/tests/block/029 @@ -14,19 +14,6 @@ requires() { _have_null_blk } -# Configure one null_blk instance. -configure_null_blk() { - local nullb0="/sys/kernel/config/nullb/nullb0" - - mkdir "$nullb0" && - echo 0 > "$nullb0/completion_nsec" && - echo 512 > "$nullb0/blocksize" && - echo 16 > "$nullb0/size" && - echo 1 > "$nullb0/memory_backed" && - echo 1 > "$nullb0/power" && - ls -l /dev/nullb* &>>"$FULL" -} - modify_nr_hw_queues() { local deadline num_cpus @@ -45,7 +32,8 @@ test() { : "${TIMEOUT:=30}" _init_null_blk nr_devices=0 queue_mode=2 && - configure_null_blk + _configure_null_blk nullb0 completion_nsec=0 blocksize=512 \ + size=16 memory_backed=1 power=1 && if { echo 1 >$sq; } 2>/dev/null; then modify_nr_hw_queues & fio --rw=randwrite --bs=4K --loops=$((10**6)) \ From patchwork Sat Mar 28 18:22:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 11463727 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 97B861667 for ; Sat, 28 Mar 2020 18:23:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8112B2071B for ; Sat, 28 Mar 2020 18:23:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726977AbgC1SXE (ORCPT ); Sat, 28 Mar 2020 14:23:04 -0400 Received: from mail-pl1-f193.google.com ([209.85.214.193]:42470 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726497AbgC1SXD (ORCPT ); Sat, 28 Mar 2020 14:23:03 -0400 Received: by mail-pl1-f193.google.com with SMTP id e1so4839125plt.9 for ; Sat, 28 Mar 2020 11:23:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tyLVb9Ja6jhwBLlCwiXZKXwAYbh2y4g1wSwx4K9Pt5o=; b=KMTdO9XeZEd3ACKWZ3ylQm+/zOtdaxcqLwh5u80VQ4aNnhWOFYxn962z0og/W9oU/E jb1lpgEDHjY/4DLXjpvdOvZJB3T5SmFzNKjSCBpM2lxIGHvcbcfNDKJrvw89oVCWnCAq aYSUmdNrjvIt5mXypvsBY72Kz4RYDDpieMp/X8XQySkxEUsfGRajp8Gq3OtV0YshSctm SLYIYHm4GRB5sg6OwgXJH7MPAH6JQsZtRjSdJLdGDo+3CwfU5hTzRaXKxXxy8FSrQC/1 tdIyUiRRuG7IEoXH/gch9IsI3ReWT3cRtPCDzlhnKQrobUGd8R2acEEQY68KCaOrYTRp umdA== X-Gm-Message-State: ANhLgQ09lH1fRH5DQEdOUXPGF46mL6+erX8rm6rg+S8qb7fSRBJWgAW9 RHo40wrzxeKOeWSWaiPvcpV26LPkOtk= X-Google-Smtp-Source: ADFU+vvQeqRtmK2ANkFeuOq0PJeDQttEwY8/EOXprfeC3YJfMji7qMRm60jtwRw6/CaAqT+8hcPMGg== X-Received: by 2002:a17:902:ba08:: with SMTP id j8mr5005100pls.70.1585419782745; Sat, 28 Mar 2020 11:23:02 -0700 (PDT) Received: from asus.hsd1.ca.comcast.net ([2601:647:4000:d7:597d:a863:13de:4665]) by smtp.gmail.com with ESMTPSA id e126sm6659179pfa.122.2020.03.28.11.23.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Mar 2020 11:23:02 -0700 (PDT) From: Bart Van Assche To: Omar Sandoval Cc: linux-block@vger.kernel.org, Chaitanya Kulkarni , Daniel Wagner , Bart Van Assche , Ming Lei Subject: [PATCH blktests v4 4/4] Add a test that triggers the blk_mq_realloc_hw_ctxs() error path Date: Sat, 28 Mar 2020 11:22:51 -0700 Message-Id: <20200328182251.19945-5-bvanassche@acm.org> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200328182251.19945-1-bvanassche@acm.org> References: <20200328182251.19945-1-bvanassche@acm.org> MIME-Version: 1.0 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org Add a test that triggers the code touched by commit d0930bb8f46b ("blk-mq: Fix a recently introduced regression in blk_mq_realloc_hw_ctxs()"). This test only runs if a recently added fault injection feature is available, namely commit 596444e75705 ("null_blk: Add support for init_hctx() fault injection"). Cc: Ming Lei Reviewed-by: Chaitanya Kulkarni Signed-off-by: Bart Van Assche Reviewed-by: Daniel Wagner --- tests/block/030 | 52 +++++++++++++++++++++++++++++++++++++++++++++ tests/block/030.out | 1 + 2 files changed, 53 insertions(+) create mode 100755 tests/block/030 create mode 100644 tests/block/030.out diff --git a/tests/block/030 b/tests/block/030 new file mode 100755 index 000000000000..2b159510e586 --- /dev/null +++ b/tests/block/030 @@ -0,0 +1,52 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright 2020 Google LLC +# +# Trigger the blk_mq_realloc_hw_ctxs() error path. + +. tests/block/rc +. common/null_blk + +DESCRIPTION="trigger the blk_mq_realloc_hw_ctxs() error path" +QUICK=1 + +requires() { + _have_null_blk || return $? + _have_module_param null_blk init_hctx || return $? +} + +test() { + local i sq=/sys/kernel/config/nullb/nullb0/submit_queues + + : "${TIMEOUT:=30}" + # Legend: init_hctx=,,, + # Set to $(nproc) + 1 to make loading of null_blk succeed. + if ! _init_null_blk nr_devices=0 queue_mode=2 \ + "init_hctx=$(nproc),100,$(($(nproc)+1)),-1"; then + echo "Loading null_blk failed" + return 1 + fi + if ! _configure_null_blk nullb0 completion_nsec=0 blocksize=512 size=16\ + submit_queues="$(nproc)" memory_backed=1 power=1; then + echo "Configuring null_blk failed" + return 1 + fi + # Since older null_blk versions do not allow "submit_queues" to be + # modified, check first whether that configs attribute is writeable. + # Each iteration of the loop below triggers $(nproc) + 1 + # null_init_hctx() calls. Since =$(nproc), all possible + # blk_mq_realloc_hw_ctxs() error paths will be triggered. Whether or + # not this test succeeds depends on whether or not _check_dmesg() + # detects a kernel warning. + if { echo "$(<"$sq")" >$sq; } 2>/dev/null; then + for ((i=0;i<100;i++)); do + echo 1 >$sq + nproc >$sq + done + else + SKIP_REASON="Skipping test because $sq cannot be modified" + fi + rmdir /sys/kernel/config/nullb/nullb0 + _exit_null_blk + echo Passed +} diff --git a/tests/block/030.out b/tests/block/030.out new file mode 100644 index 000000000000..863339fb8ced --- /dev/null +++ b/tests/block/030.out @@ -0,0 +1 @@ +Passed