From nobody Sat Feb 7 04:45:47 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010068.outbound.protection.outlook.com [52.101.84.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 674D82D1319; Fri, 12 Dec 2025 08:31:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765528321; cv=fail; b=Kp67f2hPQ0Gxu8HF/Iz0feNUJ6xBqa/YoiwHfksGvSPlyXcUYnoRqYjuRLjaXI432qSdRA3lyGyhE52z7hEIda6jJMR1Oz/htM3qVIlrh/owlqRWv1Lp7M/8I4nBzIwM1I03sXKWMDEwbAGWK6enHm7I84UlS1zlpbqLG5ETkkQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765528321; c=relaxed/simple; bh=3LyGln9a/+3CHcQ3x7Lmf2b2TUBIiWvPBaxIemJ3xOE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=gTRp3Qg7J6RQLmL8kcYwep28iIP/1+YFvccGyGCYcqvxJXHTf8q+XmcI2yeZI1rMKpUMJdLCtkILL8rWd+Jcwiy1MAnlAfm8Ze29qniLWWjgTfFHAqQsg6I3/lV9uncvpvGa64PAsCdualhZ/yFfU36gwyywQdjFYsEkOGsGiHQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=b5Ly7S9D; arc=fail smtp.client-ip=52.101.84.68 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="b5Ly7S9D" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NTPNsn7oAZRkq56oYK2+u8Qd+/L8Gv12+nhriZuIfJL0WoUSdbTbp2+3cu2BbZUfYCHFXzpeywvQBjEpl74/j7/j6REoPOFvtieJSLfYPgybAg0mQpSwolw6v+lKGMAMPgn2YWphHQxC3E6zczVLVzoefGWCo1tY/KPVYuDhe7ixMXFZKPuiGurE0jGfhGtkzTTQqsiW5Bu8DKymblqBWCKPjH3WRM3CNj8WhhnQLfY/y+AXK0pu9qgV6ZbgrDtXPSJrWOc8IvlTEK7iMAotkXW6jhPnpl6E9udUBv2eKMXxndUwu2v5hZhU0dQ3e+olMRJZ6CPS3Ns8+bu+5znahA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BMlsupzCFCk//rlBUiP2xjUxUFnVaeY8BOLJX2H9Dw0=; b=xxnJ8Pjwv/0D9TqQ5kJzLgRt5mMrWiztgIkJR9NBprtOEwdOhS+83Om6n+6RtppB0WUjnm/NC8t9k2Y7V0pmX03fBbqQGwspwh4yeS75+jbYM8/X28e8jLaZdItdOsh8GVDZpU4576uCsrA9FG/E61rkQADGfx1GWbYHAnS9WM+Jr9wHGym0H9d0TZkInNLz2T12t3esfLuZLSmQmyOpQb3R9S9nj74duL4QOCBo6X+JFrwh5Jt+TifEbAglZB0UnvhICDXJPoF/W6cgmZb19rg9TuUDn6i7Myr9W2av2BSlfeQeFpo4Dcxz78Rjeuunm46tKLu6Xd4rK/xLVQRmQA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BMlsupzCFCk//rlBUiP2xjUxUFnVaeY8BOLJX2H9Dw0=; b=b5Ly7S9DNTFFUJH/6MkxBcmjKu/Qju02c09qvcM8IsURCaSAugHpJ37DNOabKoLhsJ6m3O76MJt25yqsL7cEqlFzmI5WtkMvxtlANSQvqoxQzqquKJ+P0spQ3fKMT3ZUyqbe0FyJIAzQQmFisZJgXwZd8VIPiykoiDMvdxl2kMq8+1hWtpQ9U0KrKx2IxAmrx8yJrv6G2/FEo9Xwugy4VY9MgNRWjG48A1/CjtHAaWyNfgTL3VgPPpy0+1Sd6amm92QXrw3Q+rwGTwniEVY08/P75eQ4rOGzX493OqPW5EJaew9TdDDTq6/LrTIuXPzUq2+muYVpQCc9vJDcDPHscQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DU2PR04MB8567.eurprd04.prod.outlook.com (2603:10a6:10:2d6::21) by AMDPR04MB11556.eurprd04.prod.outlook.com (2603:10a6:20b:71f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec 2025 08:31:56 +0000 Received: from DU2PR04MB8567.eurprd04.prod.outlook.com ([fe80::32c4:a8a7:1724:b754]) by DU2PR04MB8567.eurprd04.prod.outlook.com ([fe80::32c4:a8a7:1724:b754%2]) with mapi id 15.20.9412.005; Fri, 12 Dec 2025 08:31:56 +0000 From: ziniu.wang_1@nxp.com To: axboe@kernel.dk, ulf.hansson@linaro.org Cc: linux-block@vger.kernel.org, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev Subject: [PATCH 1/2] block: decouple secure erase size limit from discard size limit Date: Fri, 12 Dec 2025 16:32:45 +0800 Message-Id: <20251212083246.582806-2-ziniu.wang_1@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251212083246.582806-1-ziniu.wang_1@nxp.com> References: <20251212083246.582806-1-ziniu.wang_1@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2P153CA0014.APCP153.PROD.OUTLOOK.COM (2603:1096:4:140::6) To DU2PR04MB8567.eurprd04.prod.outlook.com (2603:10a6:10:2d6::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8567:EE_|AMDPR04MB11556:EE_ X-MS-Office365-Filtering-Correlation-Id: 99e821ae-3853-401b-e350-08de3958e84b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|366016|1800799024|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Jag3+iSAfm7c3HlrZbU4Vd1+1qVV7/TA0lXZVpaOvUbhDKpN+9fqQp0oRWxA?= =?us-ascii?Q?MMVw1Ju5E2P1ultgm3Yv2kcdiWgWe6P+Cvdhn4Do+EmqeQF6dkrvDlS4BSVu?= =?us-ascii?Q?66o1KSn9UThjXvQfDofweC2G9zr4C4rsOMvRSkAphBP2HLlsKI8mnK7zMr06?= =?us-ascii?Q?H/xoL3HxVlLAu0DApmubBVC2bmJPrlf37ghubGa+EVwCrgJHkGWwEOnGDYfU?= =?us-ascii?Q?gEfbDRU4cMdYmYxHu9+QAU+VJa9idRnN5aY3VHy8yw7KVJhjwPeOJbDG7yp/?= =?us-ascii?Q?NjdLAIA9wLQvLSGttOU/HRM2yfdFM3rdb+nQFl+MBzqAZ60fONCTO6IQ5Fcy?= =?us-ascii?Q?ijqMxq3d+725pEd2AHGFxUMkPDBlS6wnFBe8S+WcJ2dvRYNiAKw2NJTSc+xN?= =?us-ascii?Q?KjJiq/Uw8ZT9UynGvKXTNg4qxehLHr2ejgkm1tf4ALbmI+UbaarJsrE+XWlD?= =?us-ascii?Q?B66dDAljR38j/ZuC0CzDSjbM79RI+CtD8kKMoFLMYLDYpNfvfd/izS63Z3l+?= =?us-ascii?Q?MHfzd/w7mtKuSnzIEymFzFleJCm5tK2VgGfgxee7t+gkUJAGbmqjkIAFffKI?= =?us-ascii?Q?j+tQrhmhOgtpusdf/GkKmJGe2/orh1TPKbBwIeebnQxVfmaxuS3JeYx8gb1N?= =?us-ascii?Q?uJc7LfZ39FVVJDrgdf4HhqiPfI0eTPaoYEVFAgEEoS0QD9fMPYd6zpXjZ0Mi?= =?us-ascii?Q?LLm1TW+PGfAKZFfUvd8+AdBCynz8YBuOubACHdNrhvE0y6DoVrd0lC9PeE2G?= =?us-ascii?Q?7S9XUccpuJt3g7h+Z5Glh3LDLv5ArafjK3HiIvSRDvAE1NZ8HQOms4ao31a3?= =?us-ascii?Q?fkVCqL9RR7nT6XaJGU6K1Wuf8JRfs/8W4X4wbx2lZXhOxBOi0lSgxJIL4eHA?= =?us-ascii?Q?R7LKa9vYVwkIgjQDM+GvF03C3i1XI1BuR9PvhwpfJJLiWN4NPe8Fym2DxQpu?= =?us-ascii?Q?PTWHBgyTYGVzSSQ6rF87lonz2F3/Gtema5S4D7iUGTT59DHl5fDPBRKQQC8X?= =?us-ascii?Q?S354a2HGxXq535Js9dBLfjKkrOEDGSiCuJSirNQaTtTlEXKMOaQrQDrnM5Bd?= =?us-ascii?Q?k7XvJNQUh4HPhfM4qFXmXsxGtW+xjetTthC5AXTFZWmnrUn+zcJogce3Ulni?= =?us-ascii?Q?brvFPmJgoc8ygP9NblDVFD0jpWuDmN+O2Dklu+q2jmMb4jsg46UmgKtzj6El?= =?us-ascii?Q?BLfsRwCLwEuNjRP3AD1Qz7KRycExxe/dPTEMSoG4YgQAnpseJe37XtAzxSwe?= =?us-ascii?Q?A9BQg5+XCAuaSj1cwJOA+LYkJBk+uh1Qz4Ur2tTAy/T7+EPBuEzL+cvi5pMq?= =?us-ascii?Q?wMVpg4xlJNr4Ux83t2CZjEifG8sPLvGiCsbhm0uNp6SFRrwwxIWexuRi35zR?= =?us-ascii?Q?D9S6Kc7YHNdW/ITsjnLq+YffScpgZgyKRZrLZRqDip6CSifGN2qikEd/MARN?= =?us-ascii?Q?H1OnWfcWYHfbkvRouEagjXL2IXNM7zbeQ+AEDOzBTus2Q6aa4EDQdf/SIlQS?= =?us-ascii?Q?rJzJI5yOVRCmlWZ1gQrS/XBK9z2ePgcu/HQg?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8567.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(366016)(1800799024)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/ZMY26qzUbQQ1Nmx7ichGUGS4O+AfnQz/+oKCKTn8XLufFsI1oSjCv2Qu3Db?= =?us-ascii?Q?SbhYEv+8aRTBHrmgUx8SRW/+oyQHuz0HOMisBAzT2tkmG9Xt88r5BElIjpj6?= =?us-ascii?Q?zAhP8yRp8EoOUsvw7BGrOJ3TIuzy9q3l8AIU9FRvHREjq4c6UaiKWNfFrL4Q?= =?us-ascii?Q?4Wdgj5ffvU8Pp24DRtMuIXlO+qsIJfvfg4VlrV6plNoD65+kveyfoP2nlEfU?= =?us-ascii?Q?ZDQAJp87WZC+pkxlqLvm/zKqBEZvCznY9S8+nOt0496jzmMP+kPdEOk1lijp?= =?us-ascii?Q?FM3V+2wdS32OFyXZ8GDD2Bb5Ibs+WUrnmcUh5gBb73+/7GNtp6gfkZ+Svg8c?= =?us-ascii?Q?q0HgUfhwDZ6L9dbM5Oi4Qqrkrl99mDryxDBa73haQgcUJTeVqmkuCawG0ASK?= =?us-ascii?Q?ZB/cE2gmBwEvVUYxtkQ/9WokR0qXWApHaC5yaApB/vZaFXFmqJo5P3LF0VtE?= =?us-ascii?Q?IyPG07t+/47ROhtcvxDw1DR8yt3Gd46wlYfMHmOL9DGOzCkX7ZOo8Tp7/J7i?= =?us-ascii?Q?LSEXfbgGeM6pJYRch6/HBNufhleYUcR8DK+2WmOQ0PagDgsASSrvDodLlsL4?= =?us-ascii?Q?VdWDJaHPa4k01D9u2fGQsVoaz+AwJJrruFF2My7vTvibJjPm1KJ149GAG8Mm?= =?us-ascii?Q?0OrP4T3WfmEjNCa9h+aAqsBDeR7RC1a1DLmwzuJrwH/jT0BcNeWGbUNezQoz?= =?us-ascii?Q?2FVZWfsMEZoOGVrsvLO0/l4ZZReRkYHnXvi6DGsnVfxZ3+EjSm5PU+21ShvO?= =?us-ascii?Q?56U0/cnbT/7XX0ETj5+6avMtkIFPOs5saG1TVU2zMHvuYjHS3F+OXdwA5XYf?= =?us-ascii?Q?6nB/d/sRCX3qnZcXLSQ54Qo2SIodMADwbVfY8F/2KwwBHVlzLtn2rfSy8/vL?= =?us-ascii?Q?tL4zAGzQkqdVmV1xz8ttDm2PIgXmApySz1YuydsrCfPM/2ug4171Wr2aTtuk?= =?us-ascii?Q?qVafKie41BuFAro8qyNU/bsu2HgB6WglGYgJWlt+TrI9wz90hvQS5vYDm32R?= =?us-ascii?Q?YHuJ5Alcv8hHx3oOap3uH5hNyZX+b1QcIdeXNk14i4iZOgYHh+ylNJAFZzjs?= =?us-ascii?Q?3sOi9c0NkBKVdlfAiBswh5Wn5Kc5a+wYiy+XqW45Zm6iboUp5rgn8RBEApS7?= =?us-ascii?Q?KE/C0zGVf5C+VGCJVVNKvKYaPdsHeo1Q4pehZWl0zReuOyd6AjiyxoOXBXM+?= =?us-ascii?Q?fRdwu/yQYOqD3d9zi2J3PftjwnxjQFXbyDDz6men00hQKIKXKBNuJ98F4f16?= =?us-ascii?Q?PNmhOM8y7gFE7EIsjNiQxjPgFTFsui1NA1HQwm5gbnaTbCWKCUCJ3BNJnHni?= =?us-ascii?Q?0P4LqAnX8GzvSI1pBRbRyDYf16/VnAdwhrNXSJqckIwa4/1LmES72gqTUJzr?= =?us-ascii?Q?H/nyG2UA3jcW2OYVGRaacS+iPWiRqzDO3wwNpQgCd46Wn7BUdUfZ4fNdXDGs?= =?us-ascii?Q?eKfMhKMDZG3OerQ0pCqtNKXr0+il1uERaAn/yh0V81EMN7JWoBH/BzRFWxim?= =?us-ascii?Q?Zm4bGPCc1UgjZMmNmfO8poOEfz+XymYJMqKm0HPOYWgHe3NbVdT9WiVrdzNj?= =?us-ascii?Q?CEgudsecDy4EL0fkjTp3tWIqvGrjyfN93zf/ENI0?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 99e821ae-3853-401b-e350-08de3958e84b X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8567.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 08:31:56.0888 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 24WQFxrYKF3RNkcET4uWwBMFCnMy3DVzGy32hAmr8IQVVjmulsZz2NM46ymU6+WpodwTzIYHlfK9g6g6z0FUNw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMDPR04MB11556 Content-Type: text/plain; charset="utf-8" From: Luke Wang Secure erase should use max_secure_erase_sectors instead of being limited by max_discard_sectors. Separate the handling of REQ_OP_SECURE_ERASE from REQ_OP_DISCARD to allow each operation to use its own size limit. Signed-off-by: Luke Wang --- block/blk-merge.c | 9 +++++++-- block/blk.h | 6 +++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/block/blk-merge.c b/block/blk-merge.c index d3115d7469df..0885e4b982ed 100644 --- a/block/blk-merge.c +++ b/block/blk-merge.c @@ -169,8 +169,13 @@ struct bio *bio_split_discard(struct bio *bio, const s= truct queue_limits *lim, =20 granularity =3D max(lim->discard_granularity >> 9, 1U); =20 - max_discard_sectors =3D - min(lim->max_discard_sectors, bio_allowed_max_sectors(lim)); + if (bio_op(bio) =3D=3D REQ_OP_SECURE_ERASE) + max_discard_sectors =3D min(lim->max_secure_erase_sectors, + bio_allowed_max_sectors(lim)); + else + max_discard_sectors =3D min(lim->max_discard_sectors, + bio_allowed_max_sectors(lim)); + max_discard_sectors -=3D max_discard_sectors % granularity; if (unlikely(!max_discard_sectors)) return bio; diff --git a/block/blk.h b/block/blk.h index e4c433f62dfc..4cd5a91346d8 100644 --- a/block/blk.h +++ b/block/blk.h @@ -208,10 +208,14 @@ static inline unsigned int blk_queue_get_max_sectors(= struct request *rq) struct request_queue *q =3D rq->q; enum req_op op =3D req_op(rq); =20 - if (unlikely(op =3D=3D REQ_OP_DISCARD || op =3D=3D REQ_OP_SECURE_ERASE)) + if (unlikely(op =3D=3D REQ_OP_DISCARD)) return min(q->limits.max_discard_sectors, UINT_MAX >> SECTOR_SHIFT); =20 + if (unlikely(op =3D=3D REQ_OP_SECURE_ERASE)) + return min(q->limits.max_secure_erase_sectors, + UINT_MAX >> SECTOR_SHIFT); + if (unlikely(op =3D=3D REQ_OP_WRITE_ZEROES)) return q->limits.max_write_zeroes_sectors; =20 --=20 2.34.1 From nobody Sat Feb 7 04:45:47 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013062.outbound.protection.outlook.com [52.101.72.62]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1F651207A0B; Fri, 12 Dec 2025 08:32:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765528325; cv=fail; b=L3BgVP8nty+jVVtGp7asDJuDqysTmIyZcxgxq3xo4MHXtGw+jInxWGOYgM6/alHQlppSKYn6QAnct49yQzWfh4VJtPh+zxSUbTwbgFUNiTX+JDFS1lB53AGploKSIKS96nZvGpCXUWzB8jLR9Cxr70lRiSK/r1mdjDDa8p3PT2Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765528325; c=relaxed/simple; bh=/fwENXuOoRl23fxoZ5Fy8l7qWg/uoTf5yCuyrjNg9mg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=hMAMWbf1Ut0oBGzXWLR+UyuoL9EJBdU9GwqBfr08gftk/A9zo+R9Q6Sk0eHmj1/tenBT5+c7voJ6eyVZOOb1wCvXgTCkzrnZy5Q9vSqGGE1NRbxtNGeKaJoTkIlg9K6SDIjHZJLP8FWSRmsrdNl4c01XU5pof3eYTE3pkXfThRA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=YmtXi4la; arc=fail smtp.client-ip=52.101.72.62 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="YmtXi4la" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ULc76ClozAVxWZIud1llCPWd4LrE4RAzLo2X9GU1jxzecuilxZ/ah/PF9XNt1w7tTRW3MVd2nJxVWn1RCe3xamXCP/8NZEebHAL1W9yIEYCG+m70fI9Ziv0I6d/JHgC3HHgMA1Cw73xCC8sPubKhEf5pEg1fRDJIPL7hl9Eew7bN1fqwXcNRfgZ69paESqae27sEs3+o8fOQXM2SHic2pr59GHzLcAUWSahmJc3ry8CC62CBtVgrdykw88T5uvZ9MCE6iLDRtR7UZL0Xbyo2G6sXcMb5FySRbIsq7+S4RciRb6XAQlJFfHsZqBXrjtx6HuqZnkNFdOF0vkbNXzP7Zw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lmteFQ6S27cGTR9PUEI3bX3XZ12cN3CbyeN5jFXRl5k=; b=NJj+Cuxnvrh0T0ZqU2zfRUMwT4lzMX8QhdOOEyrShX3FeCGlPAtmnPljHk43myhjKAyA18gO9aj5vWCTtyLqeitVIgBeXPZZQFl6XkempUnWjpzlzpKNfqvtX229g2S/zElI1+LlRYFlzocGbTwyTOXYLce2UWdCf+nCW/fJvt2I9QZsX/ydy54qbV517l7lVifK0ZcmHbaisRO06rT4KDHyMXJrfL48PRLFhysdYTvZME2jH24pxuJS9iBhSYFR79+4LeFqjoHes3pHYIjuGWbO6KQVlTrUnA21NDibJpbMm0mETHx5iojWMdo15ITfINzPN6i6eCc9H0jdgU458w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lmteFQ6S27cGTR9PUEI3bX3XZ12cN3CbyeN5jFXRl5k=; b=YmtXi4lafMtMbYK1PlqjfyfBbVvr8XIjjbk554h7x5G9ij3alVLQsea7qpaQyA/E7+MqwyuUXz4nk35wLT8uMOjCg4Q4fmx1G+2vDC7k1KD4SZXer/qQIoEq+2eML6245E6IOS0RemBR16OK6dFS2xPE1y+I4ewpdykhtneK6bH9HWvHLnHHUpZUpdAQZXiAp0aLCc2YU8H4+qNk3xZClS50fyJXSZh8DYwgwCKEQtleuFoCHkuckbkxxWI0clUGg5LZlhr+qqONx8TsmNsLOLNkoKKD4AkiO8UiLtxoDkcz1j5aMpj4Q8hNwVDJAKw1vMxLAIcWG9k2QpvNjJbtIg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DU2PR04MB8567.eurprd04.prod.outlook.com (2603:10a6:10:2d6::21) by AMDPR04MB11556.eurprd04.prod.outlook.com (2603:10a6:20b:71f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.10; Fri, 12 Dec 2025 08:31:59 +0000 Received: from DU2PR04MB8567.eurprd04.prod.outlook.com ([fe80::32c4:a8a7:1724:b754]) by DU2PR04MB8567.eurprd04.prod.outlook.com ([fe80::32c4:a8a7:1724:b754%2]) with mapi id 15.20.9412.005; Fri, 12 Dec 2025 08:31:59 +0000 From: ziniu.wang_1@nxp.com To: axboe@kernel.dk, ulf.hansson@linaro.org Cc: linux-block@vger.kernel.org, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev Subject: [PATCH 2/2] mmc: add quirk to optimize certain Kingston eMMC secure erase/trim performance Date: Fri, 12 Dec 2025 16:32:46 +0800 Message-Id: <20251212083246.582806-3-ziniu.wang_1@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251212083246.582806-1-ziniu.wang_1@nxp.com> References: <20251212083246.582806-1-ziniu.wang_1@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2P153CA0014.APCP153.PROD.OUTLOOK.COM (2603:1096:4:140::6) To DU2PR04MB8567.eurprd04.prod.outlook.com (2603:10a6:10:2d6::21) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8567:EE_|AMDPR04MB11556:EE_ X-MS-Office365-Filtering-Correlation-Id: 8c6e944c-1905-40d4-742d-08de3958ea7b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|366016|1800799024|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?/SjhlhMyR1aDY8M7u2Jm6D0qkP0NU0QZnRlnJhFrbNLpKBUjJ5cILsiB2Zid?= =?us-ascii?Q?y4fsg+4ZRIkczVOg3i71ChZQI+ym0x0TBc0kvfFyVady8NbUAKIcRhwIVehS?= =?us-ascii?Q?NGatiWjaJY0zdNvLMk7ht7DpYj7NboBHVvenQA/sdEoW/rXXW3wd8TQ+1uB1?= =?us-ascii?Q?yQpiB50TYLt3cqdylkDfqwj/tYtzmFhuU4ysY7VglNtmmptRwNMNiraluW/r?= =?us-ascii?Q?tgP39tUsoNY04s4tQ8RP4jNORltAkLbtdbQcn9XEhaiNwkajdTPwMtmDCY9p?= =?us-ascii?Q?I12YQ1YPdl8fNTdwlrzJzTGnWdhQaxFoebN4I/FYPj5x8rww1l2Uv6FijXVx?= =?us-ascii?Q?DoRm3Aixcy6GooOT2B7Use7uNbL2Sy0Nv6x4IBWta6IsJXaF0tVdgGCcFiK7?= =?us-ascii?Q?2SWGTk42PdnZ4joUOmCiYcz8TnbijUMJw66H2wAwCyJgIidhN0ZbmfEmRF7T?= =?us-ascii?Q?vXBAz6QI0DfdJ/5Z+tMfTHykzW3jQ80Y2YMD/6mAAWYWClE5AFxjZOlJXzgS?= =?us-ascii?Q?MEAUrlS+CV+Bsa2IMYvycaAC44zw0ZJB5i6H9x7SxU4Z80yDMllhAY+M1foN?= =?us-ascii?Q?xxpoVaBRfl8kXK+uoKSXhiUSjk6i5iRaV+TYHtO2SXOfJw+z4lmH6sMBSEwR?= =?us-ascii?Q?m/GbEyaTk4190/w4rTowJ9gLEVQvRsoTsPPkKJHjli3qX8WyxBBzkTGbloz/?= =?us-ascii?Q?c5b1aZrBgIgK77W+tWbUPiNzbGVwTVRV55HfAW4CaoMmSbmZLXW40TDqMD32?= =?us-ascii?Q?Lse9brBlhHGbQjxFqdQIx1UddsG5WYqkfQ8C1TLZqBKlfjiZOd412qPztUV1?= =?us-ascii?Q?i7hCiicdxuaMBv7kKakuRj9/dzw3WwarlnYJo99n+Q4Its+MZ0KGSYNU9ynO?= =?us-ascii?Q?q2drT8FY0hHvdaVQ//hskTnCU8OBhGmdqJEC3gnWSIRn+39mD1lZ4ngr9qg7?= =?us-ascii?Q?DqY2//QIsn6Ew4EST5jva9pWvmc4IndxQ+WwB9b+8jyUQJHVus8tRQgFUWfX?= =?us-ascii?Q?TloWDrIn1aEoDDI69oJM9e5cvpt5dPEn3LBmMdpz/tq2Khk+RFMPSwOeh1FX?= =?us-ascii?Q?+xF0Kj5RSTxocscjNFhCD9HkeDJkYfIy+OWn8m87PvbOgKz6gcx6u9y76rLA?= =?us-ascii?Q?CsDeF3/xcYeUSMNbTU8PdeGp5w4s/4sOHDJc+IOSTl1ZxPIZ2stGTTu+psS6?= =?us-ascii?Q?pYMvfO/b60ZHoFLulkYXGpRHrHFtpJ5KLdTHshB5y2PFsHJfZ2G26Slo5mAU?= =?us-ascii?Q?rv8FX9D3uWU8WLs0O294EcY9U8oBWutC6A0A1/LIGPgWPfjeq6YtZ40iiVOs?= =?us-ascii?Q?J701Xiwr66pEj+jnULNdu3/7bLTUGeGYmg/MNRQvgvOzZsDQsHnnKds9VOEn?= =?us-ascii?Q?H0Plna5VqJoNPpcYawY7aUJYKIWGg1qCNbfesmTGtX5syG0zaxDkhhsZ1v30?= =?us-ascii?Q?YR0Syoo1N5Os8S2JI15pmhYdjnNxi/H33HzH3FxrlUZA3T6SPoUjHOmJQ9T9?= =?us-ascii?Q?trOpZPuv1rEAZlXQqWptqTIBZgsD2E9jzkP9?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8567.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(366016)(1800799024)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KrSNISqm/C7282uAKmdPKOUoRa3H9tXrTYu0tVqZoi6FnNimlIMcsFX7lXl6?= =?us-ascii?Q?TK5M5+3Ru/6uRqINKjB4bW1QSt3GZWOotcjp3DU4AuaBsZZEtETu563WFfuL?= =?us-ascii?Q?IWO7G0SWlgnIqBnND7285TO0S7tu0+LBkZIFPKlLcSGqB7P2je74cYJZoICN?= =?us-ascii?Q?pjESt/fc5UNRpFfWuQRIlijcYrIy4A+aI6zFoZL0cJwB0nN/5qLFnPn+Ecyt?= =?us-ascii?Q?2SGWR/kJYoe6z3qdHHDqu7t/oQDdNSw1cVCQTOFlZNQtExqLDUorgPg/jSS1?= =?us-ascii?Q?ClL0aKSvLvNlz1XXCl1alfLYjT9g8OJHdzd2rxtIIu92GwS1hh7y01lkA0Kv?= =?us-ascii?Q?tqtSRBI4GRzyqdH9GW06j0BMxx5oTAYw9rbs+76/R2Fd3/z4NqFjf34G+8Oz?= =?us-ascii?Q?f+XHGN7nLIVCmZvETJzD1VwKfdaaie8wGJhCxKUaRfS/RbtIYPEcsZoSmrM3?= =?us-ascii?Q?fEXuDQ8QtkkiuIbrKnx4rkElnYvpX0tLmthvjqFIy05RKRVEhYJlbY23N5Rs?= =?us-ascii?Q?oxNvFxqQo2N2GFtNv6BZ/esKiONMBSYEEO+XPw//RDM2bhKt+400sI/P6TjE?= =?us-ascii?Q?sxeMMuDVyWmh4P+3pXrtvl8+RKup92WZJcVqa658NiziHHWPBnHfXwZAdELD?= =?us-ascii?Q?JbRRp7cdmRn06i6E+Iy8xEhrUgmV6gkUTkbzcXBH/0ZjUYEYx0Cy53i/WE8B?= =?us-ascii?Q?yMS6SeAfEN80BBXjTed/WcmilWsqpzrqmBTCZaiZWve+hQxVe0pUSxrEcuaW?= =?us-ascii?Q?lcqD7DwKN2WsTW4RpqrgfJqkU8fHzofXgxT+ipjoSrL5f3KKk7QjS4oUHOeU?= =?us-ascii?Q?HzyPak0VBTv72MsbAuac5JmAlEuusl6e4CW8FTAS/x2FwHpQ/UKL4pB9n5ke?= =?us-ascii?Q?JlfgEUlknabLfgm65lurzBZVdamPq76diHwvSxm7sPYolJMnU31FJSB8DmJu?= =?us-ascii?Q?FrfzNDqdf3DlVk1bPY/hGaUuKH0mY+T4JuuATKJHMJMrmenJeRcGUjdOvnMz?= =?us-ascii?Q?tu7RxNlmFknLN71xIXFVpO2ve0ZXJK/D6ZA69WVU/wA4ttM1tDO3Lt1ZgOVZ?= =?us-ascii?Q?xFzQ0Ch/I0xrJKE1EhKb/N70QVpYGeFW4l/naM5WZn2t+lyXkecVKD2se+RI?= =?us-ascii?Q?CDx+8gqk1Vzjj/6g02BtOZcgPdiXWq3RMmkGxPaRLuGofPgWzbHjDtH/NMhl?= =?us-ascii?Q?wioWJYEs5L2TIbjGtVysDmmiHXag9CEx5AaMT3nGaQENZv5pgGLvBTOcBT9n?= =?us-ascii?Q?kcJHB3dueajUphLzLDa5rzuiwdFmBL/Hz4LlUTQ0rteh6SucrYhWtlIkteVP?= =?us-ascii?Q?rQzsuhDzKbYT2iMkBKTZCtM+u0ql+dG2GvOi5g2a0SUmuZzZS94MpzVUPynA?= =?us-ascii?Q?5I4M9XZt0I8MeYQUK/CFoBLOcgcqeYFh0dfkHjyzaa1lY/nKrayq05qla6qE?= =?us-ascii?Q?EgkRnZuUq7H2WJAQT9SQSdnLnA3DZgHlb3PGFcyor7z5Fonem7yEoSE/mJN8?= =?us-ascii?Q?gI1Qy7462zaikBENC57U3W9H084nh13h16d0LMCKm7Q0LRkGVGw/FESyZFWs?= =?us-ascii?Q?EL2UTgqfJIlj+vMYu2BlIA+ivE1VRX0RpuOpNhKo?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c6e944c-1905-40d4-742d-08de3958ea7b X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8567.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2025 08:31:59.5229 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 12fP0LLfl15YOTadk3NRjpa5ZK9lSRAhTY5BZuJTp/OzgIcOvm4dQuoETu92peIFIXO4yxESVoV9JrEv8PMHAw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMDPR04MB11556 Content-Type: text/plain; charset="utf-8" From: Luke Wang Kingston eMMC IY2964 and IB2932 takes a fixed ~2 seconds for each secure erase/trim operation regardless of size - that is, a single secure erase/trim operation of 1MB takes the same time as 1GB. With default calculated 3.5MB max discard size, secure erase 1GB requires ~300 separate operations taking ~10 minutes total. Add MMC_QUIRK_FIXED_SECURE_ERASE_TRIM_TIME quirk to set maximum secure erase size for those devices. This allows 1GB secure erase to complete in a single operation, reducing time from 10 minutes to just 2 seconds. Signed-off-by: Luke Wang --- drivers/mmc/core/card.h | 5 +++++ drivers/mmc/core/queue.c | 9 +++++++-- drivers/mmc/core/quirks.h | 9 +++++++++ include/linux/mmc/card.h | 1 + 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/core/card.h b/drivers/mmc/core/card.h index 1200951bab08..0a198a2c2616 100644 --- a/drivers/mmc/core/card.h +++ b/drivers/mmc/core/card.h @@ -305,4 +305,9 @@ static inline int mmc_card_no_uhs_ddr50_tuning(const st= ruct mmc_card *c) return c->quirks & MMC_QUIRK_NO_UHS_DDR50_TUNING; } =20 +static inline int mmc_card_fixed_secure_erase_trim_time(const struct mmc_c= ard *c) +{ + return c->quirks & MMC_QUIRK_FIXED_SECURE_ERASE_TRIM_TIME; +} + #endif diff --git a/drivers/mmc/core/queue.c b/drivers/mmc/core/queue.c index 284856c8f655..eb1053d8cae7 100644 --- a/drivers/mmc/core/queue.c +++ b/drivers/mmc/core/queue.c @@ -184,8 +184,13 @@ static void mmc_queue_setup_discard(struct mmc_card *c= ard, return; =20 lim->max_hw_discard_sectors =3D max_discard; - if (mmc_card_can_secure_erase_trim(card)) - lim->max_secure_erase_sectors =3D max_discard; + if (mmc_card_can_secure_erase_trim(card)) { + if (mmc_card_fixed_secure_erase_trim_time(card)) + lim->max_secure_erase_sectors =3D UINT_MAX >> card->erase_shift; + else + lim->max_secure_erase_sectors =3D max_discard; + } + if (mmc_card_can_trim(card) && card->erased_byte =3D=3D 0) lim->max_write_zeroes_sectors =3D max_discard; =20 diff --git a/drivers/mmc/core/quirks.h b/drivers/mmc/core/quirks.h index c417ed34c057..1f7406c0ab03 100644 --- a/drivers/mmc/core/quirks.h +++ b/drivers/mmc/core/quirks.h @@ -153,6 +153,15 @@ static const struct mmc_fixup __maybe_unused mmc_blk_f= ixups[] =3D { MMC_FIXUP("M62704", CID_MANFID_KINGSTON, 0x0100, add_quirk_mmc, MMC_QUIRK_TRIM_BROKEN), =20 + /* + * On Some Kingston eMMCs, secure erase/trim time is independent + * of erase size, fixed at approximately 2 seconds. + */ + MMC_FIXUP("IY2964", CID_MANFID_KINGSTON, 0x0100, add_quirk_mmc, + MMC_QUIRK_FIXED_SECURE_ERASE_TRIM_TIME), + MMC_FIXUP("IB2932", CID_MANFID_KINGSTON, 0x0100, add_quirk_mmc, + MMC_QUIRK_FIXED_SECURE_ERASE_TRIM_TIME), + END_FIXUP }; =20 diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index e9e964c20e53..1882267ef201 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@ -329,6 +329,7 @@ struct mmc_card { #define MMC_QUIRK_BROKEN_CACHE_FLUSH (1<<16) /* Don't flush cache until th= e write has occurred */ #define MMC_QUIRK_BROKEN_SD_POWEROFF_NOTIFY (1<<17) /* Disable broken SD p= oweroff notify support */ #define MMC_QUIRK_NO_UHS_DDR50_TUNING (1<<18) /* Disable DDR50 tuning */ +#define MMC_QUIRK_FIXED_SECURE_ERASE_TRIM_TIME (1<<19) /* Secure erase/tri= m time is fixed regardless of size */ =20 bool written_flag; /* Indicates eMMC has been written since power on */ bool reenable_cmdq; /* Re-enable Command Queue */ --=20 2.34.1