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 422D6EB64DC for ; Tue, 11 Jul 2023 10:36:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B4F266B0078; Tue, 11 Jul 2023 06:36:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AD74D6B007B; Tue, 11 Jul 2023 06:36:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 950526B007D; Tue, 11 Jul 2023 06:36:14 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 828156B0078 for ; Tue, 11 Jul 2023 06:36:14 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 44B20AFBE1 for ; Tue, 11 Jul 2023 10:36:14 +0000 (UTC) X-FDA: 80998976268.11.DAC12D1 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf24.hostedemail.com (Postfix) with ESMTP id 05263180015 for ; Tue, 11 Jul 2023 10:36:11 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=jEvDpzuS; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf24.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689071772; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=N6ssCuG0JSd5qlcN8oKSPfiBnIlcxyeXs8YnZjwGfBA=; b=heAJu0Q3Odbsv4qCVS1LkRUrm/U66gDvJBuO6eWtQi/wieA02/zG3TvE10N14xIcuKoPtd Sj+E1jRAX93R/l/j3LeNyRUD61zr3B010fEM8h1m6E33h2BPdKuuSXLE6VLsGSOeANF5z3 xs0QwK0KNDDbt8sfYKHLpKotNb4o/oo= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=jEvDpzuS; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf24.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689071772; a=rsa-sha256; cv=none; b=qjW3CntKlriJHWNl9V/rTFpldYIPs9p3W9l9VPDhI445vtlLd+Tj4DXFJFfWxpT8Nb5Sbd wSbaIkTFGota0BcE0jce/G2+QgQu7RWItZiPe3WWoy0+lTPRK1biF4zfph3LuKv06ONhbx jUz5HmUpsaXtFf70KSSd7GjpTN2fdT8= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1689071771; h=from:from: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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=N6ssCuG0JSd5qlcN8oKSPfiBnIlcxyeXs8YnZjwGfBA=; b=jEvDpzuSBoVIhBcer7fVKwrde+YOff9Hq1ce8YssbKakaI4ksxpaMPX7HmMj2KexKmwC+8 IgbHXaDlzmjK36dgMiPFen374SyLbNREcF6RBA0RwWSlym9DJWAGHwfzbOc310WO8Ycjz4 LXUd5tjPPeTNh7oHjFKhRYs8xFUBBMk= Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-461-gIcjOD-jP4GAsUc6xt-n5g-1; Tue, 11 Jul 2023 06:36:10 -0400 X-MC-Unique: gIcjOD-jP4GAsUc6xt-n5g-1 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-314256aedcbso2878711f8f.0 for ; Tue, 11 Jul 2023 03:36:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689071769; x=1691663769; h=content-transfer-encoding:in-reply-to:subject:organization:from :references:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=N6ssCuG0JSd5qlcN8oKSPfiBnIlcxyeXs8YnZjwGfBA=; b=A2iFssxs1NqwSxAGnokq4fGIKwQspJ2fYIoswLOeLR/7dppsVWKw3D8fYEOx98iIXy tc8Eng+LNbOaqLL4Gzz7ccznwxX8AUb1pgFJ2d7CIj5P0EpTh2CvgYnbdRzYW5e8B+G4 4J5soo3YTu6zuvNZYe15tOEWA15wBYpPjUDTFOaZ8zAoIuMfBivCBQSH7Kj5u+y4wxAt aAng+ZI+NAFd0nnfG66yBRL+o1ObFo7LmG9bqryEu1JVV5XcnFDWnr5i67kAYKNU08Ku NRdpb+lvpt+q2Fb45qv4Cu6T2w1Mpz5t7WPnTUJK/yZXpRZgtXcdRy3q9tQewW4RMt2d y7Cw== X-Gm-Message-State: ABy/qLbcddI1RC9hKPk9ca3+nbrHJctdm49MAGO6+OlPKD0qba68wLll 2Bemocyl+9BWn8KH6LK1WWdyAxArYLy3IINRDuitdWYZpfOXAbzZXfeo6hb/TW68shDbxJzOnDf gePf92u3h70U= X-Received: by 2002:a5d:6341:0:b0:314:2a9:1071 with SMTP id b1-20020a5d6341000000b0031402a91071mr12538656wrw.19.1689071769127; Tue, 11 Jul 2023 03:36:09 -0700 (PDT) X-Google-Smtp-Source: APBJJlGL499w+SZyLH/zF1GbGuxkRudeRvMjgropibce7B/h5OetzSacJIWp1+vOVl9LpNoPDUjtog== X-Received: by 2002:a5d:6341:0:b0:314:2a9:1071 with SMTP id b1-20020a5d6341000000b0031402a91071mr12538639wrw.19.1689071768778; Tue, 11 Jul 2023 03:36:08 -0700 (PDT) Received: from ?IPV6:2003:cb:c745:4000:13ad:ed64:37e6:115d? (p200300cbc745400013aded6437e6115d.dip0.t-ipconnect.de. [2003:cb:c745:4000:13ad:ed64:37e6:115d]) by smtp.gmail.com with ESMTPSA id w8-20020adfd4c8000000b003141e629cb6sm1860337wrk.101.2023.07.11.03.36.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 11 Jul 2023 03:36:08 -0700 (PDT) Message-ID: <6f6764f6-4b5a-dfa8-c409-ba4f2828891f@redhat.com> Date: Tue, 11 Jul 2023 12:36:07 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 To: "Aneesh Kumar K.V" , linux-mm@kvack.org, akpm@linux-foundation.org, mpe@ellerman.id.au, linuxppc-dev@lists.ozlabs.org, npiggin@gmail.com, christophe.leroy@csgroup.eu Cc: Oscar Salvador , Michal Hocko , Vishal Verma References: <20230711044834.72809-1-aneesh.kumar@linux.ibm.com> <20230711044834.72809-4-aneesh.kumar@linux.ibm.com> From: David Hildenbrand Organization: Red Hat Subject: Re: [PATCH v3 3/7] mm/hotplug: Allow architecture to override memmap on memory support check In-Reply-To: <20230711044834.72809-4-aneesh.kumar@linux.ibm.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 05263180015 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: igcc936dz46hdjcwfrqrpgxnxfhwoi4h X-HE-Tag: 1689071771-230206 X-HE-Meta: U2FsdGVkX1+nOlbZSvmE4Mz70PM/T6+aFx/tNj1jRHC4rZQsVGmCYYQX+6bkSrDSgzTgvHAF+DlmorsbMtnpxXCFWir3s6oe9iTY1BXFaONty/Cp2ddWl83vAufz82MPOJhpPcHaxcROXyIWTG1YsGZXV/01aSAcNOJ2qO9+jwhOo+nr+eZSvdsg88ArrlZnTI62UAgKZXXweeav2YRLq/0VQ3pJe2V3b1vkeAT7GFU9fc2Ksjs4uqDPvs3o6lSjfCR0huKbUSBkA9YIBivd/zAVZIlUlsPLd+WkoNn/Wql0/p1yPlrP8IilY4KtyEBUzWlRvjbXOhVznpyny6gg1ORmWhWKj56yldv8GHh21XhByYIewoC95+/er+11yNH+i5TY47dNcSJhbikNpxjICNxKd4Fmh4en9P4QEW0q0iTyWIGcUC23uyFrmNbq+fB/gCKVvC1u9HrRBaBDxd6f56FhEqpiekBE3wwnXUR3pBsoWpXUJWJUl6yBWV1YIcdn1a4mCbFzz5uqpXHZYps4gbFumWZaPuQ32FkDldVNcdC0dfiAtVjemFR8dHuvsnDE2MnzwhEhYSbD2QwvYYeAMXo9pJRY/YVpagJ26j0ZKQl4is+Xt4Rcv23s48QqQIMZazlCVzePZyKnZISsTnzKQWSTqHyQjz1jdAHeGvEd3/PEoD6vSee++ANUFixRHHVgsO+QKdZcmw91ZlvWEMWRACnse+1OrAfNfdHLy5qEPV9GFKGd7n4xblh42jDQ9oPlLKn2uBLWeqZ4wwDMp9oiFNsG8twehqxsf2enVDGwuKWtlttuMViLD3WBx2Ghp377KXNUl3PP0Ktgl1biZCn0IBM2Sll/tlg2Mq82EqAGuVUW0/y+4ZSbTLm2zgV+hDImUymQoVl2t2wIcA/BvWZeLWKEprLyYxZ5jbuctTIIogokjgiNo7KMtdftYB04oid8vFnVaif0D0V8SBBUXkI n19Kumm7 C278s8i1UsnE0TqFA9tnXvQn+qIF/NH+jMQMYwps98hAlLcTteJ85Kapk7p94k9UW/9ILH97HdazG6DujBPW6R1CFx9nzd9YpRHIdHL26eZjRZ14pmlEPWknlQqK+vhxXtiHSDp9ayBfQ0IxB4T8upX4HCl44EqgYVdX7ml6JXafr+rI0aq3d9vx8LyzOmT9b+Dq0ep6X36h/Vltx4y7pc2o75mXjLDcbPHvDYOYOAqY+8QNA3/VM/3xhotayM3oF8SQrfCDMCAsBnpzwQE5Mo3pwkIuiDC+4E1DfOY73teopM9Ji3ZSHdxFmcw== 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: On 11.07.23 06:48, Aneesh Kumar K.V wrote: > Some architectures would want different restrictions. Hence add an > architecture-specific override. > > Both the PMD_SIZE check and pageblock alignment check are moved there. > > Signed-off-by: Aneesh Kumar K.V > --- > mm/memory_hotplug.c | 17 ++++++++++++----- > 1 file changed, 12 insertions(+), 5 deletions(-) > > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c > index 1b19462f4e72..07c99b0cc371 100644 > --- a/mm/memory_hotplug.c > +++ b/mm/memory_hotplug.c > @@ -1247,12 +1247,20 @@ static int online_memory_block(struct memory_block *mem, void *arg) > return device_online(&mem->dev); > } > > -static bool mhp_supports_memmap_on_memory(unsigned long size) > +#ifndef arch_supports_memmap_on_memory Can we make that a __weak function instead? > +static inline bool arch_supports_memmap_on_memory(unsigned long size) > { > - unsigned long nr_vmemmap_pages = size / PAGE_SIZE; > + unsigned long nr_vmemmap_pages = size >> PAGE_SHIFT; > unsigned long vmemmap_size = nr_vmemmap_pages * sizeof(struct page); > unsigned long remaining_size = size - vmemmap_size; > > + return IS_ALIGNED(vmemmap_size, PMD_SIZE) && > + IS_ALIGNED(remaining_size, (pageblock_nr_pages << PAGE_SHIFT)); You're moving that check back to mhp_supports_memmap_on_memory() in the following patch, where it actually belongs. So this check should stay in mhp_supports_memmap_on_memory(). Might be reasonable to factor out the vmemmap_size calculation. Also, let's a comment /* * As default, we want the vmemmap to span a complete PMD such that we * can map the vmemmap using a single PMD if supported by the * architecture. */ return IS_ALIGNED(vmemmap_size, PMD_SIZE); > +} > +#endif > + > +static bool mhp_supports_memmap_on_memory(unsigned long size) > +{ > /* > * Besides having arch support and the feature enabled at runtime, we > * need a few more assumptions to hold true: > @@ -1280,9 +1288,8 @@ static bool mhp_supports_memmap_on_memory(unsigned long size) > * populate a single PMD. > */ > return mhp_memmap_on_memory() && > - size == memory_block_size_bytes() && > - IS_ALIGNED(vmemmap_size, PMD_SIZE) && > - IS_ALIGNED(remaining_size, (pageblock_nr_pages << PAGE_SHIFT)); > + size == memory_block_size_bytes() && If you keep the properly aligned indentation, this will not be detected as a change by git. > + arch_supports_memmap_on_memory(size); > } > > /* -- Cheers, David / dhildenb