Received: by 2002:a05:6358:c692:b0:131:369:b2a3 with SMTP id fe18csp5334337rwb; Tue, 1 Aug 2023 00:16:49 -0700 (PDT) X-Google-Smtp-Source: APBJJlHXnM1tkw81fQTVqV3NjWKj0Q00G2kyripuwiycNqozY6d313PH6cyzaQnf9yObz3nmJG8R X-Received: by 2002:aa7:c6d2:0:b0:522:18b6:c01f with SMTP id b18-20020aa7c6d2000000b0052218b6c01fmr2475931eds.3.1690874209105; Tue, 01 Aug 2023 00:16:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690874209; cv=none; d=google.com; s=arc-20160816; b=DsFurvHeIpKwWQkkxTQHA84DEPzsrAUDdLYN+Rdy6SXHIs684Y3f49R+us+D5MEfiS TZmA+Ef1OSGq4BKHkzl1JuG/vKDTKErvaAcSC1ogPDpW2JT3eYQsTRyeSU7aYxwKbSLu V6gUBOA/y+kRuzmhh71tu1z3fJPpWDg6J6h+y9SIAzDEf7fXyWoYNibaRZ1zEMuQFUNh OFdpjp3KA3RUu/wb+YIkY+hIhVmfIfXg40Ea3TSjgJflpJaMvfNLLrFAuFyiPLWYQhDy mf4UeUDyEKognVKCeZzNGuvjgKXkZzAlM+72Np6LakoKx2rXkefCTZgLYtwSolxjB+bj B8TA== 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=KUuqxP8/fQp5nspUgWugvFBY3+vwAH7szB+pwZEXrlM=; fh=W5N31Dy9TFhD/Vt1myw8Bc60HdD6K4F/KFJr4dS3LaU=; b=umG8chQEPmwEiQV9Op0y5DA8iR5OtVXhrEX7zfgKVDursIg17JJ9U2JNZZC2nmi/kE 626kyW0FA6RVr9jTWZ7+Kh3r+Sf2w3N4dLCuL1TROdcOJohkA12lXPz8Z5cpM5Gd635b XPv5sYlY6X1fsihlH5CIeK7sXPTX9ZoKclLs29ZOrsdRnGjev71gA36l3xcKuganjbo8 8pKQM28b+khxMiTBGOHnUTwMs/wIxHhVfKP4hBuqOofT3BExE3yOgvbwqADK2is2nLll eDtPkv2wswNgV/oSyaqVwt4BnICNAB/o9ZDLpAueaOiPLT93ODk0q1c0i1MpIYY2inmp nhYg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k13-20020aa7d8cd000000b005221fd252c8si7907473eds.41.2023.08.01.00.16.25; Tue, 01 Aug 2023 00:16:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231959AbjHAGxM (ORCPT + 99 others); Tue, 1 Aug 2023 02:53:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58538 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229606AbjHAGxK (ORCPT ); Tue, 1 Aug 2023 02:53:10 -0400 Received: from out30-112.freemail.mail.aliyun.com (out30-112.freemail.mail.aliyun.com [115.124.30.112]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A9C8DC1; Mon, 31 Jul 2023 23:53:08 -0700 (PDT) X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R591e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018045168;MF=rongwei.wang@linux.alibaba.com;NM=1;PH=DS;RN=5;SR=0;TI=SMTPD_---0VonXRf3_1690872783; Received: from 30.240.106.99(mailfrom:rongwei.wang@linux.alibaba.com fp:SMTPD_---0VonXRf3_1690872783) by smtp.aliyun-inc.com; Tue, 01 Aug 2023 14:53:05 +0800 Message-ID: Date: Tue, 1 Aug 2023 14:53:02 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH RFC v2 0/4] Add support for sharing page tables across processes (Previously mshare) Content-Language: en-US To: Matthew Wilcox Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, "xuyu@linux.alibaba.com" References: <74fe50d9-9be9-cc97-e550-3ca30aebfd13@linux.alibaba.com> <9faea1cf-d3da-47ff-eb41-adc5bd73e5ca@linux.alibaba.com> From: Rongwei Wang In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-10.0 required=5.0 tests=BAYES_00, ENV_AND_HDR_SPF_MATCH,NICE_REPLY_A,RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY,USER_IN_DEF_SPF_WL 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 On 2023/8/1 00:38, Matthew Wilcox wrote: > On Mon, Jul 31, 2023 at 06:30:22PM +0200, David Hildenbrand wrote: >> Assume we do do the page table sharing at mmap time, if the flags are right. >> Let's focus on the most common: >> >> mmap(memfd, PROT_READ | PROT_WRITE, MAP_SHARED) >> >> And doing the same in each and every process. > That may be the most common in your usage, but for a database, you're > looking at two usage scenarios. Postgres calls mmap() on the database > file itself so that all processes share the kernel page cache. > Some Commercial Databases call mmap() on a hugetlbfs file so that all > processes share the same userspace buffer cache. Other Commecial > Databases call shmget() / shmat() with SHM_HUGETLB for the exact > same reason. > > This is why I proposed mshare(). Anyone can use it for anything. Hi Matthew I'm a little confused about this mshare(). Which one is the mshare() you refer to here, previous mshare() based on filesystem or this RFC v2 posted by Khalid? IMHO, they have much difference between previously mshare() and MAP_SHARED_PT now. > We have such a diverse set of users who want to do stuff with shared > page tables that we should not be tying it to memfd or any other > filesystem. Not to mention that it's more flexible; you can map > individual 4kB files into it and still get page table sharing.