From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-vs1-f49.google.com (mail-vs1-f49.google.com [209.85.217.49]) (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 7A554259CA9 for ; Thu, 26 Feb 2026 02:37:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=209.85.217.49 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772073479; cv=pass; b=edq2ESnhoFYShwNcW/THY3gDWhL82mVm2H/1MHhsQfqw2T93gE+9/cwojnm7jyh6GeHHM/eXs+LGkYeH81LaS1qhxK9sMs6v4vZF/ermW4Ns0qqSaoWohcSObWg43h3LvIIQo8cl3UeFGH1W026lNClGNgjOhZYWUG2Q3iEFzd4= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772073479; c=relaxed/simple; bh=OXLpGNfteTmhl9DIc+rVKCY3lP+BgshwJKK4MhpcFYs=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=EC8blBUvJIulqyx8Dx8BZWOdzfz9eP9jk0iHbAJyGSJuzunE/Va5dQ5iWubRymxRdzYo8D43CD8zhWCgtny8XmhH059TKkOTCEzS5WMNxIqpK/MlDHkhYdWNoPWhCLi/onm1YpR51406tKq+QiY7pEveBZZVwo9SgF+sMO452lQ= ARC-Authentication-Results:i=2; 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=EIMt29tD; arc=pass smtp.client-ip=209.85.217.49 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="EIMt29tD" Received: by mail-vs1-f49.google.com with SMTP id ada2fe7eead31-5ff125cba0fso56840137.2 for ; Wed, 25 Feb 2026 18:37:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772073476; cv=none; d=google.com; s=arc-20240605; b=g4PoxeBfXohZaGi0837g9nXpdeWjVNx0fmk66cZJeguDL3U2ht53zGdtbymiiLc4pQ PTsAAxoyYeD0NlwpQTOYUaCTqW1qzRCAQpCxLcjWARQbXfear6SCsp+1utKKaWVEqliX NIuKgwLKpWxd1cDI14ILMOH/M8gAcVrY9to685ELmgaLcoo+d2XPzTR8ckcag48ZbZqh aR2zGV7TV27lDVk5DNLaGw4TZcrBEx+rjk7NfF69ChwuSFOa8PmNYRoff7rHIUYfD5ZJ xVIMDahhDx+0Hhkx/B9IGCIB+EvCip3AO2MWHBvr15iYgqvF6bNR/HL0NpSgrPkavSCp 7Dyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=ZYeiddlSt/e97JeTDQU/H53HrO7Irao8ocaMB2ZBK5s=; fh=BpyentslneDQh9MbxOwdMRDtQ53RjNhNrn0fI5/bWlY=; b=O4X9G7IwXsuYi885dh07hg/A81O1eiCW/TOEHqmrmAyTK4C4DWD0kpp83uFjHK4pA7 AaMsCYH4QRQshfXFI7EVzCWAZyhE1i4ehlca2DnUvUNM+JSdyZPc1V5J0xUHc+jeDobx HhJ2ZFjdZZPJjXeLoZ19b0F9PU2m6fgQJA+or+Ywz28ZY58gfJvaNl6oCcLnra0WrwSS WVguYqwnVIKHSLPd6piOoE1LyL1VDW5Tz0IaBOdvRw6EFxQwu41vViXSCJKYDzMcnwqo UJXZpcG94ELVRWh566LZ/+u+XxOdttFeZsOednQOW8jGmKmwkqkUS9Jdpi7wUxhDRAd0 GHPg==; darn=vger.kernel.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google2022; t=1772073476; x=1772678276; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=ZYeiddlSt/e97JeTDQU/H53HrO7Irao8ocaMB2ZBK5s=; b=EIMt29tDeckuQME+FKdi5NElur5MiqZZkzY47CXHdO5APImMJiJ9NDGbE2dQn29Jsp 7qctS+x0ormUsSQdQ7bzzZ0P5YqkOA1XB78t0T3MpENqdbxa6JTGjAaKYZXXyOxS9ZO5 eIWtBBtjdL0FVMN74HCqM9q9M7ndR1ewkxgfp1Zrjd742tKXuUzs+rCOHfQ03kZHt7ua JdRVFLmVT/DkhaqhXAenifa4+cZjEnpYoxUCd6PoOxMZTjuB6UO3607UUf307ldcfuS6 hAaN6EQCz0JyELVq3/zTfQ41XOlVzAsILXzH6yztyUT+ETMFUsFd5XuZV2ejXV6C5/Vt DAqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772073476; x=1772678276; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ZYeiddlSt/e97JeTDQU/H53HrO7Irao8ocaMB2ZBK5s=; b=qoxYq6MlaFBaNKBIwHawHuIu6sWHRyNnNcpBXsdkg/fTYbPa/JbX515f8UHG2F/lIZ bTxyMTDeGSDQueNiFMMdQQoDjwXzsSrqRt3kmxOzqpqZJW3dts3cJ5j6sc63nlevZZE3 t9yogKFA8naxewt2XcJKaYUha8cFhg7GbpF4dzmYTBwjvZnYCATcpcWZwgzmvRm83Ub2 m6xG7xj1UdHyKCYZlHzpXXlZA9IwgK4bpOG1ikRwpWN+ogU81C7cRicjnUZDWAzA75BX RbfHbyzP8QrOFcKCFqnQw+lRuCqB02uNmOk68dGkB6E7hKDHZDYG7kBYAFfiY/bEPWxr 37ng== X-Forwarded-Encrypted: i=1; AJvYcCVS1L2qYJD04yrGa8YsCXxXgSWSPrxYimscyqed7F7Uq8ane52wCJRHJGbauecrCrEtwxjHHg0bh+QME+Q=@vger.kernel.org X-Gm-Message-State: AOJu0YwZonmA0Ay8KidrmEjxxmOeGUZgOLakXiSys82LnzYSa2dDKZis mVNse5LoQa72gtAGAwOkT5Llmar1IE2Z/6aDqNwYkXz14jM44P33eIUJmGzZ9LCOYMn0sKNDygW smtz9KNAvZFcHkZ1SCzVyx8EThqnRuxxZiIzT1tt4hw== X-Gm-Gg: ATEYQzw7xp+6F4Dd32DmanfQ3Lk1pLg0SpiwkNQ9mhZZbts1JKdQMNPwHAqbpXf5uQE 0sks96DPCaHJDwikfmnsfvtNozQ8oSviJIQle78BA4DSKmhVIJofJn3TxysjwPqqpO7dOV8F874 SboJn+sgYAoylzxOFUUxXSuFNAoINNpSnez+yI27HTSPc6JPUB0TVBCeO1lNiUt2Df6rYwst7qd IAojWkTiij0IKOQe8XpLYKHwmSF1aYTFv4MecvPJ1xgT0CflhPnAGw+phoy2FSGnET7KnQMH7XL igIReZn8yQzd12zagpBuY+1C5c5NIAODIXoDaGJgNsqZfG4GfQdJdx5hRHNybWkBWRxT4g== X-Received: by 2002:a05:6102:c8c:b0:5fd:f509:c97 with SMTP id ada2fe7eead31-5ff13eed831mr1186869137.18.1772073476251; Wed, 25 Feb 2026 18:37:56 -0800 (PST) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20260214042753.4073668-1-mkhalfella@purestorage.com> <20260214042753.4073668-9-mkhalfella@purestorage.com> In-Reply-To: <20260214042753.4073668-9-mkhalfella@purestorage.com> From: Randy Jennings Date: Wed, 25 Feb 2026 18:37:44 -0800 X-Gm-Features: AaiRm51cvr7V4SAhOA_Hp9PQOxrfj-PirQEyjxYmDuwtDT4YlF3Ohlnv7XsJMSM Message-ID: Subject: Re: [PATCH v3 08/21] nvme: Implement cross-controller reset recovery To: Mohamed Khalfella Cc: Justin Tee , Naresh Gottumukkala , Paul Ely , Chaitanya Kulkarni , Christoph Hellwig , Jens Axboe , Keith Busch , Sagi Grimberg , James Smart , Hannes Reinecke , Aaron Dailey , Dhaval Giani , linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Feb 13, 2026 at 8:28=E2=80=AFPM Mohamed Khalfella wrote: > > A host that has more than one path connecting to an nvme subsystem > typically has an nvme controller associated with every path. This is > mostly applicable to nvmeof. If one path goes down, inflight IOs on that > path should not be retried immediately on another path because this > could lead to data corruption as described in TP4129. TP8028 defines > cross-controller reset mechanism that can be used by host to terminate > IOs on the failed path using one of the remaining healthy paths. Only > after IOs are terminated, or long enough time passes as defined by > TP4129, inflight IOs should be retried on another path. Implement core > cross-controller reset shared logic to be used by the transports. > > Signed-off-by: Mohamed Khalfella > +static int nvme_issue_wait_ccr(struct nvme_ctrl *sctrl, struct nvme_ctrl= *ictrl) > + if (!wait_for_completion_timeout(&ccr.complete, tmo)) { > + ret =3D -ETIMEDOUT; > + goto out; > + } The more I look at this, the less I can ignore that this tmo should be capped by deadline - now.. > +unsigned long nvme_fence_ctrl(struct nvme_ctrl *ictrl) > + deadline =3D now + msecs_to_jiffies(timeout); > + while (time_before(now, deadline)) { ... > + ret =3D nvme_issue_wait_ccr(sctrl, ictrl); ... > + } Sincerely, Randy Jennings