From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id AEB27C369D1 for ; Sat, 26 Apr 2025 02:08:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 11EDE6B000C; Fri, 25 Apr 2025 22:08:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 025696B000D; Fri, 25 Apr 2025 22:07:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DBABD6B000E; Fri, 25 Apr 2025 22:07:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id BF9F96B000C for ; Fri, 25 Apr 2025 22:07:59 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 4EEDBC1338 for ; Sat, 26 Apr 2025 02:08:00 +0000 (UTC) X-FDA: 83374559520.26.F750B83 Received: from mail-yw1-f226.google.com (mail-yw1-f226.google.com [209.85.128.226]) by imf28.hostedemail.com (Postfix) with ESMTP id 5408BC0008 for ; Sat, 26 Apr 2025 02:07:58 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=purestorage.com header.s=google2022 header.b=DgQRETIZ; dmarc=pass (policy=reject) header.from=purestorage.com; spf=pass (imf28.hostedemail.com: domain of csander@purestorage.com designates 209.85.128.226 as permitted sender) smtp.mailfrom=csander@purestorage.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745633278; a=rsa-sha256; cv=none; b=4t3r2qMoaRtGqLvtLlsTcmZm2FTZ015lcBDAQFfO6We+eT2qLfnXM/EBzYpVQ61fcHTN6K VFcq08zhtksS0gaa66tfmYWf3tzoaD8bc0c0GBolJNkI+yBZIefxKfG8PYoqfdQjd0u/xd 7LMiwL0DoWzIMBNJM47rzh4SwX5zwrI= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=purestorage.com header.s=google2022 header.b=DgQRETIZ; dmarc=pass (policy=reject) header.from=purestorage.com; spf=pass (imf28.hostedemail.com: domain of csander@purestorage.com designates 209.85.128.226 as permitted sender) smtp.mailfrom=csander@purestorage.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745633278; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=/wVUCLEe+0hKn6q/c+4Hvm6QrjTginZMMcE5JFRhMDE=; b=UT+oT+CV2du1BHwY9HtQ7Lzx7Nk03U8afSIIxC+TU8ie9UbogBgKSy7mtC459H4o9SdbTN ZhVjttWFrvOvY1+298jqexk7sHJqyzNM/hjaw47WAIv2SjkuDAwIrk7UGJRCiCcF4W2yI7 24QQtv6TLDDAwCgaj54NJsyJZGKqSdo= Received: by mail-yw1-f226.google.com with SMTP id 00721157ae682-6ff5696f99dso1143397b3.2 for ; Fri, 25 Apr 2025 19:07:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1745633277; x=1746238077; darn=kvack.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=/wVUCLEe+0hKn6q/c+4Hvm6QrjTginZMMcE5JFRhMDE=; b=DgQRETIZALN1z7y9w3ksGtp27urveyGXnrVhvBCInWeOmYvufyeaCZqprbxus2XZV7 TS9JNQQVHAOz8qcEjXTAUuk25WCTnYEJiyqHQTYYqxJOS1ypEFe2MfgAL4tY20u9YaoZ 89oYbc9hSOrbBt3X+2IRD+iCJJOwq3JvExSq1k/xPWEjlE2YuCppSJB7RGtLjvgHG9Al AvQkadypsKLvo3Tu0DUBNffFzEOqTaaWL1+TH2ZYiUITx+smKSYv5H/uD6735aVpP4mU lScR/XPparSB/lzBQeciDnyhwAe6J/1ienxNIvAz47rfsWSRbrHSdiQXu6tWhVyd40us AjGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745633277; x=1746238077; 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=/wVUCLEe+0hKn6q/c+4Hvm6QrjTginZMMcE5JFRhMDE=; b=m4GrDmGEqMSrM/vc48+Hovc84mG8Vby/RmUaGGDlUCe+MFzzY78Ep/dG75Pv8fegwf ynWGRWwUdZ7ZxRBQFxl2Za0x6ooVeHRQ8L0m8TLVNjf8zSVWjfV/NUsTE1j2HJPDxtN9 ok4RBMWYBtIMnkD0COYuRm2IDU8Jl83t0ipp92jhiUctH40uIXSMDg3/j40ixajQ/GDv F3w+ntheVgoHv+WHe8pK7DXpGN04pMMELdOMhlDCpK1qAjBgi7IGpYQ+M0JdawVeEK3w u5zvHmqpIvOVSHO3+WOHptSDyxvSda4e4XHbxO8V6Nq9qNfg3MFtX7xPb3ZF1OuQ7sXY RBbw== X-Forwarded-Encrypted: i=1; AJvYcCU3iMG9nxOqLT4M3zvPKmtwANDnF/6iXN8Hbdva3mod2rkjQUJpiQJLAfa6tI4yUj1zCNydANQOgg==@kvack.org X-Gm-Message-State: AOJu0YyoIme4JmZhjy13s/8znzBt3c6wndVdpMrKkr16Q26DU6dHjota vyVVAcIsLjXn58DlnI6Z4on4cyU/PbizeDWPvzfbg2Mv6RHsbVpIrrmQob+dnY9mcFqczrS93Jq A54/HG4TpKiGGJR8JLYrgaerfjYOaO4G/LztAUdp1oogFYWan X-Gm-Gg: ASbGncstzBT9x+Gem+S8+e0XdR4vUq2NhKdKZhZHyy03MOH69k8XpzDHH2Ug/tyrkr6 3hCZs/QpN7g0dIjPAmXUY93yVXakA+4kuYIdGp1D9i87vfe3lZdU6VhElNJhGwJFBGPkuXjLVbA iaulaTPWT3kCLD4NCuiXZLaLAMwKMtIuhZDtcVIKW8Q2KUva9f5UFCRLoxXPv5p6USYzmeTx3Dq 3jdPMLY5udkSpruDb7stbs6Gf3ph17ZChcCJX7uMeLeG/VTjm1Q2FJdXgQv6SHYScFaqNcEPHTl JiSS/vo2R54a63uMT2VRSbTlPzb79A== X-Google-Smtp-Source: AGHT+IEOm9b947bh8wKZJPV8BjTdH67+qjOLV0pvz9iI2xoiPw02tnrnJGVgx5zAiKMvH1se85vcy5rkCyEq X-Received: by 2002:a05:690c:10c:b0:703:b507:de77 with SMTP id 00721157ae682-708540e3d7amr28404067b3.3.1745633277254; Fri, 25 Apr 2025 19:07:57 -0700 (PDT) Received: from c7-smtp-2023.dev.purestorage.com ([2620:125:9017:12:36:3:5:0]) by smtp-relay.gmail.com with ESMTPS id 00721157ae682-7084195d63fsm2366547b3.17.2025.04.25.19.07.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Apr 2025 19:07:57 -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 A07E7340269; Fri, 25 Apr 2025 20:07:56 -0600 (MDT) Received: by dev-csander.dev.purestorage.com (Postfix, from userid 1557716354) id 9E77BE41C66; Fri, 25 Apr 2025 20:07:56 -0600 (MDT) From: Caleb Sander Mateos To: Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , Andrew Morton Cc: Kanchan Joshi , linux-nvme@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Caleb Sander Mateos Subject: [PATCH v6 2/3] nvme/pci: factor out nvme_init_hctx() helper Date: Fri, 25 Apr 2025 20:06:35 -0600 Message-ID: <20250426020636.34355-3-csander@purestorage.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250426020636.34355-1-csander@purestorage.com> References: <20250426020636.34355-1-csander@purestorage.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 5408BC0008 X-Stat-Signature: kdp91pffbpfqy5qwzysbnmf7eqp1k1mp X-Rspam-User: X-HE-Tag: 1745633278-276855 X-HE-Meta: U2FsdGVkX1/prRqJmGVQgXRfgKdwgeXU4qI+GW8vpstFFdgnyzA8cV+aNxEUsyC/TYHXHFSjBxlVe/4AJnDgA4l8N456nrSxvx9c9lsFGOZoqgt1p6rwF3fnu0b311bt61HUY6djY22wOsxTvryOewW6aRz0ehf6QO+dMddmrkfZMrxFWr04kyuYFeUfnxaz7oRAwCzi8VfRhKAupS7SWJh6YHGQK2HXcqOkmAps9rpTG22JX19NgXojn5OxYyWli7tVkr68wllMjzgAvSJMVeCfXuT4kN9z7gipO7K+mpuhgFWGl14mmKuDx9g2RLRxWA2ya2VCOdMNfvh1iCcE/azuZ+oozntjTPKre4VXgXstdytuoNTJO7PWYflqMDaJ/sBxn+wCbnUAGz2brkjMvstuC4NQP2ofbqjifVt2tmkgx7EZ73RMAY/ROa/ORc4oZhLrMvy5AC4RwinO6Cu2nq/LPLiRh2wRWpPevZIwrYdw5aae7LD1lKaAPPv5TFcUONOHaexcgxyTMUO0U2KDVshk3ZQIlE7afEsbxmY1lU7SbUmBPqa+MJIOqSxT0YTZmAlxydtF9+rfwm01ZCriYr+zZvmy2BI9Dwu/P5f+Mzl8ABKE1rn+MP+Vm9s3eu3y6pK3D6rwSutINESnw0jbV2YPndcLX9ozLflAIsCDzDKzM0r1LdEgV4CuPBnsHD/a4tOWWAtM4FoD+tWG7PNW3Mcd8qJpzohmoLU3rxGncA6x7nPHLoD4mDXfUhNNVdkdWc0ck/aX3WW4y8XBkFWDzBol7C1+UIWoD1sAEV1IyLsF7us52vR4EzpG6TzmcpISxg4nTfd4Lc743rMbV00zv8O6+gvnNb4d854BHwhmjDa9ncpl5HmcRavifuBzTVS0SysGoGRSgH/NPVfrv6yZ3GaSNCmWYIKT4qmnylauH7MVQRfFCg2OBXTR0rksih+fDeuKyR+6Xh97e9brnCd UL1EWyWo eEp/OlhLTuc3EmnoRwEpnU60PvVhnmYXOCv40xj4KfiaR2RhUkVhXkvVbkz1zP4VXs7Roym2VUR//6zRbAo34yAkxY73Uq2Zh4QzMyuwxAwnxAbvmi2XtAOaYdZTA1HKyrAeShnYtSA47P3TYJN8OGx+IIFbeOk/JMs6bdG8PcT1bD+Mkz4wdsho8F1U5NmaV6EKhTEp1XdZkYB6OETK1LNXCtzEytSbwoy08Zdd0AvqzpsNH1mSaFyTwb1lhGxbBYgc0myd/9oMWAHOGgqjPiuVLtRbiBtJtbZCB59Q5rX4NtccuKnEMY+oeRqcusCZkKgGL6UOr1K0J238q+U5GLRvwo8TVHw9sZCjUa9pq1i93i+NQfdlrIWFdjwFuWsEKZhh+yhamRYXYOatWznGUhXKpforjoDzLSjW+RTE/lxz3Y1SBX1ti/Zs9fvU2stVMxshuYIBkcg+jDe0= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: nvme_init_hctx() and nvme_admin_init_hctx() are very similar. In preparation for adding more logic, factor out a nvme_init_hctx() helper. Rename the old nvme_init_hctx() to nvme_io_init_hctx(). Signed-off-by: Caleb Sander Mateos Reviewed-by: Kanchan Joshi Reviewed-by: Sagi Grimberg Reviewed-by: Keith Busch Reviewed-by: Jens Axboe --- drivers/nvme/host/pci.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index b178d52eac1b..642890ddada5 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -395,32 +395,33 @@ static int nvme_pci_npages_prp(void) unsigned max_bytes = (NVME_MAX_KB_SZ * 1024) + NVME_CTRL_PAGE_SIZE; unsigned nprps = DIV_ROUND_UP(max_bytes, NVME_CTRL_PAGE_SIZE); return DIV_ROUND_UP(8 * nprps, NVME_CTRL_PAGE_SIZE - 8); } -static int nvme_admin_init_hctx(struct blk_mq_hw_ctx *hctx, void *data, - unsigned int hctx_idx) +static int nvme_init_hctx(struct blk_mq_hw_ctx *hctx, void *data, unsigned qid) { struct nvme_dev *dev = to_nvme_dev(data); - struct nvme_queue *nvmeq = &dev->queues[0]; - - WARN_ON(hctx_idx != 0); - WARN_ON(dev->admin_tagset.tags[0] != hctx->tags); + struct nvme_queue *nvmeq = &dev->queues[qid]; + struct blk_mq_tags *tags; + tags = qid ? dev->tagset.tags[qid - 1] : dev->admin_tagset.tags[0]; + WARN_ON(tags != hctx->tags); hctx->driver_data = nvmeq; return 0; } -static int nvme_init_hctx(struct blk_mq_hw_ctx *hctx, void *data, - unsigned int hctx_idx) +static int nvme_admin_init_hctx(struct blk_mq_hw_ctx *hctx, void *data, + unsigned int hctx_idx) { - struct nvme_dev *dev = to_nvme_dev(data); - struct nvme_queue *nvmeq = &dev->queues[hctx_idx + 1]; + WARN_ON(hctx_idx != 0); + return nvme_init_hctx(hctx, data, 0); +} - WARN_ON(dev->tagset.tags[hctx_idx] != hctx->tags); - hctx->driver_data = nvmeq; - return 0; +static int nvme_io_init_hctx(struct blk_mq_hw_ctx *hctx, void *data, + unsigned int hctx_idx) +{ + return nvme_init_hctx(hctx, data, hctx_idx + 1); } static int nvme_pci_init_request(struct blk_mq_tag_set *set, struct request *req, unsigned int hctx_idx, unsigned int numa_node) @@ -1813,11 +1814,11 @@ static const struct blk_mq_ops nvme_mq_admin_ops = { static const struct blk_mq_ops nvme_mq_ops = { .queue_rq = nvme_queue_rq, .queue_rqs = nvme_queue_rqs, .complete = nvme_pci_complete_rq, .commit_rqs = nvme_commit_rqs, - .init_hctx = nvme_init_hctx, + .init_hctx = nvme_io_init_hctx, .init_request = nvme_pci_init_request, .map_queues = nvme_pci_map_queues, .timeout = nvme_timeout, .poll = nvme_poll, }; -- 2.45.2