Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp1164044pxb; Tue, 17 Aug 2021 05:29:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz8PY7XxzuW1dmjMSBTEFZh4nJyGQ1LV+2x9O5NdYwUFZga+o0HM0opXmg7S7/L3rI5YC7k X-Received: by 2002:a05:6602:2436:: with SMTP id g22mr2762275iob.109.1629203363683; Tue, 17 Aug 2021 05:29:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629203363; cv=none; d=google.com; s=arc-20160816; b=LSZyRb1IvHcZLgp2Qhf0vetk5gfRKVGmelIvZMxrGIp6vrWKC7StJ4zGYcNgojvYaQ zfurgdEzxRBJgA2JgW8KQzU8RWdrDVZLeXICJlBR/zlfdpsUxioAaUcWVvxyVJ7Lixi/ coMzn3A4Yx1pZf7JT2rWZDG5iWDZSsG3Rr78LNCRuq50VQCEytsbsvfgac8TR7EFuLJV UEKqVomYFidTpji9OyfWltBl2L3sksasLSnYdl02xyn1LUBeUx1wPIOIAUJU0KplDLS5 AftA75CBUeAoUP8C55R+FrLdqKrdVUPBgEg7IY3MkGTfHYDEHkU93bLUihRB3EMNkrYU tnbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=i5GEOxhJC+X6hk3uJOQSth+y052VdXubyLMOywle/R4=; b=DpjBNr/fLCSYYiF+3giWDfDyI4jBlFmtUh3G646RjWYJJYyVAPoaizVpz7zuaj1K3v 6iZZA1a6A4MbohIFNsVIdwna6NWWTTF8yDWVjanaPswfF0iUdIgRiX9wZ01Vy7r7Dgmp m8q/oKSvIjmf7OpEP8LIBsOpeAfnMXxyOJgR9H6lqh5weMiAiOKZcv02Cvafcc2PRGaa 5gIEdkiqflsF4ritn/oDos4vUbPZEc50K5qLpy0OaVKBgU1yDEAxeI9Hb6zm2P+indEr uLzhxHKIcA/8GTDy08NHBauwPDnKt4Yl34KFgwfc5RrqAjco7+P2XeFA7Yni1LdtppMp 38uA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=BMtr3fTu; 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=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r13si2411008ilo.33.2021.08.17.05.29.11; Tue, 17 Aug 2021 05:29:23 -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=@gmail.com header.s=20161025 header.b=BMtr3fTu; 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=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239755AbhHQM1u (ORCPT + 99 others); Tue, 17 Aug 2021 08:27:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56498 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236683AbhHQM1r (ORCPT ); Tue, 17 Aug 2021 08:27:47 -0400 Received: from mail-io1-xd35.google.com (mail-io1-xd35.google.com [IPv6:2607:f8b0:4864:20::d35]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 67035C061764; Tue, 17 Aug 2021 05:27:14 -0700 (PDT) Received: by mail-io1-xd35.google.com with SMTP id z1so3252085ioh.7; Tue, 17 Aug 2021 05:27:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=i5GEOxhJC+X6hk3uJOQSth+y052VdXubyLMOywle/R4=; b=BMtr3fTuMzn8aLeOLWhz49DE/VSAu8ytkw8qR4lp3JTE7VnxSL5X/LNrmZGcOX5IHl CPS+/VRUhJIoFSPMEmL1c5JZB+xn7oaEFIqbYqy5811SXYSCQggqhTahO4LuB5Sf86um rmXIWB1Q2F++tkBsNHEoYTnCR/3AE81rXwBGFFCw9uyr3a3wwGPxvRT4lMCcRa0HwIcl 7DFoLo7siaF9rV34bLfM+IJqv4sC+jmcIOmP1YESnxtbxxTZ3/7azdYCfhtvPEdkFFHO +kuz28zTb95oQKZL7DVx60Wsqt5ht8dQyr0sneXVw1tz3tEuj6HqI5dTYL3Zn5oFd0cu PDTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=i5GEOxhJC+X6hk3uJOQSth+y052VdXubyLMOywle/R4=; b=SmUXbSApqLFw/T3ebKpd91z0he+0nzdBop2w+NZUU2XznA/0FEVcHeA/mQxHKIlE6E 61evZkMllz6cwOZaTLU4FP9FEv40hHQ4uVGauIwI+aReWuSw5iuEipmHkUGCg6Xa73td SAaTUyRWboean/FEvAG8O8I/RD/sTaDZPwFOzM6pYW3r5/1L5a9QIAwgsvgOyI8ufKfC 54Wxjbomy16XDN1vx5vS1oUpQwPtXVjChWQbaM7bw/ZLeS6iGEqkMSncBsqxa6CjOypa Iy4SBn6d6T9HdXenvLKtMzrBRUJPA/w6sBLYNQ8WWhA9ST6KFh74HAoqI93UN5KJglgF CeRw== X-Gm-Message-State: AOAM53006+GDl30KnahEqlQk0T81a7JdoNUbSOMyVbDLQBlBBg9eBnWY FM9hPpCYnoOXHlAOfCzICy8QdFbteK408gOxon14Bl3129Uk2A== X-Received: by 2002:a05:6602:48c:: with SMTP id y12mr2723179iov.14.1629203233860; Tue, 17 Aug 2021 05:27:13 -0700 (PDT) MIME-Version: 1.0 References: <20210816065417.3987596-1-chenhuacai@loongson.cn> <20210816182750.26i535ilc6nef5k6@offworld> <874kbpp5zd.ffs@tglx> <871r6spn0r.ffs@tglx> <87y290o304.ffs@tglx> In-Reply-To: From: Huacai Chen Date: Tue, 17 Aug 2021 20:27:03 +0800 Message-ID: Subject: Re: [PATCH] futex: Fix fault_in_user_writeable() To: Peter Zijlstra Cc: Thomas Gleixner , Davidlohr Bueso , Huacai Chen , Ingo Molnar , Darren Hart , Thomas Bogendoerfer , "open list:MIPS" , LKML , Xuefeng Li , Jiaxun Yang , Hongchen Zhang Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, all, On Tue, Aug 17, 2021 at 5:45 PM Peter Zijlstra wrote: > > On Tue, Aug 17, 2021 at 11:05:15AM +0200, Thomas Gleixner wrote: > > Huacai, > > > > On Tue, Aug 17 2021 at 15:38, Huacai Chen wrote: > > > On Tue, Aug 17, 2021 at 3:07 PM Thomas Gleixner wrote: > > > On X86, it returns 0; on MIPS64 without patch, it hangs in kernel; on > > > MIPS64 with this patch, it returns -1. > > > > As expected. > > > > > Then, I want to know, on "W implies R" archs (such as X86), should it > > > return 0? Maybe return -1 is more reasonable? (because the VMA is > > > marked as write-only). If this program should return -1, then I don't > > > think this is a MIPS-specific problem. > > > > No. mmap(.., PROT_WRITE...) is simply impossible on x86 and implies > > PROT_READ as documented in mmap(2). > > > > So why should this fail and only fail in the fault case, but succeed > > when the PTE is already established? > > I wouldn't actually mind if it failed on fault -- it's the 'best' we can > do on x86. Doing a RmW op on PROT_WRITE is silly and deserves all the > wreckage it can get. If we must fix it in arch code, there are two methods: 1, don't use write-only map (modify protection_map as Liu Lichao did); 2, override arch_vma_access_permitted() to do extra checks. Thomas, which is better? Huacai