Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp615895ybh; Wed, 11 Mar 2020 07:30:33 -0700 (PDT) X-Google-Smtp-Source: ADFU+vv6DUhTQ8GzNW37addND/NYAf4oqtrKWBsa5Y5S4K3pzlgIK7jT4Ceb47XlKp75fTF50RxH X-Received: by 2002:a9d:73c7:: with SMTP id m7mr2578828otk.69.1583937033640; Wed, 11 Mar 2020 07:30:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1583937033; cv=none; d=google.com; s=arc-20160816; b=RlgPQtcoiAD3nQg7YenQLPwP6Kgm1gySworMf+aEY7oq+g0JgB1O+7KqcVI8zFSnk8 eY0o98qLyajfUSIEycZokUph+E4rSrB8b1j6ASQmub2mFEjKLn+gI9F1T2N5VnkbM3x0 9La4VH5wsaqi0DLQlSbKr782wr2Sog31D0Pgm0IndNfKyqhU9u/o5LOgUEzw3gjAOgk+ hl+hAjd7VTILrAl97GNpaRJ6CjDba4MY+3LTrOU9ChEbvhT569vpKcPgZynbB5H3ZXLI 7ryCzwAFjY25oR19Tk0WPoJXhtiQa3BFg4IXoaey3aSVBJcbSYZnw6xin2O4T01XpmBO NMaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=JTL1nn2Iqvf7N4l/HdzqulcN/1JkJigMsLj/bWnkpYE=; b=iq6yzSv/cgrRcDWuhcLlNvszG2pfxr1zsA8eDr0hHahYn1onRcPxTWaqnRgG7YcH/v A1uWE71Hksmgk5XLJIBY/GDcrU3uAEM+aqrANI3u/U9nv9CI5pSPh03zucXK1WX9h+3D fMdXhDUvo0v++XYG9HPNbHbiVblLtiX4uVgd1t5KFZHLJghzkG3x9x1CwpYvgwJthwJW kDeE2oH+5Mx0g+OyC6W8V3AoFHm/7zsYI8nVz1eUkIkQfkxynxu0hfBkT4CuNLUJZPAh 72sUBxJWMb5OALlMxFIEVLO2M6Hsqa3s/I32G098ZTo1ufkfX7tj8QvRpukg9rPZ03Nj j5Mg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c4si1183355otp.218.2020.03.11.07.30.18; Wed, 11 Mar 2020 07:30:33 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729694AbgCKO3L (ORCPT + 99 others); Wed, 11 Mar 2020 10:29:11 -0400 Received: from foss.arm.com ([217.140.110.172]:50372 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729057AbgCKO3L (ORCPT ); Wed, 11 Mar 2020 10:29:11 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 3CF0F31B; Wed, 11 Mar 2020 07:29:10 -0700 (PDT) Received: from arrakis.emea.arm.com (arrakis.cambridge.arm.com [10.1.196.71]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AEA6A3F67D; Wed, 11 Mar 2020 07:29:07 -0700 (PDT) Date: Wed, 11 Mar 2020 14:29:05 +0000 From: Catalin Marinas To: Arnd Bergmann Cc: Russell King - ARM Linux admin , Nishanth Menon , Santosh Shilimkar , Tero Kristo , Linux ARM , Michal Hocko , Rik van Riel , Santosh Shilimkar , Dave Chinner , Linux Kernel Mailing List , Linux-MM , Yafang Shao , Al Viro , Johannes Weiner , linux-fsdevel , kernel-team@fb.com, Kishon Vijay Abraham I , Linus Torvalds , Andrew Morton , Roman Gushchin Subject: Re: [PATCH] vfs: keep inodes with page cache off the inode shrinker LRU Message-ID: <20200311142905.GI3216816@arrakis.emea.arm.com> References: <20200212085004.GL25745@shell.armlinux.org.uk> <671b05bc-7237-7422-3ece-f1a4a3652c92@oracle.com> <7c4c1459-60d5-24c8-6eb9-da299ead99ea@oracle.com> <20200306203439.peytghdqragjfhdx@kahuna> <20200309155945.GA4124965@arrakis.emea.arm.com> <20200309160919.GM25745@shell.armlinux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 09, 2020 at 08:46:18PM +0100, Arnd Bergmann wrote: > On Mon, Mar 9, 2020 at 5:09 PM Russell King - ARM Linux admin > wrote: > > On Mon, Mar 09, 2020 at 03:59:45PM +0000, Catalin Marinas wrote: > > > On Sun, Mar 08, 2020 at 11:58:52AM +0100, Arnd Bergmann wrote: > > > > - revisit CONFIG_VMSPLIT_4G_4G for arm32 (and maybe mips32) > > > > to see if it can be done, and what the overhead is. This is probably > > > > more work than the others combined, but also the most promising > > > > as it allows the most user address space and physical ram to be used. > > > > > > A rough outline of such support (and likely to miss some corner cases): > > > > > > 1. Kernel runs with its own ASID and non-global page tables. > > > > > > 2. Trampoline code on exception entry/exit to handle the TTBR0 switching > > > between user and kernel. > > > > > > 3. uaccess routines need to be reworked to pin the user pages in memory > > > (get_user_pages()) and access them via the kernel address space. > > > > > > Point 3 is probably the ugliest and it would introduce a noticeable > > > slowdown in certain syscalls. > > There are probably a number of ways to do the basic design. The idea > I had (again, probably missing more corner cases than either of you > two that actually understand the details of the mmu): > > - Assuming we have LPAE, run the kernel vmlinux and modules inside > the vmalloc space, in the top 256MB or 512MB on TTBR1 > > - Map all the physical RAM (up to 3.75GB) into a reserved ASID > with TTBR0 > > - Flip TTBR0 on kernel entry/exit, and again during user access. > > This is probably more work to implement than your idea, but > I would hope this has a lower overhead on most microarchitectures > as it doesn't require pinning the pages. Depending on the > microarchitecture, I'd hope the overhead would be comparable > to that of ARM64_SW_TTBR0_PAN. This still doesn't solve the copy_{from,to}_user() case where both address spaces need to be available during copy. So you either pin the user pages in memory and access them via the kernel mapping or you temporarily map (kmap?) the destination/source kernel address. The overhead I'd expect to be significantly greater than ARM64_SW_TTBR0_PAN for the uaccess routines. For user entry/exit, your suggestion is probably comparable with SW PAN. -- Catalin