Received: by 2002:a05:7412:b10a:b0:f3:1519:9f41 with SMTP id az10csp906494rdb; Fri, 1 Dec 2023 01:32:11 -0800 (PST) X-Google-Smtp-Source: AGHT+IH1oywlYmvBeIF0iXiyXEwazU93Q66SzJujf8YBL/AvkmQoMnlst5LsCt7gh/dHdWG2Zl8P X-Received: by 2002:a92:c74c:0:b0:35d:51de:bae2 with SMTP id y12-20020a92c74c000000b0035d51debae2mr574267ilp.24.1701423131040; Fri, 01 Dec 2023 01:32:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701423131; cv=none; d=google.com; s=arc-20160816; b=AkAPX/R3B3G5OLI3I6wj51e+HyQtuTRqAVm3CADNNZFklIHSLvNKUp6QNaXDLfWMN3 f6PkJnwgsKUB/j7R2swh0tsT7JPLJF68vBzRWrUmnxyxoV25jmabhCTqQ0x2YBi787+Q 3uNC7vBihRDiNTI22KECq/9WH8A7OqJ8O1q4YhxEJl4R9bEOMQoWs+ZMcHmTxHcoVUdy j50oZdRCqeYcKBy+gv4yBSsIvIo4Sms2fyoL0HILsjJelpnQ7ATI1pfSMqAUTIqYjNlZ 6k3DUqsUDOID2j++jXz01S0Y/P/BzLiJRfLmPHMUUBWQxrIjlhID4jxIkDiQnNkfL5QW Gb/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=hdgXS0AVjyK8Tz8Og8qgUmc89zoPjqwHrNkuXv9bSg0=; fh=mYDZG+NOdtnvsJAo1AIbv5g051YupntJgTKUztAnsyE=; b=Kb9c7+ynZduMw75RTwCNkqWK0pgBfUnvUw1bR7J0hpEmXJes5cTVxQZhcS0RKNjz83 X60tnAvZbvfVs/AVlIlQcTmF89Rm9uZrc3ZBiyc17I6ZwYvR15kjkICMquMmapVH1beO q/CbpnKifk8P1p5GRNm5x1bmo73IiNJDA1HQbHSwTvyGxxkfzwSbP1kP1H7d/A1RsZVr a7sYdG/OtqLuiEzIOrjohx3Izbk1na8zYtPrZ96BXSSk7XzMlfYFoBIIPIRCsxH84g2f C+Cfx/ca+GZeAI+QHIn8gfW5n9ySPSH14mFd+A+eiF8W9utqJd0bB/pKstAFBsl3IqeN yEGQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id x20-20020a634a14000000b005c62a23ddffsi2758445pga.778.2023.12.01.01.32.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Dec 2023 01:32:11 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 97C8F80B9532; Fri, 1 Dec 2023 01:32:07 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378179AbjLAJbv (ORCPT + 99 others); Fri, 1 Dec 2023 04:31:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46510 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1378184AbjLAJbf (ORCPT ); Fri, 1 Dec 2023 04:31:35 -0500 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 996944C0E; Fri, 1 Dec 2023 01:29:34 -0800 (PST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 924E11042; Fri, 1 Dec 2023 01:30:14 -0800 (PST) Received: from [10.57.73.130] (unknown [10.57.73.130]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id BC3E83F5A1; Fri, 1 Dec 2023 01:29:24 -0800 (PST) Message-ID: Date: Fri, 1 Dec 2023 09:29:23 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v5 5/5] selftests/mm: add UFFDIO_MOVE ioctl test Content-Language: en-GB To: Suren Baghdasaryan , akpm@linux-foundation.org Cc: viro@zeniv.linux.org.uk, brauner@kernel.org, shuah@kernel.org, aarcange@redhat.com, lokeshgidra@google.com, peterx@redhat.com, david@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 References: <20231121171643.3719880-1-surenb@google.com> <20231121171643.3719880-6-surenb@google.com> From: Ryan Roberts In-Reply-To: <20231121171643.3719880-6-surenb@google.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Fri, 01 Dec 2023 01:32:07 -0800 (PST) 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 and > unaligned cases because they utilize different code paths in the kernel. > > 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 = (unsigned long) area_dst + offset; > + uffdio_move.src = (unsigned long) area_src + offset; > + uffdio_move.len = len; > + uffdio_move.mode = UFFDIO_MOVE_MODE_ALLOW_SRC_HOLES; > + uffdio_move.move = 0; > + if (ioctl(ufd, UFFDIO_MOVE, &uffdio_move)) { > + /* real retval in uffdio_move.move */ > + if (uffdio_move.move != -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=16, @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. Thanks, Ryan > + wake_range(ufd, uffdio_move.dst, len); > + } else if (uffdio_move.move != len) { > + err("UFFDIO_MOVE error: %"PRId64, (int64_t)uffdio_move.move); > + } else > + return 1; > + return 0; > +}