From nobody Thu Oct 2 10:55:24 2025 Received: from mail-qk1-f226.google.com (mail-qk1-f226.google.com [209.85.222.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 A0291224AEF for ; Thu, 18 Sep 2025 01:50:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.226 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160238; cv=none; b=jDKBOgc2Sp118/JH99aLg4h/xgiC9krWWjZP4ghDwVAG38dtJ3knTsEJu8DAhFl3iqbfBTu/FXk9oaHuVeDCNoNAb9MCzWXaU17ZIhf1gSJiNcNpdBqfES1qiK74dHWk0DTbQp1m3bNAQakktiyrQ3dBq7UynzYs5/AfVuyFD/g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160238; c=relaxed/simple; bh=JZ7WeEWAd1kWAVhMIzhhWXd+cCffqQi8fUXv/IWzAcI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KLS2k/yUzEDzD2bFWqH5ZhmZx5Nhg5lClejSg97EBHZepebkm0T51Llg4XUyhvio0qhScjWDDvm7+gDzlGzCCOk2WfWTeiMR0/LQsa+2e2L+gZsPNS5H+HjFHyyESgk46Au59icGykN7X+yE0LohKU9k47NcisAg4jNhJWKXw0w= 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=Kj0VVmWx; arc=none smtp.client-ip=209.85.222.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="Kj0VVmWx" Received: by mail-qk1-f226.google.com with SMTP id af79cd13be357-829716c5293so11305785a.1 for ; Wed, 17 Sep 2025 18:50:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160234; x=1758765034; 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=gm609mzNTyYSUqGencYamb949uYiGedbBCUE+WH6KPU=; b=Kj0VVmWxjVgManHyQfrwCbwfVSttvDoApACYghz79TbU8fM98kSz6lJULsVRXOaZ3b YjFnNc/6GkujNhfA0anQ6kiwP39J9U0XxUwii2YeyeI/gN03ZyzNnMwtZ8kQOzCIph5H 2nVOEO6UhaIlwSMgyipcG2w/12DJwpto1R/PrIBTMm3iIRJrKiVsyxRhhKZ2Vvq51N8A QeIERQBNtA/HpSm5R3SrfoIvtrXXLfSFUiXWFLqqzPnQPHBNswPAle2xNiK2KS/I6urA ZxyVm0wF93DOMS4GNrE9Rw6KU+hgZoGRnGPEbELmKfkzjCdyMPeegmsS+b5dUOTv2vQ7 +6wA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160234; x=1758765034; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gm609mzNTyYSUqGencYamb949uYiGedbBCUE+WH6KPU=; b=mS/6KGAr7lFt8nMlOUc5hG85v92ZYSMSVOgLynJdSLR5rBmI6/JW3R4weSxxqja3q8 bwSCJxJFTZ0/zzFHqMJqlVN86FtVjl1+PnLU2+dyv5fdHlFH9K1yhg6dTZVUusFv8bti vyqnaojDisHebvy+zkT/kZLiEEen2bMG/ZZu4Giv7idJnkLJjJVGGSc4hb9zHUC2i/yW DiEHpyi6bJsJeGye8YMiautk7UzorGJkhx5lRHL8eZDIaKdu2+Nr9rGVri8LCxQ2880Y H/f1x2oqwWVQ8FL0haHBRsc7k1h4jhT0bw8ieyhmCmOttRKKE/Yr6bv3pDyZrC4S+GbX 1E6g== X-Forwarded-Encrypted: i=1; AJvYcCVrkwKA8CBBhGkVPteXpTqOEEBoJPqDFNrzcemV4uL0KN7Ac+wjS9MZpdiy3u7KT6CYHXW+4AG3SOQgXCU=@vger.kernel.org X-Gm-Message-State: AOJu0Yz/xnvtMICuSsNoQo+YlBFtXTHSGdD2wkPo2/YQuUlC58zLIF43 uWJMOeNxKlCloDiwSS48+c1QbytfeiheejJDS3wTeRkRgmSboRerrc0lHDkwa0ktKTEbqsWv8Hn Een6A1Xu6qkw1pLgEytepodClSjxMUn9m77lGpptTN05iZ727ZyOr X-Gm-Gg: ASbGnctap0e5d/Gjpe5msVj85RcY+Xdh4JcZtwAihuXd30rorO3JlABHE3UtzCrKwCJ 6wwHL0yE/IeM+4nKSdnup4/nScYUKPEiWq3LswjqeNQonqMOlLxz20X/ZbfMWRf/d9/bjwJIAI8 rpBJr/lYOwyFpLipMpjiv2CEa6hMkuE9wAuVFRlp39b0N5oD7C3zRi9UTf0sYTh6TF1N34EcMsK btHI5sQvmZs47q/j0SYZSUEf+Ts3IyYFEU/pbLARcliMWsPEUadIlZyK0NYkX2B+PG/nIEf6YcJ SrUu8G7ktdPtzWeR2JleROfk+8H7uT4pajbiNstSGgeZedemPD0LdMokdQ== X-Google-Smtp-Source: AGHT+IFmQ0KaH+u8epoMwh3aIK0YZmepufL4TwiNbT5S06XDLaPCdbBhz4ar/7SSxBpTz1Uuyu5XuJnEw/2A X-Received: by 2002:ad4:55ce:0:b0:78f:baa:5712 with SMTP id 6a1803df08f44-78f0baa59bbmr21116976d6.1.1758160234441; Wed, 17 Sep 2025 18:50:34 -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 6a1803df08f44-79350777108sm749816d6.34.2025.09.17.18.50.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:34 -0700 (PDT) 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 C1B9D340325; Wed, 17 Sep 2025 19:50:33 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id BC335E41B42; Wed, 17 Sep 2025 19:50:33 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 01/17] ublk: remove ubq check in ublk_check_and_get_req() Date: Wed, 17 Sep 2025 19:49:37 -0600 Message-ID: <20250918014953.297897-2-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" ublk_get_queue() never returns a NULL pointer, so there's no need to check its return value in ublk_check_and_get_req(). Drop the check. Signed-off-by: Caleb Sander Mateos Reviewed-by: Ming Lei --- drivers/block/ublk_drv.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index aa64f530d5e9..9f2db91af481 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -2493,13 +2493,10 @@ static struct request *ublk_check_and_get_req(struc= t kiocb *iocb, =20 if (q_id >=3D ub->dev_info.nr_hw_queues) return ERR_PTR(-EINVAL); =20 ubq =3D ublk_get_queue(ub, q_id); - if (!ubq) - return ERR_PTR(-EINVAL); - if (!ublk_support_user_copy(ubq)) return ERR_PTR(-EACCES); =20 if (tag >=3D ubq->q_depth) return ERR_PTR(-EINVAL); --=20 2.45.2 From nobody Thu Oct 2 10:55:24 2025 Received: from mail-il1-f228.google.com (mail-il1-f228.google.com [209.85.166.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 560B122A7E4 for ; Thu, 18 Sep 2025 01:50:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160239; cv=none; b=JBmrn4vp0jBMx/hb3975piGzBEw6vRLWsjDjOGo9ZGl4YlDHwHen+bejE0ELSfIr10QJJQ1KdbW+JCsjruUnw2hqBLJfBCQIT12McPczb0oXIdEwBo8vA0pVCVI+kD6nLYJDn/AAlBqjoL6R1iCLhhjwIUnxyDI+YxizKw91I2M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160239; c=relaxed/simple; bh=aihcCgDUah0uIajlVxvCd9cKsxGun+acjCd2aDD6Qe4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QQqBZC8VjH2AnuyTQkCenGQFyNUHISPGS4aGNt0cnktkphgF7msUKRxlYuSqBNrpmSx/rRE1hmvZlKzPpdVENPxn0DJDY5YJx5tv/BJue3JC4m3JrT9MbTPdGtxhZEPIoLFmN1oFJOsfgo2VqPqaOpv+2eekaabYlddawZtmoQM= 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=FXk83H/O; arc=none smtp.client-ip=209.85.166.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="FXk83H/O" Received: by mail-il1-f228.google.com with SMTP id e9e14a558f8ab-3f43a1b1fbaso74995ab.0 for ; Wed, 17 Sep 2025 18:50:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160235; x=1758765035; 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=XI3aBy5hd/OB/zGPV0D+8NoJtVOoBqGtJe9tiG8XJ4M=; b=FXk83H/O/QDpXl+2GrMRJU/q+l7FYugLhpymSVHFdhG82j65AK709UT+WvRZyCvGPh TkpEjzFRr3LkDIHpRtA/pzdp4aUBuQYM2n3wlj1J7RxpSE4fWOLdN9Capo9p9m6H1M7r +C3X3AswunZr/T3hvvwRLKJoXX2I4vNy+YeagJH6CpQlFTdOqOuLNUMS/Qkzh7vCniTd YbpCJ09L2vP3MxHDVmnvmBWVTOm6YqfowuA1VVs2yu6c87nZjpsr3UswCKwDq+KrEehv CW/WFwHY59oJ7vLS2o4mLID6w9FVPMgZ/gjsKdpyUlr0O1kGUItrpu/soS+LIRzjmPfM P1bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160235; x=1758765035; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XI3aBy5hd/OB/zGPV0D+8NoJtVOoBqGtJe9tiG8XJ4M=; b=ofAfwjhHVpsy2PCq6M7cvglGU4OjwfzDfI8J3CbzmYFAyGO93gF/NV0WjBqY5SweFm C98+lNBRpgvOAh2HxSbC0Sqdlm/64ZbbE3dmcf1h8L4SNn9skp4DnP0Z1K0O9dcJcrbO eJ3OXL84NiI3mzKixn8U4OGD9zoUh25Xue/UTqDWGfcQR7TJXxVC5c/g12dFEagxh+6Y ggxHgWN3/ASUHkzM9tGYnmR/iQxJEAPn4143NYW68tm7bIb5JX8ZOmRQ0oWS1U7W3Vxz pOOGa5/MWPGuXKR9yg+R7oZ7MUv0IytJOhArMW4q3fA2dED624o1e9QdolXWaX3FLF16 KS5g== X-Forwarded-Encrypted: i=1; AJvYcCWX/CdEq2fOGahWcuG60arcCGvhwwHOl8Nz0AxzAXn0Pwd7PmpFggalCz7Ghv1hwGxt3YUYyfZQpQs32ys=@vger.kernel.org X-Gm-Message-State: AOJu0YwLn6SYFfuKF+nICGNi/vgOLLZGGNK4gH99x9QAiR3CzG+coJHS TIOIWb7GTreSS5JmblVfdT74KtS1WN0SZcoNft4Qxc7ChEFzUCeLVMV+3kpESid3ThLysR5cAXC tDQUZcdRrfBmmq9VQNSi3rygGQ2Hbl9aQKTIxJ/3YBwTTFpBpHbc7 X-Gm-Gg: ASbGncsChcpHvmibJJCc4b0GlPWfg/NHw8ZmDWGmyFiq6WFFfte1USiG8lpQsq1I2JF iTwVujt1tNFRostKUADkt2LpLeYgiSbEz9z3acf4tioFi31/cD06F3GTMJUAFXxb/+Bhkp0ygM6 x5graDnBNRBFQWH936D3r429h3oP0M68SMOvSY2p/9aGilL6MQhtbOFGr5hEX506qp7raX7yejW P5RwZTYRRscTxG9yvDaOxQzXxUmzPEpeQGIuRNfzsMRoJ4luFrOw6AMmo9aHO4ce7Q4N7PpUUk0 CsSUB5vJQlJ7yn1se0Zl4FBZIW9d0TeMKpIhP8Q+qDdoMk2lDRETyLPIkg== X-Google-Smtp-Source: AGHT+IENRKG99R2VW0x9/thmh8Jnepggaoa54jhETJac3wY0mEKuStB4SCrX1/3ae0dO2b3/sMjdieE7qhXq X-Received: by 2002:a05:6e02:2781:b0:424:1774:6908 with SMTP id e9e14a558f8ab-4241a3e8592mr22236915ab.0.1758160235222; Wed, 17 Sep 2025 18:50:35 -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 8926c6da1cb9f-53d5106212bsm63180173.28.2025.09.17.18.50.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:35 -0700 (PDT) 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 96B9F340325; Wed, 17 Sep 2025 19:50:34 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 91B4FE41B42; Wed, 17 Sep 2025 19:50:34 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 02/17] ublk: don't pass q_id to ublk_queue_cmd_buf_size() Date: Wed, 17 Sep 2025 19:49:38 -0600 Message-ID: <20250918014953.297897-3-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" ublk_queue_cmd_buf_size() only needs the queue depth, which is the same for all queues. Get the queue depth from the ublk_device instead so the q_id parameter can be dropped. Signed-off-by: Caleb Sander Mateos Reviewed-by: Ming Lei --- drivers/block/ublk_drv.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 9f2db91af481..bac16ec3151c 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -760,15 +760,13 @@ ublk_queue_cmd_buf(struct ublk_device *ub, int q_id) static inline int __ublk_queue_cmd_buf_size(int depth) { return round_up(depth * sizeof(struct ublksrv_io_desc), PAGE_SIZE); } =20 -static inline int ublk_queue_cmd_buf_size(struct ublk_device *ub, int q_id) +static inline int ublk_queue_cmd_buf_size(struct ublk_device *ub) { - struct ublk_queue *ubq =3D ublk_get_queue(ub, q_id); - - return __ublk_queue_cmd_buf_size(ubq->q_depth); + return __ublk_queue_cmd_buf_size(ub->dev_info.queue_depth); } =20 static int ublk_max_cmd_buf_size(void) { return __ublk_queue_cmd_buf_size(UBLK_MAX_QUEUE_DEPTH); @@ -1701,11 +1699,11 @@ static int ublk_ch_mmap(struct file *filp, struct v= m_area_struct *vma) q_id =3D (phys_off - UBLKSRV_CMD_BUF_OFFSET) / max_sz; pr_devel("%s: qid %d, pid %d, addr %lx pg_off %lx sz %lu\n", __func__, q_id, current->pid, vma->vm_start, phys_off, (unsigned long)sz); =20 - if (sz !=3D ublk_queue_cmd_buf_size(ub, q_id)) + if (sz !=3D ublk_queue_cmd_buf_size(ub)) return -EINVAL; =20 pfn =3D virt_to_phys(ublk_queue_cmd_buf(ub, q_id)) >> PAGE_SHIFT; return remap_pfn_range(vma, vma->vm_start, pfn, sz, vma->vm_page_prot); } @@ -2563,11 +2561,11 @@ static const struct file_operations ublk_ch_fops = =3D { .mmap =3D ublk_ch_mmap, }; =20 static void ublk_deinit_queue(struct ublk_device *ub, int q_id) { - int size =3D ublk_queue_cmd_buf_size(ub, q_id); + int size =3D ublk_queue_cmd_buf_size(ub); struct ublk_queue *ubq =3D ublk_get_queue(ub, q_id); int i; =20 for (i =3D 0; i < ubq->q_depth; i++) { struct ublk_io *io =3D &ubq->ios[i]; @@ -2590,11 +2588,11 @@ static int ublk_init_queue(struct ublk_device *ub, = int q_id) =20 spin_lock_init(&ubq->cancel_lock); ubq->flags =3D ub->dev_info.flags; ubq->q_id =3D q_id; ubq->q_depth =3D ub->dev_info.queue_depth; - size =3D ublk_queue_cmd_buf_size(ub, q_id); + size =3D ublk_queue_cmd_buf_size(ub); =20 ptr =3D (void *) __get_free_pages(gfp_flags, get_order(size)); if (!ptr) return -ENOMEM; =20 --=20 2.45.2 From nobody Thu Oct 2 10:55:24 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 64F4322D7B5 for ; Thu, 18 Sep 2025 01:50:36 +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=1758160238; cv=none; b=D9Mj4z74erSj1diC5jf4DdgLmJGYClov3R3hrgoJILPSQJ8SF59E7QldVMLYEP5P8GVJrXkrrKkAbe0BGsi8tVf7D/+4hCjcDpAfHTF06rHjZf5a2YFuGcQGVMUT+CbckAqp/OfD8B4+lJnL6ZJdqHlzpRZQ994RtkimjhOgp7w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160238; c=relaxed/simple; bh=hxn3BKuTiiWjfVAHX7tPq6EobZQe9Ya48ubEsGAaYuY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oFOyiYcb2oV3dL8q8ABAC8kz8V7fbEgex6B85HBlkYKqEnS4K+xsIaX6pY15fAwdrCItyLOw4/qCbF3pJ4Go1Btg5s8h2oSPDq3kMGPiCWt4ovzdj/x4F7O6eKPZ4alkvAUsw8Y8BoGynNyXjUhxhSgM7cDaLVLg2Jsh5YMSDEE= 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=IPjp3zaR; 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="IPjp3zaR" Received: by mail-pl1-f227.google.com with SMTP id d9443c01a7336-24602f6d8b6so756255ad.1 for ; Wed, 17 Sep 2025 18:50:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160236; x=1758765036; 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=Vlg78m3Ev0QtoikD/oo2CO7iAsfO2QZiXUPUhq6FYRw=; b=IPjp3zaRtdMhYYy4QkP79M5alW63KtArdeFT4MMPZByZtz8lE8gf1K3U4cgdTNEgjU iGcaIZEHilhmK2NDfSdFLf7uBx9fou2wk9UFTWY1CxIDrrkwmNWRUphJ4CSoVAFfvBaN wnBa5rWtzatTnMbiWR+ZoWPCTy81YK9TID+gfxTAsOvHpdDAGg0MQbNYDrtPhwQ5rCmn gVmVNtXUbJLlWFg+2oOYmDIPmSaOJN4Jt56dBdglWw7K9XROcl4obwnbQEZif73F+ETu CF/+2SxtUwKzd5zW6oEK+r0StU5YK45xhCQIUfIG8yXg9yu/oyRv02ZJRa28d13p8eg9 TzeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160236; x=1758765036; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Vlg78m3Ev0QtoikD/oo2CO7iAsfO2QZiXUPUhq6FYRw=; b=BUzdd4NLDpixcBQNM0x65PIC5ownngRfpjxJSBy7TfKhDeY5pGrFQy2T6Zjw0EPkHe 80J/njgbYDM/QWPgIK05XK9ees3BF0RQOr4qK3BM4UQumBzUEOlh2chpj4SokrN6Vemo HafPAefU5TBoll5HknELqGjRimj6MsdL6B0F5xGZlFgrTq1tgj/sAi1hd7nXzef35uHa X3LfuCbv0Zc1GueP5g56uNpYOirk/XvLvJwsNUjgi0BrOvemocXB/1pa5GXmnRpFk+QK G9ijsjbn7e55Zh3ROzRKmkIqTqmkpSeHoMT0xO0hFJlpV8yaoeIbw/2Irrld/hIDiCZ4 guxQ== X-Forwarded-Encrypted: i=1; AJvYcCW211e6yR9yGnwgJRZ2ujXqO76sq98oFsjzl/3Q6J+zA4rqmY7YjFt7W9xHLHgxEVG0S7cgvcebe6LCwBk=@vger.kernel.org X-Gm-Message-State: AOJu0YxemcLqpgx/zJHz+O/Mpe+jahLxlbgMahIXHoTmtTBb2QvMDCKs k1RzJns1+cE5tNeDZtUQ078YvM9A/XZDmn8RfC3qIYzFsvmsv10AKva0Go5XaFepU2NvmBhZgFr 5wFmbfPowwXUxUYgshccPKLO+WwygnVVgVFxJbVO1pV6lJd2vUgm9 X-Gm-Gg: ASbGncu12xNk8szh0SEWV9+0Kl4Hw0kwmOxiLz9/QjQ/orUtuUK0qqiHhGGTZ0NtfMe RiexoK8aYx8jjcjArOFolC9adXHdGTsNXZfIRPgc8MRNJl8xg+X5HVNkL6y0yOxOaB0n5AmBUyK OQJJY63bmFrsKkAcB33p/+W/WAcep/QAgGYYiMLBQ56Qb/Gcb6epolkkM3YxK+74dZZr1LgjOzo NsgZ6z6arVcUHiCVV1Wufuzetld5KpgCHCTN49LDTOFKBGCk5RsT2LfTXnRoS+wo9hSR10b1ImQ KBeCAf6wU4a26WK0trBLZ45zwNztgZSjn1+VfHO2eEd4ac4arWlaf4WctA== X-Google-Smtp-Source: AGHT+IHj9QM0F6hgUxJ21zdX1Ylz68rApTHUPioBu4FMtIsDFauGSTQ8b1kTLdV4AbDZH+sT6hWv12TmQb7s X-Received: by 2002:a17:90b:4b51:b0:32e:e18a:368d with SMTP id 98e67ed59e1d1-32ee3fc0567mr2677579a91.8.1758160235729; Wed, 17 Sep 2025 18:50:35 -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 98e67ed59e1d1-32eddbbec5dsm292836a91.3.2025.09.17.18.50.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:35 -0700 (PDT) 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 1764F340508; Wed, 17 Sep 2025 19:50:35 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 143F3E41B42; Wed, 17 Sep 2025 19:50:35 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 03/17] ublk: don't pass ublk_queue to __ublk_fail_req() Date: Wed, 17 Sep 2025 19:49:39 -0600 Message-ID: <20250918014953.297897-4-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" __ublk_fail_req() only uses the ublk_queue to get the ublk_device, which its caller already has. So just pass the ublk_device directly. Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index bac16ec3151c..4cb023d26593 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -1706,16 +1706,16 @@ static int ublk_ch_mmap(struct file *filp, struct v= m_area_struct *vma) =20 pfn =3D virt_to_phys(ublk_queue_cmd_buf(ub, q_id)) >> PAGE_SHIFT; return remap_pfn_range(vma, vma->vm_start, pfn, sz, vma->vm_page_prot); } =20 -static void __ublk_fail_req(struct ublk_queue *ubq, struct ublk_io *io, +static void __ublk_fail_req(struct ublk_device *ub, struct ublk_io *io, struct request *req) { WARN_ON_ONCE(io->flags & UBLK_IO_FLAG_ACTIVE); =20 - if (ublk_nosrv_should_reissue_outstanding(ubq->dev)) + if (ublk_nosrv_should_reissue_outstanding(ub)) blk_mq_requeue_request(req, false); else { io->res =3D -EIO; __ublk_complete_rq(req); } @@ -1735,11 +1735,11 @@ static void ublk_abort_queue(struct ublk_device *ub= , struct ublk_queue *ubq) =20 for (i =3D 0; i < ubq->q_depth; i++) { struct ublk_io *io =3D &ubq->ios[i]; =20 if (io->flags & UBLK_IO_FLAG_OWNED_BY_SRV) - __ublk_fail_req(ubq, io, io->req); + __ublk_fail_req(ub, io, io->req); } } =20 static void ublk_start_cancel(struct ublk_device *ub) { --=20 2.45.2 From nobody Thu Oct 2 10:55:24 2025 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 4DF9E23A562 for ; Thu, 18 Sep 2025 01:50:37 +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=1758160239; cv=none; b=SQrSL8LqNQcveGwmUFkun++N5oCDhyHJB/BXYCaTFOnlnSakyJs89dKpkdXrWQqZ7TZK6JGVNkU5PHvubCODnfPGV8wlHYkxpcqhR/xRISS1croWYdNBnKdq9svMw/s29DY4XTn0PB2v2k178VR31W1LXLONp92CwMXjSrPjlzc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160239; c=relaxed/simple; bh=YgaAljjCEjYu2z1bmyuyvJK4rSyuSbdErm8XvDe+Qck=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SMHMKFslrjXKKUaRIwbnHkL/3SPBPGXxKm9kxZI4eDQedol8cRFWNOA7x2IWJL1Gngj+C1ZHGSTNw3sXy6e/WmKeTnB2O73qMQO0qU0HC5ZdlfQi/qlQGU0yQ47LWkApyhi6O4lvY/lWqSafB/rDYEYx/CbUVFcheshDWWKenWo= 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=Y8Y6VxCr; 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="Y8Y6VxCr" Received: by mail-qv1-f100.google.com with SMTP id 6a1803df08f44-78def53f3abso139296d6.3 for ; Wed, 17 Sep 2025 18:50:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160236; x=1758765036; 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=484GJ0fhKoa3hEGK1iZwSCdH9LWZt7uifdWOXLD/L/4=; b=Y8Y6VxCr8mvbcLcbsAoRPh7vncBZZS2sH842XJIAYqkf6pvt4O4U5dap0S46rKy9Bz HtKne1/WsxPx685UkqRfl5Cz+GZP9HoxuT5xXwJ/RidIicrLrlOgefnjlMyf6pGsJPAN x3IJJWxAitBCwv+Jie5s/04cMM/8jqpn8j5fz9zRKn8GTJFRvI7+dvDAnXDuZmdBQAwk s51wuIcwBdfviI7gW6DT6EAXo3QLy8RlqopxvIVJdZToCtQyskkp87v9/y6+oic6F9Sa pHDbNjhyzvrQS6XYL5d7/fY1mvjEdOTBc+5EriU5TIMREyrtB0fFojQyabYbhorle2Ib mDeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160236; x=1758765036; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=484GJ0fhKoa3hEGK1iZwSCdH9LWZt7uifdWOXLD/L/4=; b=G+Nay0Um1j4U82bk8sY0Cs2Uu2u12B21Xi0EFh1IHckPJ92VCsZj2TVu13sirNiZUe rdJouVjk29iwNTLfkOpIjM9fNWHAEJNA4jItLSqUxW16Rwpn1Y04LKt88zjHCoKqAXY1 t8ef+vaJSemuC96Kn2dgPLX+bZL/oDomwB0wxVGCjI3zkjijSgwAc2R2a3Z/1U3Qy/5+ 9tvRfcImpeZcRe6LBgg2LXYiq5qWwHx6Lvw8hpmqBVaV1lggoC20CiC0FK/hj47s10+D QuIfM3vA38hdl1wwkfpZ5CvZSjS1G11g5EMFLb+mvvO5UOrtGZZHTUuFaCU9oaXNFRCg aD8Q== X-Forwarded-Encrypted: i=1; AJvYcCVopTV71fXuTc5/Lh1Nl3t1gfkF8mO7KbWnnZamvbFRl57uavpyNqTRN++EgxYBihskkUAT0Il4yFyOw+s=@vger.kernel.org X-Gm-Message-State: AOJu0Yx7ZqQy5XjjPaZTSJuvlX3jhcXhJpwMX/UcIqvWcD9PuXqWymHw SjWX8GsSAgYNayQLyy203pcMmJi9ieMy4uwbBAqhSuQfI1OQHibI3MpVfuL9QPEB4RXRrHu+JwG r2PtyihSdyNTDMAScEMwav5W8eXYUyATOdwgz X-Gm-Gg: ASbGnctHwJQcGBBc+h2mbUrVWt3z/09PR509RaIf2FxSaKtjf2RAwcCRrbtGNOiARcs td3OBLH/WxO6qeUAzo9Htxgm3GKINHm2pP0vUkE8XOExk1g5mU5u0qYDnj+QRKlnQPtK3xSLcv0 J1F+NpufR+mXL6lT8H0vBQKdHVRUdfcigP1PVhrmwknHqtNOvibwhYYZS2jqHDwS4pDLJayFDTg BW0AiwKMDVCd3q8MY3eXy0Pgux4XIBEIt94+VweHJfBgYUSDx9k67gc1ITwh4Yysa3V0uBFGChN lGjCEv7xJIQVMxSUKyBffX3v3pWdKHu+wyvqM6KplVWEqCqnh+nLHbcunX6Z0NVB5vUgaFdD X-Google-Smtp-Source: AGHT+IErBYL3/Nsn80r0sQPK5XbZBh4OUvJ12WMsWq2TG6b3AgM8Dh0ua+qlHiSFawMaO170kBRkcOes47tI X-Received: by 2002:a05:6214:529e:b0:78f:e44f:bb6f with SMTP id 6a1803df08f44-78fe44fbf21mr22825096d6.0.1758160236216; Wed, 17 Sep 2025 18:50:36 -0700 (PDT) Received: from c7-smtp-2023.dev.purestorage.com ([208.88.159.129]) by smtp-relay.gmail.com with ESMTPS id 6a1803df08f44-7935206af0esm697716d6.42.2025.09.17.18.50.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:36 -0700 (PDT) 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 93B47340325; Wed, 17 Sep 2025 19:50:35 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 8E5E7E41B42; Wed, 17 Sep 2025 19:50:35 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 04/17] ublk: add helpers to check ublk_device flags Date: Wed, 17 Sep 2025 19:49:40 -0600 Message-ID: <20250918014953.297897-5-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" Introduce ublk_device analogues of the ublk_queue flag helpers: - ublk_support_zero_copy() -> ublk_dev_support_user_copy() - ublk_support_auto_buf_reg() -> ublk_dev_support_auto_buf_reg() - ublk_support_user_copy() -> ublk_dev_support_user_copy() - ublk_need_map_io() -> ublk_dev_need_map_io() - ublk_need_req_ref() -> ublk_dev_need_req_ref() - ublk_need_get_data() -> ublk_dev_need_get_data() These will be used in subsequent changes to avoid accessing the ublk_queue just for the flags, and instead use the ublk_device. Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 4cb023d26593..04b8613ce623 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -660,26 +660,48 @@ static void ublk_apply_params(struct ublk_device *ub) static inline bool ublk_support_zero_copy(const struct ublk_queue *ubq) { return ubq->flags & UBLK_F_SUPPORT_ZERO_COPY; } =20 +static inline bool ublk_dev_support_zero_copy(const struct ublk_device *ub) +{ + return ub->dev_info.flags & UBLK_F_SUPPORT_ZERO_COPY; +} + static inline bool ublk_support_auto_buf_reg(const struct ublk_queue *ubq) { return ubq->flags & UBLK_F_AUTO_BUF_REG; } =20 +static inline bool ublk_dev_support_auto_buf_reg(const struct ublk_device = *ub) +{ + return ub->dev_info.flags & UBLK_F_AUTO_BUF_REG; +} + static inline bool ublk_support_user_copy(const struct ublk_queue *ubq) { return ubq->flags & UBLK_F_USER_COPY; } =20 +static inline bool ublk_dev_support_user_copy(const struct ublk_device *ub) +{ + return ub->dev_info.flags & UBLK_F_USER_COPY; +} + static inline bool ublk_need_map_io(const struct ublk_queue *ubq) { return !ublk_support_user_copy(ubq) && !ublk_support_zero_copy(ubq) && !ublk_support_auto_buf_reg(ubq); } =20 +static inline bool ublk_dev_need_map_io(const struct ublk_device *ub) +{ + return !ublk_dev_support_user_copy(ub) && + !ublk_dev_support_zero_copy(ub) && + !ublk_dev_support_auto_buf_reg(ub); +} + static inline bool ublk_need_req_ref(const struct ublk_queue *ubq) { /* * read()/write() is involved in user copy, so request reference * has to be grabbed @@ -693,10 +715,17 @@ static inline bool ublk_need_req_ref(const struct ubl= k_queue *ubq) */ return ublk_support_user_copy(ubq) || ublk_support_zero_copy(ubq) || ublk_support_auto_buf_reg(ubq); } =20 +static inline bool ublk_dev_need_req_ref(const struct ublk_device *ub) +{ + return ublk_dev_support_user_copy(ub) || + ublk_dev_support_zero_copy(ub) || + ublk_dev_support_auto_buf_reg(ub); +} + static inline void ublk_init_req_ref(const struct ublk_queue *ubq, struct ublk_io *io) { if (ublk_need_req_ref(ubq)) refcount_set(&io->ref, UBLK_REFCOUNT_INIT); @@ -724,10 +753,15 @@ static inline bool ublk_sub_req_ref(struct ublk_io *i= o) static inline bool ublk_need_get_data(const struct ublk_queue *ubq) { return ubq->flags & UBLK_F_NEED_GET_DATA; } =20 +static inline bool ublk_dev_need_get_data(const struct ublk_device *ub) +{ + return ub->dev_info.flags & UBLK_F_NEED_GET_DATA; +} + /* Called in slow path only, keep it noinline for trace purpose */ static noinline struct ublk_device *ublk_get_device(struct ublk_device *ub) { if (kobject_get_unless_zero(&ub->cdev_dev.kobj)) return ub; --=20 2.45.2 From nobody Thu Oct 2 10:55:24 2025 Received: from mail-oa1-f100.google.com (mail-oa1-f100.google.com [209.85.160.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 945D223ABB3 for ; Thu, 18 Sep 2025 01:50:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.100 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160239; cv=none; b=TUQ1LH3AELp+1FZMwqeisTtrLHAayZ8R+dA4HthOk0QobYKkrqEISu6DU65eswdPyBdDXvP5SAIMhhsDN5FAYWTXyllHymiFaPg83KL9mV9SATQo/r57XW98QazQT9DlA8+UU1ftusemm7oiVnNPJcdFN3XAWJHFc0jI9GKiGE0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160239; c=relaxed/simple; bh=8fCwSybfSb+ztMiEZfG9Uw8IwGt/oQT1hKJDe6hJClA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=h+yUtL+7y0ow/POsCEb0zRGAWm1+NCm6oHx/ui6mDZhuR1DHw4YCvj7gnPzoqGbOz+fO71vZ4dfxF4jc7lEflLmKFXykwVHVtZd+za3mqG+IHdjvhqLgeSGBedIYYJ0SrJjFpA3pGvsnCgCEK6wb/hkGl1o2mx5SFWEQde4DLhM= 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=QTNBG51p; arc=none smtp.client-ip=209.85.160.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="QTNBG51p" Received: by mail-oa1-f100.google.com with SMTP id 586e51a60fabf-3293984d2e9so97906fac.0 for ; Wed, 17 Sep 2025 18:50:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160237; x=1758765037; 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=+Hlg0LwnvqE1ZMcyukI63UK6V6Dmpb/JL+/bnCbL9es=; b=QTNBG51p/hP85+GWjau3NYEheZiYjP2oXDNYlaMjdZBbJuFOTzUq3zTjmzugMMocU4 IcL084OIYrVqkjKjGlaMrULqjbTiYacGsEcBlj/s2lzmKs5UjQgKRxj3POFd76aPqrKL FA8PJdCIOCnqDRVmRPa++zO5vmzmxDHP8PV4+cI2MnT3eX3fEbF6C0VH9SNzQvLM6lrE OLjCl3xOpmAH1EC+rLOOjGWuWwPTVgseeibFUEnQLUsFtUEsxirhj8GvkxqTWm6Wnt6l fWHhznitS5k0BSZ13nNL4haCrvndc3pZ3zLYaamLQr4ex8i9TqT7WEHqNs6PBc7/Cc3G kGFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160237; x=1758765037; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+Hlg0LwnvqE1ZMcyukI63UK6V6Dmpb/JL+/bnCbL9es=; b=pvkYphDxpWJi4N/69gjFKjmVuh2m2iWOoY/PR2ABVTV++QRMdxyR+HDPPeQGVWW/Z8 Jbt//YS1OuJOKBneWk/hiGUBQxeAyPeBd5uMId9Fyuy+yOI3/4agedbP6HJqfAjpCeHq fjmXYds7qQBAWpZbyazbzkn5PIOHLksZ76UXaOrNa+h7m5TUy1TaJWwxd2abY1qzXOCD 9i5mI4MSbFsY5FA5PYk3AaKbDatqZ7CY9VTuzEyFUgEuUAFKSuM/nWrtR7+wXjPnhBcT qT2n5sMsXbM/wKlSLmrBYN+GXiF7gqt21UwOZhlmPSx1iFEz7Ov8sXRM+Xc74sIQXeTK BWHA== X-Forwarded-Encrypted: i=1; AJvYcCXRi0VpNVPL8agDrvZnCeRaqO7aoaFAKSxput7XiLCfszpHug0iDCzVfdEl9ZqoeOfMJoaWk9q5ymEdLJo=@vger.kernel.org X-Gm-Message-State: AOJu0Yyd50hLvCFVJofDaHTd2p9AIsuEUhbPuhQ/YS7qw9FRQ5VoSRTT blIq+jE1BuXqeUT1Vada6SzCxK3DiPp0/ZPcWBwEaYv53D/f8bRAc92ym8+IU0r1e9lU9K7issS jdwYiUDF6a1oySk6mKBVut9z/iC+cJTZu0YHrYuRW4tncqb8lcdSP X-Gm-Gg: ASbGncvte6QAT0yPSCPlIt4bml2a1UKX+VOIQymoQ9SEqhoe+nPTSqirr+9fn5Np10m xVTx7sMs78etTKqYdiAgmXxuqd+0l8L6kDwK3EN7NuoLQX6FFazznqPmEM/cTD8a+UP9NHZta5m sQbl5nM+tld4TFT/F7RYEnnGCGu1A0zYnGOYojA3BYS5gGYFc1zdULNbIUv5a3qpUYv+gL28MDB +ZheGUHazVGkbShUo/xofS4lCMi7SGC6ObXyv279pH9phy8hWkoX6I1v9eLuEcPMuFrl3vNSRCl 1p8cY0IXDtT6QyWeqwW8f3TZzYfzsIvDNwbtFWlQMTi0qFOylVGZmdAzNw== X-Google-Smtp-Source: AGHT+IH05i5HOyeOVNivDI54AuJFBG+1BVvOmWfCFFlEmT1TpgGivNz5pQWfiOVxR1apuSbY+NQLUExwZi6T X-Received: by 2002:a05:6870:320f:b0:30b:81f6:6bc4 with SMTP id 586e51a60fabf-335c024c218mr1080971fac.6.1758160236712; Wed, 17 Sep 2025 18:50:36 -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 586e51a60fabf-336e4892c35sm122214fac.11.2025.09.17.18.50.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:36 -0700 (PDT) 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 04C1C340508; Wed, 17 Sep 2025 19:50:36 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 00DD7E41B42; Wed, 17 Sep 2025 19:50:35 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 05/17] ublk: don't dereference ublk_queue in ublk_ch_uring_cmd_local() Date: Wed, 17 Sep 2025 19:49:41 -0600 Message-ID: <20250918014953.297897-6-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" For ublk servers with many ublk queues, accessing the ublk_queue to handle a ublk command is a frequent cache miss. Get the queue depth from the ublk_device instead, which is accessed just before. Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 04b8613ce623..58f688eac742 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -2331,11 +2331,11 @@ static int ublk_ch_uring_cmd_local(struct io_uring_= cmd *cmd, if (q_id >=3D ub->dev_info.nr_hw_queues) goto out; =20 ubq =3D ublk_get_queue(ub, q_id); =20 - if (tag >=3D ubq->q_depth) + if (tag >=3D ub->dev_info.queue_depth) goto out; =20 io =3D &ubq->ios[tag]; /* UBLK_IO_FETCH_REQ can be handled on any task, which sets io->task */ if (unlikely(_IOC_NR(cmd_op) =3D=3D UBLK_IO_FETCH_REQ)) { --=20 2.45.2 From nobody Thu Oct 2 10:55:24 2025 Received: from mail-pj1-f100.google.com (mail-pj1-f100.google.com [209.85.216.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 D121523B616 for ; Thu, 18 Sep 2025 01:50:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.100 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160239; cv=none; b=Kn2v4TQCKhn8FCYKyQAT/MGll/kjj7Ar3GX1bC07hng3MQUmjt8t67GgxGZLwFekymrrzIKo6ycUnbVex7yOdEqVcn/o1CiRBd+NhuodTGqVqvvZcEOkl/h+K7hvSuQmObo+l5N2IbFIBkcDvwnWvmppp2g2ABws15Y9/85bitg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160239; c=relaxed/simple; bh=PQSg+NsLM1jaPnr5u1yPylTembKfBUItPrTQAH0AFug=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VJtrZ/0rdYk+la6thPmmd/RnLpnxXEwKe/UmU6IxzaiapohLuh+yYnlaWtLYYqz1NII4wZsv4ynYabt3ZAVMV9A6QwLlBPdu8w0EUQAK1x+3U31rZ5YyRI0m8zAEMzD/IVApOHNOPVPATsnN6rf8O6PxuuylTaajHYSKgk6y+/8= 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=SZqXbgj7; arc=none smtp.client-ip=209.85.216.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="SZqXbgj7" Received: by mail-pj1-f100.google.com with SMTP id 98e67ed59e1d1-32e6c26d321so56464a91.3 for ; Wed, 17 Sep 2025 18:50:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160237; x=1758765037; 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=8eZ3+bX6WBSXtjdkD/31SI/WDmoI3YRtPN1z9wSuqAs=; b=SZqXbgj7rqA1AWZHgIzyISYHRfh3nx1mov6Evkq8jeguYIO89ONMD/QTvnaOQJGMZ+ mubAGMBH0rtee+SBzgtLPgYL9K2ykwyPJtSH9uRH2FsB7Vr2JCia0VjX7BEgnLXDQbeQ 8/JBipWBjBC+y4SkUzttbE9BRu/Tf1aWMDh8ZEDLRAJw62KS+KFCNLOmAsCoM+edQZy3 vg28S8wLRLX8OkrCuo/YOWbJzcFx/ktTZPSIMdJ+E3gM5MlUh6/P/7l8NEk/tKiUnVau H6xAeKy0sjMNWz84Lr2ZUy7D3O7eio6bdtA+lSDDhYEmAZ9g9dEpJdIwZFmRR2pL5tNM 38rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160237; x=1758765037; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8eZ3+bX6WBSXtjdkD/31SI/WDmoI3YRtPN1z9wSuqAs=; b=u966hFZqBgayF5FWQ5FfjYBKrGmcWkZ1uR0lUjEue5Ic/KSSUvu2aetdzBRvJnH0iF 4tPxLaJ1lYi8p01XnefxhTaAfDwqrG0fEBpBS7zIIZ4Q7pLaHID1E+ClHUm0VX/ZS6Vv OOtvuoDAVR6VVW/swnPIVghrozvRGUUsj5YewxV3c8M+S1/Syx1fM1fkobnpWNSgV0jf u3GDsCTfpZeObv9SSNWZlWvpcb60ydS7cVvPd2oQpziEhgZQ8bJO9HWbJhwoqP5MmD/1 TzKnlqt9aQE5xYcO+rAIXm/xYB8RRYbnMo/nDJ6sLbBtCXoHJvTT6LXU2qsKz6lrDDqW NnBg== X-Forwarded-Encrypted: i=1; AJvYcCUBFSpR+NbLmVjgM4oDOMNL7qCDivxEtMX3v8pAaCA3j3/9MhBH/UZqZRaqb8koKTCqkjifh8PvB0oksf4=@vger.kernel.org X-Gm-Message-State: AOJu0Yx57vG79KHk2nzQ2tH34Dfq8CvcZ+e//zwHID9l4KHAxVTLUZxA 5ZV9Be06lUvxBkGp7tuDzwZTknfu7q8FhFzKv8+uiGOBcP8ui09LHn4g3WOSaruOU6n1B1xJ58Z VlSCt2b11ktmHwlI+JLcZEpad51XnYmN507esVlKtvQm5qHbzihiK X-Gm-Gg: ASbGncsyiCXgmt2qFqGVl9NxSTRECwsZkV4PskFgZ8jMQ2rkSJLgnlr2m3Z92/3kfgv X3MiJXG9bGAkph71dIYhsVEl5GqGlc+kR2asUFR+MBUQ24NporWCLx1A1ZaaKuirhGsyQ7IlIwF BTBcqcvPykz/ew0ghDXG6ESscbWxDp0qu85kRA/sV7UEolS+EWxKOsWyCIZB7CJEEEfwctfDovR Z4i2b3P8n6r9Wnm0Ns1+iPoreN1y6fyXfk0EG9iRoRXcHQzofr4v1AXDVX1i+mBE7NB9zBIhw8/ ayI7LYnDPV+f9S0FUjLQSJEYMf4QpETVduYTYGkaOeRNnFh0pBncyToSIw== X-Google-Smtp-Source: AGHT+IGpe3PKGk/dmNU7uwnyKBD/mitYkbE56glp+d2Oisz9q42fB+T/0U/g/b1NfT6i+UsFR0qJ3eamQB1L X-Received: by 2002:a17:90b:3889:b0:32b:8373:203f with SMTP id 98e67ed59e1d1-32ee3f8b01emr2848443a91.4.1758160237037; Wed, 17 Sep 2025 18:50:37 -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 98e67ed59e1d1-33062e1abc8sm78607a91.2.2025.09.17.18.50.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:37 -0700 (PDT) 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 60D77340325; Wed, 17 Sep 2025 19:50:36 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 5BF28E41B42; Wed, 17 Sep 2025 19:50:36 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 06/17] ublk: don't dereference ublk_queue in ublk_check_and_get_req() Date: Wed, 17 Sep 2025 19:49:42 -0600 Message-ID: <20250918014953.297897-7-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" For ublk servers with many ublk queues, accessing the ublk_queue in ublk_ch_{read,write}_iter() is a frequent cache miss. Get the flags and queue depth from the ublk_device instead, which is accessed just before. Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 58f688eac742..d6d8dcb72e4b 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -2525,14 +2525,14 @@ static struct request *ublk_check_and_get_req(struc= t kiocb *iocb, =20 if (q_id >=3D ub->dev_info.nr_hw_queues) return ERR_PTR(-EINVAL); =20 ubq =3D ublk_get_queue(ub, q_id); - if (!ublk_support_user_copy(ubq)) + if (!ublk_dev_support_user_copy(ub)) return ERR_PTR(-EACCES); =20 - if (tag >=3D ubq->q_depth) + if (tag >=3D ub->dev_info.queue_depth) return ERR_PTR(-EINVAL); =20 *io =3D &ubq->ios[tag]; req =3D __ublk_check_and_get_req(ub, ubq, *io, buf_off); if (!req) --=20 2.45.2 From nobody Thu Oct 2 10:55:24 2025 Received: from mail-qt1-f225.google.com (mail-qt1-f225.google.com [209.85.160.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 85B3623C4F3 for ; Thu, 18 Sep 2025 01:50:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.225 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160240; cv=none; b=HeoJ+d9tuRZtgfZ9YtCJCBasl0YGgULsuv+qaqD0Z4WNU8DvXDWq6ZfQR5ooXrK9u/cLY/CK3bb5iQ8JEaHeZGM7zjY0LwG6AT/oH94VDsVfZQD+hy2aWsHxhp9X/wLu5GGjRh9FHLtfHHTVWi12Qp5g7WoELVyt+dnche2Kb+U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160240; c=relaxed/simple; bh=SADlHgrOrTEn79WvE5EtQJLfGlA1k13iJsqgAnWiaNI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TjTplKvjjyriy0ymUaWqY3lqo3iUn2GPNm6+8yaCahoczJ2BzmgWrqDNraDdBVgoPHCpbeXSCrYcoY/34YqjAnAxHFjLG5hTqteBx+NWvEpek1JTCiSLk5RhVPSsOPQdqXxw99ugkKjRzKncCHPnIeAP+9qmCDk1p4XcdcRXSNY= 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=IkrNHWib; arc=none smtp.client-ip=209.85.160.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="IkrNHWib" Received: by mail-qt1-f225.google.com with SMTP id d75a77b69052e-4b604c17182so225371cf.1 for ; Wed, 17 Sep 2025 18:50:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160237; x=1758765037; 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=8QKZxZyP+vsEEnhv8Ftm0VexvVlHS9TFLKY4pSs7XGM=; b=IkrNHWib0W+mKEJucZ+ukTsLPO44B0hauglDgo200XYzN81SwdL6LZacBor6catxTS GjIKrebSBY+YyIfouLYc8W7H9Xr0gqKBUDf522DYix7Mt0osi76aVCpNq3R7LDVMBf0C x+5nlHbTuJksu796y3x/6fGVG/gtnT1w//ZFmeUledf32i3/iqoeeM35ZR6dO3WXgvxK pzjm7Qdt2bkk8I1j2RjVr+Q1fWjurx/8tg/Hi3zi/7Cd7JulsuE1KmWRoPO/zc3dgnLG s98r90BwRdUlUe3KOLBOOM5ObrD4JwL/Xp7ccGbeucmQIcfsCSbs4ZDUnjipjaFoypeR vAAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160237; x=1758765037; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8QKZxZyP+vsEEnhv8Ftm0VexvVlHS9TFLKY4pSs7XGM=; b=QlGgV6IksBe7lLzgc6zIaPDKwivEsyGs1bEqhduZlC0SmRbQjq9KpPZZaFLF/5Blb2 pAbRtWkzSeKFZ82xSjbIsIjTN5iJnEakrk3KqzANdtK8B75W5xRtAEWXbn0BCtMDdj6L noe07l/kDJ/IiGqdBDs0pB5hDSkbODwJzyZ5CEZBjSBdTQqZRk6wSpyC0WnlNg1f/XGv 9zm25+BRFQzdRycSVFJOZz52LGQ/v4P6yMqhI5L5k7qqKY9Jjg1oJ5p36BA1AzxsIQGt fZKf6PqTUuTmbvWKeSWDtN0+m0j4koZ273CYjx0wgh/kF9/ZJdwobFKOkmmAGI+FkH1q CTHw== X-Forwarded-Encrypted: i=1; AJvYcCV/8BCZ7I+0bc5rGHAAkieq7Q2eXcIrWXnLCl1DyJ8u2FyWE/uvWmtWtCJ0jwvDlpjT97LYQt9VazOY2p4=@vger.kernel.org X-Gm-Message-State: AOJu0YwyX2ReJvaWL4aJQWeQRLOUmmy+pNUMZklv+KPkN7Wad9ioZu3d 0oewrxoD5VYy6TY5TYdKduwSnzsfz2CSV8w096rOHGFhbwKbiqrTi4qsWheomdVk74CAmXCzjoJ vZ9JEwBJ0HvOOZBDMwtW4cbYYtdAirvE8oBLgs4cjxHNCzf7ZhrGT X-Gm-Gg: ASbGncvWm75hQGwnDZqGJT3wwRnIpoTp8Cw1v+yTKtIovtIQdcl0TCw1VUNbdun1Dcf ypIoIjVypJqoYrjpOfsizAJTiHrRJpika6sgnyhpdBQHXTK9IEvGjI9I5pgYhwB7HTJZF7c09A7 iqAzdzs+xP829aYkKgoYv/BRSDHocJB7x4aZNQMynuIV1rxIbJGoP/XzBOYqJzHIKICCJYHolFM Fjs/6aCUKqcK4Z5hGj5REzDXRNbuNf6Zs1jtdmvkH6GUJNnxA3PJr1jHsA4fMaN8vmdWoxWaPpO ZXHE/+McfiQxpBFDBfKqrwyaq71qJ6hdcAYcv/eIgLaDehoM0JLNzjzL4Q== X-Google-Smtp-Source: AGHT+IEsgIGsNSRRNT38WH7yzSqLp/Ktc3WgoI/FXMkTetjwhZhrLfnLD0dIVWr34qvWWxXEJ54m1NyDRmNv X-Received: by 2002:ac8:5dc7:0:b0:4b7:aa56:c0f8 with SMTP id d75a77b69052e-4ba66a30247mr35635721cf.4.1758160237404; Wed, 17 Sep 2025 18:50:37 -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 6a1803df08f44-79350a538c8sm710306d6.33.2025.09.17.18.50.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:37 -0700 (PDT) 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 C303334059B; Wed, 17 Sep 2025 19:50:36 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id BDB7BE41B42; Wed, 17 Sep 2025 19:50:36 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 07/17] ublk: pass ublk_device to ublk_register_io_buf() Date: Wed, 17 Sep 2025 19:49:43 -0600 Message-ID: <20250918014953.297897-8-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" Avoid repeating the 2 dereferences to get the ublk_device from the io_uring_cmd by passing it from ublk_ch_uring_cmd_local() to ublk_register_io_buf(). Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index d6d8dcb72e4b..cb51f3f3cd33 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -2123,15 +2123,15 @@ static void ublk_io_release(void *priv) else ublk_put_req_ref(io, rq); } =20 static int ublk_register_io_buf(struct io_uring_cmd *cmd, + struct ublk_device *ub, const struct ublk_queue *ubq, struct ublk_io *io, unsigned int index, unsigned int issue_flags) { - struct ublk_device *ub =3D cmd->file->private_data; struct request *req; int ret; =20 if (!ublk_support_zero_copy(ubq)) return -EINVAL; @@ -2150,10 +2150,11 @@ static int ublk_register_io_buf(struct io_uring_cmd= *cmd, return 0; } =20 static int ublk_daemon_register_io_buf(struct io_uring_cmd *cmd, + struct ublk_device *ub, const struct ublk_queue *ubq, struct ublk_io *io, unsigned index, unsigned issue_flags) { unsigned new_registered_buffers; struct request *req =3D io->req; @@ -2163,11 +2164,12 @@ ublk_daemon_register_io_buf(struct io_uring_cmd *cm= d, * Ensure there are still references for ublk_sub_req_ref() to release. * If not, fall back on the thread-safe buffer registration. */ new_registered_buffers =3D io->task_registered_buffers + 1; if (unlikely(new_registered_buffers >=3D UBLK_REFCOUNT_INIT)) - return ublk_register_io_buf(cmd, ubq, io, index, issue_flags); + return ublk_register_io_buf(cmd, ub, ubq, io, index, + issue_flags); =20 if (!ublk_support_zero_copy(ubq) || !ublk_rq_has_data(req)) return -EINVAL; =20 ret =3D io_buffer_register_bvec(cmd, req, ublk_io_release, index, @@ -2354,11 +2356,11 @@ static int ublk_ch_uring_cmd_local(struct io_uring_= cmd *cmd, /* * ublk_register_io_buf() accesses only the io's refcount, * so can be handled on any task */ if (_IOC_NR(cmd_op) =3D=3D UBLK_IO_REGISTER_IO_BUF) - return ublk_register_io_buf(cmd, ubq, io, addr, + return ublk_register_io_buf(cmd, ub, ubq, io, addr, issue_flags); =20 goto out; } =20 @@ -2376,11 +2378,11 @@ static int ublk_ch_uring_cmd_local(struct io_uring_= cmd *cmd, ^ (_IOC_NR(cmd_op) =3D=3D UBLK_IO_NEED_GET_DATA)) goto out; =20 switch (_IOC_NR(cmd_op)) { case UBLK_IO_REGISTER_IO_BUF: - return ublk_daemon_register_io_buf(cmd, ubq, io, addr, + return ublk_daemon_register_io_buf(cmd, ub, ubq, io, addr, issue_flags); case UBLK_IO_COMMIT_AND_FETCH_REQ: ret =3D ublk_check_commit_and_fetch(ubq, io, addr); if (ret) goto out; --=20 2.45.2 From nobody Thu Oct 2 10:55:24 2025 Received: from mail-il1-f225.google.com (mail-il1-f225.google.com [209.85.166.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 A23A423C507 for ; Thu, 18 Sep 2025 01:50:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.225 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160242; cv=none; b=jpGCjcJKs4gVIyHBHW1WBmR9+vRtIZt8zYMFe4J+8vX7ZkVw8S9pUQFDOUk5DgFsmTy1vMgYq1ZlXX8UgtIwJECPBaMYrIheoJlCPEU3JHiR99nwxtD0eQ7gqZ7AK2BOE2ukw/gdyGw/7SUf//lFmirU1+9wnK1+CRyWJm4cpw0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160242; c=relaxed/simple; bh=SxYD5WuHLRPoT/cs6wVVOR8hP8iZlHeIqgfFLbpvcHQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uNap+mBgsKR65sAJRufQmB7/4UqiZwb+jWy1n1hZu85V5tpSoYzxMntLzpVqE030xbhB55WKqqLhM4WgTIsn+HbvgjiOSjzJknekL3sdj6FyjOAcoC4KyNOkr/ZOwEiC2LJVw+klDDmFpyznOVgTLJUmqw3g7txXXqA0Nsrij3w= 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=Z0ueULhW; arc=none smtp.client-ip=209.85.166.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="Z0ueULhW" Received: by mail-il1-f225.google.com with SMTP id e9e14a558f8ab-4240ff5652bso170425ab.1 for ; Wed, 17 Sep 2025 18:50:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160238; x=1758765038; 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=EHN5LrAZcA9wf+X46VWuoZMibI+SFl5Bk6BxNvNG8fQ=; b=Z0ueULhWplm7sJ2jk4hAVpBK2/dMWxuGipITS705kenj4lMxohAZQpFXOyIwvaVmKx 2t+RmjXC/c3iUk1sLg4bmFgv0btgNLpb61+qfQp5B2ARXzjgVV7YDT5JIoOACOQ9o1HM kvn9m33SCegdXETp2Dr5heihU243+4CqbOn4RZW4csGFIfz63q7q1LNIQ8xxIFZEAL8D GNfFxCYsQTw096AM0U/17eU688UmSdXil2xaJ1oKqd2FcNzRBQlmE+BLaBtHIMBrqcZN zBFCM6DUQwElwpyacbhU0X7ip/PlYEOW+DbXBjpMn1M2JW8ZbP+GDtR1pOEc/D1H+8Oy 2a9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160238; x=1758765038; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=EHN5LrAZcA9wf+X46VWuoZMibI+SFl5Bk6BxNvNG8fQ=; b=LZpL6qMneJ4LypWgLSS/pA/d2NJeEh+1NNcDLedkjldUOTAns4fTCNn0FaJ8za2INR pc8am0tX08HmNk5zRo/M+dHim2m4j5vC9jvyefWpI1y2I0coSyJVXjP6ebDJocjINKKh l9CbxMxFuUeOFIqCjZPRf3AfKQwC0cr6H2xMKbQWZBerhSglXEiZaJtoGw0CiR7jgaFF lXp73dPN0IoYlXPN9xtiGOf9ErUF1sueGsPiE1CzU3IoT9HCSjt1OmbB4wV61/TsHjB6 znylAB1eih7I9O1fhiLT9PnniLW62A93Tu36rk79yBEwDOoBDjegoyDhqklpN7DqAhE3 mLIw== X-Forwarded-Encrypted: i=1; AJvYcCXDXbwSdMb5N8ULyZ3yKUl8mPLsiC+RWuQecD6kWdYIGHlatKcox/guI6HIrJHNufkm9+pEl4V44jGLH/s=@vger.kernel.org X-Gm-Message-State: AOJu0Yw0YwcHWtL2JOBghpvKaJ9hEosES7A7bo2F7hJSDjb7Y+bYc3Gc 12/hB07MKOt4XHxd3UEmJ5K1uwURmPZbhQZwh0Urr9kKSu4MENVMDGciMUXGqD9U631LlMqaGPH eMJfUcGigtqCeNJsC5czorNvSNZosHsg8K0Ez X-Gm-Gg: ASbGncsyC4NPpin64HAamXlZVL44NkpmqIEIBVWzFQwBGDibOhE5zgCw0mAlmes/zIZ OliqV4G7VQu7LmzZ6a3Brc2HtWJbBEaHZyAddTiTQphHCfG2SobQx5beYTXJG6axZHkY6qAZDUh GEGHxPo8HXTb9KHPV6iToXK37bzZoD8LpdzsSKUhNlJO4pvLcZSm7Wk1nUd8pZfiIVzqt4QPNHC 3GtmZsUHN8UtmvQHXU9Ov9QurgJBF4j/BN9bdb3gxl0oV+I815V9HKu9G/V02BYjItjMl3dayrZ EI7ZUHRh/T4CrO/B4E9Ua36vlvBhe37kgqcBtH6F2fo89ei6awCt1i0bncboL11p/lGHXiqZ X-Google-Smtp-Source: AGHT+IHg9ormGeHNVdb3lk5wKhpVB+m7oJDCUTFeC6NzfM31elgAomyyVQtn+PodMnXbWY3OkRmL+hjR4jJD X-Received: by 2002:a05:6e02:178e:b0:415:8117:d417 with SMTP id e9e14a558f8ab-4241a563cf4mr22899405ab.7.1758160237761; Wed, 17 Sep 2025 18:50:37 -0700 (PDT) Received: from c7-smtp-2023.dev.purestorage.com ([208.88.159.128]) by smtp-relay.gmail.com with ESMTPS id e9e14a558f8ab-4247353db28sm47175ab.32.2025.09.17.18.50.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:37 -0700 (PDT) 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 1E83E340508; Wed, 17 Sep 2025 19:50:37 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 17A29E41B42; Wed, 17 Sep 2025 19:50:37 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 08/17] ublk: don't access ublk_queue in ublk_register_io_buf() Date: Wed, 17 Sep 2025 19:49:44 -0600 Message-ID: <20250918014953.297897-9-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" For ublk servers with many ublk queues, accessing the ublk_queue in ublk_register_io_buf() is a frequent cache miss. Get the flags from the ublk_device instead, which is accessed earlier in ublk_ch_uring_cmd_local(). Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index cb51f3f3cd33..751ec62655f8 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -2131,11 +2131,11 @@ static int ublk_register_io_buf(struct io_uring_cmd= *cmd, unsigned int index, unsigned int issue_flags) { struct request *req; int ret; =20 - if (!ublk_support_zero_copy(ubq)) + if (!ublk_dev_support_zero_copy(ub)) return -EINVAL; =20 req =3D __ublk_check_and_get_req(ub, ubq, io, 0); if (!req) return -EINVAL; --=20 2.45.2 From nobody Thu Oct 2 10:55:24 2025 Received: from mail-pl1-f228.google.com (mail-pl1-f228.google.com [209.85.214.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 CD99E23C8A0 for ; Thu, 18 Sep 2025 01:50:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160240; cv=none; b=tMfSF6vIUbLU9BRUi3unUhs87Pk8+DZ07oghTYjF6NB7AWdlz66m2/n+Ej8FpUzSmWfQNML5ECMNle5bBt25WlEWvKZhkrSJH5BWisVyZNuHmKwew4nnhy5mtWikQZNnAKKS2P7qx3rYciWgVvZv77+EGbZiJRIhV80x6FKUnIw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160240; c=relaxed/simple; bh=ZPewgPLefZDXOWx69JxVHXK+Ssrm/2Gt5VEh56b2P2Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HuXmCN5zTKzXmrhFNIdO5GQJo5JfOPmY8VGRERocgQHIQ0Kojir3GIiKujxjxrygM6JJQHjsjRft+yQtfCwh1gUKk+PxCYoK2Gfn1UmU9cqNOsOusfaH8EKf+WvsMJRc7ZsNBOBnCviOzHlnE96VY+iv8k052Kz4qXzmw9MSRFM= 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=GYGiNpPg; arc=none smtp.client-ip=209.85.214.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="GYGiNpPg" Received: by mail-pl1-f228.google.com with SMTP id d9443c01a7336-264e0729c4aso908845ad.0 for ; Wed, 17 Sep 2025 18:50:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160238; x=1758765038; 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=3sujA/Mwj2kDqTmjgWypKS2wV8GGpmOhayMT/OiS8xA=; b=GYGiNpPgtrex3QY5hwSgKW3u/1UD2BdKyd0cr1dQWV5/f75xqbrPorzjl//1HYLSsB yTEqlp/KeGq4V5nm9olfiZscsa4cFrladH5eq/+gPlyonxO4WQQlJf6QRZvsA/lyr7gA BR8VQpXXDbgSqPYsMjX121ydJW9MKcZfWF13udN+/kkcU964kjqpRijtSieWGCV1vOEl lZJBcgjhV7HdIqVV8LB9CT/B6h4Rgnq86izF9/hrPPtIkAkRFaP4b4M+WSLuSrUZU+2U 9C9JZ0mLa/nad+T8p50TVTfq0FDk38y8t0px6DpCSOTcQrBArEApFLTDGEmnD3clQCAK s7FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160238; x=1758765038; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3sujA/Mwj2kDqTmjgWypKS2wV8GGpmOhayMT/OiS8xA=; b=IhmNwhui6gNvS45jUnxxf5GuV3lNbb4PYcYzr5ovXUtgwxIa7ZN1w55eJsoJf6zbNe /qArJN7GZ4HxzgIDqXH/828+RzmNDIYTbcVth4AW0xDsU0h01u4ctLI0rcmZ/cpOoNGd gU6pWRVWnO74wKlsT4pVTJaKWATgLz59qje/VIg+XygBjzFr9p23Fic6KvjEg/kGw+og k8LL+ui2yrbcLImdxfpLBUA7nzveiKBOHU2d1jq46CTf0TG9ZYpqRCtVFQf7Cdqq3iuO wvFp9bk9YD7RCtKcoZe06s2Wr3N245F3OpOWn8Xmre87X5drWyqwJl5DlE8u88eVNWY8 DNlQ== X-Forwarded-Encrypted: i=1; AJvYcCW964qdP/qhHfEdDOU6E75aO5bQ+NuQfBtIIV7RpbBWErNM2He+q++tn/zIa3CqIFQoRE2zgZ2BL9kxGno=@vger.kernel.org X-Gm-Message-State: AOJu0YxuPINqF0SwvPlaj4z9JHmOk4Lezl+tbjESYTqNiIdIyCtSKe5a g/Lf/U4sBxI0iz3GzizcQc3jJ9U6eDtik57VQdeib4DHy7tTqrSXuOBBvLqtCk++6XutFUqdxgT wRLMEG5kTGHNOR/YMrmd+KyXxHVhLtLfu8UT8 X-Gm-Gg: ASbGnctPz+vikDKd7O+cMTA7X9UdCUFtijN96Zd/WUgFrCRV6AEYeS/rDGiN6F/EFxn OhGbU3DNhtGvmeE3zuBoHFN8Jlt0h7yYngqftHjO8F127olEN6dTJDXqS2FPGiG+t0qdCouF+fY t8JBNOatP6kV00x+QzC1/d4tCQ6T57/eEu9pdl5lbn9+YSUfBid2GM87hdnd5xJ4rZDuyP5zylp T/Z9wNNB36kdxGhdNzX04YaJORtwsErO9AASQmHdsNNX74kYRxllmKk/RjT5evqlGfaBAD2nXE7 zGg+hvKtmy8FNJoF4AQbCETe38/BmQ+riDDv+mWB9bXmhPLZ0xfUzVGwSfuksC3GBPjdrY46 X-Google-Smtp-Source: AGHT+IEfGwi5Uf/eDYuTDYKzX2zNObQ7fCQN1nE67W9r2agd/jqP5l+mN1MTQRTMObFyfNU2YBGdUgBoSlJ8 X-Received: by 2002:a17:903:1c3:b0:269:80e2:c5a8 with SMTP id d9443c01a7336-26980e2dac9mr9818105ad.7.1758160238076; Wed, 17 Sep 2025 18:50:38 -0700 (PDT) Received: from c7-smtp-2023.dev.purestorage.com ([208.88.159.129]) by smtp-relay.gmail.com with ESMTPS id d9443c01a7336-269802bbe62sm940235ad.66.2025.09.17.18.50.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:38 -0700 (PDT) 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 6950E340325; Wed, 17 Sep 2025 19:50:37 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 65ABEE41B42; Wed, 17 Sep 2025 19:50:37 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 09/17] ublk: don't access ublk_queue in ublk_daemon_register_io_buf() Date: Wed, 17 Sep 2025 19:49:45 -0600 Message-ID: <20250918014953.297897-10-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" For ublk servers with many ublk queues, accessing the ublk_queue in ublk_daemon_register_io_buf() is a frequent cache miss. Get the flags from the ublk_device instead, which is accessed earlier in ublk_ch_uring_cmd_local(). Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 751ec62655f8..266b46d40886 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -2167,11 +2167,11 @@ ublk_daemon_register_io_buf(struct io_uring_cmd *cm= d, new_registered_buffers =3D io->task_registered_buffers + 1; if (unlikely(new_registered_buffers >=3D UBLK_REFCOUNT_INIT)) return ublk_register_io_buf(cmd, ub, ubq, io, index, issue_flags); =20 - if (!ublk_support_zero_copy(ubq) || !ublk_rq_has_data(req)) + if (!ublk_dev_support_zero_copy(ub) || !ublk_rq_has_data(req)) return -EINVAL; =20 ret =3D io_buffer_register_bvec(cmd, req, ublk_io_release, index, issue_flags); if (ret) --=20 2.45.2 From nobody Thu Oct 2 10:55:24 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 5129E23D2B4 for ; Thu, 18 Sep 2025 01:50:39 +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=1758160241; cv=none; b=RQ1Jio63FIFpqcBLA1cg0lBkqXQJh08fp8gqq7Y+f1WNEHICrCIo1TgyQS+G1i+pCnwWfKV4ijzim9FRcuY2SUlFVXVcWqm4rRcLX4LiB7zGVf6i/qr2J9cOHYamYtNTGyNQ94xG73o51aZsjlB19sk0U04jMm1CFWtefnV+VwU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160241; c=relaxed/simple; bh=IzqTeejOplBbi+eM1A6PaFtcunbVQ069l6eaeRHj2kE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SD2KIdAxdFum3f1PHOvRrBN4x7JOFrmbfnaLavoslNfqsR0j3lERhlKobawlOuIXeR7lNfWreXVf1bVW4xcfetKj2His+DcxwyRIPZWfTKv2TgXlVQlsj6BX767OxIF6Rk6mjFzhQjO5p4IHzHHorXR0dbGe6RMcN9ixNzZ8TPg= 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=NA1Q/KHT; 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="NA1Q/KHT" Received: by mail-pl1-f227.google.com with SMTP id d9443c01a7336-267fa729a63so605665ad.3 for ; Wed, 17 Sep 2025 18:50:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160238; x=1758765038; 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=1wQVhgHo+8vogqC7BSwqDKf5lIXZgh0TKgptIhNyogA=; b=NA1Q/KHTLazqS0QJecMFHADF6zhVZszUPpfE4rn7TGKkuOl6kOT4EPG/Oxpven5itK 65NL0dsPp2WsYKsxlL7lKiE/yW6YG8pMAX2II1XXDamlFP8GK/Ci0LbXLKVjafJROXLa AJHmXlJXI24FMwvrquv2gHIBBAbupLBpd6//JAlzPgIwMYxSJxxxRXzjv8zaPeILma7S BE8hQjk5J934pVQXfSbBrWxL+y6ikVPaQmlJDu5SV3kyqLHAukeBEo+TnodYk+FiRiGN Duxipjk6USymDC4x9g/rYQVdyI6mqMrOJwCqimHMELuPtEH7qbhCgh0YrgpvRYdkvtuJ fg+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160238; x=1758765038; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1wQVhgHo+8vogqC7BSwqDKf5lIXZgh0TKgptIhNyogA=; b=pxp2TFmkrCVWWGPWdak0rM+i1Nki6CFFD4kUwpM37XRUWr5xWqNYdS5iT5zAtaVSXi pwX3YPaC9CCq2r5PFq7ZpGblcw2xXBVoXpgfAMNYCCshV3pquxA+dJkmh/+lv3vBFdvT ObpDbACPpizCs5Vh65WTZhvAxzgCeagjaISpWuP8RcLgEIQbeqo9r9DTIgyZuHqnS5DZ 5uekrJGYWv1MY2GfMnKcNSYhwSDqkdycVb0rtT/E5PMRXeNefHE1vz61logra1L0KfPv cS+oB+zUgleMRkp9zJiaLNgRuDAvyZGoSILjx/YIsj5aF02ocCmni6bQtu9L3vLCOWZz i0xQ== X-Forwarded-Encrypted: i=1; AJvYcCWbdll5DdUtAb0I+ICjNB10avLfDgIL2WOnOhlUqfph9lGkdamIZU9WSiT4PvaOOLO9718t2SOWcrxg+j8=@vger.kernel.org X-Gm-Message-State: AOJu0YwyPCV/91EwgR6wdjxJvC6Uu384C1p9wQ7G1gZaqvBW8+vy8inN EbtcbehNABDKqIc1qd+rTbcoTx9g0TcpQIM00J8yf2S0y+zFkXFwvPsqK/BXSlvRcu2W7+fW0FV RP9yq48E9WFxH0nKnzVX1Gic8iqe/iGFTw/VOWs6aNwr+QPVXB7QH X-Gm-Gg: ASbGncv5SfNHWRq406vZ0FucMUMezf3FSRoOnK9+4q4+Gp90ejrM/eMpg3qQPdBalm8 gPtScQdCTQOHk9w2S8Hk69w/QfByw1CrRgXbH0wQ2ZHUgBboCe38XKM2pnH7zbc20SyhVDIguHM LqzCos3vqSmfJg8KGjN7GYaEwlvf2rTSpj0Rpzbpl50Myxn7l0pG080MTqz51IBEsTx0EgCxYDi Qa/w6Ty8qKskdxutGXbmQft5lVCIcGI2K3ky4143leZexg49F9p85gEGw0z3xY+GN8du+Jya6Dt cgQmG3qELr09IZALVQpxMLXfzrCGLEIoUymzx5fyVqjGB7cLt1TCuWY4kw== X-Google-Smtp-Source: AGHT+IHYgElD2bebvs8pcE3XolyBt06ynW+sJ+AuqDmRJpc7+kRWh6qkKyyz5C58hEj7i9w0FTtgsyRVIiJT X-Received: by 2002:a17:903:22c1:b0:269:85aa:3776 with SMTP id d9443c01a7336-26985aa513emr6410735ad.11.1758160238394; Wed, 17 Sep 2025 18:50:38 -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 d9443c01a7336-26980271fc7sm993065ad.37.2025.09.17.18.50.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:38 -0700 (PDT) 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 BE87B34059B; Wed, 17 Sep 2025 19:50:37 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id B6B8FE41B42; Wed, 17 Sep 2025 19:50:37 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 10/17] ublk: pass q_id and tag to __ublk_check_and_get_req() Date: Wed, 17 Sep 2025 19:49:46 -0600 Message-ID: <20250918014953.297897-11-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" __ublk_check_and_get_req() only uses its ublk_queue argument to get the q_id and tag. Pass those arguments explicitly to save an access to the ublk_queue. Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 266b46d40886..cb61f6213962 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -248,12 +248,11 @@ struct ublk_params_header { =20 static void ublk_io_release(void *priv); static void ublk_stop_dev_unlocked(struct ublk_device *ub); static void ublk_abort_queue(struct ublk_device *ub, struct ublk_queue *ub= q); static inline struct request *__ublk_check_and_get_req(struct ublk_device = *ub, - const struct ublk_queue *ubq, struct ublk_io *io, - size_t offset); + u16 q_id, u16 tag, struct ublk_io *io, size_t offset); static inline unsigned int ublk_req_build_flags(struct request *req); =20 static inline struct ublksrv_io_desc * ublk_get_iod(const struct ublk_queue *ubq, unsigned tag) { @@ -2124,21 +2123,21 @@ static void ublk_io_release(void *priv) ublk_put_req_ref(io, rq); } =20 static int ublk_register_io_buf(struct io_uring_cmd *cmd, struct ublk_device *ub, - const struct ublk_queue *ubq, + u16 q_id, u16 tag, struct ublk_io *io, unsigned int index, unsigned int issue_flags) { struct request *req; int ret; =20 if (!ublk_dev_support_zero_copy(ub)) return -EINVAL; =20 - req =3D __ublk_check_and_get_req(ub, ubq, io, 0); + req =3D __ublk_check_and_get_req(ub, q_id, tag, io, 0); if (!req) return -EINVAL; =20 ret =3D io_buffer_register_bvec(cmd, req, ublk_io_release, index, issue_flags); @@ -2151,11 +2150,11 @@ static int ublk_register_io_buf(struct io_uring_cmd= *cmd, } =20 static int ublk_daemon_register_io_buf(struct io_uring_cmd *cmd, struct ublk_device *ub, - const struct ublk_queue *ubq, struct ublk_io *io, + u16 q_id, u16 tag, struct ublk_io *io, unsigned index, unsigned issue_flags) { unsigned new_registered_buffers; struct request *req =3D io->req; int ret; @@ -2164,11 +2163,11 @@ ublk_daemon_register_io_buf(struct io_uring_cmd *cm= d, * Ensure there are still references for ublk_sub_req_ref() to release. * If not, fall back on the thread-safe buffer registration. */ new_registered_buffers =3D io->task_registered_buffers + 1; if (unlikely(new_registered_buffers >=3D UBLK_REFCOUNT_INIT)) - return ublk_register_io_buf(cmd, ub, ubq, io, index, + return ublk_register_io_buf(cmd, ub, q_id, tag, io, index, issue_flags); =20 if (!ublk_dev_support_zero_copy(ub) || !ublk_rq_has_data(req)) return -EINVAL; =20 @@ -2356,12 +2355,12 @@ static int ublk_ch_uring_cmd_local(struct io_uring_= cmd *cmd, /* * ublk_register_io_buf() accesses only the io's refcount, * so can be handled on any task */ if (_IOC_NR(cmd_op) =3D=3D UBLK_IO_REGISTER_IO_BUF) - return ublk_register_io_buf(cmd, ub, ubq, io, addr, - issue_flags); + return ublk_register_io_buf(cmd, ub, q_id, tag, io, + addr, issue_flags); =20 goto out; } =20 /* there is pending io cmd, something must be wrong */ @@ -2378,11 +2377,11 @@ static int ublk_ch_uring_cmd_local(struct io_uring_= cmd *cmd, ^ (_IOC_NR(cmd_op) =3D=3D UBLK_IO_NEED_GET_DATA)) goto out; =20 switch (_IOC_NR(cmd_op)) { case UBLK_IO_REGISTER_IO_BUF: - return ublk_daemon_register_io_buf(cmd, ub, ubq, io, addr, + return ublk_daemon_register_io_buf(cmd, ub, q_id, tag, io, addr, issue_flags); case UBLK_IO_COMMIT_AND_FETCH_REQ: ret =3D ublk_check_commit_and_fetch(ubq, io, addr); if (ret) goto out; @@ -2427,20 +2426,19 @@ static int ublk_ch_uring_cmd_local(struct io_uring_= cmd *cmd, __func__, cmd_op, tag, ret, io->flags); return ret; } =20 static inline struct request *__ublk_check_and_get_req(struct ublk_device = *ub, - const struct ublk_queue *ubq, struct ublk_io *io, size_t offset) + u16 q_id, u16 tag, struct ublk_io *io, size_t offset) { - unsigned tag =3D io - ubq->ios; struct request *req; =20 /* * can't use io->req in case of concurrent UBLK_IO_COMMIT_AND_FETCH_REQ, * which would overwrite it with io->cmd */ - req =3D blk_mq_tag_to_rq(ub->tag_set.tags[ubq->q_id], tag); + req =3D blk_mq_tag_to_rq(ub->tag_set.tags[q_id], tag); if (!req) return NULL; =20 if (!ublk_get_req_ref(io)) return NULL; @@ -2534,11 +2532,11 @@ static struct request *ublk_check_and_get_req(struc= t kiocb *iocb, =20 if (tag >=3D ub->dev_info.queue_depth) return ERR_PTR(-EINVAL); =20 *io =3D &ubq->ios[tag]; - req =3D __ublk_check_and_get_req(ub, ubq, *io, buf_off); + req =3D __ublk_check_and_get_req(ub, q_id, tag, *io, buf_off); if (!req) return ERR_PTR(-EINVAL); =20 if (!req->mq_hctx || !req->mq_hctx->driver_data) goto fail; --=20 2.45.2 From nobody Thu Oct 2 10:55:24 2025 Received: from mail-il1-f225.google.com (mail-il1-f225.google.com [209.85.166.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 BDFA323F431 for ; Thu, 18 Sep 2025 01:50:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.225 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160241; cv=none; b=N6JvufL1TBPrkVaa+wwtgZ/7jBSXRrG0kt92kGiO/ByY95nQgRdEgUP4JvxtY6ni6UgPbbpcTXXAd8jIwhufnEdkjvT5jYb9si2ceXsajTyAMU40hFQNlVt7Bh8ehNv4VLvDhvne49gjMFCF78UAl9Qzulkz2zEO+0yS/Y4dYGA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160241; c=relaxed/simple; bh=zfz/gYCKgPbXaPfFVFWWf+19XwzZGVoc4uv1OP/g800=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WcpVQGg/3U8yFnak/ulU8kp9s5UtbthKFGPzpbvI6aGDdhrHradlFSGZaBF3YqjVOrQi3XgeDD9MeSRBRRAkqXOh0Mei2+QOpu6a9ZCGwSSfIHgEfbTrt4VcTSd/DW9jKjzANpBekTjqUhkzB8L1gE4D0+XY2un0pJ1DJ8k86+c= 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=gHUoRWRP; arc=none smtp.client-ip=209.85.166.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="gHUoRWRP" Received: by mail-il1-f225.google.com with SMTP id e9e14a558f8ab-3f472ca07c3so189135ab.1 for ; Wed, 17 Sep 2025 18:50:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160239; x=1758765039; 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=g/08O5ct26XjjcFayvy4DoyctrCQbnzFyOWJ7wIG13g=; b=gHUoRWRPn1Aiep8xTmI1hgsWGfvzd11eChWO3zIhHx0Wr8edthBcBWFWJyUCXjM9AH QYl1oPqDltCuo4kIwTk/6r4S7j6Fu7x6pAdQDo5WudFiW01bJqHtN3WuYGM3w4alnfSB QFnyLnWVwToBNCHt48FOpkIM0vv8BOK0WBB/7azEMfiEd0kqfZuV1xtrlLmTAZBgs3YD k0SonXdYBLWGnOfmp+rMsfZgxWml4wiM54FdlueDjmG+f2Ac2xCSB/6Ftp0szx5aZ3z0 iYQpH4zQnl9p8gy07x8LhheDH4KxyfJYwTD1iTM5D6dxPG7KO6OghR9bByAcZ3Una8PT tXrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160239; x=1758765039; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=g/08O5ct26XjjcFayvy4DoyctrCQbnzFyOWJ7wIG13g=; b=A08bfxLidCyxOdpq1druP5Xo2wgL8tZTHyJtq/Lic6XPXcxL9uEEa2LftaFptM+Flw 3nfTFwlC75dpfE+MXPAUCbPLYQlzL/N5jWG1j8LDjn29A6soPSVG6k+EDvSSocXtFNgk 1tW+cuiiOXNcGy8cJBMlBd6hnlWcWWiKqJ+VhlDZ/QGJn77z4VSCoZGIg2RTgH+9CstV KzriFG+bL6xRXyTVHlpKbwEevAEvcAqmmnSSu7DYcNSzrfO9lbdpHvH4DrYZamjowuSY NYqkKOE29hZ52yISZuIhEMhO9FAT2Jwd4ixwp90rkgW3ESLXItE/exqpWohOzBUv/xYg NKsw== X-Forwarded-Encrypted: i=1; AJvYcCVWFPR3w664F7UtTWdx9LuZvyUcLND8nZ+P6KPNRHRIlDkHuGz5JN2cgsBObDf4NaOxi5oNf3bzhMbhix8=@vger.kernel.org X-Gm-Message-State: AOJu0Yz33RmOToP71p4pqQqEkK4RyzkeiRbs7r8GEm0+KFQP8K6EEztW XuziaMLVVka6/ndk+hZ7NLGjoFA0d+tUhglWm1f4lM1x4VvGF6ToaKH4GeBqTjfvGKKTw7mW4AR ftCjZwgFK1Xi6cohP1Fc3lCdE7diKSrra5WIl X-Gm-Gg: ASbGncsseNU9Gz1s+oD3lwpTLnuZmqattpo3/xpFCAFIpdF1dq8DsiKoqt/AqEdL9Ha C2NYOOWijflYm7q7s94vGGIURvCI8jlCbGTjIZOc5xAnF9BGjnMi8DAHfy9BG3QsM4wK0hg5hHG 4RwiWk5AUeJr38VOSI6+/mpt9gU7BSRvSIEZ+DfNIsmDpx8i1S0WrVXvLEJAvA8MY4VFc0+J8vk Ij+trhWYcIXqyzK0quWKVcx9Mr1f4JvC0Q1b9P3nMg5RUj/WPeM48YBU00ShzRTkaMb19KJLhIi t3+NsMa7EFf8B4RrKJdJOd7Co7lpA86wAdjFyKvd5gR0JLwSFufBk2N3wFRGmgk48kNJAs33 X-Google-Smtp-Source: AGHT+IFwV7/cCArhTFk0dnQU9dG5dLjsZdbEFMe7441dgyvXdznn33rndbNgDx3tArY7+0ABCVOa5dY83RwJ X-Received: by 2002:a05:6e02:190d:b0:424:64c:5b5b with SMTP id e9e14a558f8ab-4241a4111dcmr23332505ab.0.1758160238764; Wed, 17 Sep 2025 18:50:38 -0700 (PDT) Received: from c7-smtp-2023.dev.purestorage.com ([208.88.159.129]) by smtp-relay.gmail.com with ESMTPS id e9e14a558f8ab-4244a39134esm879735ab.11.2025.09.17.18.50.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:38 -0700 (PDT) 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 20E93340508; Wed, 17 Sep 2025 19:50:38 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 1D6DBE41B42; Wed, 17 Sep 2025 19:50:38 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 11/17] ublk: don't access ublk_queue in ublk_check_fetch_buf() Date: Wed, 17 Sep 2025 19:49:47 -0600 Message-ID: <20250918014953.297897-12-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" Obtain the ublk device flags from ublk_device to avoid needing to access the ublk_queue, which may be a cache miss. Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index cb61f6213962..9c6045e6d03b 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -2188,18 +2188,18 @@ static int ublk_unregister_io_buf(struct io_uring_c= md *cmd, return -EINVAL; =20 return io_buffer_unregister_bvec(cmd, index, issue_flags); } =20 -static int ublk_check_fetch_buf(const struct ublk_queue *ubq, __u64 buf_ad= dr) +static int ublk_check_fetch_buf(const struct ublk_device *ub, __u64 buf_ad= dr) { - if (ublk_need_map_io(ubq)) { + if (ublk_dev_need_map_io(ub)) { /* * FETCH_RQ has to provide IO buffer if NEED GET * DATA is not enabled */ - if (!buf_addr && !ublk_need_get_data(ubq)) + if (!buf_addr && !ublk_dev_need_get_data(ub)) return -EINVAL; } else if (buf_addr) { /* User copy requires addr to be unset */ return -EINVAL; } @@ -2338,11 +2338,11 @@ static int ublk_ch_uring_cmd_local(struct io_uring_= cmd *cmd, goto out; =20 io =3D &ubq->ios[tag]; /* UBLK_IO_FETCH_REQ can be handled on any task, which sets io->task */ if (unlikely(_IOC_NR(cmd_op) =3D=3D UBLK_IO_FETCH_REQ)) { - ret =3D ublk_check_fetch_buf(ubq, addr); + ret =3D ublk_check_fetch_buf(ub, addr); if (ret) goto out; ret =3D ublk_fetch(cmd, ubq, io, addr); if (ret) goto out; --=20 2.45.2 From nobody Thu Oct 2 10:55:24 2025 Received: from mail-qk1-f226.google.com (mail-qk1-f226.google.com [209.85.222.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 3451A246BCD for ; Thu, 18 Sep 2025 01:50:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.226 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160244; cv=none; b=eHayVUpAQaxg84g8xvydlCf6TqOlhNxMYpfV3dK8+kJdH7zeZC8pqddUQH22pdfXFD01SrprKPe7awQAw4Xab8EaN1QIeODiEm91DZDFZDbJzNzAfGlQG5JQy7L9hqr+tHYW86UZ5vITmED8tz81ziL5U53vxOCQBFjzbC0b+zc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160244; c=relaxed/simple; bh=DoQr5ah35Oc1iRvaZs8481Qw1cZ5i039TpGwZ57s7WE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DqS3zW8hrgyxal6fFdDiHhWzqs5zyEhO7mL6hJSF3g4lkEyiNgrfNtXcycpKlWO5cGZJVZPs0qOsMqV5dNeVI8J+pvi+eV8Vt5q2xn1VDCwPbAzN89aU8ZWxeCsJ/AFNihwWQTlED223aULyKtRkPpVBAxoesSx6swx9i+3af8w= 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=RfeuYyjH; arc=none smtp.client-ip=209.85.222.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="RfeuYyjH" Received: by mail-qk1-f226.google.com with SMTP id af79cd13be357-81176f3322aso3769285a.3 for ; Wed, 17 Sep 2025 18:50:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160241; x=1758765041; 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=cgyIBIfsHXqcLdLsUG8D4gUNHCFZYWoyUaFA0as4wgQ=; b=RfeuYyjHS3t/9xuSnnm4DfRPGMhitNB5jeSnrIJqtVYaSdRo0XRjEWaI7nUaYcMnrO mrUBZZgHA1SGZuDOjx/UyBzNwD8C/pUgSj03+rx2Vx0+HPv+XZBNNLYg1zyNYjHpZTBX Wi1YjAWOSJFaRjv1E0CPGKEjOUWZCgPu3+0Zh5YgLod48SxsVvpaIQgRdTutr0uPwjwi /KIdN7uzEXQfskpOFUzggkJazPXdpJdwms2uCcNPO619C/pmDASfSozB2XDGSzVJNf2B d9sqrquzsJg7YwnBGqLTDwr5unpRoA2J0lmr4fLQdIvoMzuX3ofAAN1PK+84ahXirkd/ SRng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160241; x=1758765041; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cgyIBIfsHXqcLdLsUG8D4gUNHCFZYWoyUaFA0as4wgQ=; b=lXVrNs3M14GWIosc9EnAW/WqNB0BNf22YQT+bt9wt5fMnvcBe6jklMlRmf01EL4Rba JI9HBwZ97L84uo1BiCpTHCAhoYq5wCqq/aVuNomR8mhbXn5TBBxeVfYj3SmPfKOCt6Zp olTglYYNCWUwU41Ze7eZB/DSPh/qGJq8xnwqQyNYeFipVFJValpNtiNukLU1A6q0hPGm fFa5ANB7tEvuJngVS1/Px0FFdahMli7LjSoSX562LHyHb5ez25OrKxIYNh2cQCh4pcmb 6b/jtWq5fsw7ytja2lCgR2dzwBWbippPsWvyScNpJnkQupjU63g4HDScJN8MZOeHqTeL vqqA== X-Forwarded-Encrypted: i=1; AJvYcCUQTsv0BW3xZbihyqBMJUsrifVESQNw1kygmFT4eFDXLp71GosWc2NywHo8PpkelUK2gvua6MbPnX6gB28=@vger.kernel.org X-Gm-Message-State: AOJu0YzcceWSiU/DTGVGWluwZXuBK6t2BjVRoH0GnjS/NAL2ZW55Hn0k 64lFxCPwHxvaBBKNsjZdlonPJ5UuoRzEMzmazPpP/uKmVn0czSBUaP2rq6xq/AXok1DBGAaWqQu cXrssMrjrOvBJEE7cp5eiyJWadySvvdeujYJtsPz6Xz1Unfdyduvo X-Gm-Gg: ASbGncsag8YvbfHMNQM0VFOzasr6rAD/sA+r+fhwgTFtBKkPDE9hegA7Lf8NJhKZDJW g/qLwmeVwsf7j7xOPIbjY1MOqySZJcMmg9saeORS/Qh+JBePt4qtB1TAO9IKhkyLKugCymR0Xqf sGzVLn6MGILaqzTlM+sFvm4qHdIoH+0EIKfU+p7mOMXbG0fAUPRf28GBWugaY3WT7o2QC5ti4dO j7OnpIU+beZVwKkmGGy9UoomEtKX5aGO/34ATg6FcP1ayyD8ae2AgnAyW7NnHb0R5FY/Ebyhrol eqwqZY/wi0Whdm4ZPVwUTD28oMJayqlyt2EMWkCkyclHg+kciR5kegmPcA== X-Google-Smtp-Source: AGHT+IG+kmuiBvnrCyAQ5L5LWbgpGTaf98YifEYA21RL/x9XrazJ0dPYu1qM0uSJk1UB0/SgdjkVu+ofyJM8 X-Received: by 2002:a05:620a:a816:b0:834:bb79:1d71 with SMTP id af79cd13be357-834bb791f84mr194121985a.2.1758160239108; Wed, 17 Sep 2025 18:50:39 -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 af79cd13be357-8362871be2fsm12164385a.2.2025.09.17.18.50.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:39 -0700 (PDT) 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 7E94D340325; Wed, 17 Sep 2025 19:50:38 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 7AAFEE41B42; Wed, 17 Sep 2025 19:50:38 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 12/17] ublk: don't access ublk_queue in ublk_config_io_buf() Date: Wed, 17 Sep 2025 19:49:48 -0600 Message-ID: <20250918014953.297897-13-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" For ublk servers with many ublk queues, accessing the ublk_queue in ublk_config_io_buf() is a frequent cache miss. Get the flags from the ublk_device instead, which is accessed earlier in ublk_ch_uring_cmd_local(). Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 9c6045e6d03b..9535382f9f8e 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -2079,15 +2079,15 @@ ublk_fill_io_cmd(struct ublk_io *io, struct io_urin= g_cmd *cmd) =20 return req; } =20 static inline int -ublk_config_io_buf(const struct ublk_queue *ubq, struct ublk_io *io, +ublk_config_io_buf(const struct ublk_device *ub, struct ublk_io *io, struct io_uring_cmd *cmd, unsigned long buf_addr, u16 *buf_idx) { - if (ublk_support_auto_buf_reg(ubq)) + if (ublk_dev_support_auto_buf_reg(ub)) return ublk_handle_auto_buf_reg(io, cmd, buf_idx); =20 io->addr =3D buf_addr; return 0; } @@ -2231,11 +2231,11 @@ static int ublk_fetch(struct io_uring_cmd *cmd, str= uct ublk_queue *ubq, } =20 WARN_ON_ONCE(io->flags & UBLK_IO_FLAG_OWNED_BY_SRV); =20 ublk_fill_io_cmd(io, cmd); - ret =3D ublk_config_io_buf(ubq, io, cmd, buf_addr, NULL); + ret =3D ublk_config_io_buf(ub, io, cmd, buf_addr, NULL); if (ret) goto out; =20 WRITE_ONCE(io->task, get_task_struct(current)); ublk_mark_io_ready(ub); @@ -2385,11 +2385,11 @@ static int ublk_ch_uring_cmd_local(struct io_uring_= cmd *cmd, ret =3D ublk_check_commit_and_fetch(ubq, io, addr); if (ret) goto out; io->res =3D result; req =3D ublk_fill_io_cmd(io, cmd); - ret =3D ublk_config_io_buf(ubq, io, cmd, addr, &buf_idx); + ret =3D ublk_config_io_buf(ub, io, cmd, addr, &buf_idx); compl =3D ublk_need_complete_req(ubq, io); =20 /* can't touch 'ublk_io' any more */ if (buf_idx !=3D UBLK_INVALID_BUF_IDX) io_buffer_unregister_bvec(cmd, buf_idx, issue_flags); @@ -2406,11 +2406,11 @@ static int ublk_ch_uring_cmd_local(struct io_uring_= cmd *cmd, * ublk_get_data() may fail and fallback to requeue, so keep * uring_cmd active first and prepare for handling new requeued * request */ req =3D ublk_fill_io_cmd(io, cmd); - ret =3D ublk_config_io_buf(ubq, io, cmd, addr, NULL); + ret =3D ublk_config_io_buf(ub, io, cmd, addr, NULL); WARN_ON_ONCE(ret); if (likely(ublk_get_data(ubq, io, req))) { __ublk_prep_compl_io_cmd(io, req); return UBLK_IO_RES_OK; } --=20 2.45.2 From nobody Thu Oct 2 10:55:24 2025 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 BBCB4238C03 for ; Thu, 18 Sep 2025 01:50:40 +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=1758160242; cv=none; b=YprtQwrq/kBUy5RJ3d6E5mrhQefl0KiqVsOUWnHg28mMSRzQIKmdRLIJj7aQU7bLzFF2eUvOoZ55SUl49mEFyOvr3v8jtAkkGIZfihmyki1cPnT61S3I5SYfVZYyWmdo1SD9WjmgL0F53TUi6tXVMySlNqNnv1TSBpnIjDP/6kw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160242; c=relaxed/simple; bh=c6RQ+BNEdeNwCxnWN7FfIQhLAKW5YX5ymjHB/hiq8k8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pIPkVFs+bAZXI8prYoRWc2L7M9jypx4nXgmLUPlBQlv4lQLIo33n5u0TGBiPcFUTsgeRbDG+mkNeKqkwGO7pe4v5NDkRABRvOeQSu76z0UQabuYiNNwdKCK7uLHk7PTfD6bonikbBBwoCI8BlPl9HQQo5fywspIdI1K4SQRPzYg= 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=bh1sO2k2; 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="bh1sO2k2" Received: by mail-qv1-f100.google.com with SMTP id 6a1803df08f44-7482cb1d520so619386d6.2 for ; Wed, 17 Sep 2025 18:50:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160239; x=1758765039; 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=Tz73FTq7ab4TFen3lM78IPlNs2F8DXtU0PujcZeWTLo=; b=bh1sO2k2153mMQhs8RRCFvS6DBVodsvlQADDN8qwVu/exXOFla5omtp8/8qHdInBNt FsPbk6yCjVIGyzkCqFxFQgUZBoNLos4yzdM6OEzDMQJjTj3NSNfZkzLB79SkEaoonybL wojrOAKnOnSfE0r/afD+wr5BQnZB854Jlfs26vjs11yWUKmIlrGE2eB6OkX/5XADlzw+ 3BzLmOuRxbZY60kJGn+1sQrgb+UTvgFl4Cq+qY4rx00LctJhLHtxfy6DCVZ+7+AJpGLz 6mRjRtj8tRg6V6+l/zJQqUZXzf77mFWBHPVA/jsWB2swFo10chJJjst3dt//aPkk/wGl /9wA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160239; x=1758765039; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Tz73FTq7ab4TFen3lM78IPlNs2F8DXtU0PujcZeWTLo=; b=aeVumBoVQI898avCmR3cgjCMEwS242RaSVlPom9qnyGm2VaBM7xcFdTnTPQDa1Pidj KEXF3Q8/A7/5NlHuRJyZ/80o/6VFsUSIWC0k4f8eegtXN34Syklq26VpQv3CmOwsvlhX zNIeMK9oHZAjgtbHYSo5Lr7LOJMTYJ6642x7kVRan8waVU2/sVx81BNc2WOm7HBuf3E6 MgF+1+9Gjqi5QzHtvKeCb/yjUZqF/U+trI/gJx9PVpwOhdWsX9Z6DZKRYnftzbXpEKKK Gkn8bjalLN728gpkdemRNzAuzE+F9C1K3WTZMGDSLYN9M2feI8WKI+qIK+b0iKgJ78xr 4G2A== X-Forwarded-Encrypted: i=1; AJvYcCUV07v7JjNKhPmuMmLb1fAjY1NXeoUx1bUGuWiqqo6GxTV/G3T0LTBnk+zMd+tCSC+0j2YBp6ppDVjmlgk=@vger.kernel.org X-Gm-Message-State: AOJu0YwIZZJCaQU6LqetEkLKImcxyqlXCn3Zqhu3QUdiNPujp9WV8PbP 1OSaX85fTEajIvd9Wf3UP0W6FZbbG5hfwMpp98irtlQszPXAgUVzek9cTWZmdaNDI/5/caD2s20 cBxS1hcShZXYpvtHg01X9TWbOTd3VzJ9r1Lub X-Gm-Gg: ASbGncs1ggwpSyAKiBdrGKW9i0E0LIR/61xnZixPmX1BrsD5ZzbGRgJQZQovA73G3MU AW/aBPeA+VwKJMVmxzk3gk1qLHEFZM8iDJeD5svErTA6AdpMv2YwhB0D6sjQLyW6Ycuz+arpgGg HECnp2qj2SQ5jA7S1jE7eRB6BkXmPS+szOZmE7LpkRpfCvOPaLA2o0QrDbcYP0HmpNITWdm2bH+ 9QWw0YLbNu/xCVKIOxcr7ryXFzoUUeVj8o0YbE2fMg87l1fSSvWkFE47pEaUi4MfpSk5bg323ul GjgBBGs4dZw7kx625aPr5hwzQHpNpIGB/bkT9Q/DZkZfqcoohGLnmxBRCgXbCd4lkg2E7FAm X-Google-Smtp-Source: AGHT+IE4PJWZwvdk77SSiLKqg+5T6nEhgQ5KR/mhfh/dZfFueYMnHrVpHtzLhwrTTnJbXbFrp9pf0/HoozM0 X-Received: by 2002:ad4:5c83:0:b0:738:2797:92c7 with SMTP id 6a1803df08f44-78ecf309822mr34683716d6.7.1758160239432; Wed, 17 Sep 2025 18:50:39 -0700 (PDT) Received: from c7-smtp-2023.dev.purestorage.com ([208.88.159.129]) by smtp-relay.gmail.com with ESMTPS id 6a1803df08f44-793532b8435sm743166d6.44.2025.09.17.18.50.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:39 -0700 (PDT) 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 D0DC034059B; Wed, 17 Sep 2025 19:50:38 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id CAB18E41B42; Wed, 17 Sep 2025 19:50:38 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 13/17] ublk: don't pass ublk_queue to ublk_fetch() Date: Wed, 17 Sep 2025 19:49:49 -0600 Message-ID: <20250918014953.297897-14-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" ublk_fetch() only uses the ublk_queue to get the ublk_device, which its caller already has. So just pass the ublk_device directly. Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 9535382f9f8e..9a726d048703 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -2204,14 +2204,13 @@ static int ublk_check_fetch_buf(const struct ublk_d= evice *ub, __u64 buf_addr) return -EINVAL; } return 0; } =20 -static int ublk_fetch(struct io_uring_cmd *cmd, struct ublk_queue *ubq, +static int ublk_fetch(struct io_uring_cmd *cmd, struct ublk_device *ub, struct ublk_io *io, __u64 buf_addr) { - struct ublk_device *ub =3D ubq->dev; int ret =3D 0; =20 /* * When handling FETCH command for setting up ublk uring queue, * ub->mutex is the innermost lock, and we won't block for handling @@ -2341,11 +2340,11 @@ static int ublk_ch_uring_cmd_local(struct io_uring_= cmd *cmd, /* UBLK_IO_FETCH_REQ can be handled on any task, which sets io->task */ if (unlikely(_IOC_NR(cmd_op) =3D=3D UBLK_IO_FETCH_REQ)) { ret =3D ublk_check_fetch_buf(ub, addr); if (ret) goto out; - ret =3D ublk_fetch(cmd, ubq, io, addr); + ret =3D ublk_fetch(cmd, ub, io, addr); if (ret) goto out; =20 ublk_prep_cancel(cmd, issue_flags, ubq, tag); return -EIOCBQUEUED; --=20 2.45.2 From nobody Thu Oct 2 10:55:24 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 97DFB24397A for ; Thu, 18 Sep 2025 01:50:40 +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=1758160243; cv=none; b=SHxFHmODZs1Y2I1KuoFVhcToGOAQEu7JjxYP4yXo9I/darGiwBYdSjhqNEm3qXqex2jgyFmfg5a2geVHB78AGelwp//BBZblqqfF6sRyDsuRyh67uqocTmIqDuMkeBfqlbSeBXNz21KChJxz6fjjH6sNHpFcdgngsvCefj1kK6U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160243; c=relaxed/simple; bh=KVEBWh1k3zqgptqwYjWnc7dJxRsoATwKrSK9Z6mzXAU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=j7Ib8WkYVcSvIAGYSM69W+fYX4FbqHEmS6zZvq1QJNz3nN96/6dB7gPe/XPOXzp5HY2Nept+onLDfCZYveGXEf4p3INOFLZuB2pOkcOpZNMLJOSmg69a0czagSPRHTvs7KxbSPt2IHz8A7yO2T3NJNLtczdERy7L0J4UDgR9Zl4= 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=Kr+//N4m; 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="Kr+//N4m" Received: by mail-pl1-f227.google.com with SMTP id d9443c01a7336-26816246a0aso877975ad.2 for ; Wed, 17 Sep 2025 18:50:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160240; x=1758765040; 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=4RQtQL6k+NU0z+7kBXeWsorzi1G5ZdNWyfKDcftnhrU=; b=Kr+//N4mIO+HDwLtTHxQd/uI5TYxsgHGyS94pJ/3JHNVM5/jJSogfc4yIr4KZeL9Lx JZTCnDS/BlvSK3FTxFxDCfEo791kj8UEQTPR4OTpe9V8K+O/XxgNX5AQ4p+/h4YK3LRV Sflkd3H0pWlC0XJUEEuN4WqHVeJ9A0QjXTAZ+D6nQVzqA9PBuwU/G7wPuPwCRcr8MXl+ ao0BdrSb42aOAfUmkNNQR5KjcFOdwcz91IWZbDgEgNn+56oD2vg0Dkmck70N/tMnixis doyWoYZtCqTE10oZ9rgRqc1vrC/Wddn7fjN0Rz2pJDkxUpfANLnEmJTfF1bhbyH/1uGR 9BgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160240; x=1758765040; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4RQtQL6k+NU0z+7kBXeWsorzi1G5ZdNWyfKDcftnhrU=; b=EkVAbA/NDD1C//dObwEB7mvb8wTnXh2czg6O9mpLzQtUntiOGKgHJWkUj/gpm7VbtG ym9mdbzuWG2nTAfseH1ZEK0h4sLOF3XrcTj9F+lh9tcATXENCxpnJjifxD3djDK/pTmU mV3bG/eJucW1eWDE4TXCtZssXeAPnfzkveC7ewvcDNg1gzn+7JHjShEyU9O1a/nDyp/P fArWOU7hwFEWE5XijHeOndWdwo407+10wTk2JulzX+R5iB9O9yh43eTv3bN0Nj5bRPXC QmKiZhXd0KkFm8ufomT9Tyj09VxvD4oxzEPa/LOEjWQeP6dGBlZ5TPJMFqkIJjI7mxAX 9u6g== X-Forwarded-Encrypted: i=1; AJvYcCU59Sz6WnHShF3MmE22XMwsYuFPsFpmHh/R4UwV+LEGzFYgv7SA2k7SD+Xxd/B1ueDg/hVGP41b65oTGKM=@vger.kernel.org X-Gm-Message-State: AOJu0YzeCncngvaaZGn3WbbSjq9mqYgwqvAKLL2weKJxxMQJskQ6Kf7u F7qh20fgvYpLaU6yRvMfCTq/5TH1wOt1obrSorII4tM9wLyucm7iq2iati9ApIntl4J6tkDd7GK D9/J9bEfJ4b1p4sPcGswhFrkYkv4GNfAUsMOi X-Gm-Gg: ASbGncuFN+yI1jiJYpfA+BSGkCLhNmLo58gAZeEVHBoZ5y5ramiH70gwQKA6DqQKVpM gE6PWgyEt5PCLTlANlmRtw3yp0BAQCNpf4PkBMh6myXhFxr7O/XoaqIZmEYzlmgfnYUV9hZqbGj TGtC2kVy6uzDFSl3sPVRMeu8Jf4T9DZIVyZbG5S0aE0QpRvVgvHR0S9vgcq8/0TRJO2TWowNajw flJcIsny/Ae7xboM+cLvqleF1PmWH8xkhooxk6BrDDuymTTIjXcHtNX7GwdlugtwRnjvmTHLeEH Ev7RW4kFBbLubPz3AB4PkV7wYPMAABbedmt/phavhapfHkOcuPIYVQtOSDf6+O7EATwQ8dj5 X-Google-Smtp-Source: AGHT+IHkb8RXhzbuJ3XKkdNpezbAOWNNYIBATOvlV66JaHRzlItWF2QE0jLxB1hwPQNp7yRVtm5JheJT7b2q X-Received: by 2002:a17:902:db04:b0:269:8d1b:40cf with SMTP id d9443c01a7336-2698d1b44bcmr3530315ad.8.1758160239846; Wed, 17 Sep 2025 18:50:39 -0700 (PDT) Received: from c7-smtp-2023.dev.purestorage.com ([208.88.159.128]) by smtp-relay.gmail.com with ESMTPS id d9443c01a7336-269802bbe62sm940265ad.66.2025.09.17.18.50.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:39 -0700 (PDT) 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 324F3340508; Wed, 17 Sep 2025 19:50:39 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 2E16EE41B42; Wed, 17 Sep 2025 19:50:39 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 14/17] ublk: don't access ublk_queue in ublk_check_commit_and_fetch() Date: Wed, 17 Sep 2025 19:49:50 -0600 Message-ID: <20250918014953.297897-15-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" For ublk servers with many ublk queues, accessing the ublk_queue in ublk_check_commit_and_fetch() is a frequent cache miss. Get the flags from the ublk_device instead, which is accessed earlier in ublk_ch_uring_cmd_local(). Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 9a726d048703..b92b7823005d 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -2241,21 +2241,21 @@ static int ublk_fetch(struct io_uring_cmd *cmd, str= uct ublk_device *ub, out: mutex_unlock(&ub->mutex); return ret; } =20 -static int ublk_check_commit_and_fetch(const struct ublk_queue *ubq, +static int ublk_check_commit_and_fetch(const struct ublk_device *ub, struct ublk_io *io, __u64 buf_addr) { struct request *req =3D io->req; =20 - if (ublk_need_map_io(ubq)) { + if (ublk_dev_need_map_io(ub)) { /* * COMMIT_AND_FETCH_REQ has to provide IO buffer if * NEED GET DATA is not enabled or it is Read IO. */ - if (!buf_addr && (!ublk_need_get_data(ubq) || + if (!buf_addr && (!ublk_dev_need_get_data(ub) || req_op(req) =3D=3D REQ_OP_READ)) return -EINVAL; } else if (req_op(req) !=3D REQ_OP_ZONE_APPEND && buf_addr) { /* * User copy requires addr to be unset when command is @@ -2379,11 +2379,11 @@ static int ublk_ch_uring_cmd_local(struct io_uring_= cmd *cmd, switch (_IOC_NR(cmd_op)) { case UBLK_IO_REGISTER_IO_BUF: return ublk_daemon_register_io_buf(cmd, ub, q_id, tag, io, addr, issue_flags); case UBLK_IO_COMMIT_AND_FETCH_REQ: - ret =3D ublk_check_commit_and_fetch(ubq, io, addr); + ret =3D ublk_check_commit_and_fetch(ub, io, addr); if (ret) goto out; io->res =3D result; req =3D ublk_fill_io_cmd(io, cmd); ret =3D ublk_config_io_buf(ub, io, cmd, addr, &buf_idx); --=20 2.45.2 From nobody Thu Oct 2 10:55:24 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 CED5823A566 for ; Thu, 18 Sep 2025 01:50:40 +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=1758160242; cv=none; b=sNYneE3OC5Yan4ScXdjjWL25HFrMIxxRz9zD1JuJtOFVSHrSQF/PN6cD293JwxxyvmdtReRRq/119XpozJN7ImL/UGFY0GSipEg+Fsp8Dkal7ZP2USuHxUE0EOH5dNWo1yBS5E6N4NwRC5Aq9IQmVocGUuA0yVm5awOSizbXLao= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160242; c=relaxed/simple; bh=LD7GxM+gs4J06+KO3s9XTbtrptCvgiR0GxZpayLPnFs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M2w9Xb2pNeptluS+9q1LkEqyPsP4wL6JoukGPtG8aaqT1XQ+v1NuXBa1mmR6JbnfUbBPuVAHnrqiokfYCL/0/7CaN8EhrL6vILocBQ3/U4FcZ8d42ItItoV4JIi641UzOTnAjGN68VWHQBcT2y3vjCjjgtxCyA4lB9URT9Fz02c= 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=UgRFZb/p; 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="UgRFZb/p" Received: by mail-pl1-f225.google.com with SMTP id d9443c01a7336-2680ee37b21so790845ad.0 for ; Wed, 17 Sep 2025 18:50:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160240; x=1758765040; 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=LLvUwZyV+8EMwdu5ifCxWRlG+h61DttvJKRFa51Lsvk=; b=UgRFZb/pdGRaW0LOZHE8ONwtJbRues/Nb/yzqiCcn0ByudEPk0PFxO3f1DpRXeV36e KAgtVWTA28l7/+drQqBTpheZ/2nBKZFqb285xDFCQwM7fO8cde3TvwUHQCzNer9nWKkN g/RP4xqK+oKd0XNOEsDdyOVXdqyadituRm/uIf1Bkx3uGmU8PtzpUQtVbJznfNzoMDyb GwcMwX2jQeKHKeZLk0QqSLTlDsxoD8hWsWgp+w/FakHuGwoF35Avsju/x1XEqQ5J7SVg C9lHCugB4nJwC8QbW6ZxUKyJX06lBJq+5MMjvIXay1Ce9cNZ24aPHH8HZXtq4MH4r8Bt D3gQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160240; x=1758765040; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LLvUwZyV+8EMwdu5ifCxWRlG+h61DttvJKRFa51Lsvk=; b=E9sU6x0V4n113SylyWmvfVNXsxdzAUCQD0HC8tmZXSL1bBHvqpHoi2oommmHCXw76Q rzKY+CkjjTKp9uJM5pPOvsuoxyfHOaLcuHUeozEBCrbtWbA6MHQAckK4SrOC7uns359H w/sgX1WKtdJ36RBQH0+w+buSupzsNkec0bSbPG7Fsgn1ZLFNq3wP7G1Hyl/Ks3wKUKQz Isz/W2M/jhiH101EGd4NVoa1gSa3poRxNKv0H5A/YhQN7o8RE7zN9arq0CJe7ImlM+QD yFtSUqYGlesf5MO8ks9Y2k3aTuCpZhc+aK2V6aiVWyNfst00TSW98VjAVpTP7ffhHYl5 Lb/Q== X-Forwarded-Encrypted: i=1; AJvYcCU7NWfkNL4UNesv6dvqOSz5vkLJeFYAAs+/GuEyXLWFtcClAd2zRZtYaV5Dx4/DlSm3ML207lRMrPbE8V0=@vger.kernel.org X-Gm-Message-State: AOJu0YwINW05VM48xCWIMKvF1WphRBfNSzR3jvqIeL5MJwQE9BSCKAPj V3tI6KjpmEeWBl+zJ+dypD7deTMD9g8DONqqvJ1eEt1uEUCWqI7BdGIvkzs+OcNuNm8EWxjsq4y f/A12Z2/LaR9C9yrgsICEnAur0Y/xUZ6ldEDGIezt+XSNBrVgX9bl X-Gm-Gg: ASbGncvgbJ7Y8oceyfZ1wm34au3EUmV2z4/+GtCwL8k/hEZIlFi3qpbKwLYU/mu97Of Kk+IhfBdU77NhvNZ14UKPSnEITz5tYJhqx6cI+CUDLaAs+x0tKzy6JSt7GlTpNa9x5szJlQmPYV QT+wuXitVtceNSyayBeMcmaYoWa0G5R8qgxaOG5zkqOg6G/HZeuOV89w/UE+fJKzSz0I5NqtG4n /xxeXobeGA1xKOcMC9MLNZ+LGk9mgHDVsaH7Cs8pgbnhK+SIYHts6tS2PRseIHw6wDtq1fWF3Z2 MSQdCJrTHgRkedkEgxm7if37R2MYRiC+ZpiM/yPCgTPdHNsUB16w8Du7UA== X-Google-Smtp-Source: AGHT+IHCEBoO6OLU4h4cYGIpLzWIYjmrj0U3ugMHZdnN0J1WdoYG6DckBfrtzA7YdToV4/Q++JWt6zQbxeOj X-Received: by 2002:a17:902:e34b:b0:269:8809:99ad with SMTP id d9443c01a7336-26988099c2bmr3984055ad.3.1758160240107; Wed, 17 Sep 2025 18:50:40 -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 d9443c01a7336-269801630a9sm937265ad.23.2025.09.17.18.50.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:40 -0700 (PDT) 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 78FD1340325; Wed, 17 Sep 2025 19:50:39 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 73DE8E41B42; Wed, 17 Sep 2025 19:50:39 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 15/17] ublk: don't access ublk_queue in ublk_need_complete_req() Date: Wed, 17 Sep 2025 19:49:51 -0600 Message-ID: <20250918014953.297897-16-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" For ublk servers with many ublk queues, accessing the ublk_queue in ublk_need_complete_req() is a frequent cache miss. Get the flags from the ublk_device instead, which is accessed earlier in ublk_ch_uring_cmd_local(). Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index b92b7823005d..750d0a332685 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -2265,14 +2265,14 @@ static int ublk_check_commit_and_fetch(const struct= ublk_device *ub, } =20 return 0; } =20 -static bool ublk_need_complete_req(const struct ublk_queue *ubq, +static bool ublk_need_complete_req(const struct ublk_device *ub, struct ublk_io *io) { - if (ublk_need_req_ref(ubq)) + if (ublk_dev_need_req_ref(ub)) return ublk_sub_req_ref(io); return true; } =20 static bool ublk_get_data(const struct ublk_queue *ubq, struct ublk_io *io, @@ -2385,11 +2385,11 @@ static int ublk_ch_uring_cmd_local(struct io_uring_= cmd *cmd, if (ret) goto out; io->res =3D result; req =3D ublk_fill_io_cmd(io, cmd); ret =3D ublk_config_io_buf(ub, io, cmd, addr, &buf_idx); - compl =3D ublk_need_complete_req(ubq, io); + compl =3D ublk_need_complete_req(ub, io); =20 /* can't touch 'ublk_io' any more */ if (buf_idx !=3D UBLK_INVALID_BUF_IDX) io_buffer_unregister_bvec(cmd, buf_idx, issue_flags); if (req_op(req) =3D=3D REQ_OP_ZONE_APPEND) --=20 2.45.2 From nobody Thu Oct 2 10:55:24 2025 Received: from mail-pg1-f226.google.com (mail-pg1-f226.google.com [209.85.215.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 9459624503F for ; Thu, 18 Sep 2025 01:50:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.226 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160244; cv=none; b=V+1OE09DF4GukALf4p+VJNquKK/6OEz6JcyLaGZ7flxDhJ1enSGgeL3UsKknb5lAGIUPlaYNiVxn1YBwt9dPTkkVZD9iBSti7EUGJktW7Du0kkJ4Kqlb0PsuzQPTyx8kJOHaE2J7EckEhUPuLB7GVhInLfv6C+5CmeFafh2grgA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160244; c=relaxed/simple; bh=zglDI8ekvlbvaBrEDXtTIrPLQWoQaU4piNmxTxwAah0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=juo7wlki9SYIl7CngfCyuFPKYNZ5fFIGzrpCBt+FEulPdSP8HxhYtQ9LWfaFfL+f56KCIPSrGV6IW81ufLDWirXDNBoA2m2snIpd6es3TYCCfHxkhtW4N7Csh21nY9MXAjv1J8iWBfLT7eFqzOZ0nuOc1Gysv2m7Pnykgl8bles= 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=bpryQPbz; arc=none smtp.client-ip=209.85.215.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="bpryQPbz" Received: by mail-pg1-f226.google.com with SMTP id 41be03b00d2f7-b54af328173so16598a12.1 for ; Wed, 17 Sep 2025 18:50:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160240; x=1758765040; 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=1qHOe+Rzb6hy6Xk1mhk6pczOStc2z3C6VJDa7IAomhI=; b=bpryQPbzaAHqoIWS88J/FvVBE8mn9Ox1Xdm7UMtf7hAOuE7CNLdWzEjNFqp4CDjiYk W6FiU30peO/FgOYChjqqyyPqUQ6cvm4VZ+jTWgeMLIXvpGqDM1BYv69KC5Vctr1Cu3Gw +qprTopbQ66TJLRf3T0cwAwsHkEyBCMY6ayiJ1W8mnGXYq4//t4OzqWbkLr0RvGuvKIm kTnCQX91BMdliGixLz1oNWp5WpXgkYOaTpjbiobJ7Uj4E3Dg39vGtDFIZR92ithh651M VKFff3+8HVG9Ylsxla18vZTJOuY04ii2Qry4uXNhw014Nt5zJ93nbBiGXlkLISxyIaUu bj5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160240; x=1758765040; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1qHOe+Rzb6hy6Xk1mhk6pczOStc2z3C6VJDa7IAomhI=; b=VT2dGPwFAUT/7ELZjKtmHnWa00yO1t+U8JOyX/V+x44+Ji5Fh4v844UwXs6oVlPs1O 9bQMPBusin7vE7FZ5K+9PU3yJoPg4GX5aclY43zJNDZYgQTXxakjPHH8lDijyRu7A01q B8HE7MLBj/i4Hk+zOsPWJoJWgyToML1bVg1exiSnkLnEXRNXjM9xNbAR4Ii7Yzy4vigU TYANWElJJI1Hc/x7BthEK/xEJYQ82GSqkiMkDwUHltmKSQdb63kT4eZzMDbSR7rHhQ2B 1s44LjcJGSfm6wY97Y7Q0EkrtdAt/QTBYMCNA5gHjwHVDcksKUgsun/3i1pTK3iiq9IQ Cd9A== X-Forwarded-Encrypted: i=1; AJvYcCVR+3qBljg3ntDuZIYhSVVjJlB7XEo+dzz/rhORMvAoGilzYmyGN0RoPhOLzH4NCG1hLJZAHXuiJknaMhs=@vger.kernel.org X-Gm-Message-State: AOJu0Yw7xS03Cqgr82d8USAQny7fp7bry2KjU3P3e3l+9DUrutDzwx7s gzUInxsFghCrvzaMF0pHvBqaHlTgv/XpIyWCzdZ9t7xVqUoP33NElxyGYxJt8T16YDP7ZCz5JtZ MI3t/QHr0XmsPpoYmqpZgILmoh3DPUJ8cggM7Jb7lJX3VREUkRkEr X-Gm-Gg: ASbGncutaifGmCSn0xKw0dZAJ2Pkzk+hQAhbanpD2pCrBMf62tKmW57s7Dsxg9PNC8T PZ/YdGAof1MHSYrFthxQ84H62sxJ5RYGjYmwzWipnl42GrRI3zABi3z6301s7hBX8lqE9K8jGd5 91+Q6MaQFfpS3cu6iQg61CR5suPO0m2bBUea4MvKHzq/qEjrxTaIf/MyOBAXSQ7kYBz4nOTXfjc pr9L/IZ+slz2tw4wkHE8xSwMT4mFo8ryauwMPOaJLCsjxydUJmAhqC43Zl4WSFCRew6WJcbZtZ7 e/wB1YrCNsu6j8BROGYN8MV5rhoM9MyVjUMeyCETL84pVyudpHKyIu8KaA== X-Google-Smtp-Source: AGHT+IHGYEVM/B4JIiuc7vdPObaycRl2mlQW+p36GyxGWT5ScETrpAmcpVQ1M2/c6Cw1LO25lMZXi2165n2k X-Received: by 2002:a05:6a20:1586:b0:279:e1df:e63c with SMTP id adf61e73a8af0-27aab85ee8bmr3080789637.3.1758160240438; Wed, 17 Sep 2025 18:50:40 -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 98e67ed59e1d1-32ed257bd28sm366457a91.0.2025.09.17.18.50.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:40 -0700 (PDT) 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 BDAD234059B; Wed, 17 Sep 2025 19:50:39 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id B9320E41B42; Wed, 17 Sep 2025 19:50:39 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 16/17] ublk: pass ublk_io to __ublk_complete_rq() Date: Wed, 17 Sep 2025 19:49:52 -0600 Message-ID: <20250918014953.297897-17-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" All callers of __ublk_complete_rq() already know the ublk_io. Pass it in to avoid looking it up again. Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 750d0a332685..a677eca1ee86 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -527,11 +527,11 @@ static blk_status_t ublk_setup_iod_zoned(struct ublk_= queue *ubq, return BLK_STS_NOTSUPP; } =20 #endif =20 -static inline void __ublk_complete_rq(struct request *req); +static inline void __ublk_complete_rq(struct request *req, struct ublk_io = *io); =20 static dev_t ublk_chr_devt; static const struct class ublk_chr_class =3D { .name =3D "ublk-char", }; @@ -736,11 +736,11 @@ static inline bool ublk_get_req_ref(struct ublk_io *i= o) } =20 static inline void ublk_put_req_ref(struct ublk_io *io, struct request *re= q) { if (refcount_dec_and_test(&io->ref)) - __ublk_complete_rq(req); + __ublk_complete_rq(req, io); } =20 static inline bool ublk_sub_req_ref(struct ublk_io *io) { unsigned sub_refs =3D UBLK_REFCOUNT_INIT - io->task_registered_buffers; @@ -1144,14 +1144,13 @@ static inline struct ublk_uring_cmd_pdu *ublk_get_u= ring_cmd_pdu( { return io_uring_cmd_to_pdu(ioucmd, struct ublk_uring_cmd_pdu); } =20 /* todo: handle partial completion */ -static inline void __ublk_complete_rq(struct request *req) +static inline void __ublk_complete_rq(struct request *req, struct ublk_io = *io) { struct ublk_queue *ubq =3D req->mq_hctx->driver_data; - struct ublk_io *io =3D &ubq->ios[req->tag]; unsigned int unmapped_bytes; blk_status_t res =3D BLK_STS_OK; =20 /* failed read IO if nothing is read */ if (!io->res && req_op(req) =3D=3D REQ_OP_READ) @@ -1748,11 +1747,11 @@ static void __ublk_fail_req(struct ublk_device *ub,= struct ublk_io *io, =20 if (ublk_nosrv_should_reissue_outstanding(ub)) blk_mq_requeue_request(req, false); else { io->res =3D -EIO; - __ublk_complete_rq(req); + __ublk_complete_rq(req, io); } } =20 /* * Called from ublk char device release handler, when any uring_cmd is @@ -2393,11 +2392,11 @@ static int ublk_ch_uring_cmd_local(struct io_uring_= cmd *cmd, if (buf_idx !=3D UBLK_INVALID_BUF_IDX) io_buffer_unregister_bvec(cmd, buf_idx, issue_flags); if (req_op(req) =3D=3D REQ_OP_ZONE_APPEND) req->__sector =3D addr; if (compl) - __ublk_complete_rq(req); + __ublk_complete_rq(req, io); =20 if (ret) goto out; break; case UBLK_IO_NEED_GET_DATA: --=20 2.45.2 From nobody Thu Oct 2 10:55:24 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 946492459C8 for ; Thu, 18 Sep 2025 01:50:41 +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=1758160243; cv=none; b=P/oGEuNe0A4t6i1+etCr7tUyiEPC1DobQGszTQRj7rt3HE2AcsmjxoD9MPE8hK84BA4wYGP03z4OrMUiQa259ReHMOlbhH+cRC+N1Fy2fVZ8pNcs7OaPR4Ur7hd84ASRn7MXgToHh5DcyPjkQ88SJzqwGEtxIMitnj42zcv+m6U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758160243; c=relaxed/simple; bh=DlDgj6eQ2EJT7r8ICH2mTMh6q5NNv2cREX+Wo9B+YWo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HJvpYFsWYr0wyJrg0PxPVCt9U/pi+GsIvEFuppYDNTxodCcK0zlh8lpYUe8vzn40q1Apmrhh6Jv2qaj2FE+Lx3iItmlgYrvaNcaslvPJCHn0f6cq72o7UWeeLniSPdKX0jcD4kIv899Pgxufv+k32HlTazk34y/mGogW5C5yf8Y= 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=KERz78NH; 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="KERz78NH" Received: by mail-pl1-f225.google.com with SMTP id d9443c01a7336-267dbd4e189so937485ad.1 for ; Wed, 17 Sep 2025 18:50:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1758160241; x=1758765041; 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=gbcWxaY4vl/Q4W3/rZm6xbJSq4ZIWjy+imubsiA0GUQ=; b=KERz78NHAwj/HZ65fN2dDof7/KV4WoZNGCG8/7xjbuJiz3iBoONwVd2siHYlwqUUzL roR4SNNz6AtwP2R9DwWP9tocnsAzzRP94g9Pm2uN53qSXHOj5yD75E9ugzv48miUNau7 Rd0savGw0LG039/hxUp3smoDJ3fcYT8agTAYMDVlMVVv0tTqqW53yAzUPqONKqhCnyOk F3O8YH1tSOQp6teLqwaDsafqIcozJA7CQhcQSdmriwxLwEcenwLxEvsqMhvB6QgTrYzx y51k+zswsvO3XtZWdA1HpVBKdg6zbuXHuPXfDwQZ/W4E76WIyYlADWdM8fP9QnljkyOb he1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758160241; x=1758765041; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gbcWxaY4vl/Q4W3/rZm6xbJSq4ZIWjy+imubsiA0GUQ=; b=moINL8D0zGUnTdoMWtR2GThBNE3MFt3QYDBNDmCP5mUs2a7WRHv7r6lwPw60xOMc3g WZ2hyN4u64RstrvXTXZbYQJ1Rsxgx779kqdngViqbkgQFGuUS6b0lwm7D2E8xKYdWWnJ g2Cxo6uOdiS/CnydD/ihkiQUfebiV9+jlqocvTtCQZMWFOlwCxSajtsMCPt8Mi/FEZfW zo+Lve3EsLryh5blW6jbRd+SxUtz8pH30/88ZzSL0iGjCmdwJekTtWo/9lBKA4d85lDB 8k8VkHBBY0M2gm/nXc2oIM2JBm79paJcOQHE9Bu8T7KZkQHatPQrEI3Xxd/N+Jh9SRWV B6VQ== X-Forwarded-Encrypted: i=1; AJvYcCXJDkmZfBk8JHx9WswkRVUmhVFcKpFLIplz+MIN+dzyyODhNeFF2pOQ+oufSbIgVRpgQFhlFxBAvgXXD7g=@vger.kernel.org X-Gm-Message-State: AOJu0Yxarpd4T2h2eyoLTiTtAT23BHvQS+unJ4luKubsOgdAzAU16UgF YUe+uTblEbYT732dvnzbV1j3E8FzBEvVqHaoYOOjCPIC1223xHN8YAR6BkYRj0ooR0kMXzqs1VE /sYHeX/q8HPQtw5SZcxR6N590Kzvv7g9CUQH0iZUX6zTpKnUYvNep X-Gm-Gg: ASbGncsNWY7EhlDD9OAqFcpvwMoCVEVh3ph2uJ0LTHRkqOZludXgqq0vhbX51QEEFmi 7gg8W6pjj2fEtbkTEv6vV4Ja1508nwl9cg9rqY+f5mUiIjcPzWT7RexJ1ZzgdIvYHJTLk+RJhZb vzAjiRKQeV7W6D+d3IBCh9JUCedTw0xD5Iu3Oxkv8oGV/j3nFX6pOPaduRFedjdPV8nGOBV5ijg exo5R8J29Juiii02LlPD1AzIyrrzYwp+dsZs1RjH8vcGp2mlW6CBYhgski4NHZdvStThXbj1V6u LyZAKQ2Lp+9bf+PwSu+yUuNe5sV5rknJmCzyhO0v2O/XOXdK8EvcjY7W/A== X-Google-Smtp-Source: AGHT+IHptDo3d5jV+E6losHoXv1hOTO1W8T3gN+lg8n40CzHrfVfO2OTCR2VUJInQKlrX02lFQirrnIrtek1 X-Received: by 2002:a05:6a21:6da8:b0:24c:a32b:3257 with SMTP id adf61e73a8af0-27a736353fdmr3197417637.0.1758160240742; Wed, 17 Sep 2025 18:50:40 -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 d2e1a72fcca58-77cfbe620b3sm86273b3a.1.2025.09.17.18.50.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Sep 2025 18:50:40 -0700 (PDT) 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 1D358341A3D; Wed, 17 Sep 2025 19:50:40 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 1AF7FE41B42; Wed, 17 Sep 2025 19:50:40 -0600 (MDT) From: Caleb Sander Mateos To: Ming Lei , Jens Axboe Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH 17/17] ublk: don't access ublk_queue in ublk_unmap_io() Date: Wed, 17 Sep 2025 19:49:53 -0600 Message-ID: <20250918014953.297897-18-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250918014953.297897-1-csander@purestorage.com> References: <20250918014953.297897-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" For ublk servers with many ublk queues, accessing the ublk_queue in ublk_unmap_io() is a frequent cache miss. Pass to __ublk_complete_rq() whether the ublk server's data buffer needs to be copied to the request. In the callers __ublk_fail_req() and ublk_ch_uring_cmd_local(), get the flags from the ublk_device instead, as its flags have just been read. In ublk_put_req_ref(), pass false since all the features that require reference counting disable copying of the data buffer upon completion. Signed-off-by: Caleb Sander Mateos --- drivers/block/ublk_drv.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index a677eca1ee86..5ab7ff5f03f4 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -527,11 +527,12 @@ static blk_status_t ublk_setup_iod_zoned(struct ublk_= queue *ubq, return BLK_STS_NOTSUPP; } =20 #endif =20 -static inline void __ublk_complete_rq(struct request *req, struct ublk_io = *io); +static inline void __ublk_complete_rq(struct request *req, struct ublk_io = *io, + bool need_map); =20 static dev_t ublk_chr_devt; static const struct class ublk_chr_class =3D { .name =3D "ublk-char", }; @@ -735,12 +736,15 @@ static inline bool ublk_get_req_ref(struct ublk_io *i= o) return refcount_inc_not_zero(&io->ref); } =20 static inline void ublk_put_req_ref(struct ublk_io *io, struct request *re= q) { - if (refcount_dec_and_test(&io->ref)) - __ublk_complete_rq(req, io); + if (!refcount_dec_and_test(&io->ref)) + return; + + /* ublk_need_map_io() and ublk_need_req_ref() are mutually exclusive */ + __ublk_complete_rq(req, io, false); } =20 static inline bool ublk_sub_req_ref(struct ublk_io *io) { unsigned sub_refs =3D UBLK_REFCOUNT_INIT - io->task_registered_buffers; @@ -1046,17 +1050,17 @@ static int ublk_map_io(const struct ublk_queue *ubq= , const struct request *req, return ublk_copy_user_pages(req, 0, &iter, dir); } return rq_bytes; } =20 -static int ublk_unmap_io(const struct ublk_queue *ubq, +static int ublk_unmap_io(bool need_map, const struct request *req, const struct ublk_io *io) { const unsigned int rq_bytes =3D blk_rq_bytes(req); =20 - if (!ublk_need_map_io(ubq)) + if (!need_map) return rq_bytes; =20 if (ublk_need_unmap_req(req)) { struct iov_iter iter; const int dir =3D ITER_SOURCE; @@ -1144,13 +1148,13 @@ static inline struct ublk_uring_cmd_pdu *ublk_get_u= ring_cmd_pdu( { return io_uring_cmd_to_pdu(ioucmd, struct ublk_uring_cmd_pdu); } =20 /* todo: handle partial completion */ -static inline void __ublk_complete_rq(struct request *req, struct ublk_io = *io) +static inline void __ublk_complete_rq(struct request *req, struct ublk_io = *io, + bool need_map) { - struct ublk_queue *ubq =3D req->mq_hctx->driver_data; unsigned int unmapped_bytes; blk_status_t res =3D BLK_STS_OK; =20 /* failed read IO if nothing is read */ if (!io->res && req_op(req) =3D=3D REQ_OP_READ) @@ -1170,11 +1174,11 @@ static inline void __ublk_complete_rq(struct reques= t *req, struct ublk_io *io) if (req_op(req) !=3D REQ_OP_READ && req_op(req) !=3D REQ_OP_WRITE && req_op(req) !=3D REQ_OP_DRV_IN) goto exit; =20 /* for READ request, writing data in iod->addr to rq buffers */ - unmapped_bytes =3D ublk_unmap_io(ubq, req, io); + unmapped_bytes =3D ublk_unmap_io(need_map, req, io); =20 /* * Extremely impossible since we got data filled in just before * * Re-read simply for this unlikely case. @@ -1747,11 +1751,11 @@ static void __ublk_fail_req(struct ublk_device *ub,= struct ublk_io *io, =20 if (ublk_nosrv_should_reissue_outstanding(ub)) blk_mq_requeue_request(req, false); else { io->res =3D -EIO; - __ublk_complete_rq(req, io); + __ublk_complete_rq(req, io, ublk_dev_need_map_io(ub)); } } =20 /* * Called from ublk char device release handler, when any uring_cmd is @@ -2392,11 +2396,11 @@ static int ublk_ch_uring_cmd_local(struct io_uring_= cmd *cmd, if (buf_idx !=3D UBLK_INVALID_BUF_IDX) io_buffer_unregister_bvec(cmd, buf_idx, issue_flags); if (req_op(req) =3D=3D REQ_OP_ZONE_APPEND) req->__sector =3D addr; if (compl) - __ublk_complete_rq(req, io); + __ublk_complete_rq(req, io, ublk_dev_need_map_io(ub)); =20 if (ret) goto out; break; case UBLK_IO_NEED_GET_DATA: --=20 2.45.2