Message ID | 20240513131254.92412-3-kernel@pankajraghav.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | more lbs test fixes | expand |
On Mon, May 13, 2024 at 07:12:53AM -0600, Pankaj Raghav (Samsung) wrote: > From: Pankaj Raghav <p.raghav@samsung.com> > > SEEK_HOLE and SEEK_DATA work in filesystem block size granularity. So > while filling up the buffer for test 13 - 16, round up the bufsz to the > closest filesystem blksz. > > As we only allowed blocksizes lower than the pagesize, this was never an > issue and it always aligned. Once we have blocksize > pagesize, this > assumption will break. > > Fixes the test for LBS configuration. > > Signed-off-by: Pankaj Raghav <p.raghav@samsung.com> Seems fine to me Reviewed-by: Darrick J. Wong <djwong@kernel.org> --D > --- > src/seek_sanity_test.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/src/seek_sanity_test.c b/src/seek_sanity_test.c > index 48b3ccc0..a61ed3da 100644 > --- a/src/seek_sanity_test.c > +++ b/src/seek_sanity_test.c > @@ -541,7 +541,7 @@ static int test16(int fd, int testnum) > { > int ret = 0; > char *buf = NULL; > - int bufsz = sysconf(_SC_PAGE_SIZE); > + int bufsz = roundup(sysconf(_SC_PAGE_SIZE), alloc_size); > int filsz = 4 << 20; > > if (!unwritten_extents) { > @@ -591,7 +591,7 @@ static int test15(int fd, int testnum) > { > int ret = 0; > char *buf = NULL; > - int bufsz = sysconf(_SC_PAGE_SIZE); > + int bufsz = roundup(sysconf(_SC_PAGE_SIZE), alloc_size); > int filsz = 4 << 20; > > if (!unwritten_extents) { > @@ -643,7 +643,7 @@ static int test14(int fd, int testnum) > { > int ret = 0; > char *buf = NULL; > - int bufsz = sysconf(_SC_PAGE_SIZE) * 14; > + int bufsz = roundup(sysconf(_SC_PAGE_SIZE) * 14, alloc_size); > int filsz = 4 << 20; > > if (!unwritten_extents) { > @@ -692,7 +692,7 @@ static int test13(int fd, int testnum) > { > int ret = 0; > char *buf = NULL; > - int bufsz = sysconf(_SC_PAGE_SIZE) * 14; > + int bufsz = roundup(sysconf(_SC_PAGE_SIZE) * 14, alloc_size); > int filsz = 4 << 20; > > if (!unwritten_extents) { > -- > 2.34.1 > >
"Pankaj Raghav (Samsung)" <kernel@pankajraghav.com> writes: > From: Pankaj Raghav <p.raghav@samsung.com> > > SEEK_HOLE and SEEK_DATA work in filesystem block size granularity. So > while filling up the buffer for test 13 - 16, round up the bufsz to the > closest filesystem blksz. > > As we only allowed blocksizes lower than the pagesize, this was never an > issue and it always aligned. Once we have blocksize > pagesize, this > assumption will break. > > Fixes the test for LBS configuration. > > Signed-off-by: Pankaj Raghav <p.raghav@samsung.com> > --- > src/seek_sanity_test.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) The change looks logical to me to align the bufsz to blocksize rather than pagesize for bs > ps. roundup() will not have any effect on bs == ps or bs < ps. Also IIUC for LBS, even the page cache will have large folios. So essentially the folio's folio_size() that we have in the pagecache matches it's FS blocksize. (So blocksize = folio_size() is anyway true for LBS). I was curious about this because SEEK_HOLE/SEEK_DATA can query the pagecache if the filesystem has unwritten extents. So this make sense that rather than aligning bufsz with base pagesize, it should be rounded up to FS blocksize to make SEEK_HOLE/SEEK_DATA work with LBS. Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
diff --git a/src/seek_sanity_test.c b/src/seek_sanity_test.c index 48b3ccc0..a61ed3da 100644 --- a/src/seek_sanity_test.c +++ b/src/seek_sanity_test.c @@ -541,7 +541,7 @@ static int test16(int fd, int testnum) { int ret = 0; char *buf = NULL; - int bufsz = sysconf(_SC_PAGE_SIZE); + int bufsz = roundup(sysconf(_SC_PAGE_SIZE), alloc_size); int filsz = 4 << 20; if (!unwritten_extents) { @@ -591,7 +591,7 @@ static int test15(int fd, int testnum) { int ret = 0; char *buf = NULL; - int bufsz = sysconf(_SC_PAGE_SIZE); + int bufsz = roundup(sysconf(_SC_PAGE_SIZE), alloc_size); int filsz = 4 << 20; if (!unwritten_extents) { @@ -643,7 +643,7 @@ static int test14(int fd, int testnum) { int ret = 0; char *buf = NULL; - int bufsz = sysconf(_SC_PAGE_SIZE) * 14; + int bufsz = roundup(sysconf(_SC_PAGE_SIZE) * 14, alloc_size); int filsz = 4 << 20; if (!unwritten_extents) { @@ -692,7 +692,7 @@ static int test13(int fd, int testnum) { int ret = 0; char *buf = NULL; - int bufsz = sysconf(_SC_PAGE_SIZE) * 14; + int bufsz = roundup(sysconf(_SC_PAGE_SIZE) * 14, alloc_size); int filsz = 4 << 20; if (!unwritten_extents) {