From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 71A6AC433EF for ; Tue, 8 Mar 2022 19:28:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 015B08D0003; Tue, 8 Mar 2022 14:28:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F068F8D0001; Tue, 8 Mar 2022 14:27:59 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DCEFB8D0003; Tue, 8 Mar 2022 14:27:59 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0233.hostedemail.com [216.40.44.233]) by kanga.kvack.org (Postfix) with ESMTP id CFFAA8D0001 for ; Tue, 8 Mar 2022 14:27:59 -0500 (EST) Received: from smtpin18.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 770EC1828D825 for ; Tue, 8 Mar 2022 19:27:59 +0000 (UTC) X-FDA: 79222204278.18.304B3B6 Received: from mail-lj1-f170.google.com (mail-lj1-f170.google.com [209.85.208.170]) by imf27.hostedemail.com (Postfix) with ESMTP id EB41A4000A for ; Tue, 8 Mar 2022 19:27:58 +0000 (UTC) Received: by mail-lj1-f170.google.com with SMTP id u7so26373880ljk.13 for ; Tue, 08 Mar 2022 11:27:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=e3tyhZcTT5clPSsfgGSWeMIMTPV1eQ06G1tymibw6gs=; b=aqDqW0jKuhDTNMpf9AsVdDMH6RT/Ezu0dBsTBUUQ4vX5oqqv49dTEHgxErfyishTTc S+eIKJZN2WvBq3cMo8TTWiHLnHHSrH07K61PMqdSsV2ggvRfAy3/wo2t8JO6dsCpZ6oa +nhIlcK37MdeSXNbbYFPMD1h8wTUj0XPqv5NU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=e3tyhZcTT5clPSsfgGSWeMIMTPV1eQ06G1tymibw6gs=; b=lzsV4TdiAonMqwsxQev7wQQhvuTfumzcqFkuarfajc58Wwib5ObYmXSd60ROZ1mqwh iLX4mvRCs91tzZdzIN6KLN/2E/wzxlG4NbKbfsopW3WC3pvCEcUzAiV0ubE1E0zNuQhV hc25OJQg8BXmqlDSe91o8hmNcGaZJBEBA5j1zLWC4oUWc2vhoB9C7BGidT5/DSiqU3qS FJ0E0H7nhho4yQ3aYjpcYVRGy6hfhC+n46wBvjN+8j/Oi3BtKa/ryxiuwu2tmWmp03L3 bIYzd9ULpxjpxYJyTpLrKW608Q2ihp2MCl5bP7XYYpYz6ZH74xS3rvsOgVPLl+2IuFKf +bJA== X-Gm-Message-State: AOAM533COkt9mo/sFOX5O3RS3jAjQ8ZGioKJK1s989D1m5cra1MvprYg iAyjFIHF4G17R6RnzVzykyn1byiGF5TC4/FeqaA= X-Google-Smtp-Source: ABdhPJz4vK4jirHeyu3KevL06cJ2+BfM0fuRX5uKGbdfGzAd0FFvlS75n0/Xn05XLgNaKL+PedMWNQ== X-Received: by 2002:a2e:a372:0:b0:247:ec7f:d458 with SMTP id i18-20020a2ea372000000b00247ec7fd458mr3935445ljn.275.1646767676847; Tue, 08 Mar 2022 11:27:56 -0800 (PST) Received: from mail-lj1-f169.google.com (mail-lj1-f169.google.com. [209.85.208.169]) by smtp.gmail.com with ESMTPSA id q21-20020a0565123a9500b00443c55e9f22sm3632771lfu.264.2022.03.08.11.27.55 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 08 Mar 2022 11:27:55 -0800 (PST) Received: by mail-lj1-f169.google.com with SMTP id q5so11724421ljb.11 for ; Tue, 08 Mar 2022 11:27:55 -0800 (PST) X-Received: by 2002:a2e:804b:0:b0:247:e81f:87e9 with SMTP id p11-20020a2e804b000000b00247e81f87e9mr6717778ljg.176.1646767674964; Tue, 08 Mar 2022 11:27:54 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Linus Torvalds Date: Tue, 8 Mar 2022 11:27:38 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Buffered I/O broken on s390x with page faults disabled (gfs2) To: David Hildenbrand Cc: Andreas Gruenbacher , Alexander Viro , linux-s390 , Linux-MM , linux-fsdevel , linux-btrfs Content-Type: multipart/mixed; boundary="0000000000004c1c4a05d9b9fadf" X-Rspamd-Queue-Id: EB41A4000A X-Stat-Signature: ieqc8i18fwasmkcoedwauwmg13nu8oax X-Rspam-User: Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=aqDqW0jK; dmarc=none; spf=pass (imf27.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.208.170 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org X-Rspamd-Server: rspam03 X-HE-Tag: 1646767678-556747 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: --0000000000004c1c4a05d9b9fadf Content-Type: text/plain; charset="UTF-8" On Tue, Mar 8, 2022 at 9:40 AM Linus Torvalds wrote: > > Hmm. The futex code actually uses "fixup_user_fault()" for this case. > Maybe fault_in_safe_writeable() should do that? .. paging all the bits back in, I'm reminded that one of the worries was "what about large areas". But I really think that the solution should be that we limit the size of fault_in_safe_writeable() to just a couple of pages. Even if you were to fault in gigabytes, page-out can undo it anyway, so there is no semantic reason why that function should ever do more than a few pages to make sure. There's already even a comment about how there's no guarantee that the pages will stay. Side note: the current GUP-based fault_in_safe_writeable() is buggy in another way anyway: it doesn't work right for stack extending accesses. So I think the fix for this all might be something like the attached (TOTALLY UNTESTED)! Comments? Andreas, mind (carefully - maybe it is totally broken and does unspeakable acts to your pets) testing this? Linus --0000000000004c1c4a05d9b9fadf Content-Type: text/x-patch; charset="US-ASCII"; name="patch.diff" Content-Disposition: attachment; filename="patch.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l0iixtc20 IG1tL2d1cC5jIHwgNDAgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL21tL2d1cC5jIGIvbW0vZ3VwLmMKaW5kZXggYTlkNGQ3MjRhZWY3Li45ZTA4NWU3Yjlj MjggMTAwNjQ0Ci0tLSBhL21tL2d1cC5jCisrKyBiL21tL2d1cC5jCkBAIC0xNzQ1LDQ0ICsxNzQ1 LDI4IEBAIEVYUE9SVF9TWU1CT0woZmF1bHRfaW5fd3JpdGVhYmxlKTsKIHNpemVfdCBmYXVsdF9p bl9zYWZlX3dyaXRlYWJsZShjb25zdCBjaGFyIF9fdXNlciAqdWFkZHIsIHNpemVfdCBzaXplKQog ewogCXVuc2lnbmVkIGxvbmcgc3RhcnQgPSAodW5zaWduZWQgbG9uZyl1bnRhZ2dlZF9hZGRyKHVh ZGRyKTsKLQl1bnNpZ25lZCBsb25nIGVuZCwgbnN0YXJ0LCBuZW5kOworCXVuc2lnbmVkIGxvbmcg ZW5kLCBuc3RhcnQ7CiAJc3RydWN0IG1tX3N0cnVjdCAqbW0gPSBjdXJyZW50LT5tbTsKLQlzdHJ1 Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IE5VTEw7Ci0JaW50IGxvY2tlZCA9IDA7CisJY29uc3Qg dW5zaWduZWQgaW50IGZhdWx0X2ZsYWdzID0gRkFVTFRfRkxBR19XUklURSB8IEZBVUxUX0ZMQUdf S0lMTEFCTEU7CisJY29uc3Qgc2l6ZV90IG1heF9zaXplID0gNCAqIFBBR0VfU0laRTsKIAogCW5z dGFydCA9IHN0YXJ0ICYgUEFHRV9NQVNLOwotCWVuZCA9IFBBR0VfQUxJR04oc3RhcnQgKyBzaXpl KTsKKwllbmQgPSBQQUdFX0FMSUdOKHN0YXJ0ICsgbWluKHNpemUsIG1heF9zaXplKSk7CiAJaWYg KGVuZCA8IG5zdGFydCkKIAkJZW5kID0gMDsKLQlmb3IgKDsgbnN0YXJ0ICE9IGVuZDsgbnN0YXJ0 ID0gbmVuZCkgewotCQl1bnNpZ25lZCBsb25nIG5yX3BhZ2VzOwotCQlsb25nIHJldDsKIAotCQlp ZiAoIWxvY2tlZCkgewotCQkJbG9ja2VkID0gMTsKLQkJCW1tYXBfcmVhZF9sb2NrKG1tKTsKLQkJ CXZtYSA9IGZpbmRfdm1hKG1tLCBuc3RhcnQpOwotCQl9IGVsc2UgaWYgKG5zdGFydCA+PSB2bWEt PnZtX2VuZCkKLQkJCXZtYSA9IHZtYS0+dm1fbmV4dDsKLQkJaWYgKCF2bWEgfHwgdm1hLT52bV9z dGFydCA+PSBlbmQpCi0JCQlicmVhazsKLQkJbmVuZCA9IGVuZCA/IG1pbihlbmQsIHZtYS0+dm1f ZW5kKSA6IHZtYS0+dm1fZW5kOwotCQlpZiAodm1hLT52bV9mbGFncyAmIChWTV9JTyB8IFZNX1BG Tk1BUCkpCi0JCQljb250aW51ZTsKLQkJaWYgKG5zdGFydCA8IHZtYS0+dm1fc3RhcnQpCi0JCQlu c3RhcnQgPSB2bWEtPnZtX3N0YXJ0OwotCQlucl9wYWdlcyA9IChuZW5kIC0gbnN0YXJ0KSAvIFBB R0VfU0laRTsKLQkJcmV0ID0gX19nZXRfdXNlcl9wYWdlc19sb2NrZWQobW0sIG5zdGFydCwgbnJf cGFnZXMsCi0JCQkJCSAgICAgIE5VTEwsIE5VTEwsICZsb2NrZWQsCi0JCQkJCSAgICAgIEZPTExf VE9VQ0ggfCBGT0xMX1dSSVRFKTsKLQkJaWYgKHJldCA8PSAwKQorCW1tYXBfcmVhZF9sb2NrKG1t KTsKKwlmb3IgKDsgbnN0YXJ0ICE9IGVuZDsgbnN0YXJ0ICs9IFBBR0VfU0laRSkgeworCQlpZiAo Zml4dXBfdXNlcl9mYXVsdChtbSwgbnN0YXJ0LCBmYXVsdF9mbGFncywgTlVMTCkpCiAJCQlicmVh azsKLQkJbmVuZCA9IG5zdGFydCArIHJldCAqIFBBR0VfU0laRTsKIAl9Ci0JaWYgKGxvY2tlZCkK LQkJbW1hcF9yZWFkX3VubG9jayhtbSk7CisJbW1hcF9yZWFkX3VubG9jayhtbSk7CisKKwkvKiBJ ZiB3ZSBnb3QgYWxsIG9mIG91ciAodHJ1bmNhdGVkKSBmYXVsdC1pbiwgd2UgY2xhaW0gd2UgZ290 IGl0IGFsbCAqLwogCWlmIChuc3RhcnQgPT0gZW5kKQogCQlyZXR1cm4gMDsKKworCS8qIC4uIG90 aGVyd2lzZSB3ZSdsbCB1c2UgdGhlIG9yaWdpbmFsIHVudHJ1bmNhdGVkIHNpemUgKi8KIAlyZXR1 cm4gc2l6ZSAtIG1pbl90KHNpemVfdCwgbnN0YXJ0IC0gc3RhcnQsIHNpemUpOwogfQogRVhQT1JU X1NZTUJPTChmYXVsdF9pbl9zYWZlX3dyaXRlYWJsZSk7Cg== --0000000000004c1c4a05d9b9fadf--