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 X-Spam-Level: X-Spam-Status: No, score=-11.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3C367C63777 for ; Mon, 30 Nov 2020 03:30:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EF62220663 for ; Mon, 30 Nov 2020 03:30:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727883AbgK3Das (ORCPT ); Sun, 29 Nov 2020 22:30:48 -0500 Received: from foss.arm.com ([217.140.110.172]:48666 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726000AbgK3Dar (ORCPT ); Sun, 29 Nov 2020 22:30:47 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 17C6C30E; Sun, 29 Nov 2020 19:30:02 -0800 (PST) Received: from p8cg001049571a15.arm.com (unknown [10.163.84.86]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 344A73F23F; Sun, 29 Nov 2020 19:29:57 -0800 (PST) From: Anshuman Khandual To: linux-mm@kvack.org, akpm@linux-foundation.org, david@redhat.com Cc: linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, Anshuman Khandual , Heiko Carstens , Vasily Gorbik , Catalin Marinas , Will Deacon , Ard Biesheuvel , Mark Rutland Subject: [RFC V2 0/3] mm/hotplug: Pre-validate the address range with platform Date: Mon, 30 Nov 2020 08:59:49 +0530 Message-Id: <1606706992-26656-1-git-send-email-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.7.4 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This series adds a mechanism allowing platforms to weigh in and prevalidate incoming address range before proceeding further with the memory hotplug. This helps prevent potential platform errors for the given address range, down the hotplug call chain, which inevitably fails the hotplug itself. This mechanism was suggested by David Hildenbrand during another discussion with respect to a memory hotplug fix on arm64 platform. https://lore.kernel.org/linux-arm-kernel/1600332402-30123-1-git-send-email-anshuman.khandual@arm.com/ This mechanism focuses on the addressibility aspect and not [sub] section alignment aspect. Hence check_hotplug_memory_range() and check_pfn_span() have been left unchanged. Wondering if all these can still be unified in an expanded memhp_range_allowed() check, that can be called from multiple memory hot add and remove paths. This series applies on v5.10-rc6 and has been slightly tested on arm64. But looking for some early feedback here. Changes in RFC V2: Incorporated all review feedbacks from David. - Added additional range check in __segment_load() on s390 which was lost - Changed is_private init in pagemap_range() - Moved the framework into mm/memory_hotplug.c - Made arch_get_addressable_range() a __weak function - Renamed arch_get_addressable_range() as arch_get_mappable_range() - Callback arch_get_mappable_range() only handles range requiring linear mapping - Merged multiple memhp_range_allowed() checks in register_memory_resource() - Replaced WARN() with pr_warn() in memhp_range_allowed() - Replaced error return code ERANGE with E2BIG Changes in RFC V1: https://lore.kernel.org/linux-mm/1606098529-7907-1-git-send-email-anshuman.khandual@arm.com/ Cc: Heiko Carstens Cc: Vasily Gorbik Cc: Catalin Marinas Cc: Will Deacon Cc: Ard Biesheuvel Cc: Mark Rutland Cc: David Hildenbrand Cc: Andrew Morton Cc: linux-arm-kernel@lists.infradead.org Cc: linux-s390@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org Anshuman Khandual (3): mm/hotplug: Prevalidate the address range being added with platform arm64/mm: Define arch_get_mappable_range() s390/mm: Define arch_get_mappable_range() arch/arm64/mm/mmu.c | 14 +++---- arch/s390/mm/extmem.c | 5 +++ arch/s390/mm/vmem.c | 13 ++++-- include/linux/memory_hotplug.h | 2 + mm/memory_hotplug.c | 77 +++++++++++++++++++++++++--------- mm/memremap.c | 6 ++- 6 files changed, 84 insertions(+), 33 deletions(-) -- 2.20.1 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 X-Spam-Level: X-Spam-Status: No, score=-13.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3691EC64E7B for ; Mon, 30 Nov 2020 03:32:02 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E077C206DF for ; Mon, 30 Nov 2020 03:32:01 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="p4PuwJEl" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E077C206DF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:MIME-Version:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Owner; bh=84P5wgU88N0pna/r2aBBx0KyS5Sae+5VmFkIEQAirOo=; b=p4PuwJElPN401lVXXFzq7o02h5 7z4SzpEyMnqn0/gVZg3d/PZxpc9gjPsMWjY7YYc3bwDBqjDWxOi8Y4UpBicXoMLYP2vUdaMoqiKjw npzrH5HhyHXK75vG81It6sqkZ4entxzAnsKBQ6jySIcV1LNR3ghsJHg2c0263ERCOXwGdd6/ouJZn f1IRPXnuSVHo16N9aMjP2xjAlMH6OmCyLJrCddmfNE7FsKzRoduYCC3TYjo5LSaRBsjs8LHBrk+37 KmNDDr/pE+M1U/Vdp7wUWpn1qXbta3T51QUz8BmuQlGuTj+HjjU3BeDv+2xSy1/kqYeQj43dq1SSX 6Pk3wk7g==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kjZtN-0000rd-TK; Mon, 30 Nov 2020 03:30:22 +0000 Received: from foss.arm.com ([217.140.110.172]) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kjZt7-0000lf-5m for linux-arm-kernel@lists.infradead.org; Mon, 30 Nov 2020 03:30:09 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 17C6C30E; Sun, 29 Nov 2020 19:30:02 -0800 (PST) Received: from p8cg001049571a15.arm.com (unknown [10.163.84.86]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 344A73F23F; Sun, 29 Nov 2020 19:29:57 -0800 (PST) From: Anshuman Khandual To: linux-mm@kvack.org, akpm@linux-foundation.org, david@redhat.com Subject: [RFC V2 0/3] mm/hotplug: Pre-validate the address range with platform Date: Mon, 30 Nov 2020 08:59:49 +0530 Message-Id: <1606706992-26656-1-git-send-email-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.7.4 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201129_223005_356275_E30F49E5 X-CRM114-Status: GOOD ( 13.54 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , linux-s390@vger.kernel.org, Vasily Gorbik , Anshuman Khandual , Catalin Marinas , Heiko Carstens , linux-kernel@vger.kernel.org, Will Deacon , Ard Biesheuvel , linux-arm-kernel@lists.infradead.org MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This series adds a mechanism allowing platforms to weigh in and prevalidate incoming address range before proceeding further with the memory hotplug. This helps prevent potential platform errors for the given address range, down the hotplug call chain, which inevitably fails the hotplug itself. This mechanism was suggested by David Hildenbrand during another discussion with respect to a memory hotplug fix on arm64 platform. https://lore.kernel.org/linux-arm-kernel/1600332402-30123-1-git-send-email-anshuman.khandual@arm.com/ This mechanism focuses on the addressibility aspect and not [sub] section alignment aspect. Hence check_hotplug_memory_range() and check_pfn_span() have been left unchanged. Wondering if all these can still be unified in an expanded memhp_range_allowed() check, that can be called from multiple memory hot add and remove paths. This series applies on v5.10-rc6 and has been slightly tested on arm64. But looking for some early feedback here. Changes in RFC V2: Incorporated all review feedbacks from David. - Added additional range check in __segment_load() on s390 which was lost - Changed is_private init in pagemap_range() - Moved the framework into mm/memory_hotplug.c - Made arch_get_addressable_range() a __weak function - Renamed arch_get_addressable_range() as arch_get_mappable_range() - Callback arch_get_mappable_range() only handles range requiring linear mapping - Merged multiple memhp_range_allowed() checks in register_memory_resource() - Replaced WARN() with pr_warn() in memhp_range_allowed() - Replaced error return code ERANGE with E2BIG Changes in RFC V1: https://lore.kernel.org/linux-mm/1606098529-7907-1-git-send-email-anshuman.khandual@arm.com/ Cc: Heiko Carstens Cc: Vasily Gorbik Cc: Catalin Marinas Cc: Will Deacon Cc: Ard Biesheuvel Cc: Mark Rutland Cc: David Hildenbrand Cc: Andrew Morton Cc: linux-arm-kernel@lists.infradead.org Cc: linux-s390@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org Anshuman Khandual (3): mm/hotplug: Prevalidate the address range being added with platform arm64/mm: Define arch_get_mappable_range() s390/mm: Define arch_get_mappable_range() arch/arm64/mm/mmu.c | 14 +++---- arch/s390/mm/extmem.c | 5 +++ arch/s390/mm/vmem.c | 13 ++++-- include/linux/memory_hotplug.h | 2 + mm/memory_hotplug.c | 77 +++++++++++++++++++++++++--------- mm/memremap.c | 6 ++- 6 files changed, 84 insertions(+), 33 deletions(-) -- 2.20.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel