Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp2333219pxk; Sat, 19 Sep 2020 23:26:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy44KsyWU4gue2lOuUw7CDct3yUCuW+/ObnK1GDGBcXSQV6Uty2v+WBDtTWC1QIVYS1sg13 X-Received: by 2002:a17:907:9ed:: with SMTP id ce13mr42333322ejc.180.1600583160787; Sat, 19 Sep 2020 23:26:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600583160; cv=none; d=google.com; s=arc-20160816; b=RbLfNPHeLvLEBHCL9yZ9MsgC4ib0q04XEpcu+r5Rs5ldJQa7i18N6H8h9LVBSr/gtE 6T3tKPsky5u/1d7ofIsccBFDGd+1AFQBDxKTTzVXNYlPxPgDDQt3m68gI8ZrQOXblVKq IQ5sVJCVCjVj6FNoEwjn3tuHHboDZ+8XYQqWq5u3M0/xho5fOeGfK+baAGGe+BbVKNpk NAiij7/9MhVwPTtBJJ2Ixho/LKyfu2jHglYjGR/49QMOGHFXFUW5Swk2wiV+MpCzXpIE w3TPoClU4QeGGPwWaBU9AoRmR6z1uY1AHNdSQSBxFFpMdV5VTXtAypQBOm49crt9wJyF NQqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:references :in-reply-to:subject:cc:to:dkim-signature:dkim-signature:from; bh=7fzEIVZ8tkjS2ndcSNVbu7zYvMlAYQ/NWyoKHxP3faw=; b=lJQlnAn4AUWmDkKNReop2zEJl2sjQIYFfe7DR6s2v+voZRfBNY4oB69u5gDcQl+IqO iZnEi5cN7OEds9E6dVQt+GzRMYUYOVbVUZDinRtlrwRoJ8l98rpAi3LprMT6+SKwWdMu DWbyF3jMQ70dIJu/fnoOv+jdUk0icr5xiRXyOelkTKE8aBxBilpN/Cfma5aT7bEGqk1W 8ZdZQrsTEfnZUzb44lgcsvjJBeiPvrwcrE99uCE8zek04/sDTCUSH/qKr/OTz08qwB3Y BC6rbHiHHT+dO2ycHOtdlw9hX0So+aRCFY+UxsjzXw3//BRuqXb3zaT6A1S5O8p0OYy+ JqnQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=ZdXKJXZG; dkim=neutral (no key) header.i=@linutronix.de; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gv22si5801129ejb.536.2020.09.19.23.25.36; Sat, 19 Sep 2020 23:26:00 -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; dkim=pass header.i=@linutronix.de header.s=2020 header.b=ZdXKJXZG; dkim=neutral (no key) header.i=@linutronix.de; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726326AbgITGXb (ORCPT + 99 others); Sun, 20 Sep 2020 02:23:31 -0400 Received: from Galois.linutronix.de ([193.142.43.55]:44382 "EHLO galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726200AbgITGXb (ORCPT ); Sun, 20 Sep 2020 02:23:31 -0400 X-Greylist: delayed 74005 seconds by postgrey-1.27 at vger.kernel.org; Sun, 20 Sep 2020 02:23:29 EDT From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1600583007; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=7fzEIVZ8tkjS2ndcSNVbu7zYvMlAYQ/NWyoKHxP3faw=; b=ZdXKJXZGwHl2KR4hH2q5cUf4dfgyefKiq5FJK4CdaiUzjuDw/zsfzyDwUT0Vb3vxnFMmA2 GbGWdXGNam/BxDVayB/9W9lKW9cEGTy4k40j+g76SxOFKgyaP4kz+dJNXxDya0A6vacAHQ etbQkUBwH/pk7aVUdpmHO5hYMDrDQDP5KgAuzWF1TeBFDWPD7hNOa95TYtIkpNlkk7xqPo YZDmeBiMP6cP8bfVBIDyjT3CMK5xsUBeFdgoJYUZ63lHnZ5f4NanBw5QbC7HkoYRGwgBsy Bsz/o+mfvaeq05vAqvejTR9EViDozt0cf4n5wRrzHjQfCFUXuG/KuqeDB61mqg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1600583007; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=7fzEIVZ8tkjS2ndcSNVbu7zYvMlAYQ/NWyoKHxP3faw=; b=yd7i2KhtoQQ4HuYBfV4K2iDNHIVcqLD+eOCjOAMiHylcYwCzvC7AWTYk8VGrY+iNFLAu2j 3+A+8QdYt6q7wFBw== To: Daniel Vetter Cc: LKML , "open list\:GENERIC INCLUDE\/A..." , Linus Torvalds , Paul McKenney , X86 ML , Sebastian Andrzej Siewior , Peter Zijlstra , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Daniel Bristot de Oliveira , Will Deacon , Andrew Morton , Linux-MM , Russell King , Linux ARM , Chris Zankel , Max Filippov , linux-xtensa@linux-xtensa.org, Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , David Airlie , intel-gfx , dri-devel , Ard Biesheuvel , Herbert Xu , Vineet Gupta , arcml , Arnd Bergmann , Guo Ren , linux-csky@vger.kernel.org, Michal Simek , Thomas Bogendoerfer , linux-mips@vger.kernel.org, Nick Hu , Greentime Hu , Vincent Chen , Michael Ellerman , Benjamin Herrenschmidt , Paul Mackerras , linuxppc-dev , "David S. Miller" , sparclinux@vger.kernel.org Subject: Re: [patch RFC 00/15] mm/highmem: Provide a preemptible variant of kmap_atomic & friends In-Reply-To: References: <20200919091751.011116649@linutronix.de> Date: Sun, 20 Sep 2020 08:23:26 +0200 Message-ID: <87pn6hc6g1.fsf@nanos.tec.linutronix.de> MIME-Version: 1.0 Content-Type: text/plain Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Sep 19 2020 at 12:37, Daniel Vetter wrote: > On Sat, Sep 19, 2020 at 12:35 PM Daniel Vetter wrote: >> I think it should be the case, but I want to double check: Will >> copy_*_user be allowed within a kmap_temporary section? This would >> allow us to ditch an absolute pile of slowpaths. > > (coffee just kicked in) copy_*_user is ofc allowed, but if you hit a > page fault you get a short read/write. This looks like it would remove > the need to handle these in a slowpath, since page faults can now be > served in this new kmap_temporary sections. But this sounds too good > to be true, so I'm wondering what I'm missing. In principle we could allow pagefaults, but not with the currently proposed interface which can be called from any context. Obviously if called from atomic context it can't handle user page faults. In theory we could make a variant which does not disable pagefaults, but that's what kmap() already provides. Thanks, tglx