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 25273C4332F for ; Wed, 4 Jan 2023 19:10:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 892C78E0002; Wed, 4 Jan 2023 14:10:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 843CC8E0001; Wed, 4 Jan 2023 14:10:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 70BED8E0002; Wed, 4 Jan 2023 14:10:26 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 5DB878E0001 for ; Wed, 4 Jan 2023 14:10:26 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2B83240D0D for ; Wed, 4 Jan 2023 19:10:26 +0000 (UTC) X-FDA: 80318057652.05.58E56CC Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) by imf07.hostedemail.com (Postfix) with ESMTP id 7EF1B40021 for ; Wed, 4 Jan 2023 19:10:24 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=Irszmc7M; spf=pass (imf07.hostedemail.com: domain of jthoughton@google.com designates 209.85.221.41 as permitted sender) smtp.mailfrom=jthoughton@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1672859424; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Ilj2KW0qjeWq4JNOJi01uQI8ke0CdNrLzaGwAQB1lz8=; b=NKK5QhjGjGE4xHjly+2olt+3PXsoJY5qWj7MG7YaxQnuLm4gRRnt2h4fgJLklhPNNTGZhH 1Tg9qbun+wYM6E9h3jbtg/X059HszOqzQqXX8FGzRRXV/LJfKqksOkiW4IN//pydxFgpoS QisDU9l+C4PNSOZUUZuHOrXSHIXIC78= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=Irszmc7M; spf=pass (imf07.hostedemail.com: domain of jthoughton@google.com designates 209.85.221.41 as permitted sender) smtp.mailfrom=jthoughton@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1672859424; a=rsa-sha256; cv=none; b=VvwgGbAO+CusFNFM2f2V5dsBNTsTipagN6xSYYHaZ2iZrfROKjxenIG6xFJV0bSwQaJRQR R+VU+t61AqNFGSYr/Yp2Xz40ru4JcrNiW7oZiFilWXruWb5RKGrelWIOB8Lzeff59XG3HA 4ha8jK4iQTwcoadF+19xXjJjic6wxHQ= Received: by mail-wr1-f41.google.com with SMTP id bs20so31937375wrb.3 for ; Wed, 04 Jan 2023 11:10:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Ilj2KW0qjeWq4JNOJi01uQI8ke0CdNrLzaGwAQB1lz8=; b=Irszmc7MhAeQdY0r5fVuhZK/xadj3VjTXaYktC+rKyqC1hySLPBlui8Bbul/RhwtKr XgXE+9IbEI50+mDalR3GMcDY6xcOS00nigpWV3yv6bLGfDGU1KzuDMxQDFCnUicDjiwE fZmuSriWBlNMOnNpeLE3gbgMOIxcPogWEvf6fUQdOzLc0ALwgFrO5chHmuj45KImszfY 0dhWhXvCq5pEYiuih+B6ReVaBbiLDco1Ndq+aSwljv7gbTz5MQF/MLQoCxHW4248Ru9B xZe1OCV3hZBjCj8ZTvUx7tEBx1uihq7YLhItsYmG2yDYPTa7eqSCgYAT6x9KzrkW6kkE Rw7g== 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:subject:date:message-id :reply-to; bh=Ilj2KW0qjeWq4JNOJi01uQI8ke0CdNrLzaGwAQB1lz8=; b=2oO765cpZdZr6vkIgFrWZpauobXMSvHxBMTz7gbyOZEXEmnBuIHVf8tkbCg6MThvTL eWWUTccLZEmv2f/g5PA4H6pGlP9OIieCatJTS22c2B3Q/j/m2zr3MAUb3F0uf/iT73nx 0MZF/bZBlUmN3OOBQPd9qhhcXSTUQS+0K3Yj/upB6yRdSbi+Hg7prxoAkE4vD5+78Lvj cz8p1UJwrbBt+/ZoeCZt+b5BSxJ0o2STF7ApaBg0WIG8AEQ/jtEFkmHrz1Xk7lc8OcX5 LETCtZW/lJN8XzvmxgH4V2ZM3uAZ6RcNfCJU4Ik8NkChwz0nPtl2DyBSv9zyz/YQU0WA EutA== X-Gm-Message-State: AFqh2krdTYZWGB8r/9UqiU3nYXsyyCShNrpcGsZbcrBWPeIUFFcCGDrJ wv60UVKrFfdW3NvE3HWJztfdHi8M+gI68zmumdMy1A== X-Google-Smtp-Source: AMrXdXv1pyNrnbDRKSUV58PHbta29R1XIRpzZEghnd6kfbiYU6KKJ8yQxX33JH15ZTEw3xfLolLrpyj6BfBhxJlf5bE= X-Received: by 2002:a05:6000:1367:b0:28c:295f:3369 with SMTP id q7-20020a056000136700b0028c295f3369mr745618wrz.355.1672859423016; Wed, 04 Jan 2023 11:10:23 -0800 (PST) MIME-Version: 1.0 References: <20230101230042.244286-1-jthoughton@google.com> In-Reply-To: From: James Houghton Date: Wed, 4 Jan 2023 19:10:11 +0000 Message-ID: Subject: Re: [PATCH] hugetlb: unshare some PMDs when splitting VMAs To: Mike Kravetz Cc: Muchun Song , Peter Xu , Axel Rasmussen , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: multipart/mixed; boundary="000000000000abb96105f174efd4" X-Rspamd-Queue-Id: 7EF1B40021 X-Stat-Signature: xfta3hrfjyd5wpc63ds51nxwkehzn5ct X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1672859424-588573 X-HE-Meta: U2FsdGVkX1+iKnfGpIYkgG3BofaokZiimFBV+eerQKY3HhiIyfCdCa3OGpJDFFjnzlPIqRGCCfopLGs58Nsx6ZjShJDc4WBTv0WATs7BTSCkJ5eEdYnWM1Xl3WO9XnfZjS2eOETM5l4ZfnFBboRd1Pvk3eLuW0iRqYY+jyyOp8o6G1lVpWj0IGpVBeFbG/k9l0FpCSTCS8djKtDrtnTudi6FVH0NGTmh/M6snPQmOMQxsGmsXbfp+2A5iUYrLq76snITefq019aJB1g09qpCpQrLhWLhTOOTituzuqzKabPrZ28gCdtNCRxk0wdHkow3vkOfreGB439dhhUV9yXJQ35eCcL1FtKXD2cnMvJ4tpmFssU7pJzoRy1zsUbrHhMs+M7GCE+5+i5ktlPuEXyUfVbLHlZndmeZiI7Y0HwWwPoEsAQaMa9wtG48UfbJ7/QqMyemG471Z4++2y7ZmIol3quRan7pNWxYPD3203QaFDo58k8VgpeLTarK/gEh9ZV2xbx770aRxHdYoRsGp0PSrcKs4oMgAzd6WjkxueiRpJRMxbSlJrRxhX58GHU33tkCQBQzGBtzLmejqCNNzIpngWF7pzXyW6BAUIBUh7mtgq/h4GgRAcqXJGIEujJ4sW2UxC0ObEdIrg5kPpCiQ9GlSKwqATcokoLkaFnERAa5+95qlHai0QWbSGFNz1pKOLYWxA51G3vllPkxkua2j5CHeGmtuOSdJdkJLZ8FPhWU8Fg2ybWO1GU+09SLWLokZuk120lu7YiDXIEhCfWDsFLScWgFNsLNdAwWuRcRPyNoqbublgxTdRVlMNTbW6oyDQ0vfhHcxgA3A48BhpzznYIAUDsIQHUES0vL70v8V90pShq2kx+D3PtHHbNveR5CfdILFQB4+zJbRt7ol5FNTkQ1fsdxPgDpz0JPH/ebp3iuaSRy8nUAjE73N5zIdnTOqcfhj+fpkTTkIYkiWKDIVMB nMysxyL/ Xb9luoeUWjlP2IdZvHyYZulUixlOABtrBT/JWP/z3Ydod7toIOjn02M06lNCU+BMNluv7VbLmqJlDLgbN3fECB8EApl3tjwL/Fblaveof3/Al0Kj2NScXTXrYqdVsqATyacFS0vOcpJ1GXiBo2wk8Wm6bU4DN5609aJrt9/RMWjTqM9i4CUfMSWJCa6b+m+fZ5r0NjT0W2FxwHbFR130TBzIctn7IIhJgB1RmRavlZNla3C8= 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: --000000000000abb96105f174efd4 Content-Type: text/plain; charset="UTF-8" > > I'll see if I can confirm that this is indeed possible and send a > > repro if it is. > > I think your analysis above is correct. The key being the failure to unshare > in the non-PUD_SIZE vma after the split. I do indeed hit the WARN_ON_ONCE (repro attached), and the MADV wasn't even needed (the UFFDIO_REGISTER does the VMA split before "unsharing all PMDs"). With the fix, we avoid the WARN_ON_ONCE, but the behavior is still incorrect: I expect the address range to be write-protected, but it isn't. The reason why is that hugetlb_change_protection uses huge_pte_offset, even if it's being called for a UFFDIO_WRITEPROTECT with UFFDIO_WRITEPROTECT_MODE_WP. In that particular case, I'm pretty sure we should be using huge_pte_alloc, but even so, it's not trivial to get an allocation failure back up to userspace. The non-hugetlb implementation of UFFDIO_WRITEPROTECT seems to also have this problem. Peter, what do you think? > > To me, the fact it was somewhat difficult to come up with this scenario is an > argument what we should just unshare at split time as you propose. Who > knows what other issues may exist. > > > 60dfaad65a ("mm/hugetlb: allow uffd wr-protect none ptes") is the > > commit that introduced the WARN_ON_ONCE; perhaps it's a good choice > > for a Fixes: tag (if above is indeed true). > > If the key issue in your above scenario is indeed the failure of > hugetlb_unshare_all_pmds in the non-PUD_SIZE vma, then perhaps we tag? > > 6dfeaff93be1 ("hugetlb/userfaultfd: unshare all pmds for hugetlbfs when > register wp") SGTM. Thanks Mike. --000000000000abb96105f174efd4 Content-Type: text/x-csrc; charset="US-ASCII"; name="pmd-share-repro.c" Content-Disposition: attachment; filename="pmd-share-repro.c" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lci0rukw0 I2RlZmluZSBfR05VX1NPVVJDRQoKI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8ZmNudGwu aD4KI2luY2x1ZGUgPGxpbnV4L21lbWZkLmg+CiNpbmNsdWRlIDxsaW51eC9tbWFuLmg+CiNpbmNs dWRlIDxzeXMvbW1hbi5oPgojaW5jbHVkZSA8bGludXgvdXNlcmZhdWx0ZmQuaD4KI2luY2x1ZGUg PGxpbnV4L2Vycm5vLmg+CiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1ZGUgPHN5cy93YWl0 Lmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KI2luY2x1ZGUg PHN5cy9pb2N0bC5oPgoKI2RlZmluZSBQQUdFU19QRVJfR0lHIDUxMgojZGVmaW5lIEhVR0VfUEFH RV9TSVpFICgyVUwgPDwgMjApCiNkZWZpbmUgR0lHX01BU0sgfihQQUdFU19QRVJfR0lHICogSFVH RV9QQUdFX1NJWkUgLSAxKQoKdm9pZCBmYXVsdF9pbl93cml0ZShjaGFyICptYXBwaW5nLCBzaXpl X3QgbGVuKQp7Cgl2b2xhdGlsZSBjaGFyICptYXBwaW5nX3YgPSBtYXBwaW5nOwoJZm9yIChzaXpl X3QgaSA9IDA7IGkgPCBsZW47IGkgKz0gNDA5NikKCQltYXBwaW5nX3ZbaV0gPSAxOwp9CgppbnQg bWFpbigpCnsKCWludCBmZCA9IG1lbWZkX2NyZWF0ZSgidGVzdCIsIE1GRF9IVUdFVExCKTsKCXNp emVfdCBsZW4gPSAyICogUEFHRVNfUEVSX0dJRyAqIEhVR0VfUEFHRV9TSVpFOwoJY2hhciAqbWFw cGluZzsKCWNoYXIgKm1hcHBpbmdfdG9fdXNlOwoJaW50IHVmZmQ7CglpbnQgcGlkOwoJc3RydWN0 IHVmZmRpb19hcGkgdWZmZGlvX2FwaTsKCXN0cnVjdCB1ZmZkaW9fcmVnaXN0ZXIgdWZmZGlvX3Jl Z2lzdGVyOwoJc3RydWN0IHVmZmRpb193cml0ZXByb3RlY3QgdWZmZGlvX3dyaXRlcHJvdGVjdDsK CglpZiAoZnRydW5jYXRlKGZkLCBsZW4pKSB7CgkJcGVycm9yKCJmdHJ1bmNhdGUgZmFpbGVkIik7 CgkJcmV0dXJuIC0xOwoJfQoJbWFwcGluZyA9IG1tYXAoTlVMTCwgbGVuLCBQUk9UX1dSSVRFIHwg UFJPVF9SRUFELCBNQVBfU0hBUkVELCBmZCwgMCk7CglpZiAobWFwcGluZyA9PSBNQVBfRkFJTEVE KSB7CgkJcGVycm9yKCJtbWFwIGZhaWxlZCIpOwoJCXJldHVybiAtMTsKCX0KCgltYXBwaW5nX3Rv X3VzZSA9IG1hcHBpbmc7CglpZiAoKHVuc2lnbmVkIGxvbmcpbWFwcGluZyAmIH5HSUdfTUFTSykg ewoJCW1hcHBpbmdfdG9fdXNlID0gKGNoYXIgKikoKHVuc2lnbmVkIGxvbmcpbWFwcGluZyAmIEdJ R19NQVNLKSArIChsZW4vMik7Cgl9CgoJcGlkID0gZm9yaygpOwoJaWYgKHBpZCA8IDApIHsKCQlw ZXJyb3IoImZvcmsgZmFpbGVkIik7CgkJcmV0dXJuIC0xOwoJfQoKCWZhdWx0X2luX3dyaXRlKG1h cHBpbmcsIGxlbik7CgoJaWYgKHBpZCA+IDApIHsKCQlpbnQgc3RhdHVzOwoJCXdhaXRwaWQocGlk LCAmc3RhdHVzLCAwKTsKCQlyZXR1cm4gV0VYSVRTVEFUVVMoc3RhdHVzKTsKCX0KCgl1ZmZkID0g c3lzY2FsbChTWVNfdXNlcmZhdWx0ZmQsIE9fQ0xPRVhFQyk7Cgl1ZmZkaW9fYXBpLmFwaSA9IFVG RkRfQVBJOwoJdWZmZGlvX2FwaS5mZWF0dXJlcyA9IFVGRkRfRkVBVFVSRV9TSUdCVVM7Cgl1ZmZk aW9fYXBpLmlvY3RscyA9IDA7CglpZiAoaW9jdGwodWZmZCwgVUZGRElPX0FQSSwgJnVmZmRpb19h cGkpKSB7CgkJcGVycm9yKCJVRkZESU9fQVBJIGZhaWxlZCIpOwoJCXJldHVybiAtMTsKCX0KCgl1 ZmZkaW9fcmVnaXN0ZXIucmFuZ2Uuc3RhcnQgPSAodW5zaWduZWQgbG9uZyltYXBwaW5nX3RvX3Vz ZTsKCXVmZmRpb19yZWdpc3Rlci5yYW5nZS5sZW4gPSBsZW4vNDsKCXVmZmRpb19yZWdpc3Rlci5t b2RlID0gVUZGRElPX1JFR0lTVEVSX01PREVfV1A7CgoJaWYgKGlvY3RsKHVmZmQsIFVGRkRJT19S RUdJU1RFUiwgJnVmZmRpb19yZWdpc3RlcikpIHsKCQlwZXJyb3IoIlVGRkRJT19SRUdJU1RFUiBm YWlsZWQiKTsKCQlyZXR1cm4gLTE7Cgl9CgoJdWZmZGlvX3dyaXRlcHJvdGVjdC5yYW5nZS5zdGFy dCA9ICh1bnNpZ25lZCBsb25nKW1hcHBpbmdfdG9fdXNlOwoJdWZmZGlvX3dyaXRlcHJvdGVjdC5y YW5nZS5sZW4gPSBsZW4vNDsKCXVmZmRpb193cml0ZXByb3RlY3QubW9kZSA9IFVGRkRJT19XUklU RVBST1RFQ1RfTU9ERV9XUDsKCWlmIChpb2N0bCh1ZmZkLCBVRkZESU9fV1JJVEVQUk9URUNULCAm dWZmZGlvX3dyaXRlcHJvdGVjdCkpIHsKCQlwZXJyb3IoIlVGRkRJT19XUklURVBST1RFQ1QgZmFp bGVkIik7CgkJcmV0dXJuIC0xOwoJfQoKCS8qIElmIGNvcnJlY3Q6IHNob3VsZCBTSUdCVVMgKi8K CWZhdWx0X2luX3dyaXRlKG1hcHBpbmdfdG9fdXNlLCAxKTsKCglwcmludGYoIkJVRzogbm8gc2ln YnVzXG4iKTsKCXJldHVybiAwOwp9Cg== --000000000000abb96105f174efd4--