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 0255AC4167B for ; Fri, 1 Dec 2023 21:59:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8AC298D0077; Fri, 1 Dec 2023 16:59:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 834DB8D0001; Fri, 1 Dec 2023 16:59:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6AE598D0077; Fri, 1 Dec 2023 16:59:30 -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 5641C8D0001 for ; Fri, 1 Dec 2023 16:59:30 -0500 (EST) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 171C240356 for ; Fri, 1 Dec 2023 21:59:30 +0000 (UTC) X-FDA: 81519616500.08.DE5B552 Received: from mail-yw1-f177.google.com (mail-yw1-f177.google.com [209.85.128.177]) by imf06.hostedemail.com (Postfix) with ESMTP id CCB7818001B for ; Fri, 1 Dec 2023 21:59:26 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ymRHJOli; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf06.hostedemail.com: domain of surenb@google.com designates 209.85.128.177 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701467966; 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=Z+exs5h/ORFFX83E63BLP4xoRIe35RXovt/mscKVvNI=; b=ogDU0PKfKdX/B2c1jYmGGJGeWJi89BppRFfH7nTdqorZqoqYZuQdLIqOnJLB5nXX1CmiQa +eZonDxNTbuZ/bp3514HnHpt+hTHO8Dc1slWcE2xuMLQsYsLmxwEzh2ZIhR1bilFsJkuBz +19Hny3WCQlUFXF2bja3cH+0gEyxIf0= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=ymRHJOli; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf06.hostedemail.com: domain of surenb@google.com designates 209.85.128.177 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701467966; a=rsa-sha256; cv=none; b=sfQegZ4+dacD9FhUvHSK2IIdQ80MvjFSOSR1OzFpT5b2QkgUZdudzAiEuyQhvrLe5SJAJc HHHssY+pMpQPqkzdWiYNjPx2GS0a7CUJmT0fjltOY9tZKDxHJGl6c7HMD++a0UzZ/5/+UB QKjkCNBch+5ZOjH9UOBjI1iEVcAAaxM= Received: by mail-yw1-f177.google.com with SMTP id 00721157ae682-5d400779f16so10606677b3.0 for ; Fri, 01 Dec 2023 13:59:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1701467966; x=1702072766; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Z+exs5h/ORFFX83E63BLP4xoRIe35RXovt/mscKVvNI=; b=ymRHJOliJPRTsExDcgQ/l1X83NNZcBtfRDXQiRezjb8GSk4piXQToCAfghGHcC/T/u n1C/R8NAcCJELfBoVBt/PMnR6+F6atbSLucS9aL25lu0qB7WkFzPkntQVitiGNXgdcfF NOxGY5c5ZAuCXRAAxJkne22rgzb1Dbs2qMaOdxSihF21V8C0aNJ1LWhWXXqJ0YuLSQ1l x18YUotFLMoXg1HTDVWlY01P2/XwiRLjmjImGw4OGY60bV639fxmyMtGTIyZ3bdCSz/4 bMwZ8P2eUgiEYVnZsO8fBKu7VpWsb1egZSopGYTYpEg3D/3CwqlZFqi3JdLUEKsBlX9b 0iQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701467966; x=1702072766; h=content-transfer-encoding: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=Z+exs5h/ORFFX83E63BLP4xoRIe35RXovt/mscKVvNI=; b=QYVtzifDn9YUq2YJ/cso+H0UR2M3k14CyfV05YUCpeDj74oOzn5ulltZafDoDvHHRF TawBy0/LouWaybDP7FJdlDCdIIm2IvBpmlXFmYpN3kYq76fAxtvqr3Pfq4MLBLLfkoUH cJSlgYHdgwuKjySrIXNMViV2/RW4bjUZCDeHHr4caYgDjHouWD7O2Z6PMONt3YUzM7WT KckQqKItPu5Mu4fyVJ3LkmYyOq2A873ObZGl4wZZyCf/vnnChphXsL6lnBKJSOhiaJ+T n4YRB3LG59I6pyP3ZsxDoZ/5WOS1hqAL7S2xJbfCHSjSlcCgqwX4JivIvEuwrFLnT6gG 7fzw== X-Gm-Message-State: AOJu0Yx6xhlxmg8jnVqXy+9k6aavfIUKRUdLtkz7CYcruC88E885tX6f t44bb2q/1mW7OuXQJCil2VHopheknZk9C1ZQfXLvpw== X-Google-Smtp-Source: AGHT+IH5pinfBxSB4oGxosUPol8k+50xPe9U5E7xmyyM7NKUdtj+66RiOT8P6mzKNjGWMLXdmWbEEzCJywNKZK4Oneo= X-Received: by 2002:a0d:e684:0:b0:5d7:1a33:5ad3 with SMTP id p126-20020a0de684000000b005d71a335ad3mr115182ywe.32.1701467965712; Fri, 01 Dec 2023 13:59:25 -0800 (PST) MIME-Version: 1.0 References: <20231121171643.3719880-1-surenb@google.com> <20231121171643.3719880-6-surenb@google.com> In-Reply-To: From: Suren Baghdasaryan Date: Fri, 1 Dec 2023 13:59:14 -0800 Message-ID: Subject: Re: [PATCH v5 5/5] selftests/mm: add UFFDIO_MOVE ioctl test To: David Hildenbrand Cc: Ryan Roberts , akpm@linux-foundation.org, viro@zeniv.linux.org.uk, brauner@kernel.org, shuah@kernel.org, aarcange@redhat.com, lokeshgidra@google.com, peterx@redhat.com, hughd@google.com, mhocko@suse.com, axelrasmussen@google.com, rppt@kernel.org, willy@infradead.org, Liam.Howlett@oracle.com, jannh@google.com, zhangpeng362@huawei.com, bgeffon@google.com, kaleshsingh@google.com, ngeoffray@google.com, jdduke@google.com, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, kernel-team@android.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: CCB7818001B X-Stat-Signature: otj43csox4bjyceofw96ycwitrmknbaz X-HE-Tag: 1701467966-705159 X-HE-Meta: U2FsdGVkX18gMkCbxk2Xg5MymXZkAojpOjUuFXVXheU/mCD/QOgP9QiZw4MrNlE0nu5GZhDLsn3Pc/DVAck3cOJx5zH53c4hZBwWVCA7gZWVQdXomOUxri3Y3F7BzGssl+2Olb6jolPZAs3ErmsmDR6jiNmRkL/quLxc8mOQkKPZD9Q4jsr4KWxiP+P7/wqV9eBK4yA2LY5+dGq5OXBHIFA+bGKmoisIUztqg3YGkvR+WDi9Q3cUI8aE4kWB8Zz4qEy69ZxCDw+ecCHSmu3xxhUNqz9jMHr/wQFkt7AoiHz9E1iDcQ0BNsgI85GdvdIOfxdl8weBP+C9LxzdBmosYjFZWr2jfpWNdvrzADfMn2lDgJBD9sJp+JxyEJ3gG4viAusT19CPAox8UA2i9V99ILJcChiwleY+FHwBom9SyMVgPeaXsuiAZc5jbfeOAOGJzFXwGXQi8Zhq+Le8FtVkzi98FXifuvzhVMoYbJhAXhRFYEkwcLtqveCXRyLjbSwhpe0VIZVVSRo+zLuNOBJKDaX6f6P1WpDvz0mgYtfvqzH3UnEJFp1v00ocWAlC8imVwiObCSyMBRs5Zjfy8TQwJAjhFb48H0Bl7Jz1uR4RY438D6CLeWyqzpvmBKG4cfA8FDDmeif4DbV0Tj5Nbx0zxilseKCcoobmdbUPloYqWbhXnNaGaWTChJSwI8kiv5gBHrYxwr6xNJLVWxPY6jzAXq2d0P0qypfajJtWYiRYHs6wauItr5iXU3mFO2XOS47XDv37bxw7F9avQByxwQjYluxIP9ZT9y9kVqfzTLICmauHvvySW//Si23xtUIH1wnquGRrYseqmF+uwthyHmGjCx6iGfNtRO2+FiTOOVi6nreFmHHPsvZM4o72H3ojT1Ec9ppsaPuIzq1ynqu0HLCjA+p/YQgSNk7vXWCJHNUN8sQkVGy9bxztgInLxiFUZdOeFWYj/9x+JG5df3UR+5J HQ4GiMur lQDSpwZ9zbO9oGRxwG0bfVZSo8jfU03xT9QG3PKQNr4OIpFcfnQrJvYWT7OJ3egZD19CoRDwthpiJ6Cd5erBs67GA8uo24Y+4XEc0JzWB0EkKopZT8qLgnOnItuiPCoZq4h6dk+/Ykp3SGltWIRLzlcZFl9AGtC9scTpgDj9HY5eHNno3CQAkMp1e6sdGPL1jpsKa82h3Amrik0YCthH9/HC2X7SEoS4U5E7ndyYbnCotjZsIfCUIyrVVbpvR3sr9arLmHOiOnQ1yfof/o/jT9dIRarF+XIMoiCZqWcBOdaM29sgd6P8TRsN895HY1+nna0g3n/pQERBleEs= 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: List-Subscribe: List-Unsubscribe: On Fri, Dec 1, 2023 at 12:47=E2=80=AFPM David Hildenbrand wrote: > > On 01.12.23 10:29, Ryan Roberts wrote: > > On 21/11/2023 17:16, Suren Baghdasaryan wrote: > >> Add tests for new UFFDIO_MOVE ioctl which uses uffd to move source > >> into destination buffer while checking the contents of both after > >> the move. After the operation the content of the destination buffer > >> should match the original source buffer's content while the source > >> buffer should be zeroed. Separate tests are designed for PMD aligned a= nd > >> unaligned cases because they utilize different code paths in the kerne= l. > >> > >> Signed-off-by: Suren Baghdasaryan > >> --- > >> tools/testing/selftests/mm/uffd-common.c | 24 +++ > >> tools/testing/selftests/mm/uffd-common.h | 1 + > >> tools/testing/selftests/mm/uffd-unit-tests.c | 189 +++++++++++++++++= ++ > >> 3 files changed, 214 insertions(+) > >> > >> diff --git a/tools/testing/selftests/mm/uffd-common.c b/tools/testing/= selftests/mm/uffd-common.c > >> index fb3bbc77fd00..b0ac0ec2356d 100644 > >> --- a/tools/testing/selftests/mm/uffd-common.c > >> +++ b/tools/testing/selftests/mm/uffd-common.c > >> @@ -631,6 +631,30 @@ int copy_page(int ufd, unsigned long offset, bool= wp) > >> return __copy_page(ufd, offset, false, wp); > >> } > >> > >> +int move_page(int ufd, unsigned long offset, unsigned long len) > >> +{ > >> + struct uffdio_move uffdio_move; > >> + > >> + if (offset + len > nr_pages * page_size) > >> + err("unexpected offset %lu and length %lu\n", offset, len= ); > >> + uffdio_move.dst =3D (unsigned long) area_dst + offset; > >> + uffdio_move.src =3D (unsigned long) area_src + offset; > >> + uffdio_move.len =3D len; > >> + uffdio_move.mode =3D UFFDIO_MOVE_MODE_ALLOW_SRC_HOLES; > >> + uffdio_move.move =3D 0; > >> + if (ioctl(ufd, UFFDIO_MOVE, &uffdio_move)) { > >> + /* real retval in uffdio_move.move */ > >> + if (uffdio_move.move !=3D -EEXIST) > >> + err("UFFDIO_MOVE error: %"PRId64, > >> + (int64_t)uffdio_move.move); > > > > Hi Suren, > > > > FYI this error is triggering in mm-unstable (715b67adf4c8): > > > > Testing move-pmd on anon... ERROR: UFFDIO_MOVE error: -16 (errno=3D16, > > @uffd-common.c:648) > > > > I'm running in a VM on Apple M2 (arm64). I haven't debugged any further= , but > > happy to go deeper if you can direct. > > Does it trigger reliably? Which pagesize is that kernel using? > > I can spot that uffd_move_pmd_test()/uffd_move_pmd_handle_fault() uses > default_huge_page_size(), which reads the default hugetlb size. > > That, however, does not necessarily correspond to the THP size. That one > can be obtained using read_pmd_pagesize() in vm_util.c Oh, I didn't realize that default_huge_page_size() is not always the actual THP size. Will fix. > > I quickly scanned the code (still want to take a deeper look), but all > PAE checks looked sane to me. > > I think the issue is folio split handling. I replied to the patch. Thanks for your hint! That's very possibly the reason for the test failure. I'm in the process of trying to reproduce this issue on ARM64. If I'm unable to do so then I'll create a patch to split PTE-mapped THP when encountered and will ask Ryan to try that. Thanks, Suren. > > -- > Cheers, > > David / dhildenb >