From patchwork Tue Mar 25 22:19:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uday Shankar X-Patchwork-Id: 14029582 Received: from mail-qv1-f100.google.com (mail-qv1-f100.google.com [209.85.219.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A21A226A097 for ; Tue, 25 Mar 2025 22:20:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.100 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742941212; cv=none; b=PyLsTWC0DR8s+UocM1K1aZydWzOaLacdwDdXrqfd7agK8lHntby4yTcYcyfuAxz7p1d1b2iUG7mFA9LZmqRidFL/ckWwF0ypAWg+PeUSGGhxZSvDRivNIabneoVDn2TSBSYxpnoXTzuzO5lEKQEzOmc86ExkFQWd6ne4ZTC5LL4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742941212; c=relaxed/simple; bh=iUUuXJBiCpZ2KY7Vcl/FqmY4eqvXt95bbU3djV7Lkxw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RKYO3CNjLeT2mrl8Mjztt1Wd7ZDX2pEfruAwegPPc9ZLaeYIaiaEjnm4cpxU7hXCQFAYkp/asDwnttEPss2mZKcNis9mlbHpZeN5Y2duVDMqQQhPG+ikqojWWKJYG3ojpPgfIKWaxeGCE1WbTXkOSc3yerOQJSF0q0wZg9mrQjk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=purestorage.com; spf=fail smtp.mailfrom=purestorage.com; dkim=pass (2048-bit key) header.d=purestorage.com header.i=@purestorage.com header.b=fJDYVBx/; arc=none smtp.client-ip=209.85.219.100 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=purestorage.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=purestorage.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=purestorage.com header.i=@purestorage.com header.b="fJDYVBx/" Received: by mail-qv1-f100.google.com with SMTP id 6a1803df08f44-6e904f53151so53525826d6.3 for ; Tue, 25 Mar 2025 15:20:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1742941209; x=1743546009; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=HPFNc5Esbl1AnvK1mUxwxpu3e5PtuYoRUmJc1JKQ2Hg=; b=fJDYVBx/mrlK2PuUCUMmRBfN41b6b+r+EJNqKI2yLLMM4kcsW/44O4lBN8UMuF8q9i 66boKvu/zsn1raXFLh2SaZ4bd3ulNGL9Xq6Qo3dtPLPKp8ci9TS2PmvANGqH5NX0Fhxw RM48bmygCfGfY50BWezm0LewX3gTqWyweLBR5JJFzZAYL9D/p3dROUToXDcyIfZED4t4 MoOEOvEbv+EucOC+8EOLSeqrqcP4n7tV79cvsBcuJw+HZ+E07d5lEUsafoIhuYf5G4Hv Yu+x3t2YXj3qAZrD+8TYGm+2Gcabp7pyE6HdleAW9E3pkrfQWfOlG8M44xgVSokGBlKs xeHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742941209; x=1743546009; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HPFNc5Esbl1AnvK1mUxwxpu3e5PtuYoRUmJc1JKQ2Hg=; b=ui5qn81OJGHEmG2OMOs24/c5MNfNYVFCp8TAdKSznSz8l3HG3aLmvLpyZ2x+vYsj91 yt9f+2TWTbTFe4mmIXlLpLyn38QQkV2A8aYJO+UPMtuUqyvLTMOzUPuix31QO/5h/mDh +D8dUhr7kusdO8p95Cqw//+R1qI9tca9i7DtD55VcO/lokTsxft7xxO0a1P/98ltz/fm VRTuS47v+gG/HUGMucGMwxhAeaGOLi/ODPTzfb0P8wUszWCW6/HKl2yEfIVcsbzE2eyx hqW3x8WL2MtT6c+nq3j4pQLsB9YLe7RxSisYjf7yNEoqGN/kQHh+J/yC+6jZTtgL97MY yPPQ== X-Gm-Message-State: AOJu0Ywu6r/GFlHhHrCMPGG+zGqgYgcxpXyBVTLUONvHrEyxM5Pa+C93 Ry4xV4KZm/yQLOazpSJR+cyF1sKY0AwQ2oLbhEjv3N3ILM6ZGP+KQqdxZhuBNZgvuynKVRaS3Nf TPHXZvc+C7hp6Ha43/LNnRqRE+oIuZzwJ X-Gm-Gg: ASbGncsblElS/yAothurRGssw/9STULmzX1T6FDpiFe25HwFGyWZKN5PX0AMb+g4Wqq Xr/CpmKGec+DYJH4/i4xtxKiad3gWYUbPDsV7S7D4wLR5wlFeROiyeKeXC4563cggiZu2OarvDL tn8pkReBQ+JVeZo75KHMhfbj8nlsEHVUqouPnvRIT0k8Y9a5EgKojwVeWCO6FjaFJNmjnTejAzS yaa+3zzIclFovSj/nSlNHGmBZzpPz/HTU+h/mxEW2kYQ+VCFH2xzUqKeg+wiwRRoa4/yzy+fnHX Dnplmeg+ZM3Rl1PmrHv7ND7zbEcWZbR8CjcNZ54sYHCXI215NA== X-Google-Smtp-Source: AGHT+IHb+86ayT2ygvfsudkk78BISqn0oik+3h9hOJYmO2qtUwGHON9JVTSnF7D/muprKkeWETyBc8or7kNj X-Received: by 2002:a05:6214:124a:b0:6ea:d604:9e5b with SMTP id 6a1803df08f44-6eb3f27dbd6mr233467416d6.2.1742941209071; Tue, 25 Mar 2025 15:20:09 -0700 (PDT) Received: from c7-smtp-2023.dev.purestorage.com ([208.88.159.128]) by smtp-relay.gmail.com with ESMTPS id 6a1803df08f44-6ecf0aa8733sm3629376d6.8.2025.03.25.15.20.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 15:20:09 -0700 (PDT) X-Relaying-Domain: purestorage.com Received: from dev-ushankar.dev.purestorage.com (dev-ushankar.dev.purestorage.com [10.7.70.36]) by c7-smtp-2023.dev.purestorage.com (Postfix) with ESMTP id 5940B3404B9; Tue, 25 Mar 2025 16:20:07 -0600 (MDT) Received: by dev-ushankar.dev.purestorage.com (Postfix, from userid 1557716368) id 417E0E40158; Tue, 25 Mar 2025 16:20:06 -0600 (MDT) From: Uday Shankar Date: Tue, 25 Mar 2025 16:19:31 -0600 Subject: [PATCH 1/4] selftests: ublk: kublk: use ioctl-encoded opcodes Precedence: bulk X-Mailing-List: linux-block@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250325-ublk_timeout-v1-1-262f0121a7bd@purestorage.com> References: <20250325-ublk_timeout-v1-0-262f0121a7bd@purestorage.com> In-Reply-To: <20250325-ublk_timeout-v1-0-262f0121a7bd@purestorage.com> To: Ming Lei , Shuah Khan , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Uday Shankar X-Mailer: b4 0.14.2 There are a couple of places in the kublk selftests ublk server which use the legacy ublk opcodes. These operations fail (with -EOPNOTSUPP) on a kernel compiled without CONFIG_BLKDEV_UBLK_LEGACY_OPCODES set. We could easily require it to be set as a prerequisite for these selftests, but since new applications should not be using the legacy opcodes, use the ioctl-encoded opcodes everywhere in kublk. Signed-off-by: Uday Shankar Reviewed-by: Ming Lei --- tools/testing/selftests/ublk/kublk.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/ublk/kublk.c b/tools/testing/selftests/ublk/kublk.c index 05147b53c3613a436e3a13848e146e0c66ca2525..b17eee643b2dbfd59903b61718afcbc21da91d97 100644 --- a/tools/testing/selftests/ublk/kublk.c +++ b/tools/testing/selftests/ublk/kublk.c @@ -99,7 +99,7 @@ static int __ublk_ctrl_cmd(struct ublk_dev *dev, static int ublk_ctrl_stop_dev(struct ublk_dev *dev) { struct ublk_ctrl_cmd_data data = { - .cmd_op = UBLK_CMD_STOP_DEV, + .cmd_op = UBLK_U_CMD_STOP_DEV, }; return __ublk_ctrl_cmd(dev, &data); @@ -169,7 +169,7 @@ static int ublk_ctrl_get_params(struct ublk_dev *dev, struct ublk_params *params) { struct ublk_ctrl_cmd_data data = { - .cmd_op = UBLK_CMD_GET_PARAMS, + .cmd_op = UBLK_U_CMD_GET_PARAMS, .flags = CTRL_CMD_HAS_BUF, .addr = (__u64)params, .len = sizeof(*params), From patchwork Tue Mar 25 22:19:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uday Shankar X-Patchwork-Id: 14029579 Received: from mail-pj1-f99.google.com (mail-pj1-f99.google.com [209.85.216.99]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C3440269B1B for ; Tue, 25 Mar 2025 22:20:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.99 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742941209; cv=none; b=KSrvkURYP8s4/xunhXwbtFR3GYj2SSoE+oEXkKyZEKHlNE0H0C2OrH3lMZDsDw856wNsrrQ3tppM2lQ2lGjl5s3HXvwuM5y5+galz9d4LnljOQdTB7xeWEFPcAufiUYsKzbdcdK8i4Mmg8GYVCxzBnJ2RVqxD3MuN7WvAmeXVv4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742941209; c=relaxed/simple; bh=IukoZe1GMKFKCT6AG9qWXRdmFYXwpjtymU1Xp2ZmbHo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=N9DNK+HskY0RoRSjAB1W5qoaUoKrg1GIqOH7obzQXqDyzgpuWXXBvhS4wCZ46qRjX9+wBKQMSCGJUbiG+xCK0N2THxoe3aAOR9MQzjhr4IyEwY0uCfUH98c0JY2s85gV/Z9y1tt2RiRgFaWiGpSIXOJ9G8wAg+M880yi/Wh0CmA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=purestorage.com; spf=fail smtp.mailfrom=purestorage.com; dkim=pass (2048-bit key) header.d=purestorage.com header.i=@purestorage.com header.b=TCE65fsy; arc=none smtp.client-ip=209.85.216.99 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=purestorage.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=purestorage.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=purestorage.com header.i=@purestorage.com header.b="TCE65fsy" Received: by mail-pj1-f99.google.com with SMTP id 98e67ed59e1d1-3014cb646ecso8070672a91.1 for ; Tue, 25 Mar 2025 15:20:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1742941207; x=1743546007; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=yaD1f0dkmAmr6EkfX2zgrSqJ41O3Qgw2EtPX5+qTxTA=; b=TCE65fsy8ydcRESp4tvrbk/aj/S4bs/oaxUdNYYNI5KaqFDGxGw2dreY20sfOYpME/ /ukTG1Pqzu0UKz9Bv4BIpe1SkI14zLaJvYMAZ/vxT7B0z7v+cuO4T3m7aY7WzB7mBZJ5 BBZ5oRUb/kuFYPjxM8IBBxCpiFxKJwsZ3nIKYy7oHI+X+CeVlhiqJTee+X/ygAXYTnx8 6poILVYgWhaJfiU/c4ykr+0MWmNiHYFG+CYFt8yDMM60nEtR8z7A6Hueoj8cH0pB9rE1 FqW6LEfNjGRXgR2ECfahd8/yrxxMTECawlQFtaoK7Z3uzLip226eBKN/fijnu0Xow603 8oqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742941207; x=1743546007; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yaD1f0dkmAmr6EkfX2zgrSqJ41O3Qgw2EtPX5+qTxTA=; b=Z0DejaR1X4qpV3W1htHJTKJeC0DN/ak1uW0hdxwGtcwlVYVUkpgKoMBRWVON0yehkY nAymrra7Lc3CaWcHvYYHj2aM7h5UeoIfEUB0IksCaVXsqQWj2clo1tqj636IAAR9vOtL tYTxEfxnxdooYUmy4Kxv10LSCCkwL9RWJmLfmQOJzN0aB5WiGp7mJuX61kipD3HsVxDn cu3ompRhJFOgrzrnI7KiXx1DnirxLJ37YoHA9JJ0eIGOcnmxkjKBdQeQDyF68SSEeHbz U8wKUG/o7kA2x5svRzTAB+Bf+g2OkQKWEZjkz9NCFI8eVgpVh4XNdJdJmTzFOXtipXgI mg2w== X-Gm-Message-State: AOJu0YzThCCtvtSTlKmfmKeUuhrALnRcaESED6OaWDdBIb9HGdA2Cy2Y t4B9GCMwS8R9CHsO49nGF8kHAWlJU5U6ZNvw0C/SKmfkK+/opfGvgdy5XXFVuGLUiNvNO4twsky OThxwmmWrUOlGC2AQXfAp7sePlei4/dO2 X-Gm-Gg: ASbGncs9ZkQHHK+pwMtjOOlEmgw8UxEGmDIO6MJk5a5Ryroh6qWzV0SmMoxG4yE9qzJ B2L3jyCu9kNlzxl/m5/6PC8RVVMaJztl4KNPt0Bl2wK5eGyA7ZVAgGzI4xOoFVSbh/8ZH2btO9P /r7wpB8piRRvk4KOvTc1jHeEhlt/cycaOgQeZdx1+pr6VHQNPnvqdsN/TpEc2+gk20LGBmkmw2Z F/4mBf1o2a/fZqc5Qm9am5tpZwxZ+JDuM+LnysTSJNkb6115qu5DN+UMwnGdUS5BYuNC0LA7qGV DwIoGNdM8TEDmD9zWeFPmeJuVyYGL7Rt7BDhAyNJz+NUX2DQDg== X-Google-Smtp-Source: AGHT+IGS6Daus7qm2CJ7Yu+HWXaf3SPjvYYwo50CAFD4+MN72OYepK7+CxhHCMpyyk0kzla/ZeuQ4Em/0fZE X-Received: by 2002:a17:90b:4c07:b0:2ff:4bac:6fbf with SMTP id 98e67ed59e1d1-3030fe56aa9mr28017596a91.7.1742941206960; Tue, 25 Mar 2025 15:20:06 -0700 (PDT) Received: from c7-smtp-2023.dev.purestorage.com ([208.88.159.129]) by smtp-relay.gmail.com with ESMTPS id 98e67ed59e1d1-301bf61e28fsm914628a91.14.2025.03.25.15.20.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 15:20:06 -0700 (PDT) X-Relaying-Domain: purestorage.com Received: from dev-ushankar.dev.purestorage.com (dev-ushankar.dev.purestorage.com [10.7.70.36]) by c7-smtp-2023.dev.purestorage.com (Postfix) with ESMTP id 58E573404B9; Tue, 25 Mar 2025 16:20:06 -0600 (MDT) Received: by dev-ushankar.dev.purestorage.com (Postfix, from userid 1557716368) id 4740EE415CA; Tue, 25 Mar 2025 16:20:06 -0600 (MDT) From: Uday Shankar Date: Tue, 25 Mar 2025 16:19:32 -0600 Subject: [PATCH 2/4] selftests: ublk: kublk: fix an error log line Precedence: bulk X-Mailing-List: linux-block@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250325-ublk_timeout-v1-2-262f0121a7bd@purestorage.com> References: <20250325-ublk_timeout-v1-0-262f0121a7bd@purestorage.com> In-Reply-To: <20250325-ublk_timeout-v1-0-262f0121a7bd@purestorage.com> To: Ming Lei , Shuah Khan , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Uday Shankar X-Mailer: b4 0.14.2 When doing io_uring operations using liburing, errno is not used to indicate errors, so the %m format specifier does not provide any relevant information for failed io_uring commands. Fix a log line emitted on get_params failure to translate the error code returned in the cqe->res field instead. Signed-off-by: Uday Shankar Reviewed-by: Ming Lei --- tools/testing/selftests/ublk/kublk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/ublk/kublk.c b/tools/testing/selftests/ublk/kublk.c index b17eee643b2dbfd59903b61718afcbc21da91d97..ded1b93e7913011499ae5dae7b40f0e425982ee4 100644 --- a/tools/testing/selftests/ublk/kublk.c +++ b/tools/testing/selftests/ublk/kublk.c @@ -215,7 +215,7 @@ static void ublk_ctrl_dump(struct ublk_dev *dev) ret = ublk_ctrl_get_params(dev, &p); if (ret < 0) { - ublk_err("failed to get params %m\n"); + ublk_err("failed to get params %d %s\n", ret, strerror(-ret)); return; } From patchwork Tue Mar 25 22:19:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uday Shankar X-Patchwork-Id: 14029583 Received: from mail-yw1-f225.google.com (mail-yw1-f225.google.com [209.85.128.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8EF6F269D1D for ; Tue, 25 Mar 2025 22:20:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.225 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742941212; cv=none; b=qeo27MhpLrf6C9LLypIK2tOfD7us0FClWJOTg4j0LccLIUhhvujdGeMpDU5pRX06Oe9sS/FM7gAblBt7DcN9aRcH5x+NSA0ect+cBrdtPlFQXGDNe5UTsTDDT42wgOnAA8dRl2s+b0lCdUrOU1BJFA6E9XRe5P4ePrpM9StVKD0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742941212; c=relaxed/simple; bh=NeRkZlcvaCBRIUNhcAknsxh2pPI89exFKSolPCOwHZM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OrdVYWZrTObsOjtS+M9I1li2xJ7nobbYJmzG8rsukgpoCTStDGnwXVZXmLfb346aNUP/wMiUCabbsR13BGhELoHsGAfnLU1uu07DzlDNNdpy0vJFhwj3nxvb6EdUy18v+cbs34NWOwGKP1HmqrTgxgQA/rHYsiW/Wv3oJqU64pE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=purestorage.com; spf=fail smtp.mailfrom=purestorage.com; dkim=pass (2048-bit key) header.d=purestorage.com header.i=@purestorage.com header.b=dpLTqJz7; arc=none smtp.client-ip=209.85.128.225 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=purestorage.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=purestorage.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=purestorage.com header.i=@purestorage.com header.b="dpLTqJz7" Received: by mail-yw1-f225.google.com with SMTP id 00721157ae682-6f666c94285so59194137b3.3 for ; Tue, 25 Mar 2025 15:20:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1742941208; x=1743546008; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=P8dONTFM6RC8uRNfo7doEMwcZfV7041orR9CUS1WNic=; b=dpLTqJz77dNB2PodaHyDQmKAThY6hSgYyHc1wGnQhVzNj4cRGZ1fSiocj/tpNOb4VE ohxLDKa0NYyYGiXyqRxd8ltvM7nNq3FsXXfpdWrU2qnpuwv2x93r90B222FN5s7UGYj4 jiwItdje7ozCLsXKGb+NqfqnWyuBNYO2xCDAu0oH1mOGc2NE8v8TcXvGJsLABJq6wzZO Fq3cZxJFatqh+FBdw5xlTabbCXpFWACN/YpeErCq0nJpbEPbu/1yCjC3ks6XkYqTbPO4 QsHeb3R9DamnkkR9X6AlMoVOtlqsVJeXNlp+KFuPLpy1hCF2dB5tFGYJA6ISgNNL4qW4 ArPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742941208; x=1743546008; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=P8dONTFM6RC8uRNfo7doEMwcZfV7041orR9CUS1WNic=; b=V7naSZaklU2pVwh1x/cZyU40lv6EjZih4L7ZjgL72hlq2yAPZVCcUq/x/aOaKrJeQM p0w/piaPRQu/gMqoC3AwmQn3+0MU2Md5eZ4I5mjPK9DUvHNBYGK7TTpgJSHX7BBibT8C oduE7l5rFtloiiNF9YdPKvstoAwZ6SdEZU35V2HTi2P5DUFrzFkSqi9ykmRXPsgWSR5i 2F4az1NWORoZF4Qk9U6ek3JzNlPFF+pYsqzROmtkdatwiI2yuago2kQrmLMrxnmSt/Vq MrksEUA7cBb0gdvPtmSUMa8aChx8SOuaSz44VixNWJpdEKMa9B0vnJ7PNveZVtkEUDVA Qs2w== X-Gm-Message-State: AOJu0Yz9YWMR6ZS4g28ELyMGYIHjfv89Tdzz027R/Oq4uuoDczrlco6p dlewllkJcJUSRC0F6PK+7lTJV7bCX2F3xrU4my9ONMMJxEMTDVaIjFDdh58LJCR0Zil/vDfuRJk MZ80zZt1r7iLxRc1r0GJ9k/Vqw8jr4OOroaAJplrdbOuWjl7u X-Gm-Gg: ASbGncv7xUHzic+htq9A7n3PqVc9L0DyibNQJ/e1OhYy7p204kGff6FvLhqPXkvbzKN TyInwMJof3VKpCXzti2376O0wwqrNacM4WuO+wtC21NI9Qo/BvxRCUk6CwKkpHl+2LbQD3O+mag eZf+sDO/dNTYFyRCFsASHB48DVAVQZbmY+bTuA0u25/EfGCJbeh0mcZr1Cbyym+bgUrBCJNaryQ cHXSf6USJ5T8xKiPQzqK+1QbpZnrs+jsm5wh79Yv7MrlrdSj5ci4HvvhWjXi6Jy0DkFlSs1KqQg 1GEbD1KFmH1Vv/tl3bxD73Y3rcxytaehVls= X-Google-Smtp-Source: AGHT+IGkV8dFuwx5r2yLmkio5J6J8fr4hQ3tR+zgbUM8xz8jKTp4WzA8Bx5pOB3XzpAT281kk+7kSZkfNhRd X-Received: by 2002:a05:690c:a8b:b0:6fe:e76a:4d38 with SMTP id 00721157ae682-700bac5e14emr258757897b3.21.1742941208289; Tue, 25 Mar 2025 15:20:08 -0700 (PDT) Received: from c7-smtp-2023.dev.purestorage.com ([2620:125:9017:12:36:3:5:0]) by smtp-relay.gmail.com with ESMTPS id 00721157ae682-700ba82d5a9sm3786797b3.46.2025.03.25.15.20.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 15:20:08 -0700 (PDT) X-Relaying-Domain: purestorage.com Received: from dev-ushankar.dev.purestorage.com (dev-ushankar.dev.purestorage.com [10.7.70.36]) by c7-smtp-2023.dev.purestorage.com (Postfix) with ESMTP id 5B1ED3404E1; Tue, 25 Mar 2025 16:20:06 -0600 (MDT) Received: by dev-ushankar.dev.purestorage.com (Postfix, from userid 1557716368) id 4E772E415C9; Tue, 25 Mar 2025 16:20:06 -0600 (MDT) From: Uday Shankar Date: Tue, 25 Mar 2025 16:19:33 -0600 Subject: [PATCH 3/4] selftests: ublk: kublk: ignore SIGCHLD Precedence: bulk X-Mailing-List: linux-block@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250325-ublk_timeout-v1-3-262f0121a7bd@purestorage.com> References: <20250325-ublk_timeout-v1-0-262f0121a7bd@purestorage.com> In-Reply-To: <20250325-ublk_timeout-v1-0-262f0121a7bd@purestorage.com> To: Ming Lei , Shuah Khan , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Uday Shankar X-Mailer: b4 0.14.2 SIGCHLD from exiting children can arrive during io_uring_wait_cqe and cause it to return early with -EINTR. Since we don't have a handler for SIGCHLD, avoid this issue by ignoring SIGCHLD. Signed-off-by: Uday Shankar Reviewed-by: Ming Lei --- tools/testing/selftests/ublk/kublk.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/testing/selftests/ublk/kublk.c b/tools/testing/selftests/ublk/kublk.c index ded1b93e7913011499ae5dae7b40f0e425982ee4..064a5bb6f12f35892065b8dfacb6f57f6fc16aee 100644 --- a/tools/testing/selftests/ublk/kublk.c +++ b/tools/testing/selftests/ublk/kublk.c @@ -890,6 +890,7 @@ static int cmd_dev_add(struct dev_ctx *ctx) exit(-1); } + signal(SIGCHLD, SIG_IGN); setsid(); res = fork(); if (res == 0) { From patchwork Tue Mar 25 22:19:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uday Shankar X-Patchwork-Id: 14029580 Received: from mail-pl1-f226.google.com (mail-pl1-f226.google.com [209.85.214.226]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F555269CFA for ; Tue, 25 Mar 2025 22:20:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.226 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742941210; cv=none; b=U8L56TPh7MCScc4ogLj/znPEdMgRk7kHURx+VAdRR9U7jPR2MdJNXBU3E5Zt0EMEt50SifU032X0SEoJudE5z5dGGDC6Qz+7Mqi3UMv8MgKdmRiwKLfWPQL6xM/p3Oxh224r3obaY5OIP5KcQst7Du4Nv/5d6MhG3daHhDU5xbQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742941210; c=relaxed/simple; bh=VnRKEjV5fgREpKRGVGNI6L0g4QT2kfv1l9/9qhyTYqk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SQ4UYh4Q+/oyj1YDPwoXfUSjVmPbicRCnDcsMgf8/w5Ynte/lKE2IWs54wvDB6E3mleqEerfWL20R07U89G1s5uTr/aw37KvUfHp7ZV4uh2vybr23tdM+5FfFlGy60FU4P1YSSHOSlXWopVzyxN96H37GDLx7dSCqsSIa72gDuE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=purestorage.com; spf=fail smtp.mailfrom=purestorage.com; dkim=pass (2048-bit key) header.d=purestorage.com header.i=@purestorage.com header.b=QH0tAUN2; arc=none smtp.client-ip=209.85.214.226 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=purestorage.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=purestorage.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=purestorage.com header.i=@purestorage.com header.b="QH0tAUN2" Received: by mail-pl1-f226.google.com with SMTP id d9443c01a7336-223fb0f619dso126305765ad.1 for ; Tue, 25 Mar 2025 15:20:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1742941207; x=1743546007; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=tBZ53h6ZU14UiZLA0LHkEbBlfHC5/MQY5hy1wIXp1Ec=; b=QH0tAUN2t8sicEa1ce7JcX093Ou0GD4qJq9F8IR6Yb9wCasXl9PsdGTOTOsZw2qUVH DYrMbBEdcs1AW7MgF0C7cfyC+uBAb0aBuBIBHnJJ5DsbWnYruNTOfAb+X14ncoO5+vDK t524NE/82c2mQsk5dZF/0uVfK4H1ezl/eSTfSnPqYHKBvGFI/JYhwn+pdu+nWKfftgAa L5jggEdRofii+2wgY94aM/+7T9/pkQX0jLedaWfqVNKO5HBXueGthYZ0vCtRngBr/Lp1 kPhlB8zTmVrK9t/JeELiebaUi/pJnoooD8Hf7JN/f7cdFfhlF7jowUEbIrbjn12d5FTR FFCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742941207; x=1743546007; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tBZ53h6ZU14UiZLA0LHkEbBlfHC5/MQY5hy1wIXp1Ec=; b=lXERGOvzbXaQJ/sB7cCFkJ04OSmrdeYgzL8oXuGHbGDwcFDfZNOYMIK1mXuBB4h6eY QS0/0RKvNQiLAP+pXcbbnqXl6bqBktI1AJMQeFvNPGiCHgWt3zYm9If13CD6OBuliyfo TtaSyXiDDL/unc3/7jZm7Ot9DGo8f35L+uTwcKXiVR4Nt5fzu8nMnZHxRgZg4I4O+fOw YlCJ9TZK212xGa0cOU3rw3A4ZopU9U4EFTLF1Ni48zAeWpS3kp10i5YeUVAzxsOjeZZ2 5MO6RKULmN6XS/juT0QHAjvsU/iJstMC6zk+Z0w/oXmaLf9xMm10DAouaYVYS/oPF9/2 BUtQ== X-Gm-Message-State: AOJu0Ywyv3t9HP4OxsDgvMjF6bTULz/o8sXnHiiQ5rjEw/M4D4gNkbz1 DUFgAKnQbOtNkRXHgxJvo/0KKd55aRStpNFQ0vWwEnQnb2pw3SYLF37+cljEH4wf8IlB3eRPx7Z R/b0ondIj70MgK1cQhJiOsG7DMkpL3AgcUDNO3zVueJ7x3Gi8 X-Gm-Gg: ASbGncthMMoG3HOrcb4Xd566tndah3c0NQOdmGCG4AiMLAdmCP+uM6tEw6Mh1lgNH/A 724cfW+ZDPg0FbXetq/bSayjUq6jz9FDGv500khYMeIbYZF2dLNKhQZSjPMAf5cdFRTkESJ1xpC mShzX7bAHRmaUp9fu4cipk3V5MFXi6wX+8pWyC6FjWNXC9kLygLEXNYvb+IkmGp0OppISiot5W7 UMaWGiWQiBOxI70AFNq0WIUO+wIQnajfuX9NneHxnjYlYiVSq6qOB+Lqyg4+mR2LrwEWAjHA1+D RBGgSHFcgxWTx56yGg2thsFd8a9b8XqOVWI= X-Google-Smtp-Source: AGHT+IEUsc32nzs+uGub+z1eOKyD8JdjmiwIR/NhfIWNK3pQ3aECuV9tRQ9xvqaMxg5cu2AbcTNwWnrcFz8o X-Received: by 2002:a05:6a21:2798:b0:1fe:90c5:7cfe with SMTP id adf61e73a8af0-1fe90c57f31mr2947084637.6.1742941207176; Tue, 25 Mar 2025 15:20:07 -0700 (PDT) Received: from c7-smtp-2023.dev.purestorage.com ([2620:125:9017:12:36:3:5:0]) by smtp-relay.gmail.com with ESMTPS id 41be03b00d2f7-af8a27d47cesm206293a12.2.2025.03.25.15.20.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 15:20:07 -0700 (PDT) X-Relaying-Domain: purestorage.com Received: from dev-ushankar.dev.purestorage.com (dev-ushankar.dev.purestorage.com [10.7.70.36]) by c7-smtp-2023.dev.purestorage.com (Postfix) with ESMTP id 5F52134071F; Tue, 25 Mar 2025 16:20:06 -0600 (MDT) Received: by dev-ushankar.dev.purestorage.com (Postfix, from userid 1557716368) id 559BEE415C9; Tue, 25 Mar 2025 16:20:06 -0600 (MDT) From: Uday Shankar Date: Tue, 25 Mar 2025 16:19:34 -0600 Subject: [PATCH 4/4] ublk: improve handling of saturated queues when ublk server exits Precedence: bulk X-Mailing-List: linux-block@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250325-ublk_timeout-v1-4-262f0121a7bd@purestorage.com> References: <20250325-ublk_timeout-v1-0-262f0121a7bd@purestorage.com> In-Reply-To: <20250325-ublk_timeout-v1-0-262f0121a7bd@purestorage.com> To: Ming Lei , Shuah Khan , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Uday Shankar X-Mailer: b4 0.14.2 There are currently two ways in which ublk server exit is detected by ublk_drv: 1. uring_cmd cancellation. If there are any outstanding uring_cmds which have not been completed to the ublk server when it exits, io_uring calls the uring_cmd callback with a special cancellation flag as the issuing task is exiting. 2. I/O timeout. This is needed in addition to the above to handle the "saturated queue" case, when all I/Os for a given queue are in the ublk server, and therefore there are no outstanding uring_cmds to cancel when the ublk server exits. The second method detects ublk server exit only after a long delay (~30s, the default timeout assigned by the block layer). Any applications using the ublk device will be left hanging for these 30s before seeing an error/knowing anything went wrong. This problem is illustrated by running the new test_generic_02 against a ublk_drv which doesn't have the fix: selftests: ublk: test_generic_02.sh dev id is 0 dd: error writing '/dev/ublkb0': Input/output error 1+0 records in 0+0 records out 0 bytes copied, 30.0611 s, 0.0 kB/s DEAD dd took 31 seconds to exit (>= 5s tolerance)! generic_02 : [FAIL] Fix this by instead handling the saturated queue case in the ublk character file release callback. This happens during ublk server exit and handles the issue much more quickly than an I/O timeout: selftests: ublk: test_generic_02.sh dev id is 0 dd: error writing '/dev/ublkb0': Input/output error 1+0 records in 0+0 records out 0 bytes copied, 0.0376731 s, 0.0 kB/s DEAD generic_02 : [PASS] Signed-off-by: Uday Shankar --- drivers/block/ublk_drv.c | 40 +++++++++++------------ tools/testing/selftests/ublk/Makefile | 1 + tools/testing/selftests/ublk/kublk.c | 3 ++ tools/testing/selftests/ublk/kublk.h | 3 ++ tools/testing/selftests/ublk/null.c | 4 +++ tools/testing/selftests/ublk/test_generic_02.sh | 43 +++++++++++++++++++++++++ 6 files changed, 72 insertions(+), 22 deletions(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index c060da409ed8a888b7e414c9065efd2cbd6d57d7..1816b2cac01056dc9d01455759594af43c5f78d6 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -1247,8 +1247,6 @@ static void ublk_queue_cmd(struct ublk_queue *ubq, struct request *rq) static enum blk_eh_timer_return ublk_timeout(struct request *rq) { struct ublk_queue *ubq = rq->mq_hctx->driver_data; - unsigned int nr_inflight = 0; - int i; if (ubq->flags & UBLK_F_UNPRIVILEGED_DEV) { if (!ubq->timeout) { @@ -1259,26 +1257,6 @@ static enum blk_eh_timer_return ublk_timeout(struct request *rq) return BLK_EH_DONE; } - if (!ubq_daemon_is_dying(ubq)) - return BLK_EH_RESET_TIMER; - - for (i = 0; i < ubq->q_depth; i++) { - struct ublk_io *io = &ubq->ios[i]; - - if (!(io->flags & UBLK_IO_FLAG_ACTIVE)) - nr_inflight++; - } - - /* cancelable uring_cmd can't help us if all commands are in-flight */ - if (nr_inflight == ubq->q_depth) { - struct ublk_device *ub = ubq->dev; - - if (ublk_abort_requests(ub, ubq)) { - schedule_work(&ub->nosrv_work); - } - return BLK_EH_DONE; - } - return BLK_EH_RESET_TIMER; } @@ -1351,6 +1329,24 @@ static int ublk_ch_open(struct inode *inode, struct file *filp) static int ublk_ch_release(struct inode *inode, struct file *filp) { struct ublk_device *ub = filp->private_data; + bool need_schedule = false; + int i; + + /* + * Error out any requests outstanding to the ublk server. This + * may have happened already (via uring_cmd cancellation), in + * which case it is not harmful to repeat. But uring_cmd + * cancellation does not handle queues which are fully saturated + * (all requests in ublk server), because from the kernel's POV, + * there are no outstanding uring_cmds to cancel. This code + * handles such queues. + */ + + for (i = 0; i < ub->dev_info.nr_hw_queues; i++) + need_schedule |= ublk_abort_requests(ub, ublk_get_queue(ub, i)); + + if (need_schedule) + schedule_work(&ub->nosrv_work); clear_bit(UB_STATE_OPEN, &ub->state); return 0; diff --git a/tools/testing/selftests/ublk/Makefile b/tools/testing/selftests/ublk/Makefile index 7817afe290053853ce31d28a8f4bbca570c3046c..dcc514b6d8f6e485597320636ab111a17b7e5448 100644 --- a/tools/testing/selftests/ublk/Makefile +++ b/tools/testing/selftests/ublk/Makefile @@ -4,6 +4,7 @@ CFLAGS += -O3 -Wl,-no-as-needed -Wall -I $(top_srcdir) LDLIBS += -lpthread -lm -luring TEST_PROGS := test_generic_01.sh +TEST_PROGS := test_generic_02.sh TEST_PROGS += test_null_01.sh TEST_PROGS += test_null_02.sh diff --git a/tools/testing/selftests/ublk/kublk.c b/tools/testing/selftests/ublk/kublk.c index 064a5bb6f12f35892065b8dfacb6f57f6fc16aee..e883cd0f9e330eb15da5a00f6085343333a9355d 100644 --- a/tools/testing/selftests/ublk/kublk.c +++ b/tools/testing/selftests/ublk/kublk.c @@ -1065,6 +1065,7 @@ int main(int argc, char *argv[]) { "zero_copy", 0, NULL, 'z' }, { "foreground", 0, NULL, 0 }, { "chunk_size", 1, NULL, 0 }, + { "delay_us", 1, NULL, 0 }, { 0, 0, 0, 0 } }; int option_idx, opt; @@ -1113,6 +1114,8 @@ int main(int argc, char *argv[]) ctx.fg = 1; if (!strcmp(longopts[option_idx].name, "chunk_size")) ctx.chunk_size = strtol(optarg, NULL, 10); + if (!strcmp(longopts[option_idx].name, "delay_us")) + ctx.delay_us = strtoul(optarg, NULL, 10); } } diff --git a/tools/testing/selftests/ublk/kublk.h b/tools/testing/selftests/ublk/kublk.h index f31a5c4d4143e28f13d4cd98d611e37f93b0c25a..6414d482ea3986a9d1973f04a1832d6fe16231bf 100644 --- a/tools/testing/selftests/ublk/kublk.h +++ b/tools/testing/selftests/ublk/kublk.h @@ -67,6 +67,9 @@ struct dev_ctx { unsigned int all:1; unsigned int fg:1; + /* null */ + unsigned long delay_us; + /* stripe */ unsigned int chunk_size; diff --git a/tools/testing/selftests/ublk/null.c b/tools/testing/selftests/ublk/null.c index 899875ff50feadbd734fbbf1f8fad1f19abd1e8f..8bf58e540f1bffc8361450484a6dc484e815378c 100644 --- a/tools/testing/selftests/ublk/null.c +++ b/tools/testing/selftests/ublk/null.c @@ -30,6 +30,8 @@ static int ublk_null_tgt_init(const struct dev_ctx *ctx, struct ublk_dev *dev) if (info->flags & UBLK_F_SUPPORT_ZERO_COPY) dev->tgt.sq_depth = dev->tgt.cq_depth = 2 * info->queue_depth; + + dev->private_data = (void *)ctx->delay_us; return 0; } @@ -88,6 +90,8 @@ static int ublk_null_queue_io(struct ublk_queue *q, int tag) int zc = ublk_queue_use_zc(q); int queued; + usleep((unsigned long)q->dev->private_data); + if (!zc) { ublk_complete_io(q, tag, iod->nr_sectors << 9); return 0; diff --git a/tools/testing/selftests/ublk/test_generic_02.sh b/tools/testing/selftests/ublk/test_generic_02.sh new file mode 100755 index 0000000000000000000000000000000000000000..bc73a17923517ace9590698d82b084fd8d885371 --- /dev/null +++ b/tools/testing/selftests/ublk/test_generic_02.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +. "$(cd "$(dirname "$0")" && pwd)"/test_common.sh + +TID="generic_02" +ERR_CODE=0 + +_prep_test "null" "fast cleanup when all I/Os of one hctx are in server" + +# configure ublk server to sleep 2s before completing each I/O +dev_id=$(_add_ublk_dev -t null -q 1 -d 1 --delay_us 2000000) +_check_add_dev $TID $? + +echo "dev id is ${dev_id}" + +STARTTIME=${SECONDS} + +dd if=/dev/urandom of=/dev/ublkb${dev_id} oflag=direct bs=4k count=1 & +dd_pid=$! + +__ublk_kill_daemon ${dev_id} "DEAD" + +wait $dd_pid +dd_exitcode=$? + +ENDTIME=${SECONDS} +ELAPSED=$(($ENDTIME - $STARTTIME)) + +# assert that dd sees an error and exits quickly after ublk server is +# killed. previously this relied on seeing an I/O timeout and so would +# take ~30s +if [ $dd_exitcode -eq 0 ]; then + echo "dd unexpectedly exited successfully!" + ERR_CODE=255 +fi +if [ $ELAPSED -ge 5 ]; then + echo "dd took $ELAPSED seconds to exit (>= 5s tolerance)!" + ERR_CODE=255 +fi + +_cleanup_test "null" +_show_result $TID $ERR_CODE