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 CEC33C00140 for ; Tue, 2 Aug 2022 18:10:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 639F28E0002; Tue, 2 Aug 2022 14:10:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5E8806B0072; Tue, 2 Aug 2022 14:10:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 488D88E0002; Tue, 2 Aug 2022 14:10:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 355846B0071 for ; Tue, 2 Aug 2022 14:10:31 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 10437AAFFF for ; Tue, 2 Aug 2022 18:10:31 +0000 (UTC) X-FDA: 79755442662.03.05E880F Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2073.outbound.protection.outlook.com [40.107.243.73]) by imf28.hostedemail.com (Postfix) with ESMTP id 93B0FC00F5 for ; Tue, 2 Aug 2022 18:10:30 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H/We21nEB9HctKahnCLMm1921kLdFVBAWWIbGkh1Wh21bf+TWhpTAttKLwfiId3tvmHY9++kH9njQ9AxgrMwRqyB+2/14CxUscEYas0vVUTsGbcEx3kMvtP1TpWTjletvIsXhrP/881+HyZyOoAarNTr63G9xatCH5gTIgLxzAEUGS+xpy/jQiadupq7mN34wr5qSHHS5DZ7TR61S8bfwcvfR/g6+89uekKjL7xInzGa2PY2D9Eus75MxVOYhwsrsM2QVmswBKFIpSdfHMqQWtJWqC7NGidmbyEn0nI2R90Ivsa65x+CTkwEkZRVDdaaf8dQ3us3OUn10n4ZdFojng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=1tA4KG7ox21cR2W56MM/tcf4YOkCXzEKI7y3wGGEbzo=; b=eIaoBsIxVMCE1O9F3h4qGOh7A1dzWAuBcqPe/Ob+pIIIhxY+mb6bqtu6e6zzhN5JiHfGMFNCDtdm6dLSEgektoWXrBwhcXBezL1mUV2LgfHl79qQKxU175evYDIUQ42cqRW6R1Gj07UkHjyV1UoS6oSt6Wdi8UCqZdah+V8zmdK1aPYa7Rplkz3lSzgVTiVf0CJkKSMnXAMSQk1mUPKj34BatT/fR2U/Uebs0jaKwCJ0BsE8Bi6W2H37cJ5aLvW5N6fNdg6pJ5H4+DUTK38UaQvZjE1D3r0Bk1+GvjcGptrH1BsdE7jRSAuOd++8ZjoKgO5K1BmI6E3YiXOJG6ytpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=memverge.com; dmarc=pass action=none header.from=memverge.com; dkim=pass header.d=memverge.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=memverge.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1tA4KG7ox21cR2W56MM/tcf4YOkCXzEKI7y3wGGEbzo=; b=gkqRbeP9s1VQeLhV8GANNrL8zhv0R7+V5a2/lEBb1T/nEqJl0V5ive87jMs/lK2zFHCU/4kHh7POrE5Oh3O1AOVN8yjme0E48r/VOhyw5qbr1kUDN2J96Ur+aG953/cZSFAxMWGW9t9YIAN2VNihinkdbyKEhBtKIcOx+psWIZ4= Received: from PH0PR17MB4922.namprd17.prod.outlook.com (2603:10b6:510:d7::22) by DM6PR17MB2362.namprd17.prod.outlook.com (2603:10b6:5:ad::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.14; Tue, 2 Aug 2022 18:10:18 +0000 Received: from PH0PR17MB4922.namprd17.prod.outlook.com ([fe80::5ca7:2b89:7f14:b6fb]) by PH0PR17MB4922.namprd17.prod.outlook.com ([fe80::5ca7:2b89:7f14:b6fb%8]) with mapi id 15.20.5482.016; Tue, 2 Aug 2022 18:10:18 +0000 Date: Tue, 2 Aug 2022 23:40:04 +0530 From: Srinivas Aji To: linux-nvdimm , Linux MM Cc: Dan Williams , David Hildenbrand , Vivek Goyal , David Woodhouse , "Gowans, James" , Yue Li , Beau Beauchamp Subject: [RFC PATCH 3/4] device-dax: Add a NONE type for DAX KMEM persistence Message-ID: References: Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: MAXPR0101CA0066.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:e::28) To PH0PR17MB4922.namprd17.prod.outlook.com (2603:10b6:510:d7::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7769e815-62ba-49af-40d9-08da74b24182 X-MS-TrafficTypeDiagnostic: DM6PR17MB2362:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gGpb1fHoOD/ye6oNKuGf2978CfThHbRSBrOGpOOduOjGOH9g+vJeA+5giUXCpX5Zhd8VuOmiZDfMSLLOtEKBFc3TrDOjnW+/jg7zuKTwWX5JlSNwKt6R3dOpseAKf9YtyRckAfAWBc/yPqE+LhFDCy8skgRYBWnv6Owb0jXty9M/4zvVSkvlxsSSdawg0nklqdjfeyUZyV3yBKFNxjjG9kyWsDghqe/X0NYQAOW9EJFDxdPOggsrjgBWO4gxa5ZYar8tX67hpoi5bCN7GryBWyw3ubqnyQpdXb1l9G2sbH/deWWTivzi+oJIdgiMUKxp3yNZsLrSH3JKBHHr+YMammE/KtUe+Dh63XhPoROkgRU65wTyam8cP8jYueBHNMRBccngi/vKONKfYdRUSkHBnY10hTol9QMRhwBua71XtiLMG/AwzWNf2HUAZ/X6h++1jslPjpgxZBBr5erJgrzEuwqGKKt6/0FJ0oMVYp51WRMC/0KJRzHh6d6AckB3wgGU0AkUxtRTevvxeaTPauIgB4wgidHggFxLJJn8jkIFAxkzFvZFYJK4w2AyZ4aLBbJBlf4QyqLP2t3fipYc1lKW+I+I+fvIAmXOThQozbi80AwabgvWbwIHtJRVC5F3BWMnKRIMs6E66Zxl86d0tN+LiUDR0RL6rALNVPVsyIvZFxZCObQMgnUnsZmsdD4HdKQf/PzTFFAJCX/4Qo9z6TRHy2c7NEMZHEchRcBAJDcE3vLaCbWzYW6D4NmHe9Q6IFElObwAD65oYn9Xez7f8K9CpIMGVzSvqcMTJV+HdgTEKBc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR17MB4922.namprd17.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(136003)(366004)(376002)(346002)(396003)(39840400004)(186003)(6512007)(26005)(44832011)(478600001)(66476007)(6486002)(8676002)(66946007)(66556008)(4326008)(5660300002)(83380400001)(8936002)(6506007)(38100700002)(2906002)(41300700001)(107886003)(110136005)(54906003)(52116002)(36756003)(38350700002)(2616005)(6666004)(86362001)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JmyVkQMPgVa9vhKrbjL/8vY4IjvJ8u/2huufYZEdYsm2ctbSpQu2YM3/oMfg?= =?us-ascii?Q?QfNxagxqNEh7BmfSC9yU0qANIR2TtnZUt3TmmsZTdnjEhwds+xvTbxaPOQt+?= =?us-ascii?Q?xm3vPmHKUvlpzSIKtWvWET77NrF/xKP2eiECrIhghXZzf1/VcaUeabF9GVRz?= =?us-ascii?Q?rzOGH3MVhJbds62zID8pRKZNothQAF1G+mRSqCM/fXFvJf6gKPqH/VvUBcP8?= =?us-ascii?Q?HViEc+xHS+6FOipdAdPH+EDsmgBTQrWJwL9NkvWImCclIgNd1jAtHhkGMqJn?= =?us-ascii?Q?R4cegM08XLLcF4Lh1ZA21h98gnNbPC9ND08kKiAVBe7bpWyZs6BzWmIrFRwV?= =?us-ascii?Q?Td64ZEwc40xBCibhbIyKFZsHRy72NrkvJsKFi82SGG/odstpf5zlGaEZp11M?= =?us-ascii?Q?XlULpwOlisuF037El0TcHLdJV91FcubflA4MEhroJAKZ3PBWLZHQZzoLuJPb?= =?us-ascii?Q?eAy+HIXGhovADRrKVFieEXaWAejezV+1fCwTgCTEIOvOMZG+Q01YAS/PVXED?= =?us-ascii?Q?jxL2Ah2kREKV0N92dOhubru2eoRbmsVcKjxKWlHIY3xhI2k/e7BvuyVlfNSK?= =?us-ascii?Q?LnRpywaA0H3ri9RaQcK28rUlGB9dY9t4pMcLC1FGh3/wrMfyHn9KLOn+lmUy?= =?us-ascii?Q?v0p+WC+H9n7nSAPZlGNZo7jI3DvQoCS8gzesFObocSSmDcyxvRGiOEdtDVqz?= =?us-ascii?Q?0764Jb5NZ+pZts9gyBaKkAQ7Y67PxONKxj2ZuTIizLKT+vaX5FX57YtQPK2+?= =?us-ascii?Q?ekXGwJSqmFl3nWDwjQKGCziswnQS+pLtwXCX7wPV+aU3HC0HGOrb4A1AkCj8?= =?us-ascii?Q?sLCTwbvN+8rgKC76CKvIsMJTnYPtWb+Li22Vpj0utu5iLTYPGKQOkyDPLGey?= =?us-ascii?Q?XBr+8TQMy697t1uwBBuDgfBWag3HLeLwcUs1Dbd8lqGpJVD/o6F4KFePBZ8e?= =?us-ascii?Q?oXqDAOrx0abRAfID/+dqpd2yUWm9yabhvwdlOKSB0D+RMj2OTtrQWE8qs/Ry?= =?us-ascii?Q?0oLQyQri3eI5q2Qwr79xaYYb2liQFlolbNptWzojt/jvQohklOzP9bwd53+r?= =?us-ascii?Q?eOA3qNqnxEGDwqA9ISwiXUMbALrw4JD+TteHjst5ACmBJ7pvZrjKheA1qNKC?= =?us-ascii?Q?WxfjHQXGfp3JffGev4Vz1tyMqY/CeWM6nGly2RSeJIm18zAFQwaGcIfmTUwk?= =?us-ascii?Q?jfe8MDzzuDt6nm2bLfitMZxnwyjOGFnQ7tl6CDbbZTk0zXl0+RC7HCRGyGez?= =?us-ascii?Q?l3+f66pYY2nibN1a0evCJgxdL9LLrD3Td/1BSL4ZnoA4U4ZvEt8PLBrO6BJi?= =?us-ascii?Q?EF6eT7SJ79EWCMKOTFZMrZ+u90DwP0o58Tq3/MumRLhZ9dbCfUfo8WtPSAUI?= =?us-ascii?Q?3r1BO8B6ZQ3N4hgcoQoJ3fApIxGFy3ZMsLXsSgk6Bl6SEGMkaQW3Qge6eIWh?= =?us-ascii?Q?yASmCzmKNrnLG5yGHFWklALPyl2oZh2VOLZW+by42bgJsf/7gjazF+vle+8h?= =?us-ascii?Q?t6qnBwMuGdy7D2LrZhz82DuTUFCNaZ5VBe379ZR4iR/am8OQPDwPCujvQOTD?= =?us-ascii?Q?+j3JFV7lALAwHEKO2djowwr/ozQbEmDNSDqpSlzbwEl5vhbJl2Ln33GL/iQ2?= =?us-ascii?Q?sw=3D=3D?= X-OriginatorOrg: memverge.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7769e815-62ba-49af-40d9-08da74b24182 X-MS-Exchange-CrossTenant-AuthSource: PH0PR17MB4922.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Aug 2022 18:10:17.9652 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5c90cb59-37e7-4c81-9c07-00473d5fb682 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gSO/Jn32X8djtoyosTx2MyHOC3C+4aqMBTEj86uBKUBocWn2l5AbAX1unfFs8GWAVwDs0ccXMnzUaXWpikBuiaEFq4y9qmnk9vtvDj9vZlc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR17MB2362 ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1659463830; a=rsa-sha256; cv=pass; b=hNFm+bhab1W6PnIEKVQxcrfnj6s3vW1FZWmn68fLPm1s9fwCw5iD7d9vopV9rVFWKDUs+a 3RVpiZ8IlwctPAL35ciUu87sGG1gPls21Rc6bHOHV75HnUi8oR4yHx/2BS1C9h9B2Tfvgg 270JdA4MQNkYp8saJAE4Ky6kg3NptGo= ARC-Authentication-Results: i=2; imf28.hostedemail.com; dkim=pass header.d=memverge.com header.s=selector2 header.b=gkqRbeP9; spf=pass (imf28.hostedemail.com: domain of srinivas.aji@memverge.com designates 40.107.243.73 as permitted sender) smtp.mailfrom=srinivas.aji@memverge.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=memverge.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1659463830; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=1tA4KG7ox21cR2W56MM/tcf4YOkCXzEKI7y3wGGEbzo=; b=AUUJIGlPH4LpfeOdtVVglh954wLzkgWott7ZVTpinQUxLkYAgOuA4Z0DNX9yQ82J/jcHD2 pO8gqnqkMThah8uUGuCNcld25eOwSk+mZFm77rt7tDVrTinefqrccWzaUobFNSh0P6zZhi +EkmR9eewas70+QsLgBqGSQllxohRGg= X-Rspam-User: X-Stat-Signature: k5cu5bycigd6i6m6rd4wghpb51kwdi9g X-Rspamd-Queue-Id: 93B0FC00F5 Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=memverge.com header.s=selector2 header.b=gkqRbeP9; spf=pass (imf28.hostedemail.com: domain of srinivas.aji@memverge.com designates 40.107.243.73 as permitted sender) smtp.mailfrom=srinivas.aji@memverge.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=memverge.com X-Rspamd-Server: rspam02 X-HE-Tag: 1659463830-454523 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: The NONE type allows us to format DAX KMEM so that all the memory is usable as system memory. This does not allow us to store any persistent data. Signed-off-by: Srinivas Aji --- drivers/dax/kmem.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/drivers/dax/kmem.c b/drivers/dax/kmem.c index df7cfc8ace78..0ca6e14f7e73 100644 --- a/drivers/dax/kmem.c +++ b/drivers/dax/kmem.c @@ -474,6 +474,46 @@ int kmem_persist_cleanup(struct dev_dax *dev_dax, return 0; } +/* + * A NONE type for DAX KMEM persistence which does not expose any persistent + * device or filesystem on the memory. + */ + +static int kmem_persist_none_format(struct dev_dax *dev_dax) +{ + struct kmem_persist_superblock *super = + kmap_local_page(dax_kmem_index_to_page(0, dev_dax)); + super->magic = kmem_persist_magic; + super->type = KMEM_PERSIST_NONE; + kunmap_local(super); + return 0; +} + +static int kmem_persist_none_probe(struct dev_dax *dev_dax, void **data) +{ + unsigned long num_pages = dax_kmem_num_pages(dev_dax); + unsigned long i; + + for (i = 1; i < num_pages; i++) + __free_page(dax_kmem_index_to_page(i, dev_dax)); + + *data = NULL; + return 0; +} + +static int kmem_persist_none_cleanup(struct dev_dax *dev_dax, void *data) +{ + __free_page(dax_kmem_index_to_page(0, dev_dax)); + return 0; +} + +static struct kmem_persist_ops kmem_persist_none_ops = { + .type = KMEM_PERSIST_NONE, + .format = kmem_persist_none_format, + .probe = kmem_persist_none_probe, + .cleanup = kmem_persist_none_cleanup +}; + #endif /* CONFIG_DEV_DAX_KMEM_PERSIST */ static struct dax_device_driver device_dax_kmem_driver = { @@ -493,6 +533,10 @@ static int __init dax_kmem_init(void) rc = dax_driver_register(&device_dax_kmem_driver); if (rc) kfree_const(kmem_name); +#ifdef CONFIG_DEV_DAX_KMEM_PERSIST + if (rc == 0) + kmem_persist_type_register(&kmem_persist_none_ops); +#endif return rc; } -- 2.30.2