Received: by 2002:a05:6358:4e97:b0:b3:742d:4702 with SMTP id ce23csp4065273rwb; Tue, 16 Aug 2022 13:51:33 -0700 (PDT) X-Google-Smtp-Source: AA6agR4BR7OP4uLeBWFGm1w3VnY6RRIrKCFT/p1nxnAV/5uehqBHLQiCAXf1nHjB1KdV7jGStY5n X-Received: by 2002:a63:d617:0:b0:422:4d27:5817 with SMTP id q23-20020a63d617000000b004224d275817mr18228534pgg.412.1660683092822; Tue, 16 Aug 2022 13:51:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660683092; cv=none; d=google.com; s=arc-20160816; b=Kwo/X6NjdiV1/TkN7f2ibTTIMetfA+hU0hBKw86dsvfNnym1MKOYYHtnCJ0MBCU8p/ N9JlIq1jHgt1/Xlm6lTRARThtPavppJHqqNbJ6mnHH6BIbqWb94SlllqqnGsEpvLp5km /ikTDNpOph1RSvneYc+R2oWz5OhDm/NcRi9M2UZ/stOp/m+cn91DZYJk2oFfSQ63NZKy 7pxx65Yhw4F1/p2WW6MEad/ifz5yTGF9pVgyfx86+CyicQWdyKRXcabkkO99Pz3//WDF ndEWpXsC23gllUoi1sItoy5mzcUxNxBBPkGsjBBxcfhPWWWU488cMvdkls8kOGGaguqO TpQQ== 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=Fxf9g37yt4QV3sYboUS8drWbHKZT6H8bVu/xJaEn0Rg=; b=jkhDRrnMqU6tdAvZjmdlKRzIW2gv7mghqsldfwYFcuT2mk1pg14IGQ3Qizf6iepgR4 5iCvMzEGFpkvpOC/GYacO9RgEAC4a3NCFY0jfOy7Xh1ENK0S4sUFQ1bLpn7yIKwmL/xE 45IEWSTINsLU9FqxlLk/1sg1hGtFQXTPwoq0JXnoAhMTRRvKG/QcPLF+JZ+YzhB0WPbX IRSbTSgIUuvUgRJSfC8sqVTk2uZ+Xlyoj7aW2dXrG8QNKO+dZHwPWnltpgOmkh2naSSU Y14B/FfQ4BtW6xEglKqmRULJ1iM8n8idXK6h7QayBdM7IVGlxXse/1qFHQMi52+6y2IB QFFg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=OnJanxmt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w4-20020a170902904400b0017142393db8si13684076plz.285.2022.08.16.13.51.21; Tue, 16 Aug 2022 13:51:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=OnJanxmt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237041AbiHPUoY (ORCPT + 99 others); Tue, 16 Aug 2022 16:44:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51458 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236635AbiHPUnz (ORCPT ); Tue, 16 Aug 2022 16:43:55 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 122503FA22 for ; Tue, 16 Aug 2022 13:43:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1660682631; 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=Fxf9g37yt4QV3sYboUS8drWbHKZT6H8bVu/xJaEn0Rg=; b=OnJanxmtG7pIMv5uiyCapIthtKNHB5A39pUY36vsUmny4C7lj5hGy1prJyTlGBuid+pE0x fFJ5Z+XggM3tDVMbC/hjPb0On88q6UPxHMaFmuWQkw8u9avcwWN5qed/QYhwcU//f89d0R p4kJCqyGsO+kH55g1pyvYerKSQoTp1M= Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-640-a1GdagdWOyquF5oNJuyGoA-1; Tue, 16 Aug 2022 16:43:49 -0400 X-MC-Unique: a1GdagdWOyquF5oNJuyGoA-1 Received: by mail-ej1-f72.google.com with SMTP id sa33-20020a1709076d2100b0073101bdd612so2256153ejc.14 for ; Tue, 16 Aug 2022 13:43:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=Fxf9g37yt4QV3sYboUS8drWbHKZT6H8bVu/xJaEn0Rg=; b=wlpiCCfCKBknJUNgt+WoGSkLmwoAA5rlEV3jy+L4Gj4cNWzT+BartnyVzBjKDrpoj+ JDRytWTSpD6OMy1U5OyQyl50NHkzLVlGtjpPGjTVC/7p6i4pWLLhzv60DN4+igU1EHOL jV6CddNuvWs1Cky8+BVZm91TGRCIpe2NLg/6XPBDficSHrseOQAHhJsqTi5kvngNUDbD fINWCB727o64jfPkmOhxI6TJD1lh8VgtS8ZLpFzya5DvdI145Rzp4eVahDwQV1L6+YsQ 5+010mV+xB8ZCjZYWuUXTocMB7uMiMuNIHa2Tu2FjWQKGzhK8dfimmIAkZKFuYzXMWif kIcg== X-Gm-Message-State: ACgBeo2BCNUzF2mkxDPK9SwL7DlMMd9ElpkZVmC6pOOTr9cDmdqNFXnM 254zPS9MLZpm4jrbbn30QoSkuvH2lDVYgHLlCio4AMuldgw0+tCm2KI191Tn/v4GA6EQodc7x1v d/cwdYrvwVs9P1KNg8dVcrEVkyN/kw1EepfnWDifn X-Received: by 2002:a17:907:2d12:b0:731:6a4e:ceb0 with SMTP id gs18-20020a1709072d1200b007316a4eceb0mr14858113ejc.115.1660682628499; Tue, 16 Aug 2022 13:43:48 -0700 (PDT) X-Received: by 2002:a17:907:2d12:b0:731:6a4e:ceb0 with SMTP id gs18-20020a1709072d1200b007316a4eceb0mr14858098ejc.115.1660682628222; Tue, 16 Aug 2022 13:43:48 -0700 (PDT) MIME-Version: 1.0 References: <20220811103435.188481-1-david@redhat.com> <20220811103435.188481-3-david@redhat.com> <20220815153549.0288a9c6@thinkpad> <20220815175929.303774fd@thinkpad> <20220815203844.43b74fd1@thinkpad> <20220816113359.33843f54@thinkpad> In-Reply-To: <20220816113359.33843f54@thinkpad> From: David Hildenbrand Date: Tue, 16 Aug 2022 22:43:37 +0200 Message-ID: Subject: Re: [PATCH v2 2/2] mm/hugetlb: support write-faults in shared mappings To: Gerald Schaefer Cc: Mike Kravetz , Linux Kernel Mailing List , Linux MM , stable , linux-s390 , Heiko Carstens Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Gerald, > > Thanks, we were also trying to reproduce on x86, w/o success so far. But > I guess that matches David latest observations wrt to our exception handling > code on s390. > > Good news is that the problem goes away when I add this simple patch, which > should result in proper VM_WRITE check for vma flags, before triggering a > FAULT_FLAG_WRITE fault: > > --- a/arch/s390/mm/fault.c > +++ b/arch/s390/mm/fault.c > @@ -379,7 +379,9 @@ static inline vm_fault_t do_exception(struct pt_regs *regs, int access) > flags = FAULT_FLAG_DEFAULT; > if (user_mode(regs)) > flags |= FAULT_FLAG_USER; > - if (access == VM_WRITE || is_write) > + if (is_write) > + access = VM_WRITE; > + if (access == VM_WRITE) > flags |= FAULT_FLAG_WRITE; > mmap_read_lock(mm); That's what I had in mind, good. > > Still find it a bit hard to believe that this > 10 years old logic really > is/was broken all the time. I guess it simply did not matter for normal > PTE faults, probably because the common fault handling code later would > check itself via maybe_mkwrite(). And for hugetlb PTEs, it might not have > mattered before commit bcd51a3c679d. It is akward, but maybe we never really noticed for hugetlb (not sure how common read-only mappings are after all). > > > > > bcd51a3c679d eliminates the copying of page tables at fork for non-anon > > hugetlb vmas. So, in these tests you would likely see more pte_none() > > faults. > > Yes, makes sense, assuming now that it actually is related to s390 > exception handling code, not checking for VM_WRITE before triggering a > write fault for pte_none(). > > Thanks for checking! And Thanks a lot to David for finding that issue > in s390 exception handling code! Thanks! Looks like adding the WARN_ON_ONCE was the right decision.