Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp1986924ybh; Fri, 24 Jul 2020 01:17:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy+DmvIvcxUPTP0ZYGEYXoQUlQBkQllYW1ETLXNesYLW3S0HrIiqNJh1fIW+X35zAYG7seh X-Received: by 2002:a50:f149:: with SMTP id z9mr7895996edl.167.1595578654159; Fri, 24 Jul 2020 01:17:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595578654; cv=none; d=google.com; s=arc-20160816; b=p5QKIZ5s1xDsWIw4il7C/Z94H5UyI7jnmdEPT018Yu64Yrt4YvpbiQ00ddHa6elr2R ngeJNzyUQ+lpxN9/qBL02/5coJtj6bFNAFZ06iyzLMfiBH+cOButzxA+syExnCR39/EV QzjtEjsWv7IUYIIfWjEGMRpSdsUuol4gZYHm8adZtjupP0ouhe8yM3kVOPftlNHp5VXe 67Nkh25F06yYQ87VwuTX6UE/ugUAgCqIS8G+KiIKGKr4itgAuNZmfWZmsntdosa4P+JS pZH4zFTHi17HVr+Q0Q8wOo57BYOqXLcRQsDRSMj+vDjakaVPtuq6tbRUMf0wgxthyZxV B78g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version; bh=xUMjTe8c3fhaLq/RnvGh2kAqXxCXxzCXrC+AEFe+m24=; b=rCY+u6XF0Dr4nQVTYje5ETlTdoT3OxAsfVamOLpuM5hWGMQIJU25UQvcviuhvY2RHk RJ9n6Dljhkc5r0PJW6fsKqtpWzw7zgmGQfA/bZwB/8J9LF60nI0PwV3cXrildGtu+R9t aR4nsIUGVRa0gAMthzGx8gtGvw3kCrAKNz/OnWjNWUhjFQ9sF+kjofttsgqKshHBJa5w PdTy3io7j1Y8C7GhAF240lnuWZ2zxtK76Hf0GTY5tiFuZmp3ojF/ibP57FXMVPzllzcG WAg2G7AlCsapDOEzZAPBUxpwvKy5djCg2AFiR9okMXj6Dy+mcTRWfo+nbGdcsrB4CCC+ ibLg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bk19si154664ejb.338.2020.07.24.01.17.10; Fri, 24 Jul 2020 01:17:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726703AbgGXIOq (ORCPT + 99 others); Fri, 24 Jul 2020 04:14:46 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:44661 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726437AbgGXIOp (ORCPT ); Fri, 24 Jul 2020 04:14:45 -0400 Received: from mail-qt1-f174.google.com ([209.85.160.174]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.129]) with ESMTPSA (Nemesis) id 1M42zo-1jysqq0f9k-0003bn for ; Fri, 24 Jul 2020 10:14:44 +0200 Received: by mail-qt1-f174.google.com with SMTP id o22so6090206qtt.13 for ; Fri, 24 Jul 2020 01:14:43 -0700 (PDT) X-Gm-Message-State: AOAM531Eitt9lseBhkip8q7TGf2XPd5Lf3vC7Pepj5YwLUX/XLVtF7H0 Z4jgR8Y5tofbNeOaia/key/ASzQCQ8F9yPDY3ZU= X-Received: by 2002:ac8:7587:: with SMTP id s7mr8295990qtq.304.1595578483047; Fri, 24 Jul 2020 01:14:43 -0700 (PDT) MIME-Version: 1.0 References: <7cb2285e-68ba-6827-5e61-e33a4b65ac03@ghiti.fr> <54af168083aee9dbda1b531227521a26b77ba2c8.camel@kernel.crashing.org> <418d5f3d3f42bbc79c5cf30e18ec89edfe2dbd26.camel@kernel.crashing.org> In-Reply-To: <418d5f3d3f42bbc79c5cf30e18ec89edfe2dbd26.camel@kernel.crashing.org> From: Arnd Bergmann Date: Fri, 24 Jul 2020 10:14:26 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v5 1/4] riscv: Move kernel mapping to vmalloc zone To: Benjamin Herrenschmidt Cc: Alex Ghiti , Palmer Dabbelt , Albert Ou , Linux-MM , Michael Ellerman , Anup Patel , "linux-kernel@vger.kernel.org" , Atish Patra , Paul Mackerras , Zong Li , Paul Walmsley , linux-riscv , linuxppc-dev Content-Type: text/plain; charset="UTF-8" X-Provags-ID: V03:K1:HDwZL9icJfxyMmpxtY3DvBs7U9uzzEZ0jHaAzBBDsJ2so8pPZPS /wu/uOwXTpyPAdvrdgc4tnVagGr+uPCi76sAKJu6/QBK/4wi+QMt9bYLK9z+5BAXlPfQC8L lNVgPy1/NlmfVW0LriHqIpzdJCRzPS0ouPnnOVWdZBWTfn7nIfjdAyE726HqyxyPwG2JIug P1+JDJ5B6Vxw4iUncm3qA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:3PfhPQFARng=:lZ2ZWn6Ajn53EoqwHCDtHX UrEtsq7ay2AIwwoaVqYR1sv9V4WgUpUsOkgzWchvn2cUt95RxwJW5ZeF2dLGZRyXbOYD6YYLA 96V3YbIoN9M4k9KtVyJ7h3N4/rCeOA5iyrwEY5H6SjQXXYIhDZBsbTuhJYrotVp9hrwCqYwKE 0A4knKgLbl/daJmCATmq8BASlWR0xmMfjOAV1t/nYQsUB/rG1w9lngehZNluY6K6mPzhfNEzZ IdKvuscX69ZwcpM9jJTdRGCjtVS2xf8S5JTQH7JkXTanqF8SRZrmjL2Pac93vR934TL9zl3xx 4Z0zBhFKV+axcFsCC6ciZT5q3cWBVeplIzbD3QofoCDTHnpTsNSqfzTAbP9A6Vj4ATBU2CamC iaSanrrvDxYBsvcDZLRWoauYgpIBPzLxzH8OxAaToxp+C9EjNZUIfOybSmZTAjfLlA/ATLW+J LQGmTQokI5jxyjDB9DeXNcrdaw/HwWGNQnisBK4eDz3jfjzW2fpR/IJNEsT8GLkn4qWEywve2 /cPTPCKk1/VYlw14VK0e6ruFH/6Ii6gZUE9Y46PzKFLXA2rqoLUooRPlPztoch3E9dqqCIbO5 pWmXmemJXA1EuaBsqViGldVKFIOYzJo72lnkzviYIvykms52QT9WFTiOVZwLRbQ4miCL/2bUW IxOkm4LhdFM5Dbre/mgNQe/f8Z8JhHOG5hKSUF5CMumvGrYZvOXSMHL8TSBP6KlENyHb17ilG MAhgGIlgAOnnR/d0emkx/JpidMkSa8oCyPjDd00xtUBY0KtLtEZUaEYNnZepZlg9osHqxebj7 UTxzWF/T3hqkXY7WkwtWZzNe+dpRXozJn6Fr4SRZXRCCtoczwPqlvJm9uEI04SokT9Kht0tM6 JxYgrWjfiLIkda034QKfWEC7nzKhXOc9/piHRTKbNdOlxdeGMmGRjxLCI51p/TLVuhiS1VVuK lByu/L20B+iqWcBpeePZ0ms4XblV+OAI2Mn1tL797sTaAMvol/sWY Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jul 24, 2020 at 12:34 AM Benjamin Herrenschmidt wrote: > On Thu, 2020-07-23 at 01:21 -0400, Alex Ghiti wrote: > > > works fine with huge pages, what is your problem there ? You rely on > > > punching small-page size holes in there ? > > > > > > > ARCH_HAS_STRICT_KERNEL_RWX prevents the use of a hugepage for the kernel > > mapping in the direct mapping as it sets different permissions to > > different part of the kernel (data, text..etc). > > Ah ok, that can be solved in a couple of ways... > > One is to use the linker script to ensure those sections are linked > HUGE_PAGE_SIZE appart and moved appropriately by early boot code. One > is to selectively degrade just those huge pages. > > I'm not familiar with the RiscV MMU (I should probably go have a look) > but if it's a classic radix tree with huge pages at PUD/PMD level, then > you could just degrade the one(s) that cross those boundaries. That would work, but if the system can otherwise use 1GB-sized pages, that might mean degrading the first gigabyte into a mix of 2MB pages and 4KB pages. If the kernel is in vmalloc space and vmap is able to use 2MB pages for contiguous chunks of the mapping, you get a somewhat better TLB usage. However, this also means that a writable mapping exists in the linear mapping for any executable part of the kernel (.text in both vmlinux and modules). Do we have that on other architectures as well, or is this something that ought to be prevented with STRICT_KERNEL_RWX/STRICT_MODULE_RWX? Arnd