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 6B52DC77B7D for ; Mon, 15 May 2023 22:10:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C1AAA900003; Mon, 15 May 2023 18:10:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BCC49900002; Mon, 15 May 2023 18:10:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AB9CB900003; Mon, 15 May 2023 18:10: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 9D271900002 for ; Mon, 15 May 2023 18:10:24 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 4A5D11A137C for ; Mon, 15 May 2023 22:10:24 +0000 (UTC) X-FDA: 80793883968.12.9A7A129 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) by imf04.hostedemail.com (Postfix) with ESMTP id 614904000C for ; Mon, 15 May 2023 22:10:22 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=RCLXWcRI; spf=pass (imf04.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.128.48 as permitted sender) smtp.mailfrom=lstoakes@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684188622; 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=PcasEqjqVqeZD6iRt2acWNL10GV04xiY11Aorq1Q2nM=; b=uby5AeMUks4DDS34MnSHBaDJFLsf3z2IDAZZ1nQk6ET9jDRHAkEXygZlLAVPOK+KA1Ws34 SnHFmVb43/zeckw8m9nUamEBeyguTE52A6vAvdA1DfraIdAKSZu4+ILvbW8egTvt/UGeNB ujlZfjmUH+0+ll5xLqrREs1V49D25zk= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=RCLXWcRI; spf=pass (imf04.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.128.48 as permitted sender) smtp.mailfrom=lstoakes@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684188622; a=rsa-sha256; cv=none; b=xspa4TeDmxuVOvtx2xNDmmF3fXb1i9ZwwviBH/khZ8dp9+J6L5Wvzqz/WiE0PBXJ0/dM5D A4nt+n4XT75Y476IpVKSJDvZeRkL86G7VEJ1PRpjZeuFrfKzuaxq6dhoTn6dTnH5p9dUad 59UP/je9jkazS1Ln2Sddw1XSxf3LJt0= Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-3f4c6c4b51eso62224925e9.2 for ; Mon, 15 May 2023 15:10:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684188621; x=1686780621; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=PcasEqjqVqeZD6iRt2acWNL10GV04xiY11Aorq1Q2nM=; b=RCLXWcRIkUtTeSnsDneWy3ua5n1ZSO+btm22KJcVMSLPorWDPAGjqjqM70gptvZlXV 7NlfYafwS44YFcqoYLkJuHah4Z3z/Z7YNDC6mfLuYJgNu1g7PJCEUiUKqK6g2WF1LhJB a+pkzyNmLDQJUNM5UGpQtkFlDBTd82RL6JEro8JOQajcBHgQSZTW/DOz77HYuLRhVBPl /fKAohlTgCL9oVUDoGI8HsrYrP9o0y6z58X6XTb1kz0p66KfqlL7Pnf6mhDxJBkWmUQ3 xvYWUHmOMKsp/rhfKLwuu+/Vp2YdGiVlrD4AMiZqP2mexMEjRwlzHttsI99fmLWFbaC+ qJEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684188621; x=1686780621; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=PcasEqjqVqeZD6iRt2acWNL10GV04xiY11Aorq1Q2nM=; b=KqXSrZjliIZF2gvAaVpU+Ct4SGZfUbAoH0xbXI0p0SUAImHGvq3a9sC31sBU0Hzlf0 mk0u4hL/vABrJ2D/nEjOMAX/iSf0ULrOSb0svflqBcrvRbdKyggw30Uw0nMvsd01MtDP EpJJKwn2voC7KULhSl009OL5rjvd8mcxJ5jcSXeeCxk8q4wnUkmlZ0qRFpi4iggf1+7S +PKFmeyWUmYoPcYZFZcbb82wryjt8DiH3KVcJ3OQmheuhvAULsRliz0XKaSJ5Hz4apF9 6GCDg2/FoFpdl5sUzbSPZo3355Ee9Lvjs/LIBmuzdFNXYkf0b8l4QnBSpuKR4u/eKa0t H8UA== X-Gm-Message-State: AC+VfDyy5R8V7PgkmYL7XA2Oe5Ep5GlRLBwFIyq43+VRntcyBbJAsyhg Wog6HKT33sFdztEAU/Tw81A= X-Google-Smtp-Source: ACHHUZ7K/t3stitaVskNFjUzr78g28lE3oEjtjJswqzrJG4v2pFCXfbk72g7XJNHy/562eUNOSabnQ== X-Received: by 2002:adf:ee46:0:b0:2d2:f3e3:115d with SMTP id w6-20020adfee46000000b002d2f3e3115dmr27524669wro.59.1684188620429; Mon, 15 May 2023 15:10:20 -0700 (PDT) Received: from localhost ([2a00:23c5:dc8c:8701:1663:9a35:5a7b:1d76]) by smtp.gmail.com with ESMTPSA id n11-20020a5d4c4b000000b002c70ce264bfsm393491wrt.76.2023.05.15.15.10.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 May 2023 15:10:19 -0700 (PDT) Date: Mon, 15 May 2023 23:10:18 +0100 From: Lorenzo Stoakes To: Peter Xu Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , Mike Rapoport , Mark Rutland , "Liam R . Howlett" , Alexander Viro , Christian Brauner Subject: Re: [PATCH v2] mm: userfaultfd: avoid passing an invalid range to vma_merge() Message-ID: References: <20230515193232.67552-1-lstoakes@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 614904000C X-Stat-Signature: bftwq3jjsb7zocmxk3d1x6jz631rimnm X-HE-Tag: 1684188622-733766 X-HE-Meta: U2FsdGVkX18dnZW+cRQYp4rj8DNSu4H2gBMoIdgjd6YsE++w+XX8K8MpEM1FYj1ozNmxPBJu18NjouDbN0Xf30qmG9W4Z8nZ4oZvJRNesMm8fidD0YUoP1MgDJuQDN/PL5dclG2HmcKjq3OePQzq4jWWUw3SlXVEf2rlSm7g+dhH5w7Uu7vUGr2byei6JozgfX0K5hL9dXlAamPhicPkjpxi3YTPbzna/LU5n7cwtuyKBBwzc5x6TSi5OqkNZzpIRddTJOOa8kaDxQOwkgBqgqvRElvJGBmsggmx6iVRST+cWDFe5hnVpaJFsobqYbEoRR6ip2/Z+TZ1HvpO4fa8upqDopQr2PDxXGp7CnSWmiroWBj2jxKHT+155gCDl1NAZsEOnxEei+U2D8IJrvT4FSv3jOeKq5x2iKpJmEFVHljBj0ynU1x8PNQuyvv5aUmI/xUCVmL3XgX92sZ6AOmSYg5GZepBBS7y+ccGC0Ndf6eVXO8/4CgB19phTmZDwq+ws6vevgtT7JP0VtBYhfD1d3k3OtrIWs+EOmY4dY/3+34M6NwhiMoUvN8QFX/hrYDPH4oMgvcGy/zJU3AdlCVXU7dwE7a90nMm/0ZC60r4i1JEDLdGaTd2WY1hgp6CNe/meAXfuFinMv+cmow0CXcF4vIhawpwRhr5r50TS3iXp8FURFI7kLRbWdLVWjAobyEjYI/4qMSuOrbcBZvz2hodsWu5qbVADLyi7aey1jHr9qZft1OuDDGSCEV8sYlDxn8FVEEN6mIGmrnFjKXsGt6oKQZuc2ZtNLS9rhzc/W3DjtQoBvFYq3Jk5WTl5g5EH245eU78gsw7TTfzk3RC7V6jIscyyVR8lLdOrTMDT1iY6dXDqf+ikt9UpuOvenXU+K8pOw9nd7JZCL/PbAbASrzx41whwjUGxZPftQhvP2KAGt90+djckDTrtNutcB245YNKB3D3iq3WPtzbJWfA6UU v8gLfqDf FpEO4BtZ+pHSrL18ShtVzoqF8UGahOUUnY+AkycdgWr0k9Ly93foLtqo876YvoGM9ahn3oGWzD0vzIhDlMnOxl49ZLZWSXw+tGFp1pZhB12lcNqb0zrHt/XJIOd+DPlHH4a/dk5Gtl45HTGq2G+1yckBarg3XOPt6guimBhuvtIrXvSCij8jq4dqAl2+YOzoSC4kwlVE56kJ5oECU1v583HEurS5f11sM6J2E+Mq+IB4OmZ4nbO/uzwpWlR0r0Z2vWGkpr22eq6swu0IHEmBfYZ4uYuayOB5BCYBGqnHcPlmm/A3jBFCFe+FWq/oZVvrUNpjnnYzswnwb7MEcgs7Oy+vZI7LSA7GZLpCn79nATKiXz6iO9850VCKsoAsSE2CMVq0JVdpKVEI/y3g6tEomf6ZqoyYutfZGG/EYaAW5Q9FXtDANbK0kxhcbfAERwtOZSIGe 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 Mon, May 15, 2023 at 05:39:25PM -0400, Peter Xu wrote: > On Mon, May 15, 2023 at 08:32:32PM +0100, Lorenzo Stoakes wrote: > > As well as fixing the repro described in [1] this also continues to pass > > uffd unit tests. > > Side note on testing, not directly relevant to the patch itself.. > > I'm wondering whether do we have tests somewhere to just test vma > operations on split and merge, then verify it using smap or whatever. > > The uffd unit test in this case is probably not gonna trigger anything > because we always mostly register with a whole vma over the testing ranges, > so not immediately helpful. > > The trick here is we have quite a few ops that will call vma merge/split in > different ways, but logically we can still category them into: (1) add/del > vmas, or (2) modify vma flags, so at least for case (2) we can have a > framework to cover all the cases (mbind, mprotect, uffd reg/unreg, mlock, > etc.), the difference will be the flags we'll be looking at for different > cases, however how vmas merge/split should be somehow in the same pattern. > I totally agree we need more testing on this. We do have some basic self-tests for various things but I don't think we test this specifically or certainly not in the way I'd prefer (somehow pull vma_merge() + friends into userland and instrument with heavy unit tests). I do intend to try to do something with this soon. Something with /proc/$pid/[s]maps could be a good straightforward thing, I will try to write some small test (we already have a little repro for the reported issue) for this anyway. > -- > Peter Xu >