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 40F5AC7EE24 for ; Thu, 11 May 2023 19:33:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 44D766B0071; Thu, 11 May 2023 15:33:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3FE186B0074; Thu, 11 May 2023 15:33:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2C5AE6B0075; Thu, 11 May 2023 15:33:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 190C16B0071 for ; Thu, 11 May 2023 15:33:21 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id D860740E6A for ; Thu, 11 May 2023 19:33:20 +0000 (UTC) X-FDA: 80778972960.27.332482A Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) by imf09.hostedemail.com (Postfix) with ESMTP id 671B9140009 for ; Thu, 11 May 2023 19:33:17 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=AUpPwwIn; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf09.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.219.43 as permitted sender) smtp.mailfrom=nphamcs@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1683833597; 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=FSA86mvKjfheKvURQS7z/DOXYz4IyLlqu826nykCzL4=; b=3JHHIwzBINwPE8Uz9Z10skEP6/Swwk6zhkdO/BKbyYrhUBDtjULBzfveB6CFm8ukWoZQAL RtuF/LHV42ytHI22BWTQa5SSBVxou3FkKaUUVDbI2+grKjXgbF+jZ8ct/u1EKsDQqyY+e4 gxCdvD+0wasInPol67pmw+bb/rBBOuo= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=AUpPwwIn; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf09.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.219.43 as permitted sender) smtp.mailfrom=nphamcs@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1683833597; a=rsa-sha256; cv=none; b=EFVyX4XeJ2lOyUm+85xjBFtyUedD/Vtp6c4zAFtMaOoAPkDJuMQ8QcXl3l3HdC40v3D+xG St4ccgvE61y5QizOcDopuyglmyuN49r5GegW7R10NlSnvN8NY7WZHIW+eRRrNfHxgwKjFZ zhKoZKhJdzSaFeX34poqRg1CHm4uP90= Received: by mail-qv1-f43.google.com with SMTP id 6a1803df08f44-61b6101a166so43033766d6.0 for ; Thu, 11 May 2023 12:33:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683833596; x=1686425596; 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=FSA86mvKjfheKvURQS7z/DOXYz4IyLlqu826nykCzL4=; b=AUpPwwIngqgmaT+f8mDnb2GaSJ3QJ6vZASOYU30I24wMRxIiRH+jCIbzsuhWabxNZY 8skj9uzmrikgJBxFo0ROQfhP4Z84uV8Otp9jgjU6uKZOGNnTkYG5Fr4KKHriQpu2/oys VbBPiHWMlMO8iI4ALv05ND8RYOYe/tELZ0rZaAizQcwSGoQu03dgPkmWk9/pXWK/V/85 +ox7dkWdnNCnK0dm2oIH6vHoHiQPMttITqT4ibj13pKvFWjD0VVIDnPFcBm6FTKYlSsD xWVJ0Oxe7o6IUC7vyChNq4uvBT241U2CzRE4Atw5O/KLdDNkptWxbI/nZ4f6QHAMrbbY QkEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683833596; x=1686425596; 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=FSA86mvKjfheKvURQS7z/DOXYz4IyLlqu826nykCzL4=; b=BDlsOBavCgY1zZZ1RG+p2yxrik6blIDdBAVEb20W/wO7OWIiDubOzofIcoi0dCfJQ9 Wi/7wa8DKdYk+umSgJbAYpabsxXjrmiOwg+dTJ1KvaK8CRGz46Qf3k5nfFjP6fPIvBCv scRq4ikSuVoSvnjOIt0u20BdmVSPC4t9HMyaWsDKoDjZgS/eWKI+Y9sg8m/Q0aV2CG6y miKOHir+IRAyaVhNOISOzCGqMRDUhFbXJa52H9wx39poMBkAK19LNpXRntfRKt2Fvr7y MyFYRYol6N84puSykIYit7WeqRGUwpzxzqZIOCRr299Nnj8xBe9mKutsekle24l4bpY0 B7cw== X-Gm-Message-State: AC+VfDwXbgG7JqfB3lZT1R9JalnkoNQGfTo7r2trcP0z6IjmBnchlXuo 05A9xC9J8RbqliOiAz6s8vYpNKSVv93fKNTVULg= X-Google-Smtp-Source: ACHHUZ536w4s+o3K4sVhGJ32SpnObxsxbPReebI2cHtdx2hwXQdKHnKoiQGc6To+IHtoZ3d19ryv8Gu3DSJ7koSibXw= X-Received: by 2002:a05:6214:c63:b0:5cc:e059:efa3 with SMTP id t3-20020a0562140c6300b005cce059efa3mr33601587qvj.23.1683833596286; Thu, 11 May 2023 12:33:16 -0700 (PDT) MIME-Version: 1.0 References: <20230503013608.2431726-1-nphamcs@gmail.com> <20230503013608.2431726-4-nphamcs@gmail.com> <877ctfa6yv.fsf@mail.lhotse> In-Reply-To: <877ctfa6yv.fsf@mail.lhotse> From: Nhat Pham Date: Thu, 11 May 2023 12:33:05 -0700 Message-ID: Subject: Re: [PATCH v13 3/3] selftests: Add selftests for cachestat To: Michael Ellerman Cc: akpm@linux-foundation.org, hannes@cmpxchg.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, bfoster@redhat.com, willy@infradead.org, linux-api@vger.kernel.org, kernel-team@meta.com, linuxppc-dev@lists.ozlabs.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: bau5rrwkghj9puepgpct8hyckxmsqs4s X-Rspam-User: X-Rspamd-Queue-Id: 671B9140009 X-Rspamd-Server: rspam07 X-HE-Tag: 1683833597-774997 X-HE-Meta: U2FsdGVkX1/kYes8PkxDONKc8sbrJeUWXo7JPDRKmTgezToILJCAmaX7B8yYrgFB6WpUw5mW3v2ERzl7u3k9ckxi/8tYbw5l4Z+Afe0BnFrBDmwXa6AeI5zB0RaF5jKUoGwLVda7KJZ+3rY8H5Grdu/RqMYWxWSnVNGRskRAgC5mJrdHMPvpnL4MZnc8CawAocxTAQuS5YQ+wJXsX7KFQNBDHJp6QTtd3YVoxWprzpGkdtRRmhy4HxX7kU+8RO5ipdTDfcI112kCUPqBK2PW20pPdnEfyhSGYioa0I6AaaL5TARpWvjh/Ocv+Db+lNTeNCyxOByQ0RkHejx+upEaGQzn8eqTYgYD2XTm2UW+G8djuv4XJDZvqHXVM171eD1b5KIVZBbKZTfku5Pw8FEgxtACcd9TwqwJLL9cMuu3ll5rHzD0DJQ18fU9B5NcdSlImNmXSJMrviFLSy1grz3/pC3IWMFw7HqgLCS5STfNywqhtJEv4/npLGmysbY6zS+1EZpUa+CIe+cCVwYiWdUOBcM0g9vYvCiP93e0ZYJC+JgkUJ/oBykEG5oeCChEbCgypDHap5FifP1Di5jdbAXHFhxqxbYKLxsEt3iIwX8tcIojAzzfbBp38EpzlWKBVCFZb9bQCgJapDOdSZ/BnSUs7N8ZLaA3aKvEeV2iL1F2I6CJHbqCpRjPdmT9XCjojecUbKDW/5GqbKzd8UaQWvq50wAEy7beYgfnQVwEft4vVUSOcNHE8G1D3UOJjUAXQk6oSuTdQ6kXb+FOLOeGuQ1StKB+he5LzBbYx3MoQoSritljZ1AU0ISU5Y2N2KnOmpglLry6qQTXHFIXpteftyhekkTrivS3XrSgp6Cr2+UF9HqWn0OrUE7vXe/mcaSqHScr0OuvCbZZp+Bq0eIAfi9XBVNHVY7l82qb28W6B4RZOP/cWE6X6dqgMnvN5YhaiOUuktIdYXpO8PNKGUb8ed9 cefIp/2w wHxO+U5A1CHhyJCzA4Y7BIaWRQqFwXNXgyHxCsJtybFiu7OblfnW6/YyneAKeqM+WUDQHm0qDl/CMp3cZtyUSWD7gwDGd3F/78Cep1Q7ssKEaAJ4aLPN61LPGXo5qHb2fydmQgoTk3zu25zi06LERSlwC87JXywKWqokYIQ0wbq3hgFiRdDYyK4wzgteDRMk50QJtS0vHU1EKKl5Cb4hdHG6QxcBwklGefDyQvC59zhy+8N6NfJ2bUXSP2VfPDus2mIAJpjs2TrrJeM7Xzojyrqa0YdZ7zu9gumWrjIH+LE5OiOtjgsrOHx3YOg1WtvNlor01gW4SgcpwvsD6qp7Zez70g++OUth5q2zXpOrYUbzAIYPrewzZKcjt/fLi77//3zWu5FOQhk2nVvMJo/yc5A1zzuLp4BN02QNl 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 Wed, May 10, 2023 at 8:21=E2=80=AFPM Michael Ellerman wrote: > > Nhat Pham writes: > > Test cachestat on a newly created file, /dev/ files, and /proc/ files. > > Also test on a shmem file (which can also be tested with huge pages > > since tmpfs supports huge pages). > > > > Signed-off-by: Nhat Pham > ... > > diff --git a/tools/testing/selftests/cachestat/test_cachestat.c b/tools= /testing/selftests/cachestat/test_cachestat.c > > new file mode 100644 > > index 000000000000..c3823b809c25 > > --- /dev/null > > +++ b/tools/testing/selftests/cachestat/test_cachestat.c > > @@ -0,0 +1,258 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > +#define _GNU_SOURCE > > + > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > + > > +#include "../kselftest.h" > > + > > +static const char * const dev_files[] =3D { > > + "/dev/zero", "/dev/null", "/dev/urandom", > > + "/proc/version", "/proc" > > +}; > > +static const int cachestat_nr =3D 451; > > + > > +void print_cachestat(struct cachestat *cs) > > +{ > > + ksft_print_msg( > > + "Using cachestat: Cached: %lu, Dirty: %lu, Writeback: %lu, Evicte= d: %lu, Recently Evicted: %lu\n", > > + cs->nr_cache, cs->nr_dirty, cs->nr_writeback, > > + cs->nr_evicted, cs->nr_recently_evicted); > > +} > > + > > +bool write_exactly(int fd, size_t filesize) > > +{ > > + char data[filesize]; > > On kernels with 64K pages (powerpc at least), this tries to allocate > 64MB on the stack which segfaults. > > Allocating data with malloc avoids the problem and allows the test to > pass. > > Looks like this commit is still in mm-unstable, so maybe Andrew can > squash the incremental diff below in, if it looks OK to you. The diff is > a bit big because I unindented the body of the function. > > cheers > > > diff --git a/tools/testing/selftests/cachestat/test_cachestat.c b/tools/t= esting/selftests/cachestat/test_cachestat.c > index 9be2262e5c17..54d09b820ed4 100644 > --- a/tools/testing/selftests/cachestat/test_cachestat.c > +++ b/tools/testing/selftests/cachestat/test_cachestat.c > @@ -31,48 +31,59 @@ void print_cachestat(struct cachestat *cs) > > bool write_exactly(int fd, size_t filesize) > { > - char data[filesize]; > - bool ret =3D true; > int random_fd =3D open("/dev/urandom", O_RDONLY); > + char *cursor, *data; > + int remained; > + bool ret; > > if (random_fd < 0) { > ksft_print_msg("Unable to access urandom.\n"); > ret =3D false; > goto out; > - } else { > - int remained =3D filesize; > - char *cursor =3D data; > + } > > - while (remained) { > - ssize_t read_len =3D read(random_fd, cursor, rema= ined); > + data =3D malloc(filesize); > + if (!data) { > + ksft_print_msg("Unable to allocate data.\n"); > + ret =3D false; > + goto close_random_fd; > + } > > - if (read_len <=3D 0) { > - ksft_print_msg("Unable to read from urand= om.\n"); > - ret =3D false; > - goto close_random_fd; > - } > + remained =3D filesize; > + cursor =3D data; > > - remained -=3D read_len; > - cursor +=3D read_len; > + while (remained) { > + ssize_t read_len =3D read(random_fd, cursor, remained); > + > + if (read_len <=3D 0) { > + ksft_print_msg("Unable to read from urandom.\n"); > + ret =3D false; > + goto out_free_data; > } > > - /* write random data to fd */ > - remained =3D filesize; > - cursor =3D data; > - while (remained) { > - ssize_t write_len =3D write(fd, cursor, remained)= ; > + remained -=3D read_len; > + cursor +=3D read_len; > + } > > - if (write_len <=3D 0) { > - ksft_print_msg("Unable write random data = to file.\n"); > - ret =3D false; > - goto close_random_fd; > - } > + /* write random data to fd */ > + remained =3D filesize; > + cursor =3D data; > + while (remained) { > + ssize_t write_len =3D write(fd, cursor, remained); > > - remained -=3D write_len; > - cursor +=3D write_len; > + if (write_len <=3D 0) { > + ksft_print_msg("Unable write random data to file.= \n"); > + ret =3D false; > + goto out_free_data; > } > + > + remained -=3D write_len; > + cursor +=3D write_len; > } > > + ret =3D true; > +out_free_data: > + free(data); > close_random_fd: > close(random_fd); > out: > Oh this is nice! I had to make a similar fix in another test of mine, but forgot about it in this context. LGTM. For verification, I have applied the diff and test on my own local setup. Things still pass. Acked-by: Nhat Pham