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 AC6C1C001DB for ; Thu, 3 Aug 2023 19:05:29 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2B141280296; Thu, 3 Aug 2023 15:05:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2618D28022C; Thu, 3 Aug 2023 15:05:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1508D280296; Thu, 3 Aug 2023 15:05:29 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 0444F28022C for ; Thu, 3 Aug 2023 15:05:29 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B33B1161102 for ; Thu, 3 Aug 2023 19:05:28 +0000 (UTC) X-FDA: 81083721936.26.40A8459 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf09.hostedemail.com (Postfix) with ESMTP id 8AB64140025 for ; Thu, 3 Aug 2023 19:05:26 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=VW7C+229; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf09.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691089526; 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=pPDr3fHEuj+B4yeJMYhNPLAGlxXe+c7xVHr2n9vPefY=; b=AkUExQaduwPCbEt36aBmN8K6i8Mr7VeMoSC02oSggwIS28Q5xxlGM+8L7vGZUTk8+Tmcy3 n4K2lgnpvGUTlPEFAm9sn3KY46Iki1yCJTY47p0Y2uP5y2MXnmN/Um2r8NVVcpNb0duT9w YGRHK0W2uS7NtOIMnqIR9WYbDV4CS0I= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=VW7C+229; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf09.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691089526; a=rsa-sha256; cv=none; b=DeNF/gCX2hUXV6rqqPnabtwph36c3a9DST6mWDWRVr65DHbG8V/U+kH+axqttv8zwaBotD 9wPSEU9NJRQ7WtAlXi6HtUYHIU4rauNekZM+8dIWOPBCUPgGS6+9FBoZZiEqMue7W7e3JN QodeLqFvLWB5Av6ku+RGxqxKuiMt3g4= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1691089525; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=pPDr3fHEuj+B4yeJMYhNPLAGlxXe+c7xVHr2n9vPefY=; b=VW7C+229dJ/5Z9ZvgL/ZirL8YGYjjAyH6QDdBJJohCWVLSET5kjuhkxSWjOuvOapSYxv0t TnSKlwRvsOmoYnVftqbt5p2xaKCrW3+XDjPDECdUowkWAKkpDBAT/Q2Fb9RkBcHPTtFq/V ptgMOcc71nUn+HoQ1saqreYtDb+HsuM= Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-436-7HG488joPKSHPHdBfaZqZw-1; Thu, 03 Aug 2023 15:05:24 -0400 X-MC-Unique: 7HG488joPKSHPHdBfaZqZw-1 Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-76cde638658so30394285a.1 for ; Thu, 03 Aug 2023 12:05:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691089524; x=1691694324; 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=pPDr3fHEuj+B4yeJMYhNPLAGlxXe+c7xVHr2n9vPefY=; b=RCUOYeAxSuzhXUZpDgAPlKj9iW9N47AEjcHcbQbhyVVltcdNaw4/s4Im/jS+/FV5gZ g5MA9veoacO+1gnFwp5Ls0njaGdGddVGW7rZBXl1r9zqM4Kd5CVUaFguCNQMAvNEJTJt 6oUZRWiJxgnpIzGh0TtmJy9hfiYjOluOQmCElid8B8x/X/W/kOvGe07J2Z6H2ylmXyk/ 3dudBdCaRP4vYV7DK48Zt2SznusyJ3f9YquS8RqlUHjjLV6phDEBoMd2CZ7X/EWqI+tW p3/24313QT9pS0w4YlxlGycWyUd+xcokAmxc3L5HO6U2J1QGSSqluLOf9mGYf/JY+1V5 i9Jg== X-Gm-Message-State: ABy/qLaYwRg8YI0LnmiSTxt1isrc/qf/tzi6YPlQPmi5EO6rt4r47U7l rcnp+Rklo58Jcu+eKH995uABPbobLh5wNKXXK9E9Yan9Mum6yXu8IDT3Vf8S+pitlOWTZPX4RM9 wHAnu8vZ6ExY= X-Received: by 2002:a05:622a:c1:b0:400:8036:6f05 with SMTP id p1-20020a05622a00c100b0040080366f05mr24001860qtw.2.1691089523797; Thu, 03 Aug 2023 12:05:23 -0700 (PDT) X-Google-Smtp-Source: APBJJlH2ykL98pmKhK3SiQ2b6vrIhtlRShiCOrIVRmlDJBxu7aT77VMcWW+uQQCpCeqHjK8Bd8KhMA== X-Received: by 2002:a05:622a:c1:b0:400:8036:6f05 with SMTP id p1-20020a05622a00c100b0040080366f05mr24001840qtw.2.1691089523525; Thu, 03 Aug 2023 12:05:23 -0700 (PDT) Received: from x1n (cpe5c7695f3aee0-cm5c7695f3aede.cpe.net.cable.rogers.com. [99.254.144.39]) by smtp.gmail.com with ESMTPSA id m25-20020aed27d9000000b0040fe0fdf555sm135924qtg.22.2023.08.03.12.05.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Aug 2023 12:05:23 -0700 (PDT) Date: Thu, 3 Aug 2023 15:05:21 -0400 From: Peter Xu To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, kvm@vger.kernel.org, linux-kselftest@vger.kernel.org, Andrew Morton , Linus Torvalds , liubo , Matthew Wilcox , Hugh Dickins , Jason Gunthorpe , John Hubbard , Mel Gorman , Shuah Khan , Paolo Bonzini Subject: Re: [PATCH v3 6/7] selftest/mm: ksm_functional_tests: test in mmap_and_merge_range() if anything got merged Message-ID: References: <20230803143208.383663-1-david@redhat.com> <20230803143208.383663-7-david@redhat.com> MIME-Version: 1.0 In-Reply-To: <20230803143208.383663-7-david@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspam-User: X-Stat-Signature: ox4ykxh83yqok7mfag14cijbb17yyfrm X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 8AB64140025 X-HE-Tag: 1691089526-815569 X-HE-Meta: U2FsdGVkX18Y6PGjlZQ7HN2sN2rmusOF5LgjxhP6x/H0x35nTXEuhhorSjAG1RUQoqnl5aIU3Sj/WyVudZX7NQgVw30PLFbpHnZk2ShBDXJaGKi4rcRN5vo97Jlkn8JwAiNwAelfGuCprx+MuMtBVPJLI1Uz2DnYttFxkmF350TBqc3MOWI3jnmgUN0ebziKfU+Iypf8LfvmzSe1l6WAbQHOERTAyNahCw4CinG6MDw+8ENkcEIvaWdLVZ/S87IgVRWzX6Sal2svjH1JX9RviVveaQ6cCfXdyPJXH48DwvBBKzQh0KbQlCGKUPYW5BRXzVL4r116ZaSp/XtRMqcm0LM1iHEkjgyj7DPSnEN2LaFsd6cakmMI7yZL3XgWZO9w6mQfldhLOt/g1UgkSyFFWM1gxRvFYtIZpeNTKnBEEaEuBqo4KjpRaeb+gvfZk68dwXeZd77QHICOvDixbLaJL0ugeo4qmrcnA66dVIpm2FxHgaP9mg3u+ILAzMwMuxiqeLsZjzmC+T0l+eucOY6SSdNzhbXSmw4b12F4W0VCy1gxD9YHh8Bj+Y4ZyfE5lfPtjYi8G/hys8V7Gm4bJ/60k21lA28E3+BLKXior+LFw1QpJCFxcJ2nXbEijWa/FU40bD1S0OxEru/f+wW+wniQObdC+mjcrL/He94Fl50lJTfXlEoaaZbEA+iNNo7gxAmKymP9z67Kor8p4NynTRhWeAW4MBRmem5shoDzGXQQXXCxuNphhcCweBKmMAh/b7o8L7NWTRG6YUcIIuQ6u9/lUjt5pjKkmFUTJbbl/5yG/F0aLiecDURinDHBsMT+fwcQcBLs++e0UP1Pu+N+K4/Qvx03xQ1jXIxYA5fMF2lsUtQXJS7EoGro7LUsHOUb1tEZebJ+bo7Js0vd14MKTdzXrQoQp8L3kYHiupN+dgaaM5BBeuRa2zU5ZYyAR5d+MRJ5huBx1QltKLEUTF3zi/o cDlqmz3e +4LcyzEEa6HlJ8vsEbZ+6yiRe9JFb5lr28ab1JzNDizt/mmxA/Fie4KmBQRJTbZapQgghG54RVr9aitQUDyzm2P4gsv8lxKnTjzJLGRyJ7pQOMP+8p1Br+akpgT5K989iJtW1Dqt+6ii92+5GXEMM0xO9fe66MvCxGH/DCuWjzFfJgBcTF99cczeVzPRgqhY60udKn+c3b5OlS+ajeqs6MLT4w++mKy+4FaElmyZmOyMXj3xke5Sy2893yjmvTdoF9PwQmeLkSwmLEcXIu10S16tn+6SvpKlPvPV4Fl66eVIzHmFI+dYM2sc8jYEdeAgpzblTeMfZi5Na5doxzFhMvxuk/347M7Arj+neG0fPaqRRwIlyQn/XEdnKBLCLJgqZ/HAPjph5yJZflnRNKo5qQNI243vZ3knpikvLPa5H4/ot3Zu7n8RgNn9G2Q== 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 Thu, Aug 03, 2023 at 04:32:07PM +0200, David Hildenbrand wrote: > Let's extend mmap_and_merge_range() to test if anything in the current > process was merged. range_maps_duplicates() is too unreliable for that > use case, so instead look at KSM stats. > > Trigger a complete unmerge first, to cleanup the stable tree and > stabilize accounting of merged pages. > > Note that we're using /proc/self/ksm_merging_pages instead of > /proc/self/ksm_stat, because that one is available in more existing > kernels. > > If /proc/self/ksm_merging_pages can't be opened, we can't perform any > checks and simply skip them. > > We have to special-case the shared zeropage for now. But the only user > -- test_unmerge_zero_pages() -- performs its own merge checks. > > Signed-off-by: David Hildenbrand Acked-by: Peter Xu One nitpick: > --- > .../selftests/mm/ksm_functional_tests.c | 47 +++++++++++++++++++ > 1 file changed, 47 insertions(+) > > diff --git a/tools/testing/selftests/mm/ksm_functional_tests.c b/tools/testing/selftests/mm/ksm_functional_tests.c > index 0de9d33cd565..cb63b600cb4f 100644 > --- a/tools/testing/selftests/mm/ksm_functional_tests.c > +++ b/tools/testing/selftests/mm/ksm_functional_tests.c > @@ -30,6 +30,7 @@ > static int ksm_fd; > static int ksm_full_scans_fd; > static int proc_self_ksm_stat_fd; > +static int proc_self_ksm_merging_pages_fd; > static int ksm_use_zero_pages_fd; > static int pagemap_fd; > static size_t pagesize; > @@ -88,6 +89,22 @@ static long get_my_ksm_zero_pages(void) > return my_ksm_zero_pages; > } > > +static long get_my_merging_pages(void) > +{ > + char buf[10]; > + ssize_t ret; > + > + if (proc_self_ksm_merging_pages_fd < 0) > + return proc_self_ksm_merging_pages_fd; Better do the fds check all in main(), e.g. not all callers below considers negative values, so -1 can pass "if (get_my_merging_pages())" etc. > + > + ret = pread(proc_self_ksm_merging_pages_fd, buf, sizeof(buf) - 1, 0); > + if (ret <= 0) > + return -errno; > + buf[ret] = 0; > + > + return strtol(buf, NULL, 10); > +} -- Peter Xu