Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp2384416pxk; Sun, 20 Sep 2020 01:50:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyB0PqP43Jl+Zwgyna/dDodhvYrlzrrJlm+Sz3O/8trKwn4ykEfRuNhOyRRFu7YUintvDrK X-Received: by 2002:a50:abc3:: with SMTP id u61mr45657580edc.129.1600591856133; Sun, 20 Sep 2020 01:50:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600591856; cv=none; d=google.com; s=arc-20160816; b=U9Oh4UdXtv+RbEQ3HzO4iMbLZ+jeuSKuWiONaxYP0XTTpXofKX2Kqde5mnOgDOqcVW 7qn+7NgrQ/ciYrhgUUG23Tp68AnUr+6ztSsraaV9V9YsRje3Adz5zZ+NjNYFUf9tt6QP DuMRP9tvDwoM5Pnp930H976TCHCbrkX3vu9APc7q3qVZ64z//yc+PDGWiwGetJicY86w RnTCesKlXGYPiIIzJOIK5GtbwEhJ+zU344UJBEreDHKHtZNkbZXz5xNT+4vet/DFHmhB 9S/GLI7C/W8c4mdK0qGxDTlZ+IsntImRKbFjqq4Cw+MkxN0ry5wOz7P5hbHwNUxdK9VZ iXJg== 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=yl4SJva1ZaL/QSosb5XX7oiMR9yOUZ2hryRMeN6gUOs=; b=l963h16+xnNwUn98YUDyP+M0YJMqPCO6vwEWna1qsImFW/0iqinT09XER/a0rAHdHW Thj8hele75nvYoWhJrVNDhGXfPNTApoQfYH4C2E49nw++V+CviNd1gRihhToPc+T0pUk 6CEKQ14/icr9Xc64HA6xIRxZ2LsoI4mDP/iPtnMo9HzoSe4x2Ojn1BT3Hpo/F7SwxIhU y/2ToZ/v1pNIezQ+wGJoPj2EMMNGGVGndY4zCfsuHKoiAcNSoU3ODDEsRxqjbzpm4G3u rJXQsr6TBoSUWgkofLZobXyC8u6hnjf7qoJ6+bktGjFLMKuqA60Z24/S/ai2YhSt8QNI ZblQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=h8jv+ylt; 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 x15si5689016ejs.713.2020.09.20.01.50.32; Sun, 20 Sep 2020 01:50:56 -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=h8jv+ylt; 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 S1726353AbgITItY (ORCPT + 99 others); Sun, 20 Sep 2020 04:49:24 -0400 Received: from Galois.linutronix.de ([193.142.43.55]:44998 "EHLO galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726247AbgITItY (ORCPT ); Sun, 20 Sep 2020 04:49:24 -0400 From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1600591762; 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=yl4SJva1ZaL/QSosb5XX7oiMR9yOUZ2hryRMeN6gUOs=; b=h8jv+yltDHIngnBBGJjPbxbwRp4WWvfUYCE010JZcD8mxV4UaeO8dLdDu13Q2cG+LY8JOQ h6npHbPhilGj3v1VUqWxvnxWjS/ksALdSUA+5C9fXgz9TR+62SaZPqFm9CDQlxwGmO5sxH Og/nMSeW9my8zlDQTOZZtLu/e9zkMmPgdx5NK5E8Rcfn4iS1ni7EpBlci97FKZLWMkER3O +JFJopKrMaT622cTfw+fq7PTs6AJTMpiNhuh5DlxWwRcA1+vumWCIqGRFavPq8Rwh2wOji LMGpm7pbhOs/2HMUMaIGkJEZas3RBbG5QRgXaIHLQPqkcnXaia1X2M3U1G452Q== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1600591762; 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=yl4SJva1ZaL/QSosb5XX7oiMR9yOUZ2hryRMeN6gUOs=; b=ZMmhQ6D75ka6LNiomg7OC2DwIv8yEqOFqmHU4LlJlX/duWyJlSPDqvfBsTbUq7MYp5KhFm dW4ZRnByLA6ZBcCQ== To: Linus Torvalds Cc: LKML , linux-arch , Paul McKenney , the arch/x86 maintainers , 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 , Daniel Vetter , intel-gfx , dri-devel , Ard Biesheuvel , Herbert Xu , Vineet Gupta , "open list\:SYNOPSYS ARC ARCHITECTURE" , 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" , linux-sparc Subject: Re: [patch RFC 00/15] mm/highmem: Provide a preemptible variant of kmap_atomic & friends In-Reply-To: <87mu1lc5mp.fsf@nanos.tec.linutronix.de> References: <20200919091751.011116649@linutronix.de> <87mu1lc5mp.fsf@nanos.tec.linutronix.de> Date: Sun, 20 Sep 2020 10:49:21 +0200 Message-ID: <87k0wode9a.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 Sun, Sep 20 2020 at 08:41, Thomas Gleixner wrote: > On Sat, Sep 19 2020 at 10:18, Linus Torvalds wrote: >> Maybe I've missed something. Is it because the new interface still >> does "pagefault_disable()" perhaps? >> >> But does it even need the pagefault_disable() at all? Yes, the >> *atomic* one obviously needed it. But why does this new one need to >> disable page faults? > > It disables pagefaults because it can be called from atomic and > non-atomic context. That was the point to get rid of > > if (preeemptible()) > kmap(); > else > kmap_atomic(); > > If it does not disable pagefaults, then it's just a lightweight variant > of kmap() for short lived mappings. Actually most usage sites of kmap atomic do not need page faults to be disabled at all. As Daniel pointed out the implicit pagefault disable enforces copy_from_user_inatomic() even in places which are clearly preemptible task context. As we need to look at each instance anyway we can add the PF disable explicitely to the very few places which actually need it. Thanks, tglx