All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chunyu Hu <chuhu@redhat.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: david@kernel.org, shuah@kernel.org, linux-mm@kvack.org,
	ljs@kernel.org, linux-kselftest@vger.kernel.org,
	linux-kernel@vger.kernel.org, lorenzo.stoakes@oracle.com,
	Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org,
	surenb@google.com, mhocko@suse.com, ziy@nvidia.com,
	baolin.wang@linux.alibaba.com, npache@redhat.com,
	ryan.roberts@arm.com, dev.jain@arm.com, baohua@kernel.org,
	lance.yang@linux.dev
Subject: Re: [PATCH v7 4/7] selftests: ksft_exit_fail_perror: support printf style arguments
Date: Wed, 1 Apr 2026 21:32:30 +0800	[thread overview]
Message-ID: <ac0ebqaDxWWAYitu@gmail.com> (raw)
In-Reply-To: <20260331120902.4612d93efb89f71a0d79bb5b@linux-foundation.org>

On Tue, Mar 31, 2026 at 12:09:02PM -0700, Andrew Morton wrote:
> On Tue, 31 Mar 2026 18:31:42 +0800 Chunyu Hu <chuhu@redhat.com> wrote:
> 
> > > -	ksft_exit_fail_msg("%s: %s (%d)\n", msg, strerror(errno), errno);
> > > +	va_list args;
> > > +	char *buf = NULL;
> > > +	int saved_errno = errno;
> > > +
> > > +	va_start(args, msg);
> > > +	if (vasprintf(&buf, msg, args) == -1) {
> > 
> > kernel test robot reported compile error on this, as the vasprintf
> > required _GNU_SOURCE. Looks like it's not appropriate to be used
> > in the common header. Looks like it can be replaced with a buf and
> > vsnprintf instead.
> 
> I like vasprintf()!
> 
> "#define _GNU_SOURCE" occurs 402 times in selftests/, so perhaps we can
> find a way to keep it?
> 
> (err, *why* 402 times?  Can't it be just once?)
> 

_GNU_SOURCE is a feature macro, may silently cause troubles if defined
globally and it's recommended to be used explicitly and maybe that's why
we have so many definitions in c files.  It's usually requireed to be
defined on the top of the include file list of c file. So although we
can see kselftest_harness.h defined _GNU_SOURCE, but still can see some
many (80+) c files define _GNU_SOURCE on the top and include
"kselftest_harness.h" at same file in the bottom of the include files list.

So the side efffect of using the vasprintf in kselftest.h is user need
to take care of _GNU_SOURCE definition because a header requries that...
and the header may change something silently because of the _GNU_SOURCE.

And a weird thing is _GNU_SOURCE is not defined, but the compile of
the selftests calling the ksft_exit_fail_perror(vasprintf) succeed by
accident, maybe man page need update or something I missed.

As Mark and Thomas mentioned, the root cause is not this macro's lack
of definition, it's when '-nostdlib' is specified in the compile flag,
the nolibc lib don't have the fallback implement.

So it may be not appropriate to use it in the kselftest.h. And
considering if we use a buf[], the size is limited and the message
could be truncated, still not ideal.


  reply	other threads:[~2026-04-01 13:32 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-30 15:14 [PATCH v7 0/7] selftests/mm: skip several tests when thp is not available Chunyu Hu
2026-03-30 15:14 ` [PATCH v7 1/7] selftests/mm/guard-regions: skip collapse test when thp not enabled Chunyu Hu
2026-03-30 15:14 ` [PATCH v7 2/7] selftests/mm: soft-dirty: skip two tests when thp is not available Chunyu Hu
2026-03-30 15:14 ` [PATCH v7 3/7] selftests/mm: move write_file helper to vm_util Chunyu Hu
2026-03-30 15:15 ` [PATCH v7 4/7] selftests: ksft_exit_fail_perror: support printf style arguments Chunyu Hu
2026-03-31 10:31   ` Chunyu Hu
2026-03-31 19:09     ` Andrew Morton
2026-04-01 13:32       ` Chunyu Hu [this message]
2026-04-01 11:03   ` Mark Brown
2026-04-01 12:08     ` Thomas Weißschuh
2026-04-02  1:16       ` Chunyu Hu
2026-04-01 13:46     ` Chunyu Hu
     [not found]       ` <20260401143831.31f40405758f78d7955ff6db@linux-foundation.org>
2026-04-02  1:13         ` Chunyu Hu
2026-03-30 15:15 ` [PATCH v7 5/7] selftests/mm/vm_util: robust write_file() Chunyu Hu
2026-03-30 15:15 ` [PATCH v7 6/7] selftests/mm: split_huge_page_test: skip the test when thp is not available Chunyu Hu
2026-03-30 15:15 ` [PATCH v7 7/7] selftests/mm: transhuge_stress: skip the test when thp " Chunyu Hu
2026-03-30 19:25 ` [PATCH v7 0/7] selftests/mm: skip several tests when thp is " Andrew Morton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ac0ebqaDxWWAYitu@gmail.com \
    --to=chuhu@redhat.com \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=david@kernel.org \
    --cc=dev.jain@arm.com \
    --cc=lance.yang@linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ljs@kernel.org \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=mhocko@suse.com \
    --cc=npache@redhat.com \
    --cc=rppt@kernel.org \
    --cc=ryan.roberts@arm.com \
    --cc=shuah@kernel.org \
    --cc=surenb@google.com \
    --cc=vbabka@suse.cz \
    --cc=ziy@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.