All of lore.kernel.org
 help / color / mirror / Atom feed
From: Li Wang <liwang@redhat.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: rppt@kernel.org, david@kernel.org, ljs@kernel.org,
	Liam.Howlett@oracle.com, vbabka@kernel.org, surenb@google.com,
	mhocko@suse.com, shuah@kernel.org, aubaker@redhat.com,
	linux-mm@kvack.org, linux-kselftest@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] selftests/mm: skip hugetlb_dio tests when DIO alignment is incompatible
Date: Sat, 28 Mar 2026 08:28:55 +0800	[thread overview]
Message-ID: <accgxwDzIyk3_fEL@redhat.com> (raw)
In-Reply-To: <20260327121350.858a127fa49ed6e1eb4a40a7@linux-foundation.org>

On Fri, Mar 27, 2026 at 12:13:50PM -0700, Andrew Morton wrote:
> On Fri, 27 Mar 2026 20:03:05 +0800 Li Wang <liwang@redhat.com> wrote:
> 
> > hugetlb_dio test uses sub-page offsets (pagesize / 2) to verify that
> > hugepages used as DIO user buffers are correctly unpinned at completion.
> > 
> > However, on filesystems with a logical block size larger than half the
> > page size (e.g., 4K-sector block devices), these unaligned DIO writes
> > are rejected with -EINVAL, causing the test to fail unexpectedly.
> > 
> > Add get_dio_alignment() to query the filesystem's required DIO alignment
> > via statx(STATX_DIOALIGN) and pass it to run_dio_using_hugetlb(). Skip
> > individual test cases whose write length is not a multiple of the
> > alignment, so that aligned cases are still tested.
> > 
> > === Reproduce Steps ===
> > 
> >   # dd if=/dev/zero of=/tmp/test.img bs=1M count=512
> >   # losetup --sector-size 4096 /dev/loop0 /tmp/test.img
> >   # mkfs.xfs /dev/loop0
> >   # mkdir -p /mnt/dio_test
> >   # mount /dev/loop0 /mnt/dio_test
> > 
> >   // Modify test to open /mnt/dio_test and rebuild it:
> >   -       fd = open("/tmp", O_TMPFILE | O_RDWR | O_DIRECT, 0664);
> >   +       fd = open("/mnt/dio_test", O_TMPFILE | O_RDWR | O_DIRECT, 0664);
> > 
> >   # getconf PAGESIZE
> >   4096
> > 
> >   # echo 100 >/proc/sys/vm/nr_hugepages
> > 
> >   # ./hugetlb_dio
> >   TAP version 13
> >   1..4
> >   # No. Free pages before allocation : 100
> >   # No. Free pages after munmap : 100
> >   ok 1 free huge pages from 0-12288
> >   Bail out! Error writing to file
> >   : Invalid argument (22)
> >   # Planned tests != run tests (4 != 1)
> >   # Totals: pass:1 fail:0 xfail:0 xpass:0 skip:0 error:0
> > 
> > ...
> >
> >     v2:
> >     	- Pass dio_align as a parameter to run_dio_using_hugetlb()
> >     	  instead of generally page_size/2 alignment check.
> > 
> 
> Whee, AI review has decided that pre glibc-2.36 is a problem (last time
> it was pre-2.37).

Ok, will handle this build issue with old glibc.

> And it's forgotten the previous fs-doesnt-support-DIO issues.  Did you
> alter that?

[Sorry, forgot to mention in change logs]

Yes, I added O_DIRECT flag back to the first open(). Then it'd skip into
a failure on filesystems that doesn't support O_DIRECT.

Also, statx on FS doesn't support DIO will set stx_dio_offset_align to 0,
which may led a division by zero issue, I added a zero check.

	} else if ((stx.stx_mask & STATX_DIOALIGN) &&
			stx.stx_dio_offset_align) {


> The get_dio_alignment-before-ksft_print_header thing seems legit.

+1

And, before sending v3, I would leave this patch for more days to
see if others comment.

-- 
Regards,
Li Wang


  reply	other threads:[~2026-03-28  0:29 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-27 12:03 [PATCH v2] selftests/mm: skip hugetlb_dio tests when DIO alignment is incompatible Li Wang
2026-03-27 19:13 ` Andrew Morton
2026-03-28  0:28   ` Li Wang [this message]
2026-03-30  5:19   ` Li Wang

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=accgxwDzIyk3_fEL@redhat.com \
    --to=liwang@redhat.com \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=aubaker@redhat.com \
    --cc=david@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ljs@kernel.org \
    --cc=mhocko@suse.com \
    --cc=rppt@kernel.org \
    --cc=shuah@kernel.org \
    --cc=surenb@google.com \
    --cc=vbabka@kernel.org \
    /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.