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 E42BCEB64DC for ; Mon, 17 Jul 2023 16:19:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 80F8E6B0072; Mon, 17 Jul 2023 12:19:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7BFD36B0074; Mon, 17 Jul 2023 12:19:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6AED46B0075; Mon, 17 Jul 2023 12:19:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 5B96F6B0072 for ; Mon, 17 Jul 2023 12:19:24 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id E30F1120462 for ; Mon, 17 Jul 2023 16:19:23 +0000 (UTC) X-FDA: 81021613806.22.BF29F87 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by imf16.hostedemail.com (Postfix) with ESMTP id 05424180024 for ; Mon, 17 Jul 2023 16:19:20 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=qDsWDanx; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=mItGbQH1; dmarc=none; spf=pass (imf16.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.29 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689610761; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=XY4N++ouOf9JpbfnfTNhYe0rv+OT6iZb3HZAx55/hBE=; b=v7KCEl2u9nBd6nGVqKVnR74x/ogbf7TJYTYdZrdPPJjU+b5ZzcSkusyhgxExcyuUM5QLrG mleQTwb4YicVSXkcMDc5Ku1O2V720l/hvVchKTgWeUxLGdPfCWuhlyohyab7NMVGsTyB9Z mt53f2cHVmXUoNU9N0c2q6kC77wlTwc= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=qDsWDanx; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=mItGbQH1; dmarc=none; spf=pass (imf16.hostedemail.com: domain of vbabka@suse.cz designates 195.135.220.29 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689610761; a=rsa-sha256; cv=none; b=uRremFKUEKCPdAwWTZPHOf6K0ztS+UwezeEaosDB08vg/vMHPIUrOq+Gd87SyRk07F3x3e JW4l6Ow0p0JyPGvTJOTUlQlAJwOBig3gLYifQbIwct3Hv7LjOiZNrABj2vgDUcq7c+ZDZ8 A2C8OGdS2RWeLwv+ZFOX/XIUSAIERsM= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 19A841FDAC; Mon, 17 Jul 2023 16:19:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1689610759; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XY4N++ouOf9JpbfnfTNhYe0rv+OT6iZb3HZAx55/hBE=; b=qDsWDanx+QjaC0M9RCXYHIW0xMtOSLY67aiwJTsEgCDecPZrpOZ62iMYESeuhl/VlhXvC2 cFkTPFG9OSwu1gBpHlUn4gqHBAUzHcd8bSDPkCEXcxhtpao8/hpXem1oK0N0+J7VI9D+Ni DWrz78xlQcdTkrKhFZNATX7YmMja+FI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1689610759; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XY4N++ouOf9JpbfnfTNhYe0rv+OT6iZb3HZAx55/hBE=; b=mItGbQH1Q2d/vyi5aOfJG/V0uj7yIrvvBTv20aHMiBPE46bArtzpdCHdntMcnU93lKhcLZ AvbRZCHHZfJ8n0Bw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id D045B138F8; Mon, 17 Jul 2023 16:19:18 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id yh55MQZqtWSdJwAAMHmgww (envelope-from ); Mon, 17 Jul 2023 16:19:18 +0000 Message-ID: <399a6448-184b-1433-3f23-1a599656a713@suse.cz> Date: Mon, 17 Jul 2023 18:19:18 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: mprotect and hugetlb mappings Content-Language: en-US To: Mike Kravetz , Matthew Wilcox Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, David Hildenbrand , Rik van Riel , Michal Hocko , Peter Xu , Dave Hansen References: <20230705230808.GA41006@monkey> <20230705235322.GD41006@monkey> From: Vlastimil Babka In-Reply-To: <20230705235322.GD41006@monkey> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 05424180024 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 8crsym4dwxfynoin147q8rdtswhnwwtf X-HE-Tag: 1689610760-382106 X-HE-Meta: U2FsdGVkX1/h9ZVpGFfg3bovDkHkgNbD8ue1NpUdp88P9yvMdsEMterGc9wj37T6j9gYbZVFhN7VJmAkatxTve+lX4BiHayl0/Le0tWVhRn5pMBtrvhVdRirH62khvD8OcwxfJzThEI1CSJ3n0ng9/JGedWaMy6qa7IIoxu/ahOlH2Towus39N8+ooFuE7OKKDnIH3HXh7ATZ0K/WVqIFmtFF0Veae236cHgYKQcr86NigR64V4xJUqvPzkzH038ZjANVr9PoNpXtgPfyZ/kYzzG7wPpOG1Zc95ObPiS2zYN5wPxlllrx1zuai01CIigM57Yc6rqKEk0IX64oqGPnvuaBY7Su1tq3HWL/cyCI8nRdq1TIuwZCnbQSOkJD6694oWY1xl1/oi/gzHwbKrMkXCburGKlVsFmare9mYuSG5eKSCvonkzS/JmJQB55t/u97xy2B2URJ17es2eXHA/9lPlJa1CEK0/SezFbLtvlUm38L3nhC7uBZQyfaAriJoraxUxCsbWlKVddw/GBqR8pJTq3a/TQVHUCdFRrQdFk2ItFk2ZeO6PLbzNTdMDK+owI0s0wwGPbFg65cLOcwdZiCP1UAp7TJHSzDMtSYO2Vm/FO62hYwOwdEyMw8zWB8fvIUaswTfnbUIQrArhh8ma4rOfLheJtRfawGiUZ6xnAdpgOTczQZaao4poj69g+De31O3MzUWcN4k2kTsVI5YPFZOsDjwLVKPEfo1wanhaq3rzXdnLkxS5AMD8p8dzvPDv0esEutiEy1xpauEVuD35wnHXdKScLvUmOjn3bk1XimuNAGvSVFJgWbg+XIt+kZLhlLyPo0GrgHXhdt4F6go5aatmHyU6RFhi9mJpxvrUOdvl11eiELka9Wx7UTlgBl0FhdD8PKWnt9ZmmqZZ8J//7b6MsuUkcwC96S4STwSJeIg1cw+FpfzanpkLk/vd3q0QhF/yJQItZawi2RVqinY bw4TIrq8 PdCXG//57nS3nhPZ+Q6vc/MrbIeSUL+rCraGYqY6p2BvuDGoCOBpxzm+r6eCZwM2fNOfYOeGVKrtioxNY3dmFwQNybRCYK9D9XQIV/bilnIb5J4pz7zAga5rZYd/YtM1yZE5aVbvScrAb58pgg4xrMfUZrYIA6N5XN/9/FryZhivCl+vpkoLIljgvEqN5ujnEdzqgP+wtY5EFcT7faier2AVY2STdwHyiN6PDavqouuWIIkeYWneCQ3SH3Zh7FD+9okZ31IvpIePqjqKvefjIcBXACrVdHG+fJjxQDjTvLabYs2Eiq/wPgTTIGu2zsg01SQ8C 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: On 7/6/23 01:53, Mike Kravetz wrote: > On 07/06/23 00:22, Matthew Wilcox wrote: >> On Wed, Jul 05, 2023 at 04:08:08PM -0700, Mike Kravetz wrote: >> > I was recently asked about the behavior of mprotect on a hugetlb >> > mapping where addr or addr+len is not hugetlb page size aligned. As >> > one might expect, EINVAL is returned in such cases. However, the man >> > page makes no mention of alignment requirements for hugetlb mappings. >> > >> > I am happy to submit man page updates if people agree this is the correct >> > behavior. We might even want to check alignment earlier in the code >> > path as we fail when trying to split the vma today. >> > >> > An alternative behavior would be to operate on whole hugetlb pages within >> > the range addr - addr+len. >> >> After a careful re-reading of the mprotect() man page, I suggest the >> following behaviour ... >> >> addr must be a multiple of the hpage size. Otherwise -EINVAL. >> len should be rounded up to hpage size. >> >> I wonder how likely this change would be to break userspace code. >> Maybe some test cases. > > My concern is that this is the approach I took with huegtlb MADV_DONTNEED, > and this caused problems discussed and eventually modified here: > https://lore.kernel.org/linux-mm/20221021154546.57df96db@imladris.surriel.com/ > > In the MADV_DONTNEED case we were throwing away data. With mprotect we are > only modifying access to data. That can still confuse some userspace, no? I think realistically we can only document the current implementation better, maybe improve it without changing observed behavior as you suggested wrt the split vma fail. But changing it would be dangerous.