From nobody Fri Dec 19 10:35:56 2025 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (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 E955322B581 for ; Mon, 7 Apr 2025 10:17:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744021030; cv=none; b=iSacqAVCEk/XMp+PrNj+dxFowuo6nJOthuZ27vPFamPwBc94sgKt7yzuUs1Icmb7qfzg0I5Q9PPtIxFyKTKbuV4JLt1aSyP8CMCbE7xQYaRTpGvis6+Z6MeyjySNu1JclxrYkgdVxzzatb86MjyirqgNV/Fg6fUESzK15kqaiGE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744021030; c=relaxed/simple; bh=GNn1TexJEZuCnIlB9DobcuoMATd8tMoDoJ6BdlvbUdg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=locF3q3VjmTcdB2XTiLQBDBaHEeZAiUi+i4lpLMeJKtgFZTPBXtPh+VUgdqDhdP/B2LT4ZTcNbUdZh5ayysNDl8yaKh/sZU76+aFvxVpxGLCBXDe/y1+Pc5O9kKHO2XRr1eo7vHpYzRsnyLHxMxNC2EtSbDI73zgscCztHAozBg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=aw1fWeeT; arc=none smtp.client-ip=209.85.221.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="aw1fWeeT" Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-39c1ef4acf2so2411818f8f.0 for ; Mon, 07 Apr 2025 03:17:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1744021027; x=1744625827; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=N2fP1YHFmp/HGjFNVfs7/1JEZzFvuzBBPnLWd33Tb24=; b=aw1fWeeTo4vajAfKd8SIPxYdWySlvyAx04CoTHB6FshIkXoCHWMbzmC3/EDuQlzUIH i9cIrOs9ZHczmd1kFITuDLBETiqnkrwbFDpEKlmOV9XsGu9S1sCshNcbd+rwj4D/2rPH G1usB61FtzBX5oYKMJASWBkKtgYfH+28bb1JSl/Duf3im3cJWfv5ME14aBt7eXN9vdUj qlp9e0b+v6gFxnZY8m4V2E2SLyHgcsj2A4tRHUdUfyIaxnmtHQo3x91scCmngT3NrTjY wRfrJARYh1+7833jLNOb3v8DUPDlimI3rNbk1Lw2j6lfFcpWwsObD5c70opH4DBUtDu3 p/+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744021027; x=1744625827; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=N2fP1YHFmp/HGjFNVfs7/1JEZzFvuzBBPnLWd33Tb24=; b=eszq+luK7Fs44mMKRtOXuNObQDmilt+B+lsK4bBxggBqxiPcJY4UQvZ+kDEazgZiSW oaVKSbG1PtSoESLC6ojHef3qmxPG5BJBh6c6tuIPSt6zQz1htlA7PGClAJLwx6x92DEc gN3GqmSnsNTsrBsrXfPStUCKs3x288VQMStKfqwdwYjUtHSsAPGnOQP067zCUKkNMbu0 G0wHkX6ikoa+eniH5U0zDrPOoOp/5+S11DBA1JEywlPe4cQWbpNbrIbjS9UGt4YFVUGv pvuZdfhMkY4I7mkrAFwATS+i0d4RZdD1xeGa29gC5oXUq2F/P4mnws220WDhqA/gLayg Drmg== X-Forwarded-Encrypted: i=1; AJvYcCWOyPyWAYH1tCVzLMMstmnN672aajf/wRXqMVg48IPRjHyo93mFCLvI0fKo69y7iNhWvrSgSSd3ddcKFsA=@vger.kernel.org X-Gm-Message-State: AOJu0YxjXBFuFxT6BzcfwUYf81Zy0PPdpS4bcjCiE/kAiO3R++Ayfjxb 7L0S73VdZSS5S6OdDQQER6E++YRh1u1VB6NbbTCsicp207Q3Wr4hqja7e6yec9g= X-Gm-Gg: ASbGncvfLARNgR9arAnrFIPocu3KZqTxw6EVDwp+R6i+yh0vOyWRE9tRCJLC2/wBrvT F5JMQg6F6j64M8MujMgiH4ZW3Eg3u2KNsOuD5ENzxkrlJR6LuuT6+BkmgkpvCU5ESkrBqPB7CoZ tKUAPM0Wt3IJZOtCEstc4Hs1YthRq/Z9hS+n2Sn3VI+F3g3i36h064jSSoxIl5WHszRVxIDui/r 0nWAOelXzRzj/VL0mav7kiilN9ohQEBFeWlIqBNdp3nBAlHkHwk6UJBcTlLyrZ5X1/NfEBOMNkD +q9r5AFiO1XnCGXuYGKJg7q4G3cJN6FHbvdJ70flJVG8KDu8AUlvYOLrvhIbiKVs7uXhFIlyFK4 v X-Google-Smtp-Source: AGHT+IGIXK/iFLrHvP61E4Fkey99jVc8hyaezo7l5By+jHeGlefj153g4e4ytn2994OOWpRLeeAI8Q== X-Received: by 2002:a5d:648e:0:b0:39c:1424:3246 with SMTP id ffacd0b85a97d-39d0836e58emr10124465f8f.2.1744021027161; Mon, 07 Apr 2025 03:17:07 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:3d9:2080:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c301a67a1sm11476831f8f.24.2025.04.07.03.17.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 03:17:06 -0700 (PDT) From: Neil Armstrong Date: Mon, 07 Apr 2025 12:17:03 +0200 Subject: [PATCH RFT v3 1/3] ufs: core: drop last_intr_status/ts stats Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250407-topic-ufs-use-threaded-irq-v3-1-08bee980f71e@linaro.org> References: <20250407-topic-ufs-use-threaded-irq-v3-0-08bee980f71e@linaro.org> In-Reply-To: <20250407-topic-ufs-use-threaded-irq-v3-0-08bee980f71e@linaro.org> To: Alim Akhtar , Avri Altman , Bart Van Assche , "James E.J. Bottomley" , "Martin K. Petersen" Cc: Manivannan Sadhasivam , linux-arm-msm@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3212; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=GNn1TexJEZuCnIlB9DobcuoMATd8tMoDoJ6BdlvbUdg=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBn86YgUVRzFgefMJeY504oYTCo5UkEMgaFG/EpAK+7 SrqFBGmJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZ/OmIAAKCRB33NvayMhJ0Rz+EA DDap+KSM52ODSn68mtQIDfr1KTot3nWq4xdcRddXxRhbm2zFwDYHL9hVh5Gn15NvC4KIHa3XlYhk0/ NN8SZ9HFhbxsIXFjCkR4/o+EziL+R11x1Dx+vl0CW92ru6cOauSHVcEPeL2uHO8pzwZNMAHAt14P9d VhQcFqsfFlZ97xgHteaidJEr7SzbNsxH1eQOsPiX9LuCEJspCdjMbcNeJE4B1azO43sFKZVCxxgzQB xnD9NIPCqb89O0Tk8ZYVSqOCLgTBOgSjXXFuZe3hP3wGG6BuMPDobmX7KtKE0rXt2WRyICRBzUDb76 eca6wcE18zAwrEf9U6YQ+c2lElPS6pzkv6vVJF2PKKxdq0aMts75nBJmq/rMQ8WAMf9LpPJaFXpKCf 9LtDMUkXNkPcXRU6ASUFr1TgxYEgj+UKhQ373IrjlW2lOOYfeGy/VxpXYNycvDkvuWmj/DM1zo/8kH MnHUyO0jL9CJZ/LSQLz2ghf9dpf6p0qSxuNDxKgfhpA9tMP+pR7gqLmp0e5qdPIPYKtyieAoUudo63 w89vwSjCyychP4wghz9dPs2p3EaId2Zw5D9cXTEiwd7zkZ41r0wOQ22J1xxuV52KpuQd5nZeKL+h6U FLvd9C3TRlzIhEmBrREXYBVmrX2VDmDhc5YsS7mhIn/A+N/q59QkTKmSR9Qg== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE In order to prepare introduction of a threaded interrupt handler, drop last_intr_status & last_intr_ts drop the ufs_stats struct, and the associated debug code. Suggested-by: Bart Van Assche Reviewed-by: Bart Van Assche Signed-off-by: Neil Armstrong --- drivers/ufs/core/ufshcd.c | 11 +++-------- include/ufs/ufshcd.h | 5 ----- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 0534390c2a35d0671156d79a4b1981a257d2fbfa..5e73ac1e00788f3d599f0b3eb6e= 2806df9b6f6c3 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -643,9 +643,6 @@ static void ufshcd_print_host_state(struct ufs_hba *hba) "last_hibern8_exit_tstamp at %lld us, hibern8_exit_cnt=3D%d\n", div_u64(hba->ufs_stats.last_hibern8_exit_tstamp, 1000), hba->ufs_stats.hibern8_exit_cnt); - dev_err(hba->dev, "last intr at %lld us, last intr status=3D0x%x\n", - div_u64(hba->ufs_stats.last_intr_ts, 1000), - hba->ufs_stats.last_intr_status); dev_err(hba->dev, "error handling flags=3D0x%x, req. abort count=3D%d\n", hba->eh_flags, hba->req_abort_count); dev_err(hba->dev, "hba->ufs_version=3D0x%x, Host capabilities=3D0x%x, cap= s=3D0x%x\n", @@ -6984,14 +6981,12 @@ static irqreturn_t ufshcd_sl_intr(struct ufs_hba *h= ba, u32 intr_status) */ static irqreturn_t ufshcd_intr(int irq, void *__hba) { - u32 intr_status, enabled_intr_status =3D 0; + u32 last_intr_status, intr_status, enabled_intr_status =3D 0; irqreturn_t retval =3D IRQ_NONE; struct ufs_hba *hba =3D __hba; int retries =3D hba->nutrs; =20 - intr_status =3D ufshcd_readl(hba, REG_INTERRUPT_STATUS); - hba->ufs_stats.last_intr_status =3D intr_status; - hba->ufs_stats.last_intr_ts =3D local_clock(); + last_intr_status =3D intr_status =3D ufshcd_readl(hba, REG_INTERRUPT_STAT= US); =20 /* * There could be max of hba->nutrs reqs in flight and in worst case @@ -7015,7 +7010,7 @@ static irqreturn_t ufshcd_intr(int irq, void *__hba) dev_err(hba->dev, "%s: Unhandled interrupt 0x%08x (0x%08x, 0x%08x)\n", __func__, intr_status, - hba->ufs_stats.last_intr_status, + last_intr_status, enabled_intr_status); ufshcd_dump_regs(hba, 0, UFSHCI_REG_SPACE_SIZE, "host_regs: "); } diff --git a/include/ufs/ufshcd.h b/include/ufs/ufshcd.h index e3909cc691b2a854a270279901edacaa5c5120d6..fffa9cc465433604570f91b8e88= 2b58cd985f35b 100644 --- a/include/ufs/ufshcd.h +++ b/include/ufs/ufshcd.h @@ -501,8 +501,6 @@ struct ufs_event_hist { =20 /** * struct ufs_stats - keeps usage/err statistics - * @last_intr_status: record the last interrupt status. - * @last_intr_ts: record the last interrupt timestamp. * @hibern8_exit_cnt: Counter to keep track of number of exits, * reset this after link-startup. * @last_hibern8_exit_tstamp: Set time after the hibern8 exit. @@ -510,9 +508,6 @@ struct ufs_event_hist { * @event: array with event history. */ struct ufs_stats { - u32 last_intr_status; - u64 last_intr_ts; - u32 hibern8_exit_cnt; u64 last_hibern8_exit_tstamp; struct ufs_event_hist event[UFS_EVT_CNT]; --=20 2.34.1 From nobody Fri Dec 19 10:35:56 2025 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (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 E66B5230BF3 for ; Mon, 7 Apr 2025 10:17:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744021032; cv=none; b=JuTEQd5zi2g+15UvyTJqJXc5e+cJ2JWUTg3ySFo/fnkD8+a33b2u/+JkuhTvYcGPDg8PQRwLw4D2JTC4yxy7tbrHkAkDECozQY8O3NKQ+rZ4aBgL7Yi9kFus6ypIeX1dhW4+yx3g7BNJ0RuStY7TwJb/p3gpMHhV4XRHj0JqFhc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744021032; c=relaxed/simple; bh=YWJ34j7xCQDhTiMNfYYLeseOAG7KJPfmn+Y8UFFCVW0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rrVBGDpCsf0rjSWvrFSV6cgzDNj5RCGGei8WvKphsUdzPhKTXn8R8LfenxyhOV/vwpzkXpQFkCQIG3N6AHGSi8SpHKztgUo+eaZGkyaHUnw3+X1EjhTboHHVlfrBuEeUvsdGfBohbPpfk56WwS6pZfAFiE5r6A3K/HygRILK/5Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=dUKgnJ0c; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="dUKgnJ0c" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-43ede096d73so14071865e9.2 for ; Mon, 07 Apr 2025 03:17:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1744021028; x=1744625828; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=pDP1Z0ZMTTNt0kswy5xA7deGiP0r00iI32AWjJvJBV4=; b=dUKgnJ0cIkp2+BoEB/wTT46zAeqPwb4IP5UwqyAyGqGOPKMrhIqc84QcvxvszhGUQs 2BL89JrWxnWA26GjVD4B9EDafN3EpLWzrdmudB6E6FCG0mQRJjRJpGu0EAeeo3Pq8c7G WV9erYw90pBvQJ34MshemUwwevJJuhTQBJLhDv7UErR8BSJLsSXjTaJ4N+0BWIZUfzV3 vSnBLxlFg8abrbR1wfpz9MhACD1Lmgm9GXekjISnFBJ0libzQ7SI5bkLVbp4h5vq3VjD p5EWe0CD8Y4zUlcX/TWZP1Edw0EXkDJI7MEzt7lhJjZa5h5qNPAs4z3+Ze1D3l5AUE5r /wKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744021028; x=1744625828; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pDP1Z0ZMTTNt0kswy5xA7deGiP0r00iI32AWjJvJBV4=; b=nMpz2Vdpc9be4NoPOsCaNmmEu/REKJTlIhsHlS0WSMgIBPYh0CXd2i96AiUfsHD2Mi hRk1QVntonNnq66eUyKs8bKosggEqXt7CF5YFxWrI2Ig0TnUl1ZhObN+Ya/6eF/G/bqz tl5qSXl50DGpeNo7bt0d3b5KCs9gEEJwATGvybB93vcXjWgOlE9JhjQCJN1yh9AviqPS 5Z31aVamIXxUwy/J7bmpy5dhzRiuVoR+rGlwMyRiY/7QK4ozWtmJ8dukYVVSidsPpmNh hSyLfN0xjXbKCRRlmRkz5o0bUwlgWOn28bky/XRlx+Dq4ONhylYuJVRJ+lBfOTfZ6ox6 61gw== X-Forwarded-Encrypted: i=1; AJvYcCXY0x5v9Rrn9EIln67OGd+XzcOuuF9u+xCcFEBhduf7g1t+HzU2eloj36d4fyP4nt5zzfAFqw4ZR6bb2fo=@vger.kernel.org X-Gm-Message-State: AOJu0Yy7U+C6S1gOXUO7isxstV/RCLf5VMw5UOw6K8UPYb82DUn6QWLm 734r974dgJD7OfM+k9lTXcO2bysMlXvfXvrXrDn221VVlJam6pl5aRuk2EvWXvQ= X-Gm-Gg: ASbGncsLWQsqh7IFxYYzAhFei4JiQRdXxpI+6qdjDj3XjiCEV3zjyg+aRtKVd+n0NAf obYA9K4lyK7rGlT8nyJQHYqJM/GSP8mvWucGot0ZuGaRsV5y+69tvrV1QHQKu4lkUHIOQrHzvoN aiMDoDuYmaqqXJ9RjpLc61m8qKMteMD7K9Eme182XXm77u0TlaqHx1XazPqadUAgVQgxtKdV6zF 6kyJ+3Erc9Hj3TM4lh2+f5WLIx4DzMIiUbCOpjzdJxsLgiUpvxyGIdZTXR93JBEPUAE2VsjAckr T3p5nwelayzH2SYF01ul27U0BK/MzMKdCx2n9AKsbRF5PbGY1J/pjuYWRb2CNM115Q== X-Google-Smtp-Source: AGHT+IH1bA7eG2g6ZFY5ccY48q/cn1qwbgDKTUQtjdE6PNCKBBqrdLrjGJIHYoe4Np4eEJQF1+LN9g== X-Received: by 2002:a05:6000:4304:b0:39c:12ce:1052 with SMTP id ffacd0b85a97d-39d07bcd00dmr9383723f8f.7.1744021027786; Mon, 07 Apr 2025 03:17:07 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:3d9:2080:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c301a67a1sm11476831f8f.24.2025.04.07.03.17.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 03:17:07 -0700 (PDT) From: Neil Armstrong Date: Mon, 07 Apr 2025 12:17:04 +0200 Subject: [PATCH RFT v3 2/3] ufs: core: track when MCQ ESI is enabled Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250407-topic-ufs-use-threaded-irq-v3-2-08bee980f71e@linaro.org> References: <20250407-topic-ufs-use-threaded-irq-v3-0-08bee980f71e@linaro.org> In-Reply-To: <20250407-topic-ufs-use-threaded-irq-v3-0-08bee980f71e@linaro.org> To: Alim Akhtar , Avri Altman , Bart Van Assche , "James E.J. Bottomley" , "Martin K. Petersen" Cc: Manivannan Sadhasivam , linux-arm-msm@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1722; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=YWJ34j7xCQDhTiMNfYYLeseOAG7KJPfmn+Y8UFFCVW0=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBn86YhSTaWBCZtRUbhDHyJiFKzongiGQ0xTg4YuL1O an7H57uJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZ/OmIQAKCRB33NvayMhJ0YvJD/ wJohh7fChJ0XzWfnyC+njGmkEzzkUh0SDs+P4U82VzN/EQxwt6KlVpAlMPKqbsSkHnrOTLKFarmnMF q1mhKXpRXRqH2Kt4WK6O502B+vzqEE29+pwbBh4fbS8scAzE3GJnb5S6cCzYa0NHW7ugOFjDCV7Z2L mIH7AIRa+NmxQJcCD1ZxKAPgRYTSvh8Bm2qm1MEn8gpwd6ynB4iNcqJpzHAA3p/okBRD9cFevyp0Xp 4mWQxyeqV2WyVCKfES+rGrnf301W56PGoclpr9QPppDJ9aDW6TgRnWHTfFF0//GFihEm+Oypp21Ysm X5VYQ2KLuG3UxIbTAykngEnx+Mgr2N/qX47KU1IVJRkEX/Y+OIxY6hSRZ6NrcmzDwJC5i+QLiO/eWE XQF1vISdKXPm8PkOUolcu0+srQq1O7b+Mx/FV8gSMS2vuiTHDCPLMixY+vZsE6E4UlM3s7gr4ewIAF TLRUjmuXT+c5ZOP1sYeazBzUfCvIN2tWM11gyAzZJEVpdqCuFiaXjJoKABUcnoTfHt3I4e9Mfnlrnp M+1aOjedD7B+MynnyCLOvY6aq0Q1Gc1pxRsj3Ygfk9MPlk/AAEXb6uZwSJfVEPez82HV2MTFuzMSsZ YQOlz9HWKgasKsVvf3xYWr8FDjfg+H61eZg4NHMza7UdF3E6OsGdpZPUxFJA== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE In preparation of adding a threaded interrupt handler, track when the MCQ ESI interrupt handlers were installed so we can optimize the MCQ interrupt handling to avoid walking the threaded handler in the case ESI handlers are enabled. Signed-off-by: Neil Armstrong Reviewed-by: Bart Van Assche --- drivers/ufs/core/ufshcd.c | 1 + include/ufs/ufshcd.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 5e73ac1e00788f3d599f0b3eb6e2806df9b6f6c3..7f256f77b8ba9853569157db778= 5d177b6cd6dee 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -8717,6 +8717,7 @@ static void ufshcd_config_mcq(struct ufs_hba *hba) u32 intrs; =20 ret =3D ufshcd_mcq_vops_config_esi(hba); + hba->mcq_esi_enabled =3D !ret; dev_info(hba->dev, "ESI %sconfigured\n", ret ? "is not " : ""); =20 intrs =3D UFSHCD_ENABLE_MCQ_INTRS; diff --git a/include/ufs/ufshcd.h b/include/ufs/ufshcd.h index fffa9cc465433604570f91b8e882b58cd985f35b..ec999fa671240cb87bf540d339a= a830b6847eb71 100644 --- a/include/ufs/ufshcd.h +++ b/include/ufs/ufshcd.h @@ -954,6 +954,7 @@ enum ufshcd_mcq_opr { * ufshcd_resume_complete() * @mcq_sup: is mcq supported by UFSHC * @mcq_enabled: is mcq ready to accept requests + * @mcq_esi_enabled: is mcq ESI configured * @res: array of resource info of MCQ registers * @mcq_base: Multi circular queue registers base address * @uhq: array of supported hardware queues @@ -1122,6 +1123,7 @@ struct ufs_hba { bool mcq_sup; bool lsdb_sup; bool mcq_enabled; + bool mcq_esi_enabled; struct ufshcd_res_info res[RES_MAX]; void __iomem *mcq_base; struct ufs_hw_queue *uhq; --=20 2.34.1 From nobody Fri Dec 19 10:35:56 2025 Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (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 547D6230BD1 for ; Mon, 7 Apr 2025 10:17:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744021032; cv=none; b=sZ6wbzpqWZSu+Gg9b6O78pk5bCdxhxp7VbkRvbtf67UI5Sz09W4wcDJbpuDCNprhbz78dgWrd5rOeLUwVg0uXEQEaZwFyMtjFFWk5JZ8IP+kOdmn/ugMtLMYfADYgIdZsSHiDPdQ1TRT0Xsxa1Xt/Pp+iuKS2qUhj6qfPkjcovY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744021032; c=relaxed/simple; bh=GJ/3LoYhjreXCmlje4HGApIZSD0dopghOnCCoRTD310=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VFe2sS64u4I9+trj3WD+yT8uByuZ78zrvQhAOjME9I+CJ0LbJB1tXDpbb2GmsYA9Ky0SwPiOlgV+2OF5ycQ4KVxDv9r2DWOb/2l2pbpKdOCOCKlMJF8fbox2HX9tdBg5RqFHuCbHpebfQ49PgX2D109W2FKj6P6EKfViV+rh4Lo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=JexIb2gj; arc=none smtp.client-ip=209.85.221.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="JexIb2gj" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-39c30d9085aso2382071f8f.1 for ; Mon, 07 Apr 2025 03:17:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1744021028; x=1744625828; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=PxuAzzqTN8Esy+3wBd10qAHGJHFzExg1oERBNtTrUmM=; b=JexIb2gjNt3Gy/0s2IiYAJmZpxFMHlk8DtcWbR7rtyvXNqYfH8Hl+Byo5o47fypklG tQnm8mHpZ/MSG/9yObjvvSjQmv9tFsh+Y7VzULy7ZpOkc+w5PQzZFxkcSb7LUXDX2Git 5ca/Sz0R4mmXboyU3kA+/PK0rCyH6nJs/5Kt4c90/gE/tOCaP7KZ+7aL0RMLt1QJdkpi 3FW/qt0sJx2Sv41pXbYN49/eloQoDgA7j0EhAYixmItwtUKd/R61WLx8tEW61VoB5rZT 70+RXV4cNuB/TimQGcMdu+7Eai4Amo7f2tqL1XAyXHO8uUfZ9eZ8ZjCU5VtXtgf++2fI ZXsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744021028; x=1744625828; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PxuAzzqTN8Esy+3wBd10qAHGJHFzExg1oERBNtTrUmM=; b=Z5+wghDUa48ZtnuZ25+uoUDzcLPIf9wi+r0EKkV8m8VXpYmDX9gm3Y1HMp8Vhqqta4 RYW5gwJMN01S6zuPZiGDvOH77bDgM6QZMClJit7xCgqzml11Hia8MNAWwuRLeUnJu8oZ yMZ5dk7fl3ZwndO+8OghXY4WN+HVSLAyqdHeUUorjVCXCbvKZuBR4bfqbo4hhKZEwQ/G 4oIki2YymIR97bWPOUMpGPhXljS1DpakFHlk12aqsX9ML4dyc8BFjwibgctyIgHUgtLm Fad4TgDIRyH1IqTMeR8ww2C/vjOfrArN1cy2ni/Rt+jkZWAcTTXcIo1GDBoTmeXOj+GP HCXQ== X-Forwarded-Encrypted: i=1; AJvYcCU13kBZZCXQbluCzeK7UOuZFyJlVEBI4qm/kmM2ge8ymuUnyP8ErqO3IddwZF9z5hAdqbqAzaRBtwqIi4o=@vger.kernel.org X-Gm-Message-State: AOJu0Yy8OtFUM3eCPpZU6CZmqttVT3uiJtFBI14GFWIq2lDY/DR9ebjk I7n+1I8cus73DBppmFrLsnHkeV/kBSKUhfwLHRvW8M3v1nFXio3cglCdwSRFrH3jmtsrB47aPWm c X-Gm-Gg: ASbGncsDC/DYNV85R6A0CvCYXmZKY1cDTxEN9iV30qJFRpRDHLBxYKcSQQ2Y1iTdkO0 +WWffKWu3CkUM99NKzBoTkFru8XsZ0pHHCllFk1OygIrrwXjAZmkQt1svemTECRnWHgLdGSGk9m hm6XLQQoCrBhn+T/CDQuK+QMRqUjo9AGRTx5MvDxBDIn7Df1eOtJ2Zb2pKjIOyIDOW/9lTSJOc1 j1JWkZQJqXV/OWWPfcqllO+2zGXyI/twG2V28XnIzBWZCGuxhIuR/t4hLo0bw4G5XU3S3vAfXpV nPPjTvz4oRG9q3NzcMbTSNYxP4UNBfhji2ghhtKf/jNzIXoJpaaZ5/9UUSa9/4BhFA== X-Google-Smtp-Source: AGHT+IHh+6UGrJ/XHf2b1137nkPVPeuW5PoXq2uwhIcmz71829sHC5RKQ4MEcbte47SAnkiXo4gpRg== X-Received: by 2002:a05:6000:188f:b0:391:3915:cfea with SMTP id ffacd0b85a97d-39cba93329amr9862933f8f.38.1744021028483; Mon, 07 Apr 2025 03:17:08 -0700 (PDT) Received: from arrakeen.starnux.net ([2a01:e0a:3d9:2080:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c301a67a1sm11476831f8f.24.2025.04.07.03.17.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 03:17:08 -0700 (PDT) From: Neil Armstrong Date: Mon, 07 Apr 2025 12:17:05 +0200 Subject: [PATCH RFT v3 3/3] ufs: core: delegate the interrupt service routine to a threaded irq handler Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250407-topic-ufs-use-threaded-irq-v3-3-08bee980f71e@linaro.org> References: <20250407-topic-ufs-use-threaded-irq-v3-0-08bee980f71e@linaro.org> In-Reply-To: <20250407-topic-ufs-use-threaded-irq-v3-0-08bee980f71e@linaro.org> To: Alim Akhtar , Avri Altman , Bart Van Assche , "James E.J. Bottomley" , "Martin K. Petersen" Cc: Manivannan Sadhasivam , linux-arm-msm@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Neil Armstrong X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3901; i=neil.armstrong@linaro.org; h=from:subject:message-id; bh=GJ/3LoYhjreXCmlje4HGApIZSD0dopghOnCCoRTD310=; b=owEBbQKS/ZANAwAKAXfc29rIyEnRAcsmYgBn86Yh9gJ5axoT/EQbGWoqm1NFW5vkB2viScmVj9lv 3zyu8NeJAjMEAAEKAB0WIQQ9U8YmyFYF/h30LIt33NvayMhJ0QUCZ/OmIQAKCRB33NvayMhJ0faSEA Cda9fOHkeTmvfwyg0O+9OkwVmMxfblxX9lpBagC/2+wG542TmQ/IznGMbYXZn/h3UmpJQgAcpKt1Dk DXIzZRFBxs17dffzTsGbFmp+EKhVmBoQPCDqH0YPHBcMM8R8I/yQT33v3ygS6PkvQQO9/nFyXmnokE Llrr+gCJW6jG5FXPjEVLJ6aKTcOtOj3mMp5p1FsxbOTI+TtOhM5pOomdZrVuUzyHLqrQ+R8xMr6BGo 3+6zc5klY7QEsJv4LIFzklaGh1pDbEqeYgT2WS+rJtJkGkxXEqD8At5DrbjU2fDLrJgJWxc2ZvN74I 2rz2//vS7H6zmXsbo73NOPVuMvL1Zu+eWseoUs1qkGaLI1BSyLeGjUSNGF7PUPV011hAC0KHAPTQ7v cJJLItL/eDavPoRw1Hpf9C5ORd4EuY48CibS9VveKTMd4HLDqhwDszEPCz/2L07pfVgrM/nmHAGxGv qSWiw2NzS1HE2kKuH3chhPNgiQDCsxZM1LGI7W9hniNBXFuV8/67myXyc1osPrwsuNgMEVcxFn1hxh GmdKebccIDYdWwiJGM72YAhh1UXfwcKtAepsOFO4yoAS7gVPKlzeOzvQm/qTN9OYPJAlK2Koj25Ug1 fPqAWLx6u4daaV/0A3bWBo1es/VvlfKMopdmwBilSYgBRA56C4eqYGkpl9FA== X-Developer-Key: i=neil.armstrong@linaro.org; a=openpgp; fpr=89EC3D058446217450F22848169AB7B1A4CFF8AE On systems with a large number request slots and unavailable MCQ ESI, the current design of the interrupt handler can delay handling of other subsystems interrupts causing display artifacts, GPU stalls or system firmware requests timeouts. Since the interrupt routine can take quite some time, it's preferable to move it to a threaded handler and leave the hard interrupt handler wake up the threaded interrupt routine, the interrupt line would be masked until the processing is finished in the thread thanks to the IRQS_ONESHOT flag. When MCQ & ESI interrupts are enabled the I/O completions are now directly handled in the "hard" interrupt routine to keep IOPs high since queues handling is done in separate per-queue interrupt routines. This fixes all encountered issued when running FIO tests on the Qualcomm SM8650 platform. Example of errors reported on a loaded system: [drm:dpu_encoder_frame_done_timeout:2706] [dpu error]enc32 frame done time= out msm_dpu ae01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* = 67.5.20.1: hangcheck detected gpu lockup rb 2! msm_dpu ae01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* = 67.5.20.1: completed fence: 74285 msm_dpu ae01000.display-controller: [drm:hangcheck_handler [msm]] *ERROR* = 67.5.20.1: submitted fence: 74286 Error sending AMC RPMH requests (-110) Signed-off-by: Neil Armstrong Reviewed-by: Bart Van Assche --- drivers/ufs/core/ufshcd.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 7f256f77b8ba9853569157db7785d177b6cd6dee..b40660ca2fa6b3488645bd26121= 752554a8d6a08 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -6971,7 +6971,7 @@ static irqreturn_t ufshcd_sl_intr(struct ufs_hba *hba= , u32 intr_status) } =20 /** - * ufshcd_intr - Main interrupt service routine + * ufshcd_threaded_intr - Threaded interrupt service routine * @irq: irq number * @__hba: pointer to adapter instance * @@ -6979,7 +6979,7 @@ static irqreturn_t ufshcd_sl_intr(struct ufs_hba *hba= , u32 intr_status) * IRQ_HANDLED - If interrupt is valid * IRQ_NONE - If invalid interrupt */ -static irqreturn_t ufshcd_intr(int irq, void *__hba) +static irqreturn_t ufshcd_threaded_intr(int irq, void *__hba) { u32 last_intr_status, intr_status, enabled_intr_status =3D 0; irqreturn_t retval =3D IRQ_NONE; @@ -7018,6 +7018,29 @@ static irqreturn_t ufshcd_intr(int irq, void *__hba) return retval; } =20 +/** + * ufshcd_intr - Main interrupt service routine + * @irq: irq number + * @__hba: pointer to adapter instance + * + * Return: + * IRQ_HANDLED - If interrupt is valid + * IRQ_WAKE_THREAD - If handling is moved to threaded handled + * IRQ_NONE - If invalid interrupt + */ +static irqreturn_t ufshcd_intr(int irq, void *__hba) +{ + struct ufs_hba *hba =3D __hba; + + /* Move interrupt handling to thread when MCQ & ESI are not enabled */ + if (!hba->mcq_enabled || !hba->mcq_esi_enabled) + return IRQ_WAKE_THREAD; + + /* Directly handle interrupts since MCQ ESI handlers does the hard job */ + return ufshcd_sl_intr(hba, ufshcd_readl(hba, REG_INTERRUPT_STATUS) & + ufshcd_readl(hba, REG_INTERRUPT_ENABLE)); +} + static int ufshcd_clear_tm_cmd(struct ufs_hba *hba, int tag) { int err =3D 0; @@ -10577,7 +10600,8 @@ int ufshcd_init(struct ufs_hba *hba, void __iomem *= mmio_base, unsigned int irq) ufshcd_readl(hba, REG_INTERRUPT_ENABLE); =20 /* IRQ registration */ - err =3D devm_request_irq(dev, irq, ufshcd_intr, IRQF_SHARED, UFSHCD, hba); + err =3D devm_request_threaded_irq(dev, irq, ufshcd_intr, ufshcd_threaded_= intr, + IRQF_ONESHOT | IRQF_SHARED, UFSHCD, hba); if (err) { dev_err(hba->dev, "request irq failed\n"); goto out_disable; --=20 2.34.1