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 C7474C001E0 for ; Tue, 1 Aug 2023 15:46:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0B463940020; Tue, 1 Aug 2023 11:46:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 03C01940010; Tue, 1 Aug 2023 11:46:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E1F0C940020; Tue, 1 Aug 2023 11:46:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id CF466940010 for ; Tue, 1 Aug 2023 11:46:30 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 85EE1A15F9 for ; Tue, 1 Aug 2023 15:46:26 +0000 (UTC) X-FDA: 81075962772.22.9434E1C Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf09.hostedemail.com (Postfix) with ESMTP id B9279140235 for ; Tue, 1 Aug 2023 15:45:04 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=none; spf=pass (imf09.hostedemail.com: domain of cmarinas@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cmarinas@kernel.org; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1690904706; 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; bh=KKbznrcKlkp6XdAUuWkM4XjqWQxuov1aSrRpz+HHAus=; b=nt60/KpM7afQk6pW58VnvyFmFPDs5H/8cc7rP11EdKODxP19uzTOnbG401kJ2IXDEgIbtM 9P5nRzeq9R6pauuZwkgAMCOksPLZbe1X4vqlYgye6lGLRjqISTq6L4VZYDPWIwFJrxRhcG mdgrTYDP0lD2hBkhX9kzVCseJecxmf4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1690904706; a=rsa-sha256; cv=none; b=st5XEVxXLnl8hZQR/lzzeDxB6MpYLdGlGZVHcP8blmv/+WK2xlY0M8mwHlmXU1je+6JadO eU3HvSWZ9AEAAXfNUk03Xmww0TzrHra6TMZPtCqYNeE7YgI8prb5ECC2JHqmT43rwq7ec0 K62LH5cctjBQrDO7O2hpJ/eUUSK7BnM= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=none; spf=pass (imf09.hostedemail.com: domain of cmarinas@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cmarinas@kernel.org; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 28048614B7; Tue, 1 Aug 2023 15:28:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0D81CC433C8; Tue, 1 Aug 2023 15:28:36 +0000 (UTC) Date: Tue, 1 Aug 2023 16:28:33 +0100 From: Catalin Marinas To: Kefeng Wang Cc: Andrew Morton , Will Deacon , Mike Kravetz , Muchun Song , Mina Almasry , kirill@shutemov.name, joel@joelfernandes.org, william.kucharski@oracle.com, kaleshsingh@google.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, 21cnbao@gmail.com Subject: Re: [PATCH v3] arm64: hugetlb: enable __HAVE_ARCH_FLUSH_HUGETLB_TLB_RANGE Message-ID: References: <20230801023145.17026-3-wangkefeng.wang@huawei.com> <20230801135616.165067-1-wangkefeng.wang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230801135616.165067-1-wangkefeng.wang@huawei.com> X-Rspamd-Queue-Id: B9279140235 X-Rspam-User: X-Stat-Signature: 83o9odn9nseyjn11sw1jt4c1i36xspce X-Rspamd-Server: rspam03 X-HE-Tag: 1690904704-492000 X-HE-Meta: U2FsdGVkX1/ZxjNTR1VcgwI9+/cagl/1opRQtKCuDa1goTIQQN7l4kUMfGtUU/amJUGud0IWxKPO7HiuQi04ZnFExEqvR5rRvrbycWjGctudsE4g7a0DHj2NJIFhaceJoQXcnYVZnW7XYe+/9424l/lfO9R+JDWtEtGLtFnkLxnKnTTHtT7Hbf8IoeuPixBHg9qISqGvWHs6PlZx+q1ypFeMeCval+4OvvaseMZSO+Sf4HHiabk7TUislzR5B89vMU94qkruN+HS79uyJv8ol72c7UPjjsoN69jL3p+UgQUY8hu8rXAR7jbm2p55GazJBo7UBhGsFlzCKf6EmEuGElFubWLuhxF8BmHjkgiEwNqyeqILI876ByBugo9EOD+ZHAmQ7MXjtcsA3+T4hKGx6uJn1wwDTTf5XyvRlsZbPSdVx3Wpl+grwOHjpt5FmDB9OihxK10eIWIstOa26AzhYCp2i/vNuhxKPI8/Zsl8MtLHJtG195oXZGdboNAfQfupynwU41t6lEXAFNHYDkDHdlQJQOGYkfEcBlxRsbFQDwVpm3rYXeIRvvT+vX7IVSWEwLKxo7EPhhuxy7dyaitD+gGzo6kR17tRz8iZSlMaTOD2CoY+TQxiRXuC9aIOhynsUs41jSuZkmGP9tLlxWPIT9v7E6Gh/czMGhReMrk4XrVygxu6vu+cJKKxPEoStColxk7nRJ7awoP7N7jjSoVY2iwHwEZD434s6qKomNSicY6yTzCqiGxGdnc2+yeyt5C8g3fTw/zzrocPTuRofomtQEWkQa0yikmG502Knc+DG6n2FN3Ws/TRL4CmBgcydDUO4OqJyH2rrL+MK1C4JLcBpZ9drgO4MDDhvSCZinDb/4X0BPMUTo7z622F9U5x2io80OA+7n30v/nPbNoBIFII7w/I/cSsdFIQjHImbP0h/i/H9yf10o2N8L3oEVGghzKZ14HAOBG7VLLeqma4N0j SjBkCiDg 0Sa42PKd++/MCIn2PTYPMoPWxaRT2F/D+bgGT5a1TONuwtcu6is53+COAEQTI+Smj5ODb7KTIllEUKLz9Uw9gw/YKNMrUrW8TXAGuMVSF3lRTfnhCC3Y77w0oSscD6ne0IN2FENUraNHkwQ9uXCRhtMhHqJWF/aKTlw4cZPC/90KfAy8a7N9oRHuQtl2Vcjh4zRVTkbhFexYB/Ihjwa7Q35qZdMTAD+J7ZxVHVDv/CYglmYdUKyAQCM2RVn0jyc4OtrTCPm15GfJhIL5DRXSt99MsK4SKHTdhmfxEAmRWfaE+R5TaQMEJEGXbkKAV2Jiy8wGwJP7RRH5cEB5Am/Bip8zX7dZWcj+8fON+IY5VSvFOZYBXSZH+B2IvQ/e8/yyrX3EOAvmdyfcKo1ReH3Z61HS6U+OVZyOFqZZzu7CrFzkkrFSH2Ijhw2Fqp+5briD7z/64R31lNl7+Q1unEeuBwU46CA== 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 Tue, Aug 01, 2023 at 09:56:16PM +0800, Kefeng Wang wrote: > +#define __HAVE_ARCH_FLUSH_HUGETLB_TLB_RANGE > +static inline void flush_hugetlb_tlb_range(struct vm_area_struct *vma, > + unsigned long start, > + unsigned long end) > +{ > + unsigned long stride = huge_page_size(hstate_vma(vma)); > + > + switch (stride) { > +#ifndef __PAGETABLE_PMD_FOLDED > + case PUD_SIZE: > + flush_pud_tlb_range(vma, start, end); > + break; > +#endif > + case PMD_SIZE: > + flush_pmd_tlb_range(vma, start, end); > + break; > + default: > + __flush_tlb_range(vma, start, end, PAGE_SIZE, false, 0); > + } > +} I think we should be consistent and either use __flush_tlb_range() everywhere or flush_p*d_tlb_range() together with flush_tlb_range(). Maybe using __flush_tlb_range() for the pmd/pud is not too bad, smaller patch. That said, I'd avoid the #ifndef and just go for an if/else statement: if (stride == PMD_SIZE) __flush_tlb_range(vma, start, end, stride, false, 2); else if (stride == PUD_SIZE) __flush_tlb_range(vma, start, end, stride, false, 1); else __flush_tlb_range(vma, start, end, PAGE_SIZE, 0); With the pmd folded, the P*D_SIZE is the same and the compiler should eliminate the second branch. -- Catalin