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 82611E77180 for ; Mon, 16 Dec 2024 13:53:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BD5276B007B; Mon, 16 Dec 2024 08:53:36 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B84CB6B0085; Mon, 16 Dec 2024 08:53:36 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A4C7C6B008A; Mon, 16 Dec 2024 08:53:36 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 83C546B007B for ; Mon, 16 Dec 2024 08:53:36 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 2EE2380F2C for ; Mon, 16 Dec 2024 13:53:36 +0000 (UTC) X-FDA: 82900963908.30.6097D3B Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by imf21.hostedemail.com (Postfix) with ESMTP id 3C5A21C0007 for ; Mon, 16 Dec 2024 13:52:37 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=JQCHvt0p; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf21.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.214.175 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734357186; a=rsa-sha256; cv=none; b=wXXgGs0PsWwJNkNB2fJVmAjzNpnV02T/U4k+L3OmTKpGAuKGtf/6yYfv5So+qhcZ9P6js0 v3Gj8IC05olTfzdnXhksFJjfgS9oSwwKu5XlmyTo6018qa2m/2EEJhqA170T9g/UeDGk+4 aIG6f41uGsPv+q0z8zklj952vuDLTeg= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=JQCHvt0p; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf21.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.214.175 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1734357186; 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=x6zMvmG2+uzmRRZ61sFLQ9H0rO9rbqdQZ5p/tJY9Hns=; b=i0uDnoPSlsX+pG29IHQ/T8XbW9VvVCmhIxET1Lm2VYmX50wrpyim2TMAYZ5EUtXB4pXY03 /iWuk7Wahrgl8qrrF/DCbKZ66ymd3o3SZ9y0GpycNfRulXmUw83R8iB/eJyCmskLQxD4gi s3tUpPjJzwegh4k91Lx+xsRuG+/bMN8= Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-216634dd574so23658005ad.2 for ; Mon, 16 Dec 2024 05:53:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1734357212; x=1734962012; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=x6zMvmG2+uzmRRZ61sFLQ9H0rO9rbqdQZ5p/tJY9Hns=; b=JQCHvt0pFEe+R9qVuf1NiZb3TkY8cfpN6aKZ0vmxWk3GBKZmfBZEfA6YtkEcSWMaQo I6WHdJMmEdJJqDuz4Dx/Bdj+lNZct82HaxC/4F84xlO2weMmYcnGZGyl6QA5FgIp4QGc OO8pJ9C7epHVv4weSnfu8ZxrABuypNARrcm4CAERPXDJc/73ISymus6jCOtImW2ILjR/ BoSrHXxd004Y2h1hCLJKgl6B8eskjPtThJQC/COkUriFfVvW0jQf7WQ94Z4/mHahbZQV zsj8BitkAG/JOW+AhMmHAOZFK2H8cpBkurPzpKVU0hTGOZ9qoFnbzel7UquHmdBgyx6A 5NpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734357212; x=1734962012; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=x6zMvmG2+uzmRRZ61sFLQ9H0rO9rbqdQZ5p/tJY9Hns=; b=s/E8OBCSRhch90e/WsXaMIK896zNZMiArE+OUI8OQMKe6fqw7Btt2WC2OxZfkxvXKl BcNM//z3xMZIOfDxIqoFKSxxc3VlYKyBSg0bN81AFDyYpEZfpVvhnUMei9E4vipJJ5H5 IkXUJsFWrkoF+7pj5B7d4UTns/+awzM8BwjGbU3t9phl9BHWkt8vCFE+UQRlLtn1hGXK YLvjDyM46IquieTpeGonBmY3EQh+KnW56AOW6fRXDYoJ2+nQFBr0XrhPDOR8UMMAZG6D Z1X+aeAEKk0Jun4Pg07KeFWNLiTQTBuf5HaJwphPb79vS+lt5SJDzlfm6AW1AMj2P6Jn WymA== X-Forwarded-Encrypted: i=1; AJvYcCWiH7/OUVUTJdxbzchcv4bNfLuuB/fjDqJ7FnvCX9NI+FOIGDe5K11X6b8I51aVfaL8k2sUObm/AQ==@kvack.org X-Gm-Message-State: AOJu0YwHkf6/2+HOGFxmCNWr8XyEj9Ym8BOTIi+I3pJYvy1J9R3JAxzu UErm4u3NfmgiOZQTgTCSfzAXcMsDL9IcyHO9SMuLJrreP8SOVozQfaKXkB5Kjck= X-Gm-Gg: ASbGnctvsFAVbSKMusJUR/NHctSU7iv1CU3uaZQs1LQXb6NRbbuCdZxWlRY1AMdMwWz CMZHxbmj0FMiebo3syRJRimhmy95OA7c2KRR6rEnD1QfPQ2n+Ay2tH7jOsTl8eRbxumnqF/xZ2c 2S/u3D+kgY/krTFCOYaKsoWP2RTIhuarlXCn4ArK3ziRZcEyteQ2oh6SeB7sahUgvPM17lRtRGS wkkFTIpAj9yPnA1Lb0bHN5MXZE8FkuZ50phycaqaYwvJd7cT8DpxH6kZJP2lcp+KPmOj0M9ukW4 16q/uNB5BQ26UIHAH6oB9O16197sX4kOmkHtqd5aF4gklS3iByg/LOk= X-Google-Smtp-Source: AGHT+IHyRpxS8I8LTVX58lZkgV3hcqjzdArgXBTP/oGtQrcmkoT7Zay0fgtIbzpJHrkn13s78Z6EGA== X-Received: by 2002:a17:902:f546:b0:212:5786:7bbe with SMTP id d9443c01a7336-218929caae0mr162490085ad.24.1734357211700; Mon, 16 Dec 2024 05:53:31 -0800 (PST) Received: from ?IPV6:2409:8a28:f4f:a9a4:7c29:e1c0:98b3:5c62? ([2409:8a28:f4f:a9a4:7c29:e1c0:98b3:5c62]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-218a1e63896sm42806225ad.223.2024.12.16.05.53.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 16 Dec 2024 05:53:31 -0800 (PST) Message-ID: <9c6a4e46-7f98-4809-b4bb-fa83a4461474@bytedance.com> Date: Mon, 16 Dec 2024 21:53:24 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 11/12] mm: pgtable: introduce generic __tlb_remove_table() Content-Language: en-US To: Peter Zijlstra Cc: tglx@linutronix.de, david@redhat.com, jannh@google.com, hughd@google.com, yuzhao@google.com, willy@infradead.org, muchun.song@linux.dev, vbabka@kernel.org, lorenzo.stoakes@oracle.com, akpm@linux-foundation.org, rientjes@google.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <271e58cd4ab808c4f402539b76d5916924e2bc6f.1734164094.git.zhengqi.arch@bytedance.com> <20241216120043.GA11133@noisy.programming.kicks-ass.net> <20241216120313.GE12500@noisy.programming.kicks-ass.net> <20241216120526.GF12500@noisy.programming.kicks-ass.net> From: Qi Zheng In-Reply-To: <20241216120526.GF12500@noisy.programming.kicks-ass.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 3C5A21C0007 X-Stat-Signature: pm58a1aruio6udrczqi1ao73jxzbpcys X-Rspam-User: X-HE-Tag: 1734357157-479168 X-HE-Meta: U2FsdGVkX19dI27FE3jp0Z6nkBOZdOjaRUY4CqYMMkhZyA+AT9C3ALEzb250AARHB0YG4iP5ykSLwa29jl1GkxXktq/iDwk1n27kSyAvDT+6i5oioytP7B3nyGzMKufygbNFjNs4Do2Ph7YyEmm2CS11STMS77aqOZAb6xwpdYA9s2qdsK6nIXdOWsT5VHJVG1ChQwqOZ0i6RT5pvOeK+qx2bAiT8xi150pvKLJ34cl5obb89UCL5cgCoDMpBbSYi1IJ7ch3SSY/gIomAToMIYy9F0UHTlzMBCWXxT3f/kJBfPuHX2R4uF3cmgP3lwrSlGvv87gPmZKLGINd0d+brf5d8EmaAQ3Q/kNPmJ3/Gpmcmzjsp4dhVGXqCE/V6D4Me01vYSrkbL3PVLBADbisSziBuc3y2so7Xk8Tr6hAvWqWKWQItU3TlZW0kNh4fxnubRSYlT8PCjqiba2k/tX5c2fZUQiosssq5uvXjR6LCFkViTOjNo8jI9pp/NHXpqBgSI9aa2esS3qUqfps1FmfHUvvKtb5PzVR0+339wgV6hAXWn2TLQRwAcoGJrPM+H3rAco0/ACUSoT1BbkvQwdc+juD5hRqS65uVqITuzMdJ2CXtylur6Kl3ZROVYYsVOGSbGIYgifFU8qhhHgkxNlX0bpZpYpbszWKc3dgLqHlI3rPhzrd/EipdFGAfGfdGla6uEes2/w60OvEq3Jg49r4lAQkcFxOyzYNcLJecZz2jpXa3UW2MRFNoxkBSBFB4IpiA5tKgeWH1iwwp/dS5Na7Pf5p0HEh8eKutE95rjBZVXvT44YS+BRLRLrpofMHU27HhBFIPVsGNfHGiRKOjwpEzmeMMaqwr7FUqxd3Lm82wqaDTt9R8n0Uj0scJsbkX35Xc0gytjjOk56u9O/pgZUAFS1JvXyEGsG47HxizNUMBRzR2vYVcu2NOgXLXswlCIppnoX/e4AoBuQmTx1Txzp BUfXxgrC J2j/G0Yvkje4WCrxTxkFm3TgcMGa7BseL/fv71BCvoJDCU4y43H75gLo/yRxIsPNW/6MZK08ffN2velKxhCbazEIb83eoyUUs4s+ptIb0pwKRMdWqW4kl6ktgJW5yyILcyxb+2pTSBNlNAvoodYrUkXFD8nYNvjPqOjRCN+nuFOGjX9F5ZrlteELOa/rYm63KwqMvY1FRn8h/4fziptjuEUEuqs+t3VvM9dSRuU6tGEaHadM8Vvvrb86VWOGyQA8IhSOlqHlaEq8zkrCaFdEgb03EZHQPNLY5GHQ8ETrTXkHISNMRoSp5eeDB7D8gv5RNz5MeiZ4paCLehfWsWxSogBchxs6wyaEpnh6ED1Ltx01JqGw1ttyGj8/YX7l1F2JapR+7wc8dY4zTCOLCGfCaFXw2y4fS8//b1JDNRXOXi266PrI= X-Bogosity: Ham, tests=bogofilter, spamicity=0.445770, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 2024/12/16 20:05, Peter Zijlstra wrote: > On Mon, Dec 16, 2024 at 01:03:13PM +0100, Peter Zijlstra wrote: >> On Mon, Dec 16, 2024 at 01:00:43PM +0100, Peter Zijlstra wrote: >>> On Sat, Dec 14, 2024 at 05:02:57PM +0800, Qi Zheng wrote: >>> >>>> diff --git a/arch/s390/mm/pgalloc.c b/arch/s390/mm/pgalloc.c >>>> index c73b89811a264..3e002dea6278f 100644 >>>> --- a/arch/s390/mm/pgalloc.c >>>> +++ b/arch/s390/mm/pgalloc.c >>>> @@ -193,13 +193,6 @@ void page_table_free(struct mm_struct *mm, unsigned long *table) >>>> pagetable_dtor_free(ptdesc); >>>> } >>>> >>>> -void __tlb_remove_table(void *table) >>>> -{ >>>> - struct ptdesc *ptdesc = virt_to_ptdesc(table); >>>> - >>>> - pagetable_dtor_free(ptdesc); >>>> -} >>>> - >>>> #ifdef CONFIG_TRANSPARENT_HUGEPAGE >>>> static void pte_free_now(struct rcu_head *head) >>>> { >>> >>>> diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h >>>> index 709830274b756..939a813023d7e 100644 >>>> --- a/include/asm-generic/tlb.h >>>> +++ b/include/asm-generic/tlb.h >>> >>>> #define MAX_TABLE_BATCH \ >>>> ((PAGE_SIZE - sizeof(struct mmu_table_batch)) / sizeof(void *)) >>>> >>>> +#ifndef __HAVE_ARCH_TLB_REMOVE_TABLE >>>> +static inline void __tlb_remove_table(void *_table) >>>> +{ >>>> + struct ptdesc *ptdesc = (struct ptdesc *)_table; >>>> + >>>> + pagetable_dtor(ptdesc); >>>> + pagetable_free(ptdesc); >>>> +} >>>> +#endif >>> >>> >>> Spot the fail... >>> >>> That said, all this ptdesc stuff is another giant trainwreck. Let me >>> clean that up for you. >>> >>> --- >> >>> -static inline void __tlb_remove_table(void *_table) >>> +static inline void __tlb_remove_table(void *table) >>> { >>> - struct ptdesc *ptdesc = (struct ptdesc *)_table; >>> + struct ptdesc *ptdesc = page_to_ptdesc(table); >>> >>> pagetable_dtor(ptdesc); >>> pagetable_free(ptdesc); >> >> And now observe that __tlb_remove_table() is identical to >> asm-generic/pgalloc.h pte_free(), pmd_free(), __pud_free() and >> __p4d_free(). >> >> And I'm sure we don't need 5 copies of this :-), wdyt? > > Argh, nearly, it has the whole page vs virt nonsense still going on. > Bah. Yes, maybe it can be unified into struct page parameter, which seems to be more convenient for conversion: static inline void pagtable_dtor_free(struct mm_struct *mm, void *table) { struct ptdesc *ptdesc = page_to_ptdesc(table); pagetable_dtor(ptdesc); pagetable_free(ptdesc); }