From nobody Sun Dec 14 05:56:49 2025 Received: from mail-pl1-f225.google.com (mail-pl1-f225.google.com [209.85.214.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 9B37F260578 for ; Fri, 12 Dec 2025 17:17:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.225 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559832; cv=none; b=MFkyrZRrQU5mxcck5X+BOTNFfzVpTEB71Y9euI8Gzre7ssSqufEYAP4S9GnU4loPHYT/w1XLg6ZEfmUIs5r27z45ja3m0H3aECzO9iHy9TX2Szjw8RrYnqq1YC2OA4FhHaCA0w19huS7ESIfW8IMX8iJBH+ZYWX90Nqb4VHYoT8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559832; c=relaxed/simple; bh=OCxuEyv2nas70eB8lxzrmKzbwZmA0QEfOrxPlpwtsjA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OqBCO9m3FDVlabKbWYPfnSMW5Wac0f+4aEM0he46y5I/tGaP1qICmX/mzgGtMacMlnNUt8JTjj1otMv9GYD8VlvLIvQ0l59ao+DcFA0HaMDuHFIHy0I4Js54z4ujv0cijo8p0AaTctqeZXOlGREXpG4YYf5BvV4EurBo6CNrcIg= 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=Wm7JCvi4; arc=none smtp.client-ip=209.85.214.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="Wm7JCvi4" Received: by mail-pl1-f225.google.com with SMTP id d9443c01a7336-2a08c65fceeso123345ad.2 for ; Fri, 12 Dec 2025 09:17:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1765559830; x=1766164630; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kUEatCbGKBwWq9sjai5DOHkl1bVC/1UgUICmtg/O0zA=; b=Wm7JCvi4/NBSFYsrODbv48z54R+RKKp5q8854fJRK4biJ16UZXuEAtAuzOfc3yVSRH R2fKTo+PtXkKSrXPASt5VPom1xMOVFLMGhVvI2ciwixSwfbBMW8nONv8dgklr06P7M1Y rctkGkZUnhaHYR0+moyzFmUchZupH89hkdFqlFWIimURutXwocoBLDJ2uqkiGeA9NpBF E+Vqvw+TuWR2ZquIwdWYe0rzUtVycotqKpI5rPKFcvgTbuA4aF3KauyYGyyFFKVy5ESH 3QBmM9IMGQOto9TUJ4ETmbeSq9THAcLInIIQPIj3YuwGVT7zvx2VCFTUu2shnzM0feOB y7jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765559830; x=1766164630; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=kUEatCbGKBwWq9sjai5DOHkl1bVC/1UgUICmtg/O0zA=; b=dR2oOuaF5piKAtV7CCJrt+2StPwZNgfHhMJp2vh3Z4wQP7S21B9LBB1aFOi8CVfbGQ /imrMqjAG/L/XAxccQ/ADTCBzKrm2G2gQ/Go5LiBV7lz7HMLJUtpb/XUDqASDRS8KxRb BP0vumetAE7kuuaDS5UgQ797wjmkvt/Y2EU24EAuC82N34CbNt8ksCjR4Qje1PP4lVh7 fk/Ioxy3AWASBit3AcFsPJED8+TN7+gnLC2wg4SGU+T29aNhr7C9QQTi0vY7lG8VNF+B A2keOXlL93s9Y8G37bLIZtvEGMmFZ6HP34NJEkZ+1UrmphLlyFXOg+hK+HtkSU3K9/tp N0Kg== X-Forwarded-Encrypted: i=1; AJvYcCU4Z+zkoR/e69/QeOiJV3gl5uDKXzAvWBfswbddJh9VRWKCAJt/tESAMSgibPXBDFqb9lU8YtaUHDXSfN8=@vger.kernel.org X-Gm-Message-State: AOJu0YzLOF35JciXf9QMoNL+I7B8OCUNNfg3vA1XANzZrpCeCEvsfEmf pekNxdi2F2tW51zn9LLeXH6EbzcJHF2qBKY+BsLS+WS3EozcpQXQbm1n70XTFOSZ9z3ZMaBO/W+ clJv0Masf5ABul4mzerSigp/gO/VJQa7Ej/YxND8NSgbGOHh+G3q/ X-Gm-Gg: AY/fxX7eFM8CT0GtZnyeUAJwZ0qCXQxSby+kwUnmtcGmejuMIs/5FwKEJIJEK/lq1Oa XDaXy4fHYvYV1WQzbdMEdvGEUawXBlo6zvD5B9uMZGylJpHnoaEIPx/JyRMuLYV6cKTE+z7/jYp esV3a6diMDPwqqcfADcsWHv+V8vCOJas+4h1uKxXnLyM3KaaXaXU566vMzMxflga3vupQQSbgVW eVJp1fwSkeGz9hjl6JYwZQwjRiMl3aF2UixXPmNEPuCoGnEozg7Ald2zrKP0VUqjRTWyeX2oPlu 7EplqqH7fMfXWIKWOxX6qCro1cgL4Cbev+rO5/NPnTR/OBLL90jc/rByjGjh5plQ9GY1WSA+21O k86qYpouJAie2MycsnFvz5QPAW2A= X-Google-Smtp-Source: AGHT+IHn2ulh+ZuwuN1vTN3PVxeOFgna9Rb1nC6ChWNZ0/CCmOhfBSYIXXuw9VcJ4K+kBBcLwkyXdHgn/Ed/ X-Received: by 2002:a17:902:e5cb:b0:29a:56a:8b81 with SMTP id d9443c01a7336-29f244b9b3fmr19693165ad.8.1765559829756; Fri, 12 Dec 2025 09:17:09 -0800 (PST) Received: from c7-smtp-2023.dev.purestorage.com ([2620:125:9017:12:36:3:5:0]) by smtp-relay.gmail.com with ESMTPS id d9443c01a7336-29ee9dae935sm8900575ad.54.2025.12.12.09.17.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Dec 2025 09:17:09 -0800 (PST) X-Relaying-Domain: purestorage.com Received: from dev-csander.dev.purestorage.com (dev-csander.dev.purestorage.com [10.7.70.37]) by c7-smtp-2023.dev.purestorage.com (Postfix) with ESMTP id 1A37B3404B4; Fri, 12 Dec 2025 10:17:09 -0700 (MST) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 17D86E4232B; Fri, 12 Dec 2025 10:17:09 -0700 (MST) From: Caleb Sander Mateos To: Ming Lei , Shuah Khan Cc: linux-block@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 1/9] selftests: ublk: fix overflow in ublk_queue_auto_zc_fallback() Date: Fri, 12 Dec 2025 10:16:59 -0700 Message-ID: <20251212171707.1876250-2-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20251212171707.1876250-1-csander@purestorage.com> References: <20251212171707.1876250-1-csander@purestorage.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ming Lei The functions ublk_queue_use_zc(), ublk_queue_use_auto_zc(), and ublk_queue_auto_zc_fallback() were returning int, but performing bitwise AND on q->flags which is __u64. When a flag bit is set in the upper 32 bits (beyond INT_MAX), the result of the bitwise AND operation could overflow when cast to int, leading to incorrect boolean evaluation. For example, if UBLKS_Q_AUTO_BUF_REG_FALLBACK is 0x8000000000000000: - (u64)flags & 0x8000000000000000 =3D 0x8000000000000000 - Cast to int: undefined behavior / incorrect value - Used in if(): may evaluate incorrectly Fix by: 1. Changing return type from int to bool for semantic correctness 2. Using !! to explicitly convert to boolean (0 or 1) This ensures the functions return proper boolean values regardless of which bit position the flags occupy in the 64-bit field. Fixes: c3a6d48f86da ("selftests: ublk: remove ublk queue self-defined flags= ") Signed-off-by: Ming Lei --- tools/testing/selftests/ublk/kublk.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/ublk/kublk.h b/tools/testing/selftests= /ublk/kublk.h index fe42705c6d42..6e8f381f3481 100644 --- a/tools/testing/selftests/ublk/kublk.h +++ b/tools/testing/selftests/ublk/kublk.h @@ -388,23 +388,23 @@ static inline int ublk_completed_tgt_io(struct ublk_t= hread *t, t->io_inflight--; =20 return --io->tgt_ios =3D=3D 0; } =20 -static inline int ublk_queue_use_zc(const struct ublk_queue *q) +static inline bool ublk_queue_use_zc(const struct ublk_queue *q) { - return q->flags & UBLK_F_SUPPORT_ZERO_COPY; + return !!(q->flags & UBLK_F_SUPPORT_ZERO_COPY); } =20 -static inline int ublk_queue_use_auto_zc(const struct ublk_queue *q) +static inline bool ublk_queue_use_auto_zc(const struct ublk_queue *q) { - return q->flags & UBLK_F_AUTO_BUF_REG; + return !!(q->flags & UBLK_F_AUTO_BUF_REG); } =20 -static inline int ublk_queue_auto_zc_fallback(const struct ublk_queue *q) +static inline bool ublk_queue_auto_zc_fallback(const struct ublk_queue *q) { - return q->flags & UBLKS_Q_AUTO_BUF_REG_FALLBACK; + return !!(q->flags & UBLKS_Q_AUTO_BUF_REG_FALLBACK); } =20 static inline int ublk_queue_no_buf(const struct ublk_queue *q) { return ublk_queue_use_zc(q) || ublk_queue_use_auto_zc(q); --=20 2.45.2 From nobody Sun Dec 14 05:56:49 2025 Received: from mail-yx1-f98.google.com (mail-yx1-f98.google.com [74.125.224.98]) (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 C241B2D7DD2 for ; Fri, 12 Dec 2025 17:17:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.224.98 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559835; cv=none; b=tQ6rz4/gyvVbYZJjeYeJO50BzvwmGIqwy+4hiddnRNYmvJN8lQkNpdv2IwQFd3eGgGNYDNLdy24MqqLIHQOK6cjcO6a5N4SgdNPbuHylmob2IFKFkZtIOAVnUp2/hj6TBF65heWaFEwbNGk594TtQrNxPsT7q9neBK6Y+e6Stwc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559835; c=relaxed/simple; bh=Nv/iP0PPlu7PYFQwI+jBPI8ffRylYj1zxIf1qEKb0tE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=A4iGJvtEEOl4BMeOru/JbKwtF0xt7kAM2vIjS+g1eRRZlWZqyOaod7H97w9Qw9TxkptgO7hdAOO0g8Fefex4xKAj2knC9vIOqe0VDgUgktdG1r2H6nsdeKZZoTE6ozDEDVRBZPdLVfxwdWSAkwbvW5xI9G29/vsgEswJ/u9ZHsI= 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=Meavvcpz; arc=none smtp.client-ip=74.125.224.98 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="Meavvcpz" Received: by mail-yx1-f98.google.com with SMTP id 956f58d0204a3-64305af3dffso268965d50.2 for ; Fri, 12 Dec 2025 09:17:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1765559830; x=1766164630; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ro8OsZF3uJAug4OtKve3tUbRbgxB29DrKAw1agkxt6A=; b=MeavvcpzqdlJMYBcwBc0mnEyFxzNxocWJ59dX4c95+WZtAYMrwyaMfcFPDGLZ/eihr NztHHNDgvIZHwPiJG5+voyiZvS+8wiJcvRefxEeXLlWwg9rUa6lOYQWlFR1FWiClNduq X6+KDRgimp3CDNNXi+/49G+P2xZLlDqz21ezUocPJnBAU63uSXVfK4lgA3lN53aaLZNL uo3QbCyoX2IZshopKy9Ta2PDr7VXuYL6/zKr6zexJ95tSHQbzdUhk2NX8/OxY4iDKnbb TyZW2K93zyRmf4ggx/sosAWNE2PmTrDTpEraeG5oZdYnFO5CeGN6Z60Iorwhcw5lUbKd M6pA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765559830; x=1766164630; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Ro8OsZF3uJAug4OtKve3tUbRbgxB29DrKAw1agkxt6A=; b=Is3ScQ35ggr5PXqBk7/OzA8S9SdFdsAsm0rcVMH6uWaP8xrRp//GvwL4b1zhLnVVyV uiL3et2fUEAUy9VojJsp9N8xMDyOr9lOcHB0cgy79v+D15Owxyry6CNrPaPusrnWrBft spiY/EnnQIE/JX6XmtWsmvm0b59oFLMC6UK/6r1KNb/YVjtF5EQNrxex7j/EKyTQMTQy 2yCpi5qpfvWV1jtD2qqK/msgL9HSeZZDnnOkIqNGHeV+0rXnm5NdSIfUZkPwIYIqPTRB gm9srmFFjkZvGtpMxI6l76xVLRgTFcW3ds+Uo3fNRjHiQ27VJDfAebf/IW7r5n00Xb3M oWLg== X-Forwarded-Encrypted: i=1; AJvYcCVle85zXT75/W3ZJ3uB2Xi1i7cSQF8lxmkmGye9/r0Aehj2Eyyo1jn5g89YbeFHdVAicQ52AvNjcR/hwfs=@vger.kernel.org X-Gm-Message-State: AOJu0YyyAxkkwb8WxVO7Wm9iws6QLTz3tFUqlcr9iQqjQCZ/zYwU7BkZ F9BoyzFBSaePhvugdgFPBd117iODOJsqo++ylXYlOzsMexK5XVy6lXS62JWJYS5NqfCJha/OlFt NmgQavY0iBhllln9hDgLOmtXkvK6Rx6g/LyRV X-Gm-Gg: AY/fxX4lXSEImA7klCtL2OiGD6/vke/ANtjIYSLW6aB44dRQ7erkfa5x1SYdahokQGW 07LeTNNRtHslN/+zALcUMJ/MJxzkDNUfePuEhsPOBY/RqAGdFlEVKUdSF+R0ASYi+t3d43r3rTg hyVPTnixKGNdbm/CChuJUiEaj3XUxYOV8X1TKdWkssldPsTLgsvt9VEYvyHraX/NYS+Yv4ZRr7F eZU3U/25nwUA+OSIqboecSk7OFhQJNSNUAGb+fkFYEkMcXRXKvQt/NgpVmBTx91ew7uLpKs130H MB+wMulBjTXcrG223zrRAgAID8MD/NRooh/7NEcyDh0khRPHGN3RQYIFulSoIkmRKbzyxYg+BSD EHSIjIBi4d5fh8RJhcb9s73BYw7p318HHfzW+8fxEaA== X-Google-Smtp-Source: AGHT+IFNTxmApTgusf4sfYV5PLHTCIAoG4zUHXYTcGDGNqkjjCZbCxVmDORyUEFBYVQ5XE3L2oQUlxV8Yis8 X-Received: by 2002:a05:690e:13c2:b0:63f:88f9:357e with SMTP id 956f58d0204a3-64555505a93mr1715261d50.0.1765559830171; Fri, 12 Dec 2025 09:17:10 -0800 (PST) Received: from c7-smtp-2023.dev.purestorage.com ([208.88.159.128]) by smtp-relay.gmail.com with ESMTPS id 00721157ae682-78e6a405735sm2336147b3.15.2025.12.12.09.17.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Dec 2025 09:17:10 -0800 (PST) X-Relaying-Domain: purestorage.com Received: from dev-csander.dev.purestorage.com (dev-csander.dev.purestorage.com [10.7.70.37]) by c7-smtp-2023.dev.purestorage.com (Postfix) with ESMTP id 3D00C34050E; Fri, 12 Dec 2025 10:17:09 -0700 (MST) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 3AB55E4232B; Fri, 12 Dec 2025 10:17:09 -0700 (MST) From: Caleb Sander Mateos To: Ming Lei , Shuah Khan Cc: linux-block@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH v3 2/9] selftests: ublk: correct last_rw map type in seq_io.bt Date: Fri, 12 Dec 2025 10:17:00 -0700 Message-ID: <20251212171707.1876250-3-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20251212171707.1876250-1-csander@purestorage.com> References: <20251212171707.1876250-1-csander@purestorage.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The last_rw map is initialized with a value of 0 but later assigned the value args.sector + args.nr_sector, which has type sector_t =3D u64. bpftrace complains about the type mismatch between int64 and uint64: trace/seq_io.bt:18:3-59: ERROR: Type mismatch for @last_rw: trying to assig= n value of type 'uint64' when map already contains a value of type 'int64' @last_rw[$dev, str($2)] =3D (args.sector + args.nr_sector); Cast the initial value to uint64 so bpftrace will load the program. Signed-off-by: Caleb Sander Mateos Reviewed-by: Ming Lei --- tools/testing/selftests/ublk/trace/seq_io.bt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/ublk/trace/seq_io.bt b/tools/testing/s= elftests/ublk/trace/seq_io.bt index 272ac54c9d5f..507a3ca05abf 100644 --- a/tools/testing/selftests/ublk/trace/seq_io.bt +++ b/tools/testing/selftests/ublk/trace/seq_io.bt @@ -2,11 +2,11 @@ $1: dev_t $2: RWBS $3: strlen($2) */ BEGIN { - @last_rw[$1, str($2)] =3D 0; + @last_rw[$1, str($2)] =3D (uint64)0; } tracepoint:block:block_rq_complete { $dev =3D $1; if ((int64)args.dev =3D=3D $1 && !strncmp(args.rwbs, str($2), $3)) { --=20 2.45.2 From nobody Sun Dec 14 05:56:49 2025 Received: from mail-pf1-f228.google.com (mail-pf1-f228.google.com [209.85.210.228]) (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 C287E2D7393 for ; Fri, 12 Dec 2025 17:17:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559832; cv=none; b=hhl2u53M7OYww5Hag+RY+HCPZhdtIxDKTzGHveFmf8kf8OmVkrBYG/DtFO30e4Q36YfN3XTUJJ+crNMe791/BiQQAwcj6ASxz4lmlUTHuTTf4khXtDe4V0tKmflkS7+VhEvkBBw7HrzsqJJB7/ihNsXZGZV3sbZtg4+xPtE4jx0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559832; c=relaxed/simple; bh=hMDvcWZRxsHgEupNzfRaoWl4qKW471diyO0Q/xWeRr8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PtTVF7vSJrZh4MoV0g8JMljV6Ne2TibTXzw3nsRhFuoxUfUxO6rDwSPK5+K01djFTQ1JNUkP5/q3szWHKZPfyqRbCI737wuRVdvYs7vSPCTdef+P7FC8YmhrJhW8CCqcyo5LbUBZQo5ozNB6XJ2Qqdhcjvo7mukr4MrZOfN+DqU= 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=Lz38eRs1; arc=none smtp.client-ip=209.85.210.228 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="Lz38eRs1" Received: by mail-pf1-f228.google.com with SMTP id d2e1a72fcca58-7b8c7a4f214so114265b3a.2 for ; Fri, 12 Dec 2025 09:17:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1765559830; x=1766164630; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5vaZfyTagTLiPkyNwQyOOZqa8fNIA0b68wD31umuEqc=; b=Lz38eRs1KR93kotP7e4HhjeUYRRUJMQ8C5T0VOG8Z8v2OUg3DYyUK/DOSNpXPsja+9 Gp5AlKKxs0HKjK/9XiqaNLijDpVuqMvvnPfa1/6SmSwlPIJf0vyy7YeEcHZIZi5ApIVl CxcmK9JbOR0mzJ0yHgctBSGntLXUbWTSazjx00waQa3ZdBPQMUB9xhmKn3i+gwuUZ3vq eBOQaJOdELxID/0ShJZYoRg84TIIQSSBoy3DF3N9ox+RM9WMpVucBiN97YaRWac3sVC8 8X0GBMAS9+N/hsts9t58GKWeIsVvasGRYzd7BAjMF73B1+mCMl8SRqMufpowzLY2cRsY UAOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765559830; x=1766164630; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5vaZfyTagTLiPkyNwQyOOZqa8fNIA0b68wD31umuEqc=; b=rXc5/BY9f/vJ+c6Vmm0qeM35enDEmVAOrbDy7YLxi8NBdwZVoZuOEq0LjMcizUREo0 YCLgCOYAPBWpS4zxJbbGHgztOZOFT8CORzNNgtvHmKLNCWPSPt2TMXhl602ja9cXI8FF AWnnmp4fXIr4vXp0NMOyNhRw+mFSGxPyaXyV+CdLUFJEdYCj+McQi+uJO/K2FDpU5p/L LmuOcORTBOHqxxWXWQzvJMkm3GSFCAVmCr82W93puN2XO245qoLArWAWwT4oaZYUnhLu gQWvsKRyjxeU0OalDnPbLTpEoOsXhmT8inru8KUa/bOwHuz988D6jTaXy2z6GmWHDXga ffFQ== X-Forwarded-Encrypted: i=1; AJvYcCVzFr/a9FEChrKo/sUoOm+I54p1IfW64OU/+l7RLCFN2xKbHhirtekqUbYWFFIKTnmlodpXGWCoWZ9GIqo=@vger.kernel.org X-Gm-Message-State: AOJu0YxAa/jTkHhvqJmWLzIRlzbVrqAm8f0SmPZKQKioyvdwIS0vADLB CbL6giledGkNq06PO4NZdkpkK6Se05BfIJQkanyZ12N9YR7MvhSHtzgo/AQwbhQ5xQS4xhfDJZZ +cNKO/yoiIrqmLJmu7+anaXbUhYCMPJ8bNiah X-Gm-Gg: AY/fxX62YiXkz2pNOoUP8qRwF2ZWT18ZdT2yIzE7FTr0wm4eaEQ0qPfx2gjn2SU2IR4 8aHRsAlkXLjsa1W2jFeldjbkCsg3yR9Mh1bbLVEC0RrNsWLUE8XAuk7yPEtc2G97MfFmxpJG9AO h/CnqCif7YSx7hLSPfTRDMj4PVvu/9qtA/JiC+MexNgHIwKKYF3pXazy6dpeFMLOVBTSIK9DA0/ NOCJ3tOzO+4UEmQQLVN6bki/Tvm3ymajHOj3DyStCNrnA18ORhNoy8DXa0APRresTsTw5UW5FWm I7HB4YVpoCbtETH1Lcd8fh33UpwWIB0Whp2Z0AtCMDi4YXqDagHkwNbY2o2O1f9ZIFlcbtExmk9 g9ANqwBdwmlN0MeaHljoyahEAoQ0VHKUROx6nrSUkVA== X-Google-Smtp-Source: AGHT+IH96LAecJgAV0OtPDEdr6lLIdVq3cjMdIk0JNIP2zsFKZMrRSd2mV+qKmbyfAADOWtK6riDrjBkekWW X-Received: by 2002:a05:6a20:72a8:b0:341:29af:3be7 with SMTP id adf61e73a8af0-369b05be897mr2150111637.7.1765559829956; Fri, 12 Dec 2025 09:17:09 -0800 (PST) Received: from c7-smtp-2023.dev.purestorage.com ([208.88.159.129]) by smtp-relay.gmail.com with ESMTPS id 41be03b00d2f7-c0c29639704sm672529a12.9.2025.12.12.09.17.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Dec 2025 09:17:09 -0800 (PST) X-Relaying-Domain: purestorage.com Received: from dev-csander.dev.purestorage.com (dev-csander.dev.purestorage.com [10.7.70.37]) by c7-smtp-2023.dev.purestorage.com (Postfix) with ESMTP id 6151434079F; Fri, 12 Dec 2025 10:17:09 -0700 (MST) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 5F518E4232B; Fri, 12 Dec 2025 10:17:09 -0700 (MST) From: Caleb Sander Mateos To: Ming Lei , Shuah Khan Cc: linux-block@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH v3 3/9] selftests: ublk: remove unused ios map in seq_io.bt Date: Fri, 12 Dec 2025 10:17:01 -0700 Message-ID: <20251212171707.1876250-4-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20251212171707.1876250-1-csander@purestorage.com> References: <20251212171707.1876250-1-csander@purestorage.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The ios map populated by seq_io.bt is never read, so remove it. Signed-off-by: Caleb Sander Mateos Reviewed-by: Ming Lei --- tools/testing/selftests/ublk/trace/seq_io.bt | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/testing/selftests/ublk/trace/seq_io.bt b/tools/testing/s= elftests/ublk/trace/seq_io.bt index 507a3ca05abf..b2f60a92b118 100644 --- a/tools/testing/selftests/ublk/trace/seq_io.bt +++ b/tools/testing/selftests/ublk/trace/seq_io.bt @@ -15,11 +15,10 @@ tracepoint:block:block_rq_complete printf("io_out_of_order: exp %llu actual %llu\n", args.sector, $last); } @last_rw[$dev, str($2)] =3D (args.sector + args.nr_sector); } - @ios =3D count(); } =20 END { clear(@last_rw); } --=20 2.45.2 From nobody Sun Dec 14 05:56:49 2025 Received: from mail-pf1-f227.google.com (mail-pf1-f227.google.com [209.85.210.227]) (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 C760D2D77EA for ; Fri, 12 Dec 2025 17:17:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.227 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559832; cv=none; b=fcck80bILk4Vg6ffXPY5YQNlQM3Wp7Qj+H/WS9NCKZfh+g+T6oFGbdpwEm5yYtQkBrK/CT/aqdpNQKH066zA39R/DBF74dZtdMz0UWUIbtElC3Vc7OE87akDzJ3gsi+0Z9xx7TBa1fomP0hYzdPcHmKgi2f0GsE+c88FsmUSQlM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559832; c=relaxed/simple; bh=+cVia0YqFLhrPDWq9CwKaca7IitMDAWFURSGq1uOQdI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qGSlEzeVZ0T3muhizrqHdSUoBcnJ5f183d9FFyyFjLuG+r74ITPl6TZFHJ3jw/7zGW8duhhxomWmv5TtVGY+E9HYJ+f38Kz3WxFYzi4uPmOCVdiSTmAoKX19R8wlodWghl8UqpupIN9pwst5U/r64UdwNr/iLpeaqQ+l8G9ZETg= 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=B3bH8foP; arc=none smtp.client-ip=209.85.210.227 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="B3bH8foP" Received: by mail-pf1-f227.google.com with SMTP id d2e1a72fcca58-7ab689d3fa0so106728b3a.0 for ; Fri, 12 Dec 2025 09:17:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1765559830; x=1766164630; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2NOEIyKTQ4B6JXoSeSWaOQfr++6G02m3bohInlhRqug=; b=B3bH8foPO+ABH5T9yflbvxpzwPNzv9sx0BXlHcMGxjexlzLql/byvG6zMYrwbVo40E bP/g5xEF3EhHeeR6jdU9FLxzmIs0ZjJuUoemdKiE8qaU1+IssDeDY3fNHCp5I4vhabgs 6UCVOC6/Mila12ivRHLmev+9CvDoRFHnImQz7nmpcyWoK6MTyXjhfBi+jNesHcGlP/3W HKjkzQMmFA5/BGjnJ3oU19qbuL+DEOY9EqgO6UFMyDFZi6MfG3fmQ/1Iet2N03AXYZCF XWkB/7596UJYyhZwuCTqTRVu1J9h5kx1G4+S3wVVGglXUkjzUD10NF46+uTfD1sqmp0o o31g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765559830; x=1766164630; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=2NOEIyKTQ4B6JXoSeSWaOQfr++6G02m3bohInlhRqug=; b=rmg54tcASJfZvH+i4DhRn6vQxGebjnC8MwNapRiXks7W0NP6XY7Uyj/25HJnZ3nqun +dzcc4/8fqPzoLOTz2mygkcTLxk3G00sjlpJsQXdUz4tVfMv+EYxkLiGOo9rhGuq6oYj IZNp82wONZzd4pqJ5rk4KWHgrHC5K/LHqH62nL9XlYBBRxNRJ46JoCu13me3V0Oc2FfW TRXuL4kev9BVT1efsgFSg9MH5no9uuEjz+Nw/Yhsmxy+rgM05JbJwUw2lZkPKBcYet3p seydLd4jCa3zcBbPixzkSbI1gRLZX+M4wLKOTjmhZYMaJwKgMfmadjSgC5SbbY9sc54R WyVA== X-Forwarded-Encrypted: i=1; AJvYcCWYed6w+potyC/4AiLitYpozuKXUf0+LB15IsF4zc3rzIJLg6Ilfw2uX4EmRJtbtU/vIyZL7Bx7QuCMXtg=@vger.kernel.org X-Gm-Message-State: AOJu0YyXu0lpvRQgkuJ+q0lvOcj38QZqdZVjHXWsVSO44YRvMwL9UWUy uCjsHZzyCoc9tfKW3m5xuApiJTqEaj+kIvK6gtdzP9t/JkS+ZooNV01QBcRda2SCaHGvpEr4Rm7 eni+w5somjozYYCDktrmDi90f0hK2qT9/yUj4 X-Gm-Gg: AY/fxX5i4JCdSzeJiaFLsovsuTR18AfNDSMmGAc5cWK1KBwf3bF4WOJAmR3hCTNqpHQ xHDbZf/VRMrELBTeeqhzdJlosCxk55r2LtGPN1svGl28/GdOF6hay2D2ViO/b0FVhRJUIGi9YGl NAutCPEn/DeBxscJD8KVevIFvrYVnp034ZJt8Q0MVHobLSn4Ec3V+wn887f8oml+w/uF95xUyA1 R5viqRiD3z6PWCu00YsV5B6NcvXSFKlvMo6Jhl9rxFL1VBPCP2JyTjt5hiCS3gdZ2uOHgakmyRs en4O9gfzNk/JVu6tekGTTTcwZMXBlSdwPqyN1uPTxCpCWsG+Nhrsjl1Zmiis9sjb0/HArmbqOxm 7RCxTUnL9EZK4O7SNDzO35qbL2K2y+VS2b8/ZpPt5QA== X-Google-Smtp-Source: AGHT+IHpDdHBoJHEFtsw5G8Q+oXhxmWs0OnZKWDZwJIWo8p+KqoHWDCCol6UB04IZ7qsvhQ8mmu9137r4gnv X-Received: by 2002:a05:6a00:234c:b0:7a2:855f:f88b with SMTP id d2e1a72fcca58-7f668dc54a6mr2346324b3a.3.1765559830118; Fri, 12 Dec 2025 09:17:10 -0800 (PST) Received: from c7-smtp-2023.dev.purestorage.com ([208.88.159.128]) by smtp-relay.gmail.com with ESMTPS id d2e1a72fcca58-7f4c276f23csm831520b3a.3.2025.12.12.09.17.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Dec 2025 09:17:10 -0800 (PST) X-Relaying-Domain: purestorage.com Received: from dev-csander.dev.purestorage.com (dev-csander.dev.purestorage.com [10.7.70.37]) by c7-smtp-2023.dev.purestorage.com (Postfix) with ESMTP id 8532A3407A6; Fri, 12 Dec 2025 10:17:09 -0700 (MST) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 8337FE4232B; Fri, 12 Dec 2025 10:17:09 -0700 (MST) From: Caleb Sander Mateos To: Ming Lei , Shuah Khan Cc: linux-block@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH v3 4/9] selftests: ublk: fix fio arguments in run_io_and_recover() Date: Fri, 12 Dec 2025 10:17:02 -0700 Message-ID: <20251212171707.1876250-5-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20251212171707.1876250-1-csander@purestorage.com> References: <20251212171707.1876250-1-csander@purestorage.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" run_io_and_recover() invokes fio with --size=3D"${size}", but the variable size doesn't exist. Thus, the argument expands to --size=3D, which causes fio to exit immediately with an error without issuing any I/O. Pass the value for size as the first argument to the function. Signed-off-by: Caleb Sander Mateos Reviewed-by: Ming Lei --- tools/testing/selftests/ublk/test_common.sh | 5 +++-- tools/testing/selftests/ublk/test_generic_04.sh | 2 +- tools/testing/selftests/ublk/test_generic_05.sh | 2 +- tools/testing/selftests/ublk/test_generic_11.sh | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/ublk/test_common.sh b/tools/testing/se= lftests/ublk/test_common.sh index 8a4dbd09feb0..6f1c042de40e 100755 --- a/tools/testing/selftests/ublk/test_common.sh +++ b/tools/testing/selftests/ublk/test_common.sh @@ -331,15 +331,16 @@ run_io_and_kill_daemon() fi } =20 run_io_and_recover() { - local action=3D$1 + local size=3D$1 + local action=3D$2 local state local dev_id =20 - shift 1 + shift 2 dev_id=3D$(_add_ublk_dev "$@") _check_add_dev "$TID" $? =20 fio --name=3Djob1 --filename=3D/dev/ublkb"${dev_id}" --ioengine=3Dlibaio \ --rw=3Drandread --iodepth=3D256 --size=3D"${size}" --numjobs=3D4 \ diff --git a/tools/testing/selftests/ublk/test_generic_04.sh b/tools/testin= g/selftests/ublk/test_generic_04.sh index 8b533217d4a1..baf5b156193d 100755 --- a/tools/testing/selftests/ublk/test_generic_04.sh +++ b/tools/testing/selftests/ublk/test_generic_04.sh @@ -6,11 +6,11 @@ TID=3D"generic_04" ERR_CODE=3D0 =20 ublk_run_recover_test() { - run_io_and_recover "kill_daemon" "$@" + run_io_and_recover 256M "kill_daemon" "$@" ERR_CODE=3D$? if [ ${ERR_CODE} -ne 0 ]; then echo "$TID failure: $*" _show_result $TID $ERR_CODE fi diff --git a/tools/testing/selftests/ublk/test_generic_05.sh b/tools/testin= g/selftests/ublk/test_generic_05.sh index 398e9e2b58e1..7b5083afc02a 100755 --- a/tools/testing/selftests/ublk/test_generic_05.sh +++ b/tools/testing/selftests/ublk/test_generic_05.sh @@ -6,11 +6,11 @@ TID=3D"generic_05" ERR_CODE=3D0 =20 ublk_run_recover_test() { - run_io_and_recover "kill_daemon" "$@" + run_io_and_recover 256M "kill_daemon" "$@" ERR_CODE=3D$? if [ ${ERR_CODE} -ne 0 ]; then echo "$TID failure: $*" _show_result $TID $ERR_CODE fi diff --git a/tools/testing/selftests/ublk/test_generic_11.sh b/tools/testin= g/selftests/ublk/test_generic_11.sh index a00357a5ec6b..d1f973c8c645 100755 --- a/tools/testing/selftests/ublk/test_generic_11.sh +++ b/tools/testing/selftests/ublk/test_generic_11.sh @@ -6,11 +6,11 @@ TID=3D"generic_11" ERR_CODE=3D0 =20 ublk_run_quiesce_recover() { - run_io_and_recover "quiesce_dev" "$@" + run_io_and_recover 256M "quiesce_dev" "$@" ERR_CODE=3D$? if [ ${ERR_CODE} -ne 0 ]; then echo "$TID failure: $*" _show_result $TID $ERR_CODE fi --=20 2.45.2 From nobody Sun Dec 14 05:56:49 2025 Received: from mail-pf1-f228.google.com (mail-pf1-f228.google.com [209.85.210.228]) (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 C3CA22D7DE6 for ; Fri, 12 Dec 2025 17:17:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559834; cv=none; b=bLyz+gVGkXmVqz6BFGmwKp9XPKGz12H73nqpXx9zlnnSJfpHtC2uniyhqNWav/QGRcf5VAg7ldFVKHsCbglgoDv0SL7ETKGZ3wE4I/SSLUcE/RKhfAmOuuVgkn+ooAOYsH6NKvydtzc7hhZLq54eqhMHX+MYPgPpPJCp2Ulpesw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559834; c=relaxed/simple; bh=10p2JvkCz7yhrUBuz2Ld/a2/xjutHAlTWQJCwGsKMAE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mP5CNHTNlEB88XxGrRq2bJamht//TUfX7CBDBUnZDVNShxKpAmRkX3cJEJOz2iOVBhp2J3LfBQ0jmG6YC/7CY3D+0G8yHWAv1pCi5blbZpdSbB1qZaKxDrjbLBvo8ikDRCoBAJDqA7pkzLAEIc9reIyIk9is4kb1E03xuwYtmws= 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=EhJnjFcl; arc=none smtp.client-ip=209.85.210.228 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="EhJnjFcl" Received: by mail-pf1-f228.google.com with SMTP id d2e1a72fcca58-7baa5787440so140289b3a.0 for ; Fri, 12 Dec 2025 09:17:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1765559830; x=1766164630; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=t84ae89m7Sn7pboO/Zmlj4sDWg4NpM9693HZfHYO+4A=; b=EhJnjFclCHrZGPamfpV64lrtpMsmtHWIlt5vqsQjZRY6l89v3XBzsiiqftc619dW7W vYCFpaRKGfVEmib3Wc0ReXPAz+WxSEVcESQyGNmM06Yte7hH2UQHv0FBYN8R1J3JmWHH w+uDHNcl6Rfub+ocfXN+6n7A1VACpaa+oe8jNCNwvghstYRzKxzuXuHbMU0hfYqKwd2u 4luLyM0p2oeIH1HUivSOkydSyTks6u9Yg7Er1XtMevXPz3I5OfePgZFsXCrIDJ3QtT8n lvgCz6xyOqY6Rx2+HL9w1EXA4QZmCrIS9hIIIBrP7FT7rojAehrsmzFRiQhp1tHvX0DA rziw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765559830; x=1766164630; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=t84ae89m7Sn7pboO/Zmlj4sDWg4NpM9693HZfHYO+4A=; b=cKlLLPP4L4uuqHW5lg6FH8JG9cveZKnrHnP9uIl+69Aqasp9o1hJAF/kIm6ydvRoOq JgQFIU5hqMnAQrrYJ0JV7W0UKwDoiJQtQAjIdXAERgyzR13+zzyFgJ/VLoMbgFOCFZ6z biRjrEsGVyoxH0SdxaiYRklk2/nag7x8rQH31wbSPlmTwbd9wEko9B3jB03DBgWuVrL0 hMYf19Ks4g3wKpkcw+SYHO1chJUkG0o0N6hVHu+ikiaG/zXxJpDegoA7G05i0M2et2fs G0wDdlaxPlTlpfZcBiaJ8DqPTCkrlLuVFzIjwJ+TuedcV8xGacwYxm/8SgSSNRLJgsL1 6UEQ== X-Forwarded-Encrypted: i=1; AJvYcCW0Lw20niXXTR8+vrb9HE3cbVbXZuJA1zuqtdnNPmft9jKFaahLXq+ide6hqbd9EjXFaDU5sFRDS7LXFhY=@vger.kernel.org X-Gm-Message-State: AOJu0Yx4H7E/MOu3NgCifKitzIczJPHOwsfxhjFJkk4FywlTjMq8CLnq KLmsJ1dDQai5OQGdbnpZ9jQn9bAEAMoxI8CimSZkjVKyxYXbcYfnWfVobjf8mHnfDoAU86RXqV6 ITeuUkP6z2z/mBJVvKjgkXAIyhgfyA1cLENO7 X-Gm-Gg: AY/fxX6U2Fx/S2pznc9a8z1BY8UGyBLUir2kcqT77qUU4ikh4XmxeR0J+Sz0LocfsO3 /EpWlCstiCqKDjavbx8goeXIMeK3Uyv4kGcA33UsdR0pNq7DeJ2eiRoW14KBSY7ywWFJou/SzQC oN/ZmIdQot4kZbJ2sOLUEBrsAR4n1OZ+W+klBy1C015nD88NrZJZbqjxwJk263hEQC/eT2xFg/X Fw3W35RUqGkCsqfdxligz8BX+OlWtFcBsG5nAqps8p6sQeyUL+/oMiVQ8MOIiPh/wAszJJo+36g zsGUUwb8kpG/f8QpNmbVkvNv2awt+cmuoZSW6yOa8nG308kT5LXkw9aEsLlnIbMNbTgUH/1k2Gv kDfnNMyywJi/PvllFQ+81Gufo4pYl3NpxRMKPtLm2qg== X-Google-Smtp-Source: AGHT+IFD5gHVVNWG6BaOT7P35MqSA1ymiemgVdEAiw2PQWit2v+TxRzmrZWLm3GqNrYoDxOX0x77xoAqfsLx X-Received: by 2002:a05:6a00:3d10:b0:7a2:864b:9c8e with SMTP id d2e1a72fcca58-7f6694a97f3mr2099355b3a.3.1765559830496; Fri, 12 Dec 2025 09:17:10 -0800 (PST) Received: from c7-smtp-2023.dev.purestorage.com ([208.88.159.128]) by smtp-relay.gmail.com with ESMTPS id d2e1a72fcca58-7f4bf6beb28sm871869b3a.0.2025.12.12.09.17.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Dec 2025 09:17:10 -0800 (PST) X-Relaying-Domain: purestorage.com Received: from dev-csander.dev.purestorage.com (dev-csander.dev.purestorage.com [10.7.70.37]) by c7-smtp-2023.dev.purestorage.com (Postfix) with ESMTP id A452A3409F2; Fri, 12 Dec 2025 10:17:09 -0700 (MST) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id A272EE4232B; Fri, 12 Dec 2025 10:17:09 -0700 (MST) From: Caleb Sander Mateos To: Ming Lei , Shuah Khan Cc: linux-block@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH v3 5/9] selftests: ublk: use auto_zc for PER_IO_DAEMON tests in stress_04 Date: Fri, 12 Dec 2025 10:17:03 -0700 Message-ID: <20251212171707.1876250-6-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20251212171707.1876250-1-csander@purestorage.com> References: <20251212171707.1876250-1-csander@purestorage.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" stress_04 is described as "run IO and kill ublk server(zero copy)" but the --per_io_tasks tests cases don't use zero copy. Plus, one of the test cases is duplicated. Add --auto_zc to these test cases and --auto_zc_fallback to one of the duplicated ones. This matches the test cases in stress_03. Signed-off-by: Caleb Sander Mateos Reviewed-by: Ming Lei --- tools/testing/selftests/ublk/test_stress_04.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/ublk/test_stress_04.sh b/tools/testing= /selftests/ublk/test_stress_04.sh index 3f901db4d09d..c0c926ce0539 100755 --- a/tools/testing/selftests/ublk/test_stress_04.sh +++ b/tools/testing/selftests/ublk/test_stress_04.sh @@ -38,14 +38,14 @@ if _have_feature "AUTO_BUF_REG"; then ublk_io_and_kill_daemon 256M -t stripe -q 4 --auto_zc --no_ublk_fixed_fd = "${UBLK_BACKFILES[1]}" "${UBLK_BACKFILES[2]}" & ublk_io_and_kill_daemon 8G -t null -q 4 -z --auto_zc --auto_zc_fallback & fi =20 if _have_feature "PER_IO_DAEMON"; then - ublk_io_and_kill_daemon 8G -t null -q 4 --nthreads 8 --per_io_tasks & - ublk_io_and_kill_daemon 256M -t loop -q 4 --nthreads 8 --per_io_tasks "${= UBLK_BACKFILES[0]}" & - ublk_io_and_kill_daemon 256M -t stripe -q 4 --nthreads 8 --per_io_tasks "= ${UBLK_BACKFILES[1]}" "${UBLK_BACKFILES[2]}" & - ublk_io_and_kill_daemon 8G -t null -q 4 --nthreads 8 --per_io_tasks & + ublk_io_and_kill_daemon 8G -t null -q 4 --auto_zc --nthreads 8 --per_io_t= asks & + ublk_io_and_kill_daemon 256M -t loop -q 4 --auto_zc --nthreads 8 --per_io= _tasks "${UBLK_BACKFILES[0]}" & + ublk_io_and_kill_daemon 256M -t stripe -q 4 --auto_zc --nthreads 8 --per_= io_tasks "${UBLK_BACKFILES[1]}" "${UBLK_BACKFILES[2]}" & + ublk_io_and_kill_daemon 8G -t null -q 4 -z --auto_zc --auto_zc_fallback -= -nthreads 8 --per_io_tasks & fi wait =20 _cleanup_test "stress" _show_result $TID $ERR_CODE --=20 2.45.2 From nobody Sun Dec 14 05:56:49 2025 Received: from mail-ot1-f100.google.com (mail-ot1-f100.google.com [209.85.210.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 9F8282D7DE8 for ; Fri, 12 Dec 2025 17:17:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.100 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559835; cv=none; b=LP9UEiE1rMnbUnzD9Mad5eD2nuc7LnzgPO01txqtKSFJh9QdKaz2bsQx9qPt5wEStA5/TS8p9dxkysTRfUI4mAXIqWPdQexWJrhToLACfwe+vrOCGdxGFRpGIycm7FU0/zlYsTo+Edhh7lbs/6jrP8sRVFS0i1B0Mphbw14KvPs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559835; c=relaxed/simple; bh=YPuVcHbnYS22d6hiURGBWQR+n+8hL0om5JxsTfAyHEE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=adG6nzI1khZktLUQ1Pz3l60kY9+uT/j9Iv8CxBbWDjyX94PKXoxn+9ocHPmVbQAZoZkde1aw/GH5H8r3tjC1mgzFA6eyMwnX+Dn7JOGFI3ADoDpBwlkwLhWait/qwT/gu47WI/baXQs/19Ya6cxgIaICKgfMvVSuPEDwXcTD+0o= 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=K6Raha8E; arc=none smtp.client-ip=209.85.210.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="K6Raha8E" Received: by mail-ot1-f100.google.com with SMTP id 46e09a7af769-7c76298289fso92808a34.3 for ; Fri, 12 Dec 2025 09:17:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1765559831; x=1766164631; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0N5v+Qnf2iY02nSmpCLdO2pcb5orICXH1PEBjkRChjU=; b=K6Raha8E3H6nbXlSquauYF9TLp5zzyc7PVPuiq7LbOalWe89nvNAzW1CEPjveCFftu zsqf2vwKZ+0C7ht5yzv4LhhliV+LVI/K3TxGfSjan0xB+wY/VKlJx9dsz5ixKmg9I2nl xPgXf+0BG9NMJjTHVyW9oU4GQKPVZ+UVmVfhN2t/tRnmrvbwxOjgzTAEscGThLdRcmrz v+ZVTFKLsdCIl6Tv/06qqS990ppNY3EQLT9M9opgAsE7SrFMkwDr8oF4BRjBUNzJrVXT M6Ls/bcGBFYISVAWyL1L34e+m16ZgRM1Oot0vC3IHc3TvWRwZn/FeWIN7TLhJEIxBXmY ry5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765559831; x=1766164631; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=0N5v+Qnf2iY02nSmpCLdO2pcb5orICXH1PEBjkRChjU=; b=s/kputWHqkDbHNx4UzeAUN74Mmtn0FeVMmQUqrpxh+IvhgIkvmY9O/zCvyxJjMamFL yHKBMX/G8VXYTQ2wMVi4GjAoJOq8t2TM8ilGjGh+9zVartwK/qx2inDowUYO/Hc0hpwX BRrl78CZxa9uZbS9y3lTsTuvzSLuaAaj9Oe5Yc02izacRu/FE6vPHzCtA9jx1D3m2ykS udacbEbYF63ecetI5XejDyAJSc1YrzGpbk/K1U7SO9SmtZUfIyDAf1+M9haJ6ZlO4bIb FUgbTwoua6Ak4wWFNDNGRE7AfJO02dkt3RdL/VwNVoEd0ENNWpyX7g301M92rZD4mMDH R4JA== X-Forwarded-Encrypted: i=1; AJvYcCXsiZsB2EXmdtQl1/8OsSyj/G5OHPL6Ea+LTrGG0sqs0cQkpWE7NIrcp+ERT/zPIr+1x2npj6DIT+g7PQs=@vger.kernel.org X-Gm-Message-State: AOJu0Ywrp5e27fZqvepMuY9H/xZ5eemFXLQxzo3WC4U4UIyKPTUafxb6 bJU4vjiiez0a9/IiB2whPML4A9rA+eM3p1lhYU79L2QqffNrTJp5JG/OHIVO+96NDtrrO+aMZA+ xKPsmJUYt8jOgCG1tIQAfbX9gIGtP8m4MV/En X-Gm-Gg: AY/fxX5hk5ObaubSAYWhFErhQPmASjWkC9ofIFN9Nq6KtXEeUjrww4mP6ou+m4Uoh4b KP9X837ztUFtRl71uCLvYb4DlM8WuoNWtvQgcbIN2mZv8Rx2xMxnRWWVbisd6l58ns03H+gtYAi eU6cABF3nTMt6ZyN7bpmekt/j+O8pQvMih419xJRM+ajUWsxH3OIFJuqu3CsulBoSeldIwvbNCP 6OmRP2SWISck8xuNU1nGgE/89IHPI85fYvvB6EQdVzY2wCC9OmDgf3hfySDw4xZ2KOwP8o7121o 2nWpXz4iqvK8l41RQDRj9KpXGoIZeNtK0IzH6VPeH++vXB7G4c46KyU+HMLcKj01E7S5gSnrgxY CHkblqqp31eklMmPyumVauYnOA+pi3+82X2rSlf4JuA== X-Google-Smtp-Source: AGHT+IEBD6jX7Ww+IQHxxqsewOUV0b+S5G2Tpohbpjk+hc1S1mfL5EZowmGcc1H0jPBMIqA1EEmegMce+Lv4 X-Received: by 2002:a05:6870:9a1c:b0:3ec:323e:b5e8 with SMTP id 586e51a60fabf-3f5f8371574mr1362511fac.0.1765559830613; Fri, 12 Dec 2025 09:17:10 -0800 (PST) Received: from c7-smtp-2023.dev.purestorage.com ([208.88.159.128]) by smtp-relay.gmail.com with ESMTPS id 586e51a60fabf-3f5fe30cae5sm289656fac.7.2025.12.12.09.17.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Dec 2025 09:17:10 -0800 (PST) X-Relaying-Domain: purestorage.com Received: from dev-csander.dev.purestorage.com (dev-csander.dev.purestorage.com [10.7.70.37]) by c7-smtp-2023.dev.purestorage.com (Postfix) with ESMTP id CA552341BBA; Fri, 12 Dec 2025 10:17:09 -0700 (MST) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id C81ABE4232B; Fri, 12 Dec 2025 10:17:09 -0700 (MST) From: Caleb Sander Mateos To: Ming Lei , Shuah Khan Cc: linux-block@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH v3 6/9] selftests: ublk: don't share backing files between ublk servers Date: Fri, 12 Dec 2025 10:17:04 -0700 Message-ID: <20251212171707.1876250-7-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20251212171707.1876250-1-csander@purestorage.com> References: <20251212171707.1876250-1-csander@purestorage.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" stress_04 is missing a wait between blocks of tests, meaning multiple ublk servers will be running in parallel using the same backing files. Add a wait after each section to ensure each backing file is in use by a single ublk server at a time. Signed-off-by: Caleb Sander Mateos Reviewed-by: Ming Lei --- tools/testing/selftests/ublk/test_stress_04.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/ublk/test_stress_04.sh b/tools/testing= /selftests/ublk/test_stress_04.sh index c0c926ce0539..efa8dc33234b 100755 --- a/tools/testing/selftests/ublk/test_stress_04.sh +++ b/tools/testing/selftests/ublk/test_stress_04.sh @@ -29,23 +29,25 @@ _create_backfile 1 128M _create_backfile 2 128M =20 ublk_io_and_kill_daemon 8G -t null -q 4 -z --no_ublk_fixed_fd & ublk_io_and_kill_daemon 256M -t loop -q 4 -z --no_ublk_fixed_fd "${UBLK_BA= CKFILES[0]}" & ublk_io_and_kill_daemon 256M -t stripe -q 4 -z "${UBLK_BACKFILES[1]}" "${U= BLK_BACKFILES[2]}" & +wait =20 if _have_feature "AUTO_BUF_REG"; then ublk_io_and_kill_daemon 8G -t null -q 4 --auto_zc & ublk_io_and_kill_daemon 256M -t loop -q 4 --auto_zc "${UBLK_BACKFILES[0]}= " & ublk_io_and_kill_daemon 256M -t stripe -q 4 --auto_zc --no_ublk_fixed_fd = "${UBLK_BACKFILES[1]}" "${UBLK_BACKFILES[2]}" & ublk_io_and_kill_daemon 8G -t null -q 4 -z --auto_zc --auto_zc_fallback & + wait fi =20 if _have_feature "PER_IO_DAEMON"; then ublk_io_and_kill_daemon 8G -t null -q 4 --auto_zc --nthreads 8 --per_io_t= asks & ublk_io_and_kill_daemon 256M -t loop -q 4 --auto_zc --nthreads 8 --per_io= _tasks "${UBLK_BACKFILES[0]}" & ublk_io_and_kill_daemon 256M -t stripe -q 4 --auto_zc --nthreads 8 --per_= io_tasks "${UBLK_BACKFILES[1]}" "${UBLK_BACKFILES[2]}" & ublk_io_and_kill_daemon 8G -t null -q 4 -z --auto_zc --auto_zc_fallback -= -nthreads 8 --per_io_tasks & + wait fi -wait =20 _cleanup_test "stress" _show_result $TID $ERR_CODE --=20 2.45.2 From nobody Sun Dec 14 05:56:49 2025 Received: from mail-pl1-f227.google.com (mail-pl1-f227.google.com [209.85.214.227]) (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 BE7632D7DC7 for ; Fri, 12 Dec 2025 17:17:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.227 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559834; cv=none; b=NBZncmGwgqzMJLnDvTfb2wtqflRua3S2rKOiemC5t9QGORZPSFrjKGkWtdrjt6Dc97qMmNjvjgqCfahdpS1sVMI7llDcO21YYC4p+wOrFd3fmxNh+YKal2BgfZAz7LxR6QgDJttqkYdHcgiKAU/EdpeGPurFSvBZEBVCaFF2d9w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559834; c=relaxed/simple; bh=hPIiNC1+/Ul2H1nCS4eIVMyitSwq0Uw4atB11NoOg3w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mnWDby8m6sIibSCn3W5vErBXVpbssXEp8pAgKaBqEhiZhzqWPvB72DvuMSuTpmGUUTFJUnJjVC6Q+4gIJLt4zzCSpVHy+IYm/Esl2+NCyEiv5WTvaF7Nri21gXlF+guGGjw2H1wfaGe2NmRdxu3tfEbAXFWeUKy/VJ4K5ARHRgc= 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=eSSBfKlP; arc=none smtp.client-ip=209.85.214.227 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="eSSBfKlP" Received: by mail-pl1-f227.google.com with SMTP id d9443c01a7336-2a08c65fceeso123375ad.2 for ; Fri, 12 Dec 2025 09:17:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1765559830; x=1766164630; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9yUeSg484LPlwnG9Kq89xJ26zoxj8oGQzdWDtSD7PIU=; b=eSSBfKlPQFpdhpEjEf1+YL9zY7UPrry9TrSKiKgab8sjkcESxY5GfJS7CqlS25jI2r Jp6cWJ6uIsBo9O0/Db4OT1fYMW+SR7BYoHyZ2EpC+3+fvmsuOuejAXVv273FPyryWwBF SZ5tlew/zQI1uaZ+EsoPFZxY/EDSNMwZaoDMzLHQeEP2DAiew9qVDGTDl6l52gKYkUUB 3dCatX2+4GZQPVJg2epQtDKcie0lL+T+PYaxvPBq8T99XYV6+fv3d7KggPonDCKK6fh7 RoOIIb6oB3WG4o+my/LMkKwWAvvO6eie5QchP+Bk3EcxGze49W95/S6dKFw8y0DMrhyz ILcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765559830; x=1766164630; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=9yUeSg484LPlwnG9Kq89xJ26zoxj8oGQzdWDtSD7PIU=; b=iu7kTSw3zYkCU0/L+LRSVRV+Ret3vGcFJ3PzCj14zBMa8ElyUPt44r+E7DHVF84dfV kzUa8lnJvZeNyaz0SvkwbjsEXygPYbvHMdxZ7c5Eos9w08eg8pjmqNfIzLmR3QNwClF2 VuVkRNVGaBVK9pw4VIA3zrhBrNr024WBIGB0L6FZCD99ugtqHYwAvtKCKkrhI3OCvK/W 8wspoDfQ6jQVVlt9KaTUo5j2OPL766wXXkyhJD8hG1IM4+jWVl0Be6czaKRo6FihUzmR fu3ITM3vqHGSJnn9WqTaF/TQGQHH854Bv8Ib6s5AaSEcVfmsKA74xHfAIVaAxJcioS3o Ulbw== X-Forwarded-Encrypted: i=1; AJvYcCVRvnuB5z8dBVV27e8rkYf6r+h46muf+Bp7ezPm/W8ZTFAF5Yi2Q53sMff/R4Mka8whwHDpPbj1PiDADjs=@vger.kernel.org X-Gm-Message-State: AOJu0YwF2RkePkqmRJ1t3f10wbb4XnFHDD7GgkkpqmFo8WZeJ5MHIgXd vqSQv92O/D5Qrbfi8ZKclYhHyvbWktZWRODSJ6ZsdhPn2PWFsCcCj29yeUmcCOrl69Yyk19rvzm DOb63DgPoPzTHT1qPW3/MJBUZa+R1bPhKoKxiVhHMxQMJsOy39XEA X-Gm-Gg: AY/fxX6Il7bfK+ga5VoNjDh76vDWKXtV8b8QZZ9k68Cm7W/gQL8cpPV/zA/Jr6cuQMB mCw2+rEl/rxMtRU+2YYG+slDfrxz7DH5ZJzGqHfvwLLb8yK4ubQPiogkTs0tJ2uIdyR08apKoVQ SeyF5jAKDuqcuUsJYU4zbk64hpXt7Z2TLIlcyBZBTb2bzIZ3pNYP/ALH5KLaKWoK9gCOci/UsAf UuoCDkO44I4AISDI0LJjyIJuiKL6rjXrZ0oU3hYigBSdA/9EzlMNFyrJ39tj8Bm+Q/Sbq3+mDRk GWoVe/jQtk63LqxFZKLi0XvWhQeef8pIY8J08jfcLbCppHFyu16n+RYnIbZJ5wcEtL++zIvghxf F3LmFAStBEWYHvtPjf1x7MInvArw= X-Google-Smtp-Source: AGHT+IEbfoe32paZweyOPDkuXvizadBFpFIsjkgJtJbQ2tnZucwBUDmmD4hh6aIHwvuMRz00hNAN6TCkuBCH X-Received: by 2002:a17:903:11d0:b0:299:db45:c5a9 with SMTP id d9443c01a7336-29f244d0d77mr22404615ad.9.1765559830547; Fri, 12 Dec 2025 09:17:10 -0800 (PST) Received: from c7-smtp-2023.dev.purestorage.com ([2620:125:9017:12:36:3:5:0]) by smtp-relay.gmail.com with ESMTPS id d9443c01a7336-29f2f7acae8sm2502465ad.19.2025.12.12.09.17.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Dec 2025 09:17:10 -0800 (PST) X-Relaying-Domain: purestorage.com Received: from dev-csander.dev.purestorage.com (unknown [IPv6:2620:125:9007:640:ffff::1199]) by c7-smtp-2023.dev.purestorage.com (Postfix) with ESMTP id E2190341CB6; Fri, 12 Dec 2025 10:17:09 -0700 (MST) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id DFBE3E4232B; Fri, 12 Dec 2025 10:17:09 -0700 (MST) From: Caleb Sander Mateos To: Ming Lei , Shuah Khan Cc: linux-block@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH v3 7/9] selftests: ublk: forbid multiple data copy modes Date: Fri, 12 Dec 2025 10:17:05 -0700 Message-ID: <20251212171707.1876250-8-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20251212171707.1876250-1-csander@purestorage.com> References: <20251212171707.1876250-1-csander@purestorage.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The kublk mock ublk server allows multiple data copy mode arguments to be passed on the command line (--zero_copy, --get_data, and --auto_zc). The ublk device will be created with all the requested feature flags, however kublk will only use one of the modes to interact with request data (arbitrarily preferring auto_zc over zero_copy over get_data). To clarify the intent of the test, don't allow multiple data copy modes to be specified. --zero_copy and --auto_zc are allowed together for --auto_zc_fallback, which uses both copy modes. Don't set UBLK_F_USER_COPY for zero_copy, as it's a separate feature. Fix the test cases in test_stress_05 passing --get_data along with --zero_copy or --auto_zc. Signed-off-by: Caleb Sander Mateos Reviewed-by: Ming Lei --- tools/testing/selftests/ublk/kublk.c | 11 ++++++++++- tools/testing/selftests/ublk/test_stress_05.sh | 10 +++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/ublk/kublk.c b/tools/testing/selftests= /ublk/kublk.c index f8fa102a627f..4dd02cb083ba 100644 --- a/tools/testing/selftests/ublk/kublk.c +++ b/tools/testing/selftests/ublk/kublk.c @@ -1611,11 +1611,11 @@ int main(int argc, char *argv[]) break; case 'd': ctx.queue_depth =3D strtol(optarg, NULL, 10); break; case 'z': - ctx.flags |=3D UBLK_F_SUPPORT_ZERO_COPY | UBLK_F_USER_COPY; + ctx.flags |=3D UBLK_F_SUPPORT_ZERO_COPY; break; case 'r': value =3D strtol(optarg, NULL, 10); if (value) ctx.flags |=3D UBLK_F_USER_RECOVERY; @@ -1684,10 +1684,19 @@ int main(int argc, char *argv[]) "F_AUTO_BUF_REG nor F_SUPPORT_ZERO_COPY is enabled\n", __func__); return -EINVAL; } =20 + if (!!(ctx.flags & UBLK_F_NEED_GET_DATA) + + !!(ctx.flags & UBLK_F_USER_COPY) + + (ctx.flags & UBLK_F_SUPPORT_ZERO_COPY && !ctx.auto_zc_fallback) + + (ctx.flags & UBLK_F_AUTO_BUF_REG && !ctx.auto_zc_fallback) + + ctx.auto_zc_fallback > 1) { + fprintf(stderr, "too many data copy modes specified\n"); + return -EINVAL; + } + i =3D optind; while (i < argc && ctx.nr_files < MAX_BACK_FILES) { ctx.files[ctx.nr_files++] =3D argv[i++]; } =20 diff --git a/tools/testing/selftests/ublk/test_stress_05.sh b/tools/testing= /selftests/ublk/test_stress_05.sh index 274295061042..68a194144302 100755 --- a/tools/testing/selftests/ublk/test_stress_05.sh +++ b/tools/testing/selftests/ublk/test_stress_05.sh @@ -56,21 +56,21 @@ for reissue in $(seq 0 1); do wait done =20 if _have_feature "ZERO_COPY"; then for reissue in $(seq 0 1); do - ublk_io_and_remove 8G -t null -q 4 -g -z -r 1 -i "$reissue" & - ublk_io_and_remove 256M -t loop -q 4 -g -z -r 1 -i "$reissue" "${UBLK_BA= CKFILES[1]}" & + ublk_io_and_remove 8G -t null -q 4 -z -r 1 -i "$reissue" & + ublk_io_and_remove 256M -t loop -q 4 -z -r 1 -i "$reissue" "${UBLK_BACKF= ILES[1]}" & wait done fi =20 if _have_feature "AUTO_BUF_REG"; then for reissue in $(seq 0 1); do - ublk_io_and_remove 8G -t null -q 4 -g --auto_zc -r 1 -i "$reissue" & - ublk_io_and_remove 256M -t loop -q 4 -g --auto_zc -r 1 -i "$reissue" "${= UBLK_BACKFILES[1]}" & - ublk_io_and_remove 8G -t null -q 4 -g -z --auto_zc --auto_zc_fallback -r= 1 -i "$reissue" & + ublk_io_and_remove 8G -t null -q 4 --auto_zc -r 1 -i "$reissue" & + ublk_io_and_remove 256M -t loop -q 4 --auto_zc -r 1 -i "$reissue" "${UBL= K_BACKFILES[1]}" & + ublk_io_and_remove 8G -t null -q 4 -z --auto_zc --auto_zc_fallback -r 1 = -i "$reissue" & wait done fi =20 if _have_feature "PER_IO_DAEMON"; then --=20 2.45.2 From nobody Sun Dec 14 05:56:49 2025 Received: from mail-pf1-f225.google.com (mail-pf1-f225.google.com [209.85.210.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 9FAB32D7810 for ; Fri, 12 Dec 2025 17:17:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.225 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559835; cv=none; b=IztbkpmHBKvE3e8YI1ZgncMu0nYPWIbuylJIcNygWHWA+7YL3oA5gF36U7hx0xM+9U0Ees/GIQjo2aMZCliNBKomw6d4eUbOg/IvlM8+IE8UX5WQOKrYKo3TQSFnqXy6xL+6ACB0K0pzMOfxBBKyjT6WquANRCzTu+7VyOtOfKc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559835; c=relaxed/simple; bh=caTAQpgh+X4ZpNyyMAM/TEMWro2kQrWFU3FikG62sB8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Qy8o2gwxfSqJtJcL6HpKTiavVZkYVJLVCMOfxd+o0itbs53U6tHmKKwtB3SA2uLRPCRKVQ6K8b3w6FNqKZT4FurTtTWhGiyzjWUznqQL5V3XvMh+KzsJfikmArI+6xxcRn+CaGgwtWo0a4ZIG1VTTDZx4KYxaOlNv3O8Qh5PkwQ= 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=TdjZ4mrZ; arc=none smtp.client-ip=209.85.210.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="TdjZ4mrZ" Received: by mail-pf1-f225.google.com with SMTP id d2e1a72fcca58-7baa5787440so140290b3a.0 for ; Fri, 12 Dec 2025 09:17:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1765559831; x=1766164631; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wJkrjtWt8tg1UlZG0whiJ8Js6OX17UUxfoijWx05xpE=; b=TdjZ4mrZIWtRMezCKrNMZ1r0/7kMfQBpIXccCEzT2k3dF5Gqc6fi1ND4GZQpnERPnG JvdDkTirwc0eY8PSDRU+icS2zyK3MCfYsc7V6xZKmX71aUkQyAtw9qB1JsFI0tMGKzIF I1apcOV10A5YkQP1TiQ5J+c4lSQAwqzouaFuligoMeQ2gV0e1Zq6eew/iyI9S8mqhGZb 22sw0O5+Ong7lTKl55hXtaVHWjmT019yT5nqgyZj8Q5rM55T0NcgrAB2DbHH29V3b4PW z9AVJZLdMmNH4UfzHbypJygbGd5fDfmOXAaBIUhVIL7ZlsxZeuU3s6CTp6QQNuW8u6vs iOag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765559831; x=1766164631; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wJkrjtWt8tg1UlZG0whiJ8Js6OX17UUxfoijWx05xpE=; b=Kh5o5iiwna5vcmpM85u85C2wucRQw0uCQNBuTCyzVP5bBUdgMHcHKmflulz7mcLyaC tKcC4p5F/TX1uOMbUB4EIY090h431d1j6Bp1jd7eFKcXWwGa40JolFQPVSuFb5pO8qBN J8IMj5EHkVJIEgYw83D2XvoDcRSyh3PNn7rpah6NuGxpZOICaVSg4AGQnwdU6imxoh1F 7m7jJXG21pHlSZ8YKDvqwITnELyt+MwHA2VDMu87IaHa6M6l8JBQklYH8HZWVgDJyHTB txx9qfh+W2Xs7Y1JESes5NU6TF+Qs1ULcx9w1v3pCX4p+DdvxzYDBQB4VDwc2rwJuVLp Er8Q== X-Forwarded-Encrypted: i=1; AJvYcCX1iv4WjETjaMuPuG4A17rHPaTHc24Oy8f+uqjAy95VrwZrvRPGeXV5AM60oPB7x+nrknjtKaVPVWU6xuQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyX4Ya56YbswVtnIWPOZF3BvDxFJqjXdGYz6RO3iF+QLHWaZGxh KTwkEw74nZEW3RdpgEu1sjw6BoG8IdzzYcPt0NfCDLIuE17c1qnhzPxRu65m7MnCBtIsNOuv8+O 4AbuTu8smQnRmm+IJvrynwn1UYL8YutwGxGC/VOhmXsy0slroBGug X-Gm-Gg: AY/fxX649RerNT5AL7ud8JY7ghHi0oDEp1DwGHdmYGQ4exTJJUPnfi8DrMxHEjxZ5j3 aMfq2RDsFuqEN48mocA/xDge2q6ci/+ql0nUPceyyLtHDaltMe3AX2lS6z5A/4DbZVVVovvpctI 3z2E2yCgFNsy5O4i1ot76H8qDc/8SxA7EvciDlavqg09RjTOcMkRVP2jpil2QsDmnDqg5MWI4EK gqL44UcfDwLHcQ0enLAKa2RFbtxMUqLOF6KmsR0JVnnroZ4wso7729oJcbBLmaWwvT1QCCX5/CA 3UB6sxyCTmrQMuB8qsgPENv/m6G5jtyUWKUXNiVeETaxDltVUotWXj8rqylTakpVH+GZWOnPUi/ lFjlE0KwfOT63FdqhDxIJjL+vt4w= X-Google-Smtp-Source: AGHT+IFJ1GUZ3zmhMWmiVdh2barweJoIDrDdZVhEKQI9IfIoy3Skf6Q+Q0nnC05JxyFRtimaqOYT2cExBqPx X-Received: by 2002:a05:7022:ec0b:b0:11a:c044:ec44 with SMTP id a92af1059eb24-11f34873681mr1111693c88.0.1765559830571; Fri, 12 Dec 2025 09:17:10 -0800 (PST) Received: from c7-smtp-2023.dev.purestorage.com ([2620:125:9017:12:36:3:5:0]) by smtp-relay.gmail.com with ESMTPS id a92af1059eb24-11f2e2fe356sm1027197c88.5.2025.12.12.09.17.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Dec 2025 09:17:10 -0800 (PST) X-Relaying-Domain: purestorage.com Received: from dev-csander.dev.purestorage.com (unknown [IPv6:2620:125:9007:640:ffff::1199]) by c7-smtp-2023.dev.purestorage.com (Postfix) with ESMTP id 0BAAD3404B4; Fri, 12 Dec 2025 10:17:10 -0700 (MST) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 096E9E4232B; Fri, 12 Dec 2025 10:17:10 -0700 (MST) From: Caleb Sander Mateos To: Ming Lei , Shuah Khan Cc: linux-block@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH v3 8/9] selftests: ublk: add support for user copy to kublk Date: Fri, 12 Dec 2025 10:17:06 -0700 Message-ID: <20251212171707.1876250-9-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20251212171707.1876250-1-csander@purestorage.com> References: <20251212171707.1876250-1-csander@purestorage.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The ublk selftests mock ublk server kublk supports every data copy mode except user copy. Add support for user copy to kublk, enabled via the --user_copy (-u) command line argument. On writes, issue pread() calls to copy the write data into the ublk_io's buffer before dispatching the write to the target implementation. On reads, issue pwrite() calls to copy read data from the ublk_io's buffer before committing the request. Copy in 2 KB chunks to provide some coverage of the offseting logic. Signed-off-by: Caleb Sander Mateos Reviewed-by: Ming Lei --- tools/testing/selftests/ublk/file_backed.c | 7 +-- tools/testing/selftests/ublk/kublk.c | 53 ++++++++++++++++++++-- tools/testing/selftests/ublk/kublk.h | 11 +++++ tools/testing/selftests/ublk/stripe.c | 2 +- 4 files changed, 64 insertions(+), 9 deletions(-) diff --git a/tools/testing/selftests/ublk/file_backed.c b/tools/testing/sel= ftests/ublk/file_backed.c index cd9fe69ecce2..269d5f124e06 100644 --- a/tools/testing/selftests/ublk/file_backed.c +++ b/tools/testing/selftests/ublk/file_backed.c @@ -32,12 +32,13 @@ static int loop_queue_tgt_rw_io(struct ublk_thread *t, = struct ublk_queue *q, { unsigned ublk_op =3D ublksrv_get_op(iod); unsigned zc =3D ublk_queue_use_zc(q); unsigned auto_zc =3D ublk_queue_use_auto_zc(q); enum io_uring_op op =3D ublk_to_uring_op(iod, zc | auto_zc); + struct ublk_io *io =3D ublk_get_io(q, tag); struct io_uring_sqe *sqe[3]; - void *addr =3D (zc | auto_zc) ? NULL : (void *)iod->addr; + void *addr =3D io->buf_addr; =20 if (!zc || auto_zc) { ublk_io_alloc_sqes(t, sqe, 1); if (!sqe[0]) return -ENOMEM; @@ -54,11 +55,11 @@ static int loop_queue_tgt_rw_io(struct ublk_thread *t, = struct ublk_queue *q, return 1; } =20 ublk_io_alloc_sqes(t, sqe, 3); =20 - io_uring_prep_buf_register(sqe[0], q, tag, q->q_id, ublk_get_io(q, tag)->= buf_index); + io_uring_prep_buf_register(sqe[0], q, tag, q->q_id, io->buf_index); sqe[0]->flags |=3D IOSQE_CQE_SKIP_SUCCESS | IOSQE_IO_HARDLINK; sqe[0]->user_data =3D build_user_data(tag, ublk_cmd_op_nr(sqe[0]->cmd_op), 0, q->q_id, 1); =20 io_uring_prep_rw(op, sqe[1], ublk_get_registered_fd(q, 1) /*fds[1]*/, 0, @@ -66,11 +67,11 @@ static int loop_queue_tgt_rw_io(struct ublk_thread *t, = struct ublk_queue *q, iod->start_sector << 9); sqe[1]->buf_index =3D tag; sqe[1]->flags |=3D IOSQE_FIXED_FILE | IOSQE_IO_HARDLINK; sqe[1]->user_data =3D build_user_data(tag, ublk_op, 0, q->q_id, 1); =20 - io_uring_prep_buf_unregister(sqe[2], q, tag, q->q_id, ublk_get_io(q, tag)= ->buf_index); + io_uring_prep_buf_unregister(sqe[2], q, tag, q->q_id, io->buf_index); sqe[2]->user_data =3D build_user_data(tag, ublk_cmd_op_nr(sqe[2]->cmd_op)= , 0, q->q_id, 1); =20 return 2; } =20 diff --git a/tools/testing/selftests/ublk/kublk.c b/tools/testing/selftests= /ublk/kublk.c index 4dd02cb083ba..185ba553686a 100644 --- a/tools/testing/selftests/ublk/kublk.c +++ b/tools/testing/selftests/ublk/kublk.c @@ -594,10 +594,42 @@ static void ublk_set_auto_buf_reg(const struct ublk_q= ueue *q, buf.flags =3D UBLK_AUTO_BUF_REG_FALLBACK; =20 sqe->addr =3D ublk_auto_buf_reg_to_sqe_addr(&buf); } =20 +/* Copy in pieces to test the buffer offset logic */ +#define UBLK_USER_COPY_LEN 2048 + +static void ublk_user_copy(const struct ublk_io *io, __u8 match_ublk_op) +{ + const struct ublk_queue *q =3D ublk_io_to_queue(io); + const struct ublksrv_io_desc *iod =3D ublk_get_iod(q, io->tag); + __u64 off =3D ublk_user_copy_offset(q->q_id, io->tag); + __u8 ublk_op =3D ublksrv_get_op(iod); + __u32 len =3D iod->nr_sectors << 9; + void *addr =3D io->buf_addr; + + if (ublk_op !=3D match_ublk_op) + return; + + while (len) { + __u32 copy_len =3D min(len, UBLK_USER_COPY_LEN); + ssize_t copied; + + if (ublk_op =3D=3D UBLK_IO_OP_WRITE) + copied =3D pread(q->ublk_fd, addr, copy_len, off); + else if (ublk_op =3D=3D UBLK_IO_OP_READ) + copied =3D pwrite(q->ublk_fd, addr, copy_len, off); + else + assert(0); + assert(copied =3D=3D (ssize_t)copy_len); + addr +=3D copy_len; + off +=3D copy_len; + len -=3D copy_len; + } +} + int ublk_queue_io_cmd(struct ublk_thread *t, struct ublk_io *io) { struct ublk_queue *q =3D ublk_io_to_queue(io); struct ublksrv_io_cmd *cmd; struct io_uring_sqe *sqe[1]; @@ -616,13 +648,16 @@ int ublk_queue_io_cmd(struct ublk_thread *t, struct u= blk_io *io) (UBLKS_IO_NEED_FETCH_RQ | UBLKS_IO_NEED_COMMIT_RQ_COMP | UBLKS_IO_NEED_G= ET_DATA))) return 0; =20 if (io->flags & UBLKS_IO_NEED_GET_DATA) cmd_op =3D UBLK_U_IO_NEED_GET_DATA; - else if (io->flags & UBLKS_IO_NEED_COMMIT_RQ_COMP) + else if (io->flags & UBLKS_IO_NEED_COMMIT_RQ_COMP) { + if (ublk_queue_use_user_copy(q)) + ublk_user_copy(io, UBLK_IO_OP_READ); + cmd_op =3D UBLK_U_IO_COMMIT_AND_FETCH_REQ; - else if (io->flags & UBLKS_IO_NEED_FETCH_RQ) + } else if (io->flags & UBLKS_IO_NEED_FETCH_RQ) cmd_op =3D UBLK_U_IO_FETCH_REQ; =20 if (io_uring_sq_space_left(&t->ring) < 1) io_uring_submit(&t->ring); =20 @@ -647,11 +682,11 @@ int ublk_queue_io_cmd(struct ublk_thread *t, struct u= blk_io *io) else sqe[0]->flags =3D IOSQE_FIXED_FILE; sqe[0]->rw_flags =3D 0; cmd->tag =3D io->tag; cmd->q_id =3D q->q_id; - if (!ublk_queue_no_buf(q)) + if (!ublk_queue_no_buf(q) && !ublk_queue_use_user_copy(q)) cmd->addr =3D (__u64) (uintptr_t) io->buf_addr; else cmd->addr =3D 0; =20 if (ublk_queue_use_auto_zc(q)) @@ -749,10 +784,14 @@ static void ublk_handle_uring_cmd(struct ublk_thread = *t, io->flags &=3D ~UBLKS_IO_NEED_FETCH_RQ; } =20 if (cqe->res =3D=3D UBLK_IO_RES_OK) { assert(tag < q->q_depth); + + if (ublk_queue_use_user_copy(q)) + ublk_user_copy(io, UBLK_IO_OP_WRITE); + if (q->tgt_ops->queue_io) q->tgt_ops->queue_io(t, q, tag); } else if (cqe->res =3D=3D UBLK_IO_RES_NEED_GET_DATA) { io->flags |=3D UBLKS_IO_NEED_GET_DATA | UBLKS_IO_FREE; ublk_queue_io_cmd(t, io); @@ -1505,11 +1544,11 @@ static void __cmd_create_help(char *exe, bool recov= ery) { int i; =20 printf("%s %s -t [null|loop|stripe|fault_inject] [-q nr_queues] [-d depth= ] [-n dev_id]\n", exe, recovery ? "recover" : "add"); - printf("\t[--foreground] [--quiet] [-z] [--auto_zc] [--auto_zc_fallback] = [--debug_mask mask] [-r 0|1 ] [-g]\n"); + printf("\t[--foreground] [--quiet] [-z] [--auto_zc] [--auto_zc_fallback] = [--debug_mask mask] [-r 0|1] [-g] [-u]\n"); printf("\t[-e 0|1 ] [-i 0|1] [--no_ublk_fixed_fd]\n"); printf("\t[--nthreads threads] [--per_io_tasks]\n"); printf("\t[target options] [backfile1] [backfile2] ...\n"); printf("\tdefault: nr_queues=3D2(max 32), depth=3D128(max 1024), dev_id= =3D-1(auto allocation)\n"); printf("\tdefault: nthreads=3Dnr_queues"); @@ -1566,10 +1605,11 @@ int main(int argc, char *argv[]) { "recovery_fail_io", 1, NULL, 'e'}, { "recovery_reissue", 1, NULL, 'i'}, { "get_data", 1, NULL, 'g'}, { "auto_zc", 0, NULL, 0 }, { "auto_zc_fallback", 0, NULL, 0 }, + { "user_copy", 0, NULL, 'u'}, { "size", 1, NULL, 's'}, { "nthreads", 1, NULL, 0 }, { "per_io_tasks", 0, NULL, 0 }, { "no_ublk_fixed_fd", 0, NULL, 0 }, { 0, 0, 0, 0 } @@ -1591,11 +1631,11 @@ int main(int argc, char *argv[]) if (argc =3D=3D 1) return ret; =20 opterr =3D 0; optind =3D 2; - while ((opt =3D getopt_long(argc, argv, "t:n:d:q:r:e:i:s:gaz", + while ((opt =3D getopt_long(argc, argv, "t:n:d:q:r:e:i:s:gazu", longopts, &option_idx)) !=3D -1) { switch (opt) { case 'a': ctx.all =3D 1; break; @@ -1631,10 +1671,13 @@ int main(int argc, char *argv[]) ctx.flags |=3D UBLK_F_USER_RECOVERY | UBLK_F_USER_RECOVERY_REISSUE; break; case 'g': ctx.flags |=3D UBLK_F_NEED_GET_DATA; break; + case 'u': + ctx.flags |=3D UBLK_F_USER_COPY; + break; case 's': ctx.size =3D strtoull(optarg, NULL, 10); break; case 0: if (!strcmp(longopts[option_idx].name, "debug_mask")) diff --git a/tools/testing/selftests/ublk/kublk.h b/tools/testing/selftests= /ublk/kublk.h index 6e8f381f3481..8a83b90ec603 100644 --- a/tools/testing/selftests/ublk/kublk.h +++ b/tools/testing/selftests/ublk/kublk.h @@ -206,10 +206,16 @@ extern int ublk_queue_io_cmd(struct ublk_thread *t, s= truct ublk_io *io); static inline int ublk_io_auto_zc_fallback(const struct ublksrv_io_desc *i= od) { return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); } =20 +static inline __u64 ublk_user_copy_offset(unsigned q_id, unsigned tag) +{ + return UBLKSRV_IO_BUF_OFFSET + + ((__u64)q_id << UBLK_QID_OFF | (__u64)tag << UBLK_TAG_OFF); +} + static inline int is_target_io(__u64 user_data) { return (user_data & (1ULL << 63)) !=3D 0; } =20 @@ -403,10 +409,15 @@ static inline bool ublk_queue_use_auto_zc(const struc= t ublk_queue *q) static inline bool ublk_queue_auto_zc_fallback(const struct ublk_queue *q) { return !!(q->flags & UBLKS_Q_AUTO_BUF_REG_FALLBACK); } =20 +static inline bool ublk_queue_use_user_copy(const struct ublk_queue *q) +{ + return !!(q->flags & UBLK_F_USER_COPY); +} + static inline int ublk_queue_no_buf(const struct ublk_queue *q) { return ublk_queue_use_zc(q) || ublk_queue_use_auto_zc(q); } =20 diff --git a/tools/testing/selftests/ublk/stripe.c b/tools/testing/selftest= s/ublk/stripe.c index 791fa8dc1651..fd412e1f01c0 100644 --- a/tools/testing/selftests/ublk/stripe.c +++ b/tools/testing/selftests/ublk/stripe.c @@ -132,11 +132,11 @@ static int stripe_queue_tgt_rw_io(struct ublk_thread = *t, struct ublk_queue *q, enum io_uring_op op =3D stripe_to_uring_op(iod, zc | auto_zc); struct io_uring_sqe *sqe[NR_STRIPE]; struct stripe_array *s =3D alloc_stripe_array(conf, iod); struct ublk_io *io =3D ublk_get_io(q, tag); int i, extra =3D zc ? 2 : 0; - void *base =3D (zc | auto_zc) ? NULL : (void *)iod->addr; + void *base =3D io->buf_addr; =20 io->private_data =3D s; calculate_stripe_array(conf, iod, s, base); =20 ublk_io_alloc_sqes(t, sqe, s->nr + extra); --=20 2.45.2 From nobody Sun Dec 14 05:56:49 2025 Received: from mail-yw1-f228.google.com (mail-yw1-f228.google.com [209.85.128.228]) (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 2F52D2D8783 for ; Fri, 12 Dec 2025 17:17:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559836; cv=none; b=rQ4fPtUvt6xJ+ePye46m151pL82CKvDTYmhVSPZO5y8SlhK/XPAc+3XAFmOyaXK7WGXcX7bva4/tk3VDBrhhd2+KfKqxmaH4ZGfZtlOFzJPMxHMWTSxeqq7R7+saQ9mYICppoFCM5EjAr+2gkasAQw1wgIyRzdwyjQEAlrXZCwE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765559836; c=relaxed/simple; bh=llE0JIIYQL634M/3G9F8RQU6/HFxWG9VLOlfnehN3hE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PnF/ZtfQWTrsjixYcYqdUpgLXpP2Ty9yr0vKAo91McRODKmcaRN05VvRxCBTubvmaU1yVFexRWRKQv1aXzK8P1pBITX3QA06vRJFJqdHFK+zfiE1/uZFLzSFt00QnxR4InwSRrtQtVwr3+YMyjuZ/UCm693nRheejZByWyJVqfI= 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=M39/LGVY; arc=none smtp.client-ip=209.85.128.228 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="M39/LGVY" Received: by mail-yw1-f228.google.com with SMTP id 00721157ae682-78e6e16133dso175557b3.3 for ; Fri, 12 Dec 2025 09:17:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1765559831; x=1766164631; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=h/Z7l/OOLX/8k3+ZI1rZl85RyeDw72L7I7CsxK9Jg5s=; b=M39/LGVYJ49W0pdxmb3P/w7FgVpmVMgCqrnjChFNxSlnXy2eKKNkoHlf20yX9yhDE+ 00NPMUBAjscifX/rSfWzjuRf/zkHHefhOKw7w50AhSYifePOqfL+OYJ4J+jY+swZq0Bv idZ+ORze8iECWfs1RpZ1b+U+bUiNvAjlu0/9RL+wS0JMY3frj2m8ut6q1greuki0pBWY uJJk3RiA594C8m3n+u9grIHOuTeWlUhLY89Dhl/uyPpcqGG7yCSbNTSQ1HTvFyFDeZRz 05SY8O5KDn4AKubne/LyHk+ww4ITFObjTxotpgECUm3DxiAn9tOXswFanzPHFWOy6sjF Oyhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765559831; x=1766164631; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=h/Z7l/OOLX/8k3+ZI1rZl85RyeDw72L7I7CsxK9Jg5s=; b=VMPnOVnesl3F5gp05hl3fIuCO0SXHtt0BCaJbRREh2L17UYDgg05zP+h8DOE3CskEI V3Svj7UTMxCpA476pa7XWTiEKlKh3kTzjpAaPD5e5teCqG/QQ45jdGOFtb6dnVrzkvVp d7pNDwTljuuZ5R6mR/8RIwJeMoZc9KFj9CHn4Vb1/fH0aGK/8jILN+B/vzQjzJjkRuxK APh87S5rIRE+vwqVVyHgqyx0/AT9ThMUObzDZFzxkqaVEL2vCndUS9F52BGr3aZ1YFCv vND/UejIN3nEhIlpsizAlQRHyQ92OZxxtRA2YGbGe5NNr1KBB/ZaDJfx2j+XRdQXsdKd OCWw== X-Forwarded-Encrypted: i=1; AJvYcCVdM5hx1E+Jl4BmHVdgQ3qJOiwocJMeyF41qwkJ6BufYWHA8VQ/cxrQdGOqeEXp9T78yf2PvKxQxqKi0t8=@vger.kernel.org X-Gm-Message-State: AOJu0YzzPpyEzB/tduGTkDO/a1dapyQDOKumXHoygPJimwyjL0At/ptm BVFCfepB6MWLnw6nH6tIIYRJOzCjk7nsA2qI5cefQsadudeheaD67PID5JfAX64dmB0y5y5vIwu Nr9M8gMUt/v/u4LRyEHIman1BYu3EtU6zIs5Hv062Z8Uaw8c7b6ms X-Gm-Gg: AY/fxX50Cxh07lEqxLz2abzNA4CoTOX62yZmToljfC5eKdYEnMS+tyaMFF/oJPbO1kb 1M+0s9WG0EAK5Qjz4cYO4Wfn7D2GqAiDAG1DzO807AKi28eUUK7wiJL2S6pieWpJEzJ0MBNQYRJ NbarG6eApPUeRRk6AZguZXuV90SvaGaGG3gZ32C4+N5p5jBRz3idPtz3K5eaBtuwN1G1qhQIkCs mkC8PfFbCRub3gRww3JuiSzoiwTK58RYpJKZEL3woXqb4smkDrr4bfkpeuZJccfx03FirCJquhz 6NeLizS9HaOHLtfX7zCPaJiKPhppeUujd3rRdl84x557CiV6YBHRyp+vGR1wkwvWwKAjLpauTrp 0HPMcM3a7ZU17eFf3qa0yf0VfVA8= X-Google-Smtp-Source: AGHT+IHd+TXPCBhv1un/V2ZO13vV3k8hqTYx5RW3Ne144DrJv+wbC283WrsghZHKDveVuWX1ysPPuwCEM8xZ X-Received: by 2002:a05:690c:10:b0:78c:d4ce:4138 with SMTP id 00721157ae682-78e66e670dfmr21156037b3.8.1765559831034; Fri, 12 Dec 2025 09:17:11 -0800 (PST) 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-78e6a454ad8sm2171307b3.29.2025.12.12.09.17.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Dec 2025 09:17:11 -0800 (PST) X-Relaying-Domain: purestorage.com Received: from dev-csander.dev.purestorage.com (dev-csander.dev.purestorage.com [10.7.70.37]) by c7-smtp-2023.dev.purestorage.com (Postfix) with ESMTP id 2A9FF34027F; Fri, 12 Dec 2025 10:17:10 -0700 (MST) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 28B4FE4232B; Fri, 12 Dec 2025 10:17:10 -0700 (MST) From: Caleb Sander Mateos To: Ming Lei , Shuah Khan Cc: linux-block@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH v3 9/9] selftests: ublk: add user copy test cases Date: Fri, 12 Dec 2025 10:17:07 -0700 Message-ID: <20251212171707.1876250-10-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20251212171707.1876250-1-csander@purestorage.com> References: <20251212171707.1876250-1-csander@purestorage.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The ublk selftests cover every data copy mode except user copy. Add tests for user copy based on the existing test suite: - generic_14 ("basic recover function verification (user copy)") based on generic_04 and generic_05 - null_03 ("basic IO test with user copy") based on null_01 and null_02 - loop_06 ("write and verify over user copy") based on loop_01 and loop_03 - loop_07 ("mkfs & mount & umount with user copy") based on loop_02 and loop_04 - stripe_05 ("write and verify test on user copy") based on stripe_03 - stripe_06 ("mkfs & mount & umount on user copy") based on stripe_02 and stripe_04 - stress_06 ("run IO and remove device (user copy)") based on stress_01 and stress_03 - stress_07 ("run IO and kill ublk server (user copy)") based on stress_02 and stress_04 Signed-off-by: Caleb Sander Mateos Reviewed-by: Ming Lei --- tools/testing/selftests/ublk/Makefile | 8 ++++ .../testing/selftests/ublk/test_generic_14.sh | 40 +++++++++++++++++++ tools/testing/selftests/ublk/test_loop_06.sh | 25 ++++++++++++ tools/testing/selftests/ublk/test_loop_07.sh | 21 ++++++++++ tools/testing/selftests/ublk/test_null_03.sh | 24 +++++++++++ .../testing/selftests/ublk/test_stress_06.sh | 39 ++++++++++++++++++ .../testing/selftests/ublk/test_stress_07.sh | 39 ++++++++++++++++++ .../testing/selftests/ublk/test_stripe_05.sh | 26 ++++++++++++ .../testing/selftests/ublk/test_stripe_06.sh | 21 ++++++++++ 9 files changed, 243 insertions(+) create mode 100755 tools/testing/selftests/ublk/test_generic_14.sh create mode 100755 tools/testing/selftests/ublk/test_loop_06.sh create mode 100755 tools/testing/selftests/ublk/test_loop_07.sh create mode 100755 tools/testing/selftests/ublk/test_null_03.sh create mode 100755 tools/testing/selftests/ublk/test_stress_06.sh create mode 100755 tools/testing/selftests/ublk/test_stress_07.sh create mode 100755 tools/testing/selftests/ublk/test_stripe_05.sh create mode 100755 tools/testing/selftests/ublk/test_stripe_06.sh diff --git a/tools/testing/selftests/ublk/Makefile b/tools/testing/selftest= s/ublk/Makefile index 770269efe42a..837977b62417 100644 --- a/tools/testing/selftests/ublk/Makefile +++ b/tools/testing/selftests/ublk/Makefile @@ -19,28 +19,36 @@ TEST_PROGS +=3D test_generic_08.sh TEST_PROGS +=3D test_generic_09.sh TEST_PROGS +=3D test_generic_10.sh TEST_PROGS +=3D test_generic_11.sh TEST_PROGS +=3D test_generic_12.sh TEST_PROGS +=3D test_generic_13.sh +TEST_PROGS +=3D test_generic_14.sh =20 TEST_PROGS +=3D test_null_01.sh TEST_PROGS +=3D test_null_02.sh +TEST_PROGS +=3D test_null_03.sh TEST_PROGS +=3D test_loop_01.sh TEST_PROGS +=3D test_loop_02.sh TEST_PROGS +=3D test_loop_03.sh TEST_PROGS +=3D test_loop_04.sh TEST_PROGS +=3D test_loop_05.sh +TEST_PROGS +=3D test_loop_06.sh +TEST_PROGS +=3D test_loop_07.sh TEST_PROGS +=3D test_stripe_01.sh TEST_PROGS +=3D test_stripe_02.sh TEST_PROGS +=3D test_stripe_03.sh TEST_PROGS +=3D test_stripe_04.sh +TEST_PROGS +=3D test_stripe_05.sh +TEST_PROGS +=3D test_stripe_06.sh =20 TEST_PROGS +=3D test_stress_01.sh TEST_PROGS +=3D test_stress_02.sh TEST_PROGS +=3D test_stress_03.sh TEST_PROGS +=3D test_stress_04.sh TEST_PROGS +=3D test_stress_05.sh +TEST_PROGS +=3D test_stress_06.sh +TEST_PROGS +=3D test_stress_07.sh =20 TEST_GEN_PROGS_EXTENDED =3D kublk =20 include ../lib.mk =20 diff --git a/tools/testing/selftests/ublk/test_generic_14.sh b/tools/testin= g/selftests/ublk/test_generic_14.sh new file mode 100755 index 000000000000..cd9b44b97c24 --- /dev/null +++ b/tools/testing/selftests/ublk/test_generic_14.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +. "$(cd "$(dirname "$0")" && pwd)"/test_common.sh + +TID=3D"generic_14" +ERR_CODE=3D0 + +ublk_run_recover_test() +{ + run_io_and_recover 256M "kill_daemon" "$@" + ERR_CODE=3D$? + if [ ${ERR_CODE} -ne 0 ]; then + echo "$TID failure: $*" + _show_result $TID $ERR_CODE + fi +} + +if ! _have_program fio; then + exit "$UBLK_SKIP_CODE" +fi + +_prep_test "recover" "basic recover function verification (user copy)" + +_create_backfile 0 256M +_create_backfile 1 128M +_create_backfile 2 128M + +ublk_run_recover_test -t null -q 2 -r 1 -u & +ublk_run_recover_test -t loop -q 2 -r 1 -u "${UBLK_BACKFILES[0]}" & +ublk_run_recover_test -t stripe -q 2 -r 1 -u "${UBLK_BACKFILES[1]}" "${UBL= K_BACKFILES[2]}" & +wait + +ublk_run_recover_test -t null -q 2 -r 1 -u -i 1 & +ublk_run_recover_test -t loop -q 2 -r 1 -u -i 1 "${UBLK_BACKFILES[0]}" & +ublk_run_recover_test -t stripe -q 2 -r 1 -u -i 1 "${UBLK_BACKFILES[1]}" "= ${UBLK_BACKFILES[2]}" & +wait + +_cleanup_test "recover" +_show_result $TID $ERR_CODE diff --git a/tools/testing/selftests/ublk/test_loop_06.sh b/tools/testing/s= elftests/ublk/test_loop_06.sh new file mode 100755 index 000000000000..1d1a8a725502 --- /dev/null +++ b/tools/testing/selftests/ublk/test_loop_06.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +. "$(cd "$(dirname "$0")" && pwd)"/test_common.sh + +TID=3D"loop_06" +ERR_CODE=3D0 + +if ! _have_program fio; then + exit "$UBLK_SKIP_CODE" +fi + +_prep_test "loop" "write and verify over user copy" + +_create_backfile 0 256M +dev_id=3D$(_add_ublk_dev -t loop -u "${UBLK_BACKFILES[0]}") +_check_add_dev $TID $? + +# run fio over the ublk disk +_run_fio_verify_io --filename=3D/dev/ublkb"${dev_id}" --size=3D256M +ERR_CODE=3D$? + +_cleanup_test "loop" + +_show_result $TID $ERR_CODE diff --git a/tools/testing/selftests/ublk/test_loop_07.sh b/tools/testing/s= elftests/ublk/test_loop_07.sh new file mode 100755 index 000000000000..493f3fb611a5 --- /dev/null +++ b/tools/testing/selftests/ublk/test_loop_07.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +. "$(cd "$(dirname "$0")" && pwd)"/test_common.sh + +TID=3D"loop_07" +ERR_CODE=3D0 + +_prep_test "loop" "mkfs & mount & umount with user copy" + +_create_backfile 0 256M + +dev_id=3D$(_add_ublk_dev -t loop -u "${UBLK_BACKFILES[0]}") +_check_add_dev $TID $? + +_mkfs_mount_test /dev/ublkb"${dev_id}" +ERR_CODE=3D$? + +_cleanup_test "loop" + +_show_result $TID $ERR_CODE diff --git a/tools/testing/selftests/ublk/test_null_03.sh b/tools/testing/s= elftests/ublk/test_null_03.sh new file mode 100755 index 000000000000..0051067b4686 --- /dev/null +++ b/tools/testing/selftests/ublk/test_null_03.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +. "$(cd "$(dirname "$0")" && pwd)"/test_common.sh + +TID=3D"null_03" +ERR_CODE=3D0 + +if ! _have_program fio; then + exit "$UBLK_SKIP_CODE" +fi + +_prep_test "null" "basic IO test with user copy" + +dev_id=3D$(_add_ublk_dev -t null -u) +_check_add_dev $TID $? + +# run fio over the two disks +fio --name=3Djob1 --filename=3D/dev/ublkb"${dev_id}" --ioengine=3Dlibaio -= -rw=3Dreadwrite --iodepth=3D32 --size=3D256M > /dev/null 2>&1 +ERR_CODE=3D$? + +_cleanup_test "null" + +_show_result $TID $ERR_CODE diff --git a/tools/testing/selftests/ublk/test_stress_06.sh b/tools/testing= /selftests/ublk/test_stress_06.sh new file mode 100755 index 000000000000..37188ec2e1f7 --- /dev/null +++ b/tools/testing/selftests/ublk/test_stress_06.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +. "$(cd "$(dirname "$0")" && pwd)"/test_common.sh +TID=3D"stress_06" +ERR_CODE=3D0 + +ublk_io_and_remove() +{ + run_io_and_remove "$@" + ERR_CODE=3D$? + if [ ${ERR_CODE} -ne 0 ]; then + echo "$TID failure: $*" + _show_result $TID $ERR_CODE + fi +} + +if ! _have_program fio; then + exit "$UBLK_SKIP_CODE" +fi + +_prep_test "stress" "run IO and remove device (user copy)" + +_create_backfile 0 256M +_create_backfile 1 128M +_create_backfile 2 128M + +ublk_io_and_remove 8G -t null -q 4 -u & +ublk_io_and_remove 256M -t loop -q 4 -u "${UBLK_BACKFILES[0]}" & +ublk_io_and_remove 256M -t stripe -q 4 -u "${UBLK_BACKFILES[1]}" "${UBLK_B= ACKFILES[2]}" & +wait + +ublk_io_and_remove 8G -t null -q 4 -u --nthreads 8 --per_io_tasks & +ublk_io_and_remove 256M -t loop -q 4 -u --nthreads 8 --per_io_tasks "${UBL= K_BACKFILES[0]}" & +ublk_io_and_remove 256M -t stripe -q 4 -u --nthreads 8 --per_io_tasks "${U= BLK_BACKFILES[1]}" "${UBLK_BACKFILES[2]}" & +wait + +_cleanup_test "stress" +_show_result $TID $ERR_CODE diff --git a/tools/testing/selftests/ublk/test_stress_07.sh b/tools/testing= /selftests/ublk/test_stress_07.sh new file mode 100755 index 000000000000..fb061fc26d36 --- /dev/null +++ b/tools/testing/selftests/ublk/test_stress_07.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +. "$(cd "$(dirname "$0")" && pwd)"/test_common.sh +TID=3D"stress_07" +ERR_CODE=3D0 + +ublk_io_and_kill_daemon() +{ + run_io_and_kill_daemon "$@" + ERR_CODE=3D$? + if [ ${ERR_CODE} -ne 0 ]; then + echo "$TID failure: $*" + _show_result $TID $ERR_CODE + fi +} + +if ! _have_program fio; then + exit "$UBLK_SKIP_CODE" +fi + +_prep_test "stress" "run IO and kill ublk server (user copy)" + +_create_backfile 0 256M +_create_backfile 1 128M +_create_backfile 2 128M + +ublk_io_and_kill_daemon 8G -t null -q 4 -u --no_ublk_fixed_fd & +ublk_io_and_kill_daemon 256M -t loop -q 4 -u --no_ublk_fixed_fd "${UBLK_BA= CKFILES[0]}" & +ublk_io_and_kill_daemon 256M -t stripe -q 4 -u "${UBLK_BACKFILES[1]}" "${U= BLK_BACKFILES[2]}" & +wait + +ublk_io_and_kill_daemon 8G -t null -q 4 -u --nthreads 8 --per_io_tasks & +ublk_io_and_kill_daemon 256M -t loop -q 4 -u --nthreads 8 --per_io_tasks "= ${UBLK_BACKFILES[0]}" & +ublk_io_and_kill_daemon 256M -t stripe -q 4 -u --nthreads 8 --per_io_tasks= "${UBLK_BACKFILES[1]}" "${UBLK_BACKFILES[2]}" & +wait + +_cleanup_test "stress" +_show_result $TID $ERR_CODE diff --git a/tools/testing/selftests/ublk/test_stripe_05.sh b/tools/testing= /selftests/ublk/test_stripe_05.sh new file mode 100755 index 000000000000..05d71951d710 --- /dev/null +++ b/tools/testing/selftests/ublk/test_stripe_05.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +. "$(cd "$(dirname "$0")" && pwd)"/test_common.sh + +TID=3D"stripe_05" +ERR_CODE=3D0 + +if ! _have_program fio; then + exit "$UBLK_SKIP_CODE" +fi + +_prep_test "stripe" "write and verify test on user copy" + +_create_backfile 0 256M +_create_backfile 1 256M + +dev_id=3D$(_add_ublk_dev -t stripe -q 2 -u "${UBLK_BACKFILES[0]}" "${UBLK_= BACKFILES[1]}") +_check_add_dev $TID $? + +# run fio over the ublk disk +_run_fio_verify_io --filename=3D/dev/ublkb"${dev_id}" --size=3D512M +ERR_CODE=3D$? + +_cleanup_test "stripe" +_show_result $TID $ERR_CODE diff --git a/tools/testing/selftests/ublk/test_stripe_06.sh b/tools/testing= /selftests/ublk/test_stripe_06.sh new file mode 100755 index 000000000000..d06cac7626e2 --- /dev/null +++ b/tools/testing/selftests/ublk/test_stripe_06.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +. "$(cd "$(dirname "$0")" && pwd)"/test_common.sh + +TID=3D"stripe_06" +ERR_CODE=3D0 + +_prep_test "stripe" "mkfs & mount & umount on user copy" + +_create_backfile 0 256M +_create_backfile 1 256M + +dev_id=3D$(_add_ublk_dev -t stripe -u -q 2 "${UBLK_BACKFILES[0]}" "${UBLK_= BACKFILES[1]}") +_check_add_dev $TID $? + +_mkfs_mount_test /dev/ublkb"${dev_id}" +ERR_CODE=3D$? + +_cleanup_test "stripe" +_show_result $TID $ERR_CODE --=20 2.45.2