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 51CDEC7EE23 for ; Wed, 24 May 2023 09:38:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DC233280001; Wed, 24 May 2023 05:38:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D721D900003; Wed, 24 May 2023 05:38:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C395B280001; Wed, 24 May 2023 05:38:44 -0400 (EDT) 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 B3735900003 for ; Wed, 24 May 2023 05:38:44 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 8369D80948 for ; Wed, 24 May 2023 09:38:44 +0000 (UTC) X-FDA: 80824648968.28.409FEAA Received: from mail-pj1-f66.google.com (mail-pj1-f66.google.com [209.85.216.66]) by imf23.hostedemail.com (Postfix) with ESMTP id 9FE35140022 for ; Wed, 24 May 2023 09:38:42 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=kvRjfI8u; spf=pass (imf23.hostedemail.com: domain of xu.xin.sc@gmail.com designates 209.85.216.66 as permitted sender) smtp.mailfrom=xu.xin.sc@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=1684921122; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=znQ+oQUgIqQozQ/bIunmQ5Brszqw1hXk3gYEb70x7Ec=; b=LggqMflI8IPLTr5e1AMSg/6bAKxG6/XFPsJjciZ0HSH6gCDQWJvSh7grId+ZKyKW1xdRL9 DcpwIRrviVd8WkX5YHIpbq6QHvOwr6g3ogIhMGDjZlJikhHT8NYqXh2zjnPInmE7nnNRnm sF+DRgw/HB4UlSb9yvGcLMaHOSZTFKQ= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=kvRjfI8u; spf=pass (imf23.hostedemail.com: domain of xu.xin.sc@gmail.com designates 209.85.216.66 as permitted sender) smtp.mailfrom=xu.xin.sc@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684921122; a=rsa-sha256; cv=none; b=lLkXvl/5t+midrfqfPt3dt3oZHpLFvS0qZwOOamavlf7kP3vq/h1D/z59EJ0Kz6ORQ0gU/ ZsbuqsOjH/oGZvT2reO86T6yWSYqVcADMwAgtmSa6ZyLSzaCy5GkBADBVKXPTXLpkUblWA B/gJ75pDNdBowxY31ndF3kqauksw0oA= Received: by mail-pj1-f66.google.com with SMTP id 98e67ed59e1d1-2554696544cso15928a91.2 for ; Wed, 24 May 2023 02:38:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684921121; x=1687513121; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=znQ+oQUgIqQozQ/bIunmQ5Brszqw1hXk3gYEb70x7Ec=; b=kvRjfI8u1/VLUfkqd5Ct5F3vo6B5Fw1haAIedIcCdIgza/VJRX5AWh4Tyi2Olz+NxT 9xumV48hwvRiUyeHlx6c5N3s048PejEPGWuOBQz7BbrJNpJUPlfA3D4afx6/5d1dqsNw ydRjE6svWzjEbkuFDsCXlCntICW2mJENeLTC7TFnb0Hwi4XZwf1AhOmgKXNOQ3NiR9ZC hWhBSoze6SX1RTvi8Bgb49IBilKo8ZECaSfR7VkBCNyMxc85fxgt89oMjmwZNIGbcvAF bzPv3hFenPFesnnhAB4TT6t5duvE4fbtMObulDh5m6ijh5o6dFUHpJCrLQ7rcyaGx4mQ 0rbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684921121; x=1687513121; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=znQ+oQUgIqQozQ/bIunmQ5Brszqw1hXk3gYEb70x7Ec=; b=Du4oM8dkOgH9qMx4zZHxmin/DEGZNw4t4zJQR+KdagfEqeaI+kY7nzRjJpj8K7n7wf MeWMN/C28nGqSH15RtEfZ/0obs61pxNZsaLH8B0dg2qFerTJV1R7+1qNEe6Vr9bOeiI0 OLu0pIejOXK3FG5fz7ZSvzzLc53CXCepe5Gkhgkk+66cwMW0oTNjID03Xus7knvCQHSg cTGXD8o/AFfg4NfD6WiRXT/EK8XS8NnM58uoTlp6N+BDi8fXPO2NOqqMEFB62j/oUWoa Y+Pg3npdCHe3NtOmMKL0W+zf9XY48MrdnpNrTOezpR2LLA9GRppzMKRUIuGJ5xu2x0u/ IWzg== X-Gm-Message-State: AC+VfDwAWUTkbibLvYZzrAz+gYHbJvPqyez8112Z91o9RjP7MPQFJicp Ol0kaRqRfl7WVYmHOwAcGAo= X-Google-Smtp-Source: ACHHUZ7cV+w13loNLlYYuEwTQ6PJaf/iRpYXJmpxUxnXHgID38lfYIfERsHTMD6/+I0XfoETDCxABw== X-Received: by 2002:a17:90b:4c41:b0:255:b1d9:a206 with SMTP id np1-20020a17090b4c4100b00255b1d9a206mr3828466pjb.22.1684921121123; Wed, 24 May 2023 02:38:41 -0700 (PDT) Received: from localhost.localdomain ([193.203.214.57]) by smtp.gmail.com with ESMTPSA id y10-20020a63e24a000000b0051b0e564963sm7441840pgj.49.2023.05.24.02.38.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 May 2023 02:38:40 -0700 (PDT) From: xu xin X-Google-Original-From: xu xin To: david@redhat.com Cc: akpm@linux-foundation.org, imbrenda@linux.ibm.com, jiang.xuexin@zte.com.cn, linux-kernel@vger.kernel.org, linux-mm@kvack.org, ran.xiaokai@zte.com.cn, xu.xin.sc@gmail.com, xu.xin16@zte.com.cn, yang.yang29@zte.com.cn Subject: Re: [PATCH v9 5/5] selftest: add a testcase of ksm zero pages Date: Wed, 24 May 2023 17:38:36 +0800 Message-Id: <20230524093836.21038-1-xu.xin16@zte.com.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <84c00f9d-0b83-e4a2-de6f-617cf23b6444@redhat.com> References: <84c00f9d-0b83-e4a2-de6f-617cf23b6444@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9FE35140022 X-Rspam-User: X-Stat-Signature: fsiwondu5fisun41h1r1fyfo4zimayn7 X-Rspamd-Server: rspam01 X-HE-Tag: 1684921122-137369 X-HE-Meta: U2FsdGVkX1+sbtyTcqL7C5dDnDHn9B1bkgtQeNuHjKMXSyfA4HUKbUs+hkxoMRRbq1jy6srTZd+XfHmBVZhVrTlR4HCpNrl8eF7KoPpdtSXFFUzK9XPUuUPRo8M2PntdKCwa+1zWsZDgiYNFrCAzT4Gb24CtrvO5RM606MjMMCqjItQ4wgIfX35Hfto+O5uMzRCFy4lgGheGiZUM5spOfZQr+y2AaJs5n3LMgP87yyNl1+woNLRyowj80uUSN021i6ivsC0TGrx0Kj1i7CnnVNpIuSs9XY6bxcuKwTTkod4/r45HLRSpbF3b+LGGBkT+7iFdMENJ9UsKcBz7MILnBoTxhqFEvfRgpRtqC9vz2wIMApRMbZHbcmYwEUGc2fme8+HDfk03K/pIwOPdIqfXJeuJOrAJRjT1CInXoHYmfbUMRvtZRBANYuw3Ja5F/HvMpykz0G1fArmJT/LSQv8zBLzUEdYue1cjTZRfv3LS3xdmzq5Wj+oVGpHbBfveRjboPsBZAA/uZKqrqYcfTaoUd5iN09IUqCbqRXYGkjq2UaOaDm1RQ/yjbyL0sRVzyPF9mak6dJVHUfPhkykqh5wkCqfiM6wBHf6oIyRu6Xg2vdoKNfCxQoRVg1B/d+43H+Z4cdNQdGKW+HpU0k1nq8LkJESCpX9NL2wUQYpPJLs7a/fOKpHYRNwmdZLQxprZb+2wJoFev2Rx5S6mrEEae9YwxDkOCCYZdlpfvXa9RROVrIX2Gj39txA7dL6TeEhx1gW1knhm5Wk00JoIZy2AhRI1b1U+AE2g7BPIRQ8tpDd36+8YwhpeyENfkKCzhcjvv2gZ7SK19LdayPRyoBfk7cSTVOFPDhIHb4OamnJOInaWQcR+JGeLEYx4GGOZM5ku4ihnEA5/eBXhz94asNS2v1qxLc199iJdr9+ORuYIkUcNQo9gYz4DIm4iDlvGSjVfi3OkWKWMT+h/Zohwe+tG5do b1nuw4AP T1G4mGE/BMyRawNy5+zrtAOU8zf5AFTNkrpQEelBoMYhven/N7JhmqdRdA69tCIIDAdlAWE7f5dDZ3dIfBzEwjOcTDYgyCNT4rkPlsk7Z/qFdbd4c/sOdPFNDu0lSd3ADMklJXieLu01XeiKelzLV8K0f5HcjawBFJT89L+2zpEhJuc8ZB4dMm4LORWkUFHqLBL2UKvnqdloVWkVKxEbtI986ctZf9GVEhKTEdV6+iYuLXXGdZ+AtNS2woROZuvlAsZTjPCYBd7ulRdlytvDeiw0JM+CnmXrD5FjpBAcISpgjlePlpx4WVPdAa5kW1NZ+vMxsb860lIM2e+CpwPR6fjByKN5UySyKnqKeZTaODD6UkgB/7D1KgTPc4UMDj0IegOXp9dzAB+f7sXS4s0kvraGy2JMtPZcfu2b904v3XuGPMPrTCp7RXX7S+Rx6HsX2zlPtap81vfIbklynRYBC5oghfMDh17WhC5XHD+OGTZdGHiU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000019, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: >> + if (write(ksm_use_zero_pages_fd, "1", 1) != 1) { >> + ksft_test_result_skip("write \"/sys/kernel/mm/ksm/use_zero_pages\" failed\n"); >> + return; >> + } > >I realize that this test will fail if there is any other process in the system that has KSM >Enabled with a suitable page filled with zeroes ... maybe instead of checking the global >KSM zeropages, check the per-mm ones instead? That should be better Emmm, yes. It makes sense. I'll do it per-mm in next-version. >You could do something like the following on top (I recall you had some kind of COW >tests previously, this should be a simplified version of it): > Ok. Thank you. >diff --git a/tools/testing/selftests/mm/ksm_functional_tests.c b/tools/testing/selftests/mm/ksm_functional_tests.c >index ea060c683c80..160675a4e3d2 100644 >--- a/tools/testing/selftests/mm/ksm_functional_tests.c >+++ b/tools/testing/selftests/mm/ksm_functional_tests.c >@@ -182,6 +182,7 @@ static void test_unmerge(void) > static void test_unmerge_zero_pages(void) > { > const unsigned int size = 2 * MiB; >+ unsigned int offs; > char *map; > unsigned long pages_expected; > >@@ -225,8 +226,18 @@ static void test_unmerge_zero_pages(void) > goto unmap; > } > >+ /* Trigger unmerging of the other half by writing to the pages. */ >+ for (offs = size / 2; offs < size; offs += pagesize) >+ *((unsigned int *)&map[offs]) = offs; >+ >+ /* We should have no zeropages remaining. */ >+ if (get_ksm_zero_pages()) { >+ ksft_test_result_fail("'ksm_zero_pages' updated after write fault\n"); >+ goto unmap; >+ } >+ > /* Check if ksm zero pages are really unmerged */ >- ksft_test_result(!range_maps_duplicates(map, size / 2), >+ ksft_test_result(!range_maps_duplicates(map, size), > "KSM zero pages were unmerged\n"); > unmap: > munmap(map, size);