Received: by 2002:a05:7412:3784:b0:e2:908c:2ebd with SMTP id jk4csp1161660rdb; Mon, 2 Oct 2023 00:26:50 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGJr/0DN32+j/Kmz5xPAl8F5emgTM20Zk/nI/BinugCAwqKs2xv1pdt0/HbPzsNW9bZrW2l X-Received: by 2002:a05:6808:2c3:b0:3ad:f5b3:844c with SMTP id a3-20020a05680802c300b003adf5b3844cmr11156497oid.18.1696231609956; Mon, 02 Oct 2023 00:26:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696231609; cv=none; d=google.com; s=arc-20160816; b=a1U5WV8+XjR9BrJFuXxMBfQryiLMHKZq9F6P+NPXx1RxE53G8JfYXIf29WdYwIGWaw 9BOnBwFAdnFM7eWOVQd+4lRIapXeMxaXv2xjO87p77Twn1sMFZU3jP7EiZQ9KTvTCodk f/9UNjdrUmk7a+ka7xO9QgRJes5mil9do3vCPd/MLKE8sD7UXm/90fYH8JxQ+/dDOgB1 uEgZfXbJ2vNAL5/C6I16sAzreWW5i11XiqrAy0iGSKDuB0urn6sCoK1kftwFFcjCmceo nRgULm461IzMFbZ1HOABnzhInF7ckN+czCw/C/CBShcSOouJbi37oCIlD/rkq4S7paGk R/9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=oOOUEKBKIXiOppPNbpbIapNj1NsYufBIk5m+jkXtHz0=; fh=FVmveCTQb/SdYdHWLZG0cBZaA5OmsWggDZv5+Q3B+M4=; b=hGgEHYqSkDfc59EA3FkExU0VXGleMWm8qjUSXkVzw7lWAcdMPAyCAGsDKvutIOy6q4 m2IIQxKVEmpt84e+eSzRRIV+rjMjMkjbjpYPwbKhG5TOP68BZVoeBFstDMP87WM8LTnt 0RMS+faEOTTX+GwdLuL/Wq8n+UuWqfrg7AZ9+IoMeXVQ6xIxvFq42P8i38zkSC9tu0ki 7YRh30K0XZVpDEcF0hxunYwM5rcikIx+BubnywazhCXCmz+SAzS9/OqVh200NrmfE+sY K7s+gvajDzAM/O+CNShipoMbYITMYjyihdt6lXHd64a6Y/e9NMGZJvVx9jesglrNDVIH 1KRQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id b5-20020a17090acc0500b002792576aa86si6859378pju.134.2023.10.02.00.26.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Oct 2023 00:26:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id BCC4B80CF541; Mon, 2 Oct 2023 00:19:14 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235701AbjJBHTE (ORCPT + 99 others); Mon, 2 Oct 2023 03:19:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53264 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235599AbjJBHTD (ORCPT ); Mon, 2 Oct 2023 03:19:03 -0400 Received: from relay2-d.mail.gandi.net (relay2-d.mail.gandi.net [217.70.183.194]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D36B28E for ; Mon, 2 Oct 2023 00:18:59 -0700 (PDT) Received: by mail.gandi.net (Postfix) with ESMTPSA id 3EE534000D; Mon, 2 Oct 2023 07:18:52 +0000 (UTC) Message-ID: <96984fd2-2e3b-d861-5555-5b5a4e5c55d6@ghiti.fr> Date: Mon, 2 Oct 2023 09:18:52 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH -fixes 2/2] riscv: Fix set_huge_pte_at() for NAPOT mappings when a swap entry is set Content-Language: en-US To: Conor Dooley , Alexandre Ghiti Cc: Paul Walmsley , Palmer Dabbelt , Albert Ou , Andrew Jones , Qinglin Pan , Ryan Roberts , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org References: <20230928151846.8229-1-alexghiti@rivosinc.com> <20230928151846.8229-3-alexghiti@rivosinc.com> <20230930-unnoticed-slacked-0bf5696cc265@spud> From: Alexandre Ghiti In-Reply-To: <20230930-unnoticed-slacked-0bf5696cc265@spud> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-GND-Sasl: alex@ghiti.fr X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 02 Oct 2023 00:19:14 -0700 (PDT) Hi Conor, On 30/09/2023 11:14, Conor Dooley wrote: > On Thu, Sep 28, 2023 at 05:18:46PM +0200, Alexandre Ghiti wrote: >> We used to determine the number of page table entries to set for a NAPOT >> hugepage by using the pte value which actually fails when the pte to set is >> a swap entry. >> >> So take advantage of a recent fix for arm64 reported in [1] which >> introduces the size of the mapping as an argument of set_huge_pte_at(): we >> can then use this size to compute the number of page table entries to set >> for a NAPOT region. >> >> Fixes: 82a1a1f3bfb6 ("riscv: mm: support Svnapot in hugetlb page") >> Reported-by: Ryan Roberts >> Closes: https://lore.kernel.org/linux-arm-kernel/20230922115804.2043771-1-ryan.roberts@arm.com/ [1] >> Signed-off-by: Alexandre Ghiti > Breaks the build. Your $subject marks this for -fixes, but this will not > build there, as it relies on content that's not yet in that branch. > AFAICT, you're going to have to resend this with akpm on CC, as the > dependency is in his tree... I see, but I still don't understand why -fixes does not point to the latest rcX instead of staying on rc1? The patch which this series depends on just made it to rc4. Thanks, Alex > Thanks, > Conor. > >> --- >> arch/riscv/mm/hugetlbpage.c | 19 +++++++++++++------ >> 1 file changed, 13 insertions(+), 6 deletions(-) >> >> diff --git a/arch/riscv/mm/hugetlbpage.c b/arch/riscv/mm/hugetlbpage.c >> index e4a2ace92dbe..b52f0210481f 100644 >> --- a/arch/riscv/mm/hugetlbpage.c >> +++ b/arch/riscv/mm/hugetlbpage.c >> @@ -183,15 +183,22 @@ void set_huge_pte_at(struct mm_struct *mm, >> pte_t pte, >> unsigned long sz) >> { >> + unsigned long hugepage_shift; >> int i, pte_num; >> >> - if (!pte_napot(pte)) { >> - set_pte_at(mm, addr, ptep, pte); >> - return; >> - } >> + if (sz >= PGDIR_SIZE) >> + hugepage_shift = PGDIR_SHIFT; >> + else if (sz >= P4D_SIZE) >> + hugepage_shift = P4D_SHIFT; >> + else if (sz >= PUD_SIZE) >> + hugepage_shift = PUD_SHIFT; >> + else if (sz >= PMD_SIZE) >> + hugepage_shift = PMD_SHIFT; >> + else >> + hugepage_shift = PAGE_SHIFT; >> >> - pte_num = napot_pte_num(napot_cont_order(pte)); >> - for (i = 0; i < pte_num; i++, ptep++, addr += PAGE_SIZE) >> + pte_num = sz >> hugepage_shift; >> + for (i = 0; i < pte_num; i++, ptep++, addr += (1 << hugepage_shift)) >> set_pte_at(mm, addr, ptep, pte); >> } >> >> -- >> 2.39.2 >> >> >> _______________________________________________ >> linux-riscv mailing list >> linux-riscv@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-riscv >> >> _______________________________________________ >> linux-riscv mailing list >> linux-riscv@lists.infradead.org >> http://lists.infradead.org/mailman/listinfo/linux-riscv