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 963E6C43334 for ; Mon, 20 Jun 2022 11:26:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 23A288E0001; Mon, 20 Jun 2022 07:26:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1F4596B0073; Mon, 20 Jun 2022 07:26:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 08C1E8E0001; Mon, 20 Jun 2022 07:26:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id EA9BA6B0071 for ; Mon, 20 Jun 2022 07:26:58 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay13.hostedemail.com (Postfix) with ESMTP id C3BBB6013C for ; Mon, 20 Jun 2022 11:26:58 +0000 (UTC) X-FDA: 79598387316.09.F0A415F Received: from mout.kundenserver.de (mout.kundenserver.de [217.72.192.74]) by imf17.hostedemail.com (Postfix) with ESMTP id 39CC9400AA for ; Mon, 20 Jun 2022 11:26:58 +0000 (UTC) Received: from mail-yw1-f169.google.com ([209.85.128.169]) by mrelayeu.kundenserver.de (mreue109 [213.165.67.113]) with ESMTPSA (Nemesis) id 1MowSu-1nKr4Y2HIk-00qUr3 for ; Mon, 20 Jun 2022 13:26:56 +0200 Received: by mail-yw1-f169.google.com with SMTP id 00721157ae682-317803b61e5so71536437b3.1 for ; Mon, 20 Jun 2022 04:26:56 -0700 (PDT) X-Gm-Message-State: AJIora+HwuB4EvdXQnFQcAH90fKvXFsx1AW7UDISy4ZJeRpJ1TkLqbp7 meSq8EwWMNTAeCFgWnvCR9szi42rRh+HwfUUMr0= X-Google-Smtp-Source: AGRyM1u96dMc7NQSr64fMvJHkkfPwQF10BArwoGPZrI0++jMEyDVdKrxQlsin6cZpuKPKbHfsaERKjvgbnrA7J4ywnc= X-Received: by 2002:a0d:ca0f:0:b0:317:a2cc:aa2 with SMTP id m15-20020a0dca0f000000b00317a2cc0aa2mr11456604ywd.347.1655724415136; Mon, 20 Jun 2022 04:26:55 -0700 (PDT) MIME-Version: 1.0 References: <20220617145859.582176-1-chenhuacai@loongson.cn> In-Reply-To: From: Arnd Bergmann Date: Mon, 20 Jun 2022 13:26:38 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] LoongArch: Add sparse memory vmemmap support To: Huacai Chen Cc: Arnd Bergmann , Huacai Chen , loongarch@lists.linux.dev, linux-arch , Xuefeng Li , Guo Ren , Xuerui Wang , Jiaxun Yang , Andrew Morton , Linux-MM , Min Zhou Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:pOeq7OGvZgeZGuKYvs5V7CJ5m5U/mWBd84f5fH6xYzFUTN/xhhp Y9py4K0AUrFh1INd6iSDtL/OhmoxBJ/NexDwx9XnZ/M5nE2mGFuvqssBP2bku6wQpyL8TTT HpmcZJ5XhyiWNKjFN1180G4CYXgUHjUPEe4e2hHpEs22oqNNLx+3h+g1338yRgj1bZd/p8u OqJTwW86yH4Web5of0Wpg== X-UI-Out-Filterresults: notjunk:1;V03:K0:o6bDaZk5c8c=:O5Cuae3HlfkC/6xizTo7jR qZg5rn25M866YjLKg9zSmcEasR/cbYf2rCARK345hS/hg/z0AG73N/fVapRCJcrAhDnyoezkk 3NXtaKH67J28p5Nx+ABIIzM3NVDg0T0qk0wx6QKxB2meASbxaVZ4/bXBqpOiNJWWdu8ixzltW uurGZ7WMnxWOVsWBak94657wItX5+oXxoKZTeMpHBhCeb4V3ndKKYaoD3iosyHKuXeSgHrDe2 J80/QZm1IDQn3nLCG06jAv9qdB/pFq7A8fIOl+s56ii4XxqX/AUAwVbf4osEarOvNBC2l4W/L tGbIMXcfedbcOmmS4QMc/JL+ln9flVI4sHT21q7bsXK2C6eMtEiS4bfN/aL1CQBeewtzRXPcy pxvRdJMUCRHOE0OOu+mcwhEjnWKw+YFsxHxutkcHiRKF5owP6AYqGVHMyr8g3dKUkH2WOt0Ty MYy0EMk4cS4e6bnAu56Wk06IeVSxnCTzkcGSW7uPDhUdY8pkM05PUhjxZIqIkOnIjuZhEQiBx 1aaEug4pUIuJlZGx/Sdb+2chSX6ME0w56e18wYYz6ZzmhbDwn0Y4rVDT/txnLnEIW4wPyFnEx K4vD1o/YGOyv4lCL3/h7YsCxqMHiq56pKfmvnRhWaVWWfSU8nRPxT3oJ9DZGWSxMm9joyCOfu uQwhR534er2a0hQzqb+Vx7WnrgKD1/5jFZrJrc3WUA/MdlTJwXXyTsxAxOaFoUC2oT6g9L5DW mL2spWLrz61j0J47eGPcwz3pceKUtSy5yi00CA== ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=none; dmarc=none; spf=none (imf17.hostedemail.com: domain of arnd@arndb.de has no SPF policy when checking 217.72.192.74) smtp.mailfrom=arnd@arndb.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1655724418; 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=4F5YYVY00vwS0Gh9i4O+y9RYvWFra7wUHga9554NtVs=; b=vi7HN2uy44BEteoS1ZedvVncmT1TcN2P+1D4xTG8ccMDkFAl3rVYKZ86DjhN0Nmyu9/k4J GRSNOoGQaV22VZkRLWgipPq3/iHsebnzu1dtTGO01CvmbK2ucjzrqmxvgTdmG4pfV2M4fZ gim4oW5blFXzrK7jGGwPo3ciEubDWb4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1655724418; a=rsa-sha256; cv=none; b=27Ccte72CIa5HbKrGTjAeW/SZYP09nzcnWaOO+UmeO66/3SUY2Na7DcN1oPbcjySLxFdgV pSu22pXtuv0bu4Od4tjlwek7fgneO4dC9D6HwzjoPPiKRWmZxrjXtAzHm5ewWVsE7IPn0C tiwcdU5W/3f1Y2tdKyYLHkCargg8WpU= X-Rspamd-Queue-Id: 39CC9400AA Authentication-Results: imf17.hostedemail.com; dkim=none; dmarc=none; spf=none (imf17.hostedemail.com: domain of arnd@arndb.de has no SPF policy when checking 217.72.192.74) smtp.mailfrom=arnd@arndb.de X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: krwigdorryxmdqm81gwhxtqmt9ug7o5p X-HE-Tag: 1655724418-797563 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 Mon, Jun 20, 2022 at 12:24 PM Huacai Chen wrote: > On Fri, Jun 17, 2022 at 11:42 PM Arnd Bergmann wrote: > > > > On Fri, Jun 17, 2022 at 4:58 PM Huacai Chen wrote: > > > > > > Add sparse memory vmemmap support for LoongArch. SPARSEMEM_VMEMMAP > > > uses a virtually mapped memmap to optimise pfn_to_page and page_to_pfn > > > operations. This is the most efficient option when sufficient kernel > > > resources are available. > > > > I have not looked at this in detail, but from a high-level perspective, it > > seems very similar to the corresponding code in arch/arm64 and arch/x86. > > > > Can you try to merge the three copies into a generic helper and add that > > to mm/sparse-vmemmap.c? If this does not work, can you describe in the > > changelog text why these have to be architecture specific? > > It is difficult to merge, because LoongArch needs to call pud_init(), > pmd_init() and other similar things which are unnecessary on ARM64 and > X86. I can see that this part of the code is the same as mips. What is the initialization for? Can it be encapsulated in an architecture specific inline function (for mips and loongarch), with a generic version like this? #ifndef pud_init_invalid static inline void pud_init_invalid(void *) {} #endif Arnd