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 B9641C04AAC for ; Thu, 21 Sep 2023 11:44:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5398B6B01FE; Thu, 21 Sep 2023 07:44:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4E6E96B01FF; Thu, 21 Sep 2023 07:44:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3AF7A6B0203; Thu, 21 Sep 2023 07:44:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 2D1506B01FE for ; Thu, 21 Sep 2023 07:44:18 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 02AFC1610AD for ; Thu, 21 Sep 2023 11:44:17 +0000 (UTC) X-FDA: 81260421396.14.9016913 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf14.hostedemail.com (Postfix) with ESMTP id D4F0F100020 for ; Thu, 21 Sep 2023 11:44:14 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=axvI0Gk+; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf14.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1695296654; 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=eRU04s8x3xyTIu5kQQVDaBmHzp4m8wrqdJh+ENCEibE=; b=k6n9VDEZJVpFwx4yaBPfjCZGpT2Us8x02y04AqBeuiOf2g1085PMPvYs29hXPBn3yQIQOc MPeLb+XF0E9TqTINVPDYKAQk1HJ2NfGijQs3AhLg8HRrwga05VYycceo5500WW/sQX004o +g9W2C92b1c3b+umca5Q/vW4lwNvFnQ= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=axvI0Gk+; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf14.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1695296654; a=rsa-sha256; cv=none; b=oBrnKZXjQ9no7Ke1JJA+OTqBc87ckXbwVZSdqbIdMDi0ropxlvBB9HdHqNCNdxYByo//iQ 7BHk833CnHPWPg2/2Am3vMCtQMHxB/P07YcKIO4uJq9lcVV8aJ9LRlhVTcBZ/iQ9b/EjB0 /6q0ukH30a8jENPWHBaO6nORV7k3Kt4= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1695296654; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eRU04s8x3xyTIu5kQQVDaBmHzp4m8wrqdJh+ENCEibE=; b=axvI0Gk+FgEcFz5i2l2Kt39OlowmcLI9lATmTaRgoxtouR8R9UMhYvfjlS/0U4TtOLVb94 GIIbS6lbklUDRvtdCNfhlb5IoFNrc/UtGv+ZHbLaQJEOdXiBSSO+Ntk51iQk6XUa0CJT8P LP780FAgp1K3PfcsSbVoZN7ISMLgcyE= Received: from mail-lj1-f200.google.com (mail-lj1-f200.google.com [209.85.208.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-613-aTdpQyz4MrO3qaYCjK-Exg-1; Thu, 21 Sep 2023 07:44:13 -0400 X-MC-Unique: aTdpQyz4MrO3qaYCjK-Exg-1 Received: by mail-lj1-f200.google.com with SMTP id 38308e7fff4ca-2bffd454256so10726141fa.1 for ; Thu, 21 Sep 2023 04:44:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695296650; x=1695901450; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=eRU04s8x3xyTIu5kQQVDaBmHzp4m8wrqdJh+ENCEibE=; b=hUt15PDRSn3kIYKTmn30bNRGePtyedhsXYOYRB8x4E2aJbgIBWY0DNAnsoFoh6NlWn jLvfrbOLlS4w62berP13QE/7G9ONeZ6ah9IeqlDmYg2UCu0tC0lBj2JClLOrsI7qlWgW tP5LuhlVbEGmscO8Q400QFsPUajwkaZwMQyji2kEObAX/+XbiHUFqKAlpdL2isYw7EOb AO9WwH2XBXOS5i8OVwGCP2q0TDgQOmyIlixHXv60pdvgEa63/rnUd6GZ5+PhtN7FqLnn c3Mh+GczUM3CbUldW1cHZv8heMXfDcxsW9fCMLvLFzbLyrisTrkNysZVS9Kl9ehuP8LI qt/A== X-Gm-Message-State: AOJu0YwdBLUyyRycEQ8VsBAW9rc+W2eZdjcHZpH/DulsHZz9tYcYDyEX /c7tnFVqErwXpB/5DVh8GZ2bOFWojHQm4uJ9guVUuPXnqP1GuAgJayUbkgvVPTh9NEku1f7Z0S0 2flnIEEuhgNE= X-Received: by 2002:a05:6512:3a8e:b0:4fe:1681:9377 with SMTP id q14-20020a0565123a8e00b004fe16819377mr5753139lfu.44.1695296650635; Thu, 21 Sep 2023 04:44:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH5GV8/baOpMr7/GmvUgeyp9wjUxfjm/iPabRuc8P8p7Gdqec3OZTU1KD7Ru8lcah55rWhSUw== X-Received: by 2002:a05:6512:3a8e:b0:4fe:1681:9377 with SMTP id q14-20020a0565123a8e00b004fe16819377mr5753114lfu.44.1695296650114; Thu, 21 Sep 2023 04:44:10 -0700 (PDT) Received: from ?IPV6:2003:cb:c70d:3c00:9eab:fce5:e6f3:e626? (p200300cbc70d3c009eabfce5e6f3e626.dip0.t-ipconnect.de. [2003:cb:c70d:3c00:9eab:fce5:e6f3:e626]) by smtp.gmail.com with ESMTPSA id 17-20020a05600c229100b00401b242e2e6sm4592223wmf.47.2023.09.21.04.44.09 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 Sep 2023 04:44:09 -0700 (PDT) Message-ID: Date: Thu, 21 Sep 2023 13:44:08 +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: [PATCH v2 2/2] mm/ksm: Test case for prctl fork/exec workflow To: Stefan Roesch , kernel-team@fb.com Cc: akpm@linux-foundation.org, hannes@cmpxchg.org, riel@surriel.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <20230920190117.784151-1-shr@devkernel.io> <20230920190117.784151-3-shr@devkernel.io> From: David Hildenbrand Organization: Red Hat In-Reply-To: <20230920190117.784151-3-shr@devkernel.io> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: D4F0F100020 X-Stat-Signature: f34bpfey8prx1xqe4bzgb81494bk8q6f X-Rspam-User: X-HE-Tag: 1695296654-665193 X-HE-Meta: U2FsdGVkX18suOgNpu+0YvNU/3fZWyq5OPKFRz40V+lNS3bXm3d0d4M2So7IWfp6qVT3i6SpXzealFvYpFj84jL0l51bFq22Nzf4VDPJALPrwH6ADgBuFXCaoUB1y/tMdJC+BTQsac1kOx2SV5Fg5AuinSDBTgOIPuijgkjvO1pHnyPt+jHohVW+DyKnw7a2uxTVVtEqJX4Gq4jsb2fIqVPIqQQeEjlvv+WhvtJnSS13udm1ocxvZi/307hn0e3xyoCyEo9mjlYWRgO67Vd//gntbPT3aGWSkj0w5an8ATtSN6LWZNWQeuoHLHG/4iBlJfrx6rBMJIhGCyhCiftZCa0+GIGD4Y/DNN9oW6GV30n92OZTkqYTVx7Rm6pdr843MsXq0+uHhyx9AO3knwWqK3J9LnURp0gF3rA4cht9XDqjQYppUPJman1CG8voB7dGjgkkjxvJ0h2qV5E++0z7KXWOW9BpV4scpVYhs2FEQjMhWY6n/h6kJ/ACf36jYFdhjitDy0G5witRuhptfJ9iJnWE5WOYogr5EZI1mu2Ba4OWd0WONQdJ67/iXw1cA4IoEbmeiv51Jo5KRw1rSjllymmxBh9umPuxWyydMaKPd3CSsiAkCxkBHLAGv4XhvRLvU1DnA9F7MrLzsu6SzqETyANxRxXs0LO0jgUNWnx0XT4LBZnC0lvuhbMnI22djhZGsPelYul1bghMGNVd5a2gKpWYjNGs2PONFfpGa9q1QPg5ESsCAJLSJsfldqtz3PSMtLolioR65sLwuBu8NIIuGr9p1hBkOmxDTef0c6jJ1Zi8Jone3v1QQ1JY6XyoJEKqIZXnQF4IvY8zBUlBjyZoxVDyVIkAo+TjCJ4UCoXhhjk4FwNI0lyy4fKEvYmKy39vdZFCA0FDuh4tAARC8/kIcLO1VLVh0J9Rvbgb8Y39jGNivBMdyLs3bwo6GEtlikriGopA+1QOrOyrjwIIy2o 5qLVkSzU DH/byOR0yV18CwDM/1Lxn7sHlc0o/QHt8nGgkjwhNVpjs5MRwPZ0iwC7t7Vypd8jlho4GLYQ3cv5I7XiECeHhO9hPZlcZXzRmfwcCSUo0A5bTaUua7FBTejbo4jnlXH50z4SyJNXxt5LAHV76qyrfRUHFH0ViyRgzdIzqq8PBqLslQDJ9lPS1HCiOOSliVeBAEek1kHdz56UHjLfckbphMXiINUQgUNAIhU3CnVSjOppYmUlvsWvc+qL9i1fBCxe+0HP577Rshgaaf0jC+PDuDJzU0RAxlkjmdhtj9SS+ooTwTcCvgxkyRiR/pgd8QsKAY1C1BHakElCy4Bk5BOTSoKIHtTUF62gXyQaxZr7UYfI7XekTWQGnweLExSAhrG9yG/qyur4Q6X5aMkcB1ITLyCCuhw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.002844, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 20.09.23 21:01, Stefan Roesch wrote: > This adds a new test case to the ksm functional tests to make sure that > the KSM setting is inherited by the child process when doing a > fork/exec. > > Signed-off-by: Stefan Roesch > --- > .../selftests/mm/ksm_functional_tests.c | 67 ++++++++++++++++++- > 1 file changed, 66 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/mm/ksm_functional_tests.c b/tools/testing/selftests/mm/ksm_functional_tests.c > index 901e950f9138..40b86c9caf3a 100644 > --- a/tools/testing/selftests/mm/ksm_functional_tests.c > +++ b/tools/testing/selftests/mm/ksm_functional_tests.c > @@ -26,6 +26,7 @@ > > #define KiB 1024u > #define MiB (1024 * KiB) > +#define FORK_EXEC_CHILD_PRG_NAME "ksm_fork_exec_child" > > static int mem_fd; > static int ksm_fd; > @@ -479,6 +480,65 @@ static void test_prctl_fork(void) > ksft_test_result_pass("PR_SET_MEMORY_MERGE value is inherited\n"); > } > > +static int ksm_fork_exec_child(void) > +{ > + /* Test if KSM is enabled for the process. */ > + int ksm = prctl(PR_GET_MEMORY_MERGE, 0, 0, 0, 0); > + return ksm == 1; You can simply do "return prctl(PR_GET_MEMORY_MERGE, 0, 0, 0, 0) == 1;" Or maybe even "return prctl(PR_GET_MEMORY_MERGE, 0, 0, 0, 0);" and adjust the comparison below in the caller. > +} > + > +static void test_prctl_fork_exec(void) > +{ > + int ret, status; > + pid_t child_pid; > + > + ksft_print_msg("[RUN] %s\n", __func__); > + > + ret = prctl(PR_SET_MEMORY_MERGE, 1, 0, 0, 0); > + if (ret < 0 && errno == EINVAL) { > + ksft_test_result_skip("PR_SET_MEMORY_MERGE not supported\n"); > + return; > + } else if (ret) { > + ksft_test_result_fail("PR_SET_MEMORY_MERGE=1 failed\n"); > + return; > + } > + > + child_pid = fork(); > + if (child_pid == -1) { > + ksft_test_result_skip("fork() failed\n"); > + return; > + } else if (child_pid == 0) { > + char *prg_name = "./ksm_functional_tests"; > + char *argv_for_program[] = { prg_name, FORK_EXEC_CHILD_PRG_NAME }; > + I'd simply have used the magic number "1" or so. But this works as well. Reviewed-by: David Hildenbrand -- Cheers, David / dhildenb