* [PATCHSET 0/2] xfsprogs: random fixes @ 2022-05-05 16:03 Darrick J. Wong 2022-05-05 16:04 ` [PATCH 1/2] xfs_scrub: move to mallinfo2 when available Darrick J. Wong ` (2 more replies) 0 siblings, 3 replies; 10+ messages in thread From: Darrick J. Wong @ 2022-05-05 16:03 UTC (permalink / raw) To: sandeen, djwong; +Cc: linux-xfs Hi all, This series contains miscellaneous changes -- a port to mallinfo2, and fixing a theoretical stack stack overrun in xfs_db. If you're going to start using this mess, you probably ought to just pull from my git trees, which are linked below. This is an extraordinary way to destroy everything. Enjoy! Comments and questions are, as always, welcome. --D kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=random-fixes xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=random-fixes fstests git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfstests-dev.git/log/?h=random-fixes --- configure.ac | 1 + db/io.c | 2 +- include/builddefs.in | 1 + m4/package_libcdev.m4 | 18 ++++++++++++++++++ scrub/Makefile | 4 ++++ scrub/xfs_scrub.c | 47 +++++++++++++++++++++++++++++------------------ 6 files changed, 54 insertions(+), 19 deletions(-) ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] xfs_scrub: move to mallinfo2 when available 2022-05-05 16:03 [PATCHSET 0/2] xfsprogs: random fixes Darrick J. Wong @ 2022-05-05 16:04 ` Darrick J. Wong 2022-05-05 19:28 ` Eric Sandeen 2022-05-10 9:38 ` Christoph Hellwig 2022-05-05 16:04 ` [PATCH 2/2] xfs_db: fix a complaint about a printf buffer overrun Darrick J. Wong 2022-05-10 21:30 ` [PATCH 3/2] xfs: note the removal of XFS_IOC_FSSETDM in the documentation Darrick J. Wong 2 siblings, 2 replies; 10+ messages in thread From: Darrick J. Wong @ 2022-05-05 16:04 UTC (permalink / raw) To: sandeen, djwong; +Cc: linux-xfs From: Darrick J. Wong <djwong@kernel.org> Starting with glibc 2.35, the mallinfo library call has finally been upgraded to return 64-bit memory usage quantities. Migrate to the new call, since it also warns about mallinfo being deprecated. Signed-off-by: Darrick J. Wong <djwong@kernel.org> --- configure.ac | 1 + include/builddefs.in | 1 + m4/package_libcdev.m4 | 18 ++++++++++++++++++ scrub/Makefile | 4 ++++ scrub/xfs_scrub.c | 47 +++++++++++++++++++++++++++++------------------ 5 files changed, 53 insertions(+), 18 deletions(-) diff --git a/configure.ac b/configure.ac index 160f64dd..4650d56c 100644 --- a/configure.ac +++ b/configure.ac @@ -192,6 +192,7 @@ AC_HAVE_STATFS_FLAGS AC_HAVE_MAP_SYNC AC_HAVE_DEVMAPPER AC_HAVE_MALLINFO +AC_HAVE_MALLINFO2 AC_PACKAGE_WANT_ATTRIBUTES_H AC_HAVE_LIBATTR if test "$enable_scrub" = "yes"; then diff --git a/include/builddefs.in b/include/builddefs.in index 626db210..e0a2f3cb 100644 --- a/include/builddefs.in +++ b/include/builddefs.in @@ -115,6 +115,7 @@ HAVE_STATFS_FLAGS = @have_statfs_flags@ HAVE_MAP_SYNC = @have_map_sync@ HAVE_DEVMAPPER = @have_devmapper@ HAVE_MALLINFO = @have_mallinfo@ +HAVE_MALLINFO2 = @have_mallinfo2@ HAVE_LIBATTR = @have_libattr@ HAVE_LIBICU = @have_libicu@ HAVE_OPENAT = @have_openat@ diff --git a/m4/package_libcdev.m4 b/m4/package_libcdev.m4 index adab9bb9..8d05dc40 100644 --- a/m4/package_libcdev.m4 +++ b/m4/package_libcdev.m4 @@ -367,6 +367,24 @@ AC_DEFUN([AC_HAVE_MALLINFO], AC_SUBST(have_mallinfo) ]) +# +# Check if we have a mallinfo2 libc call +# +AC_DEFUN([AC_HAVE_MALLINFO2], + [ AC_MSG_CHECKING([for mallinfo2 ]) + AC_TRY_COMPILE([ +#include <malloc.h> + ], [ + struct mallinfo2 test; + + test.arena = 0; test.hblkhd = 0; test.uordblks = 0; test.fordblks = 0; + test = mallinfo2(); + ], have_mallinfo2=yes + AC_MSG_RESULT(yes), + AC_MSG_RESULT(no)) + AC_SUBST(have_mallinfo2) + ]) + # # Check if we have a openat call # diff --git a/scrub/Makefile b/scrub/Makefile index 74492fb6..aba14ed2 100644 --- a/scrub/Makefile +++ b/scrub/Makefile @@ -77,6 +77,10 @@ ifeq ($(HAVE_MALLINFO),yes) LCFLAGS += -DHAVE_MALLINFO endif +ifeq ($(HAVE_MALLINFO2),yes) +LCFLAGS += -DHAVE_MALLINFO2 +endif + ifeq ($(HAVE_SYNCFS),yes) LCFLAGS += -DHAVE_SYNCFS endif diff --git a/scrub/xfs_scrub.c b/scrub/xfs_scrub.c index 41839c26..7a0411b0 100644 --- a/scrub/xfs_scrub.c +++ b/scrub/xfs_scrub.c @@ -282,6 +282,34 @@ phase_start( return error; } +static inline unsigned long long +kbytes(unsigned long long x) +{ + return (x + 1023) / 1024; +} + +static void +report_mem_usage( + const char *phase, + const struct phase_rusage *pi) +{ +#if defined(HAVE_MALLINFO2) || defined(HAVE_MALLINFO) +# ifdef HAVE_MALLINFO2 + struct mallinfo2 mall_now = mallinfo2(); +# else + struct mallinfo mall_now = mallinfo(); +# endif + fprintf(stdout, _("%sMemory used: %lluk/%lluk (%lluk/%lluk), "), + phase, + kbytes(mall_now.arena), kbytes(mall_now.hblkhd), + kbytes(mall_now.uordblks), kbytes(mall_now.fordblks)); +#else + fprintf(stdout, _("%sMemory used: %lluk, "), + phase, + kbytes(((char *) sbrk(0)) - ((char *) pi->brk_start))); +#endif +} + /* Report usage stats. */ static int phase_end( @@ -289,9 +317,6 @@ phase_end( unsigned int phase) { struct rusage ruse_now; -#ifdef HAVE_MALLINFO - struct mallinfo mall_now; -#endif struct timeval time_now; char phasebuf[DESCR_BUFSZ]; double dt; @@ -323,21 +348,7 @@ phase_end( else phasebuf[0] = 0; -#define kbytes(x) (((unsigned long)(x) + 1023) / 1024) -#ifdef HAVE_MALLINFO - - mall_now = mallinfo(); - fprintf(stdout, _("%sMemory used: %luk/%luk (%luk/%luk), "), - phasebuf, - kbytes(mall_now.arena), kbytes(mall_now.hblkhd), - kbytes(mall_now.uordblks), kbytes(mall_now.fordblks)); -#else - fprintf(stdout, _("%sMemory used: %luk, "), - phasebuf, - (unsigned long) kbytes(((char *) sbrk(0)) - - ((char *) pi->brk_start))); -#endif -#undef kbytes + report_mem_usage(phasebuf, pi); fprintf(stdout, _("time: %5.2f/%5.2f/%5.2fs\n"), timeval_subtract(&time_now, &pi->time), ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] xfs_scrub: move to mallinfo2 when available 2022-05-05 16:04 ` [PATCH 1/2] xfs_scrub: move to mallinfo2 when available Darrick J. Wong @ 2022-05-05 19:28 ` Eric Sandeen 2022-05-10 9:38 ` Christoph Hellwig 1 sibling, 0 replies; 10+ messages in thread From: Eric Sandeen @ 2022-05-05 19:28 UTC (permalink / raw) To: Darrick J. Wong; +Cc: linux-xfs On 5/5/22 11:04 AM, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > Starting with glibc 2.35, the mallinfo library call has finally been > upgraded to return 64-bit memory usage quantities. Migrate to the new > call, since it also warns about mallinfo being deprecated. > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> Seems fine. Turning into a fair bit of code for an informational message, do you really need it? ;) Anyway, looks like it fixes the warning, thanks! Reviewed-by: Eric Sandeen <sandeen@redhat.com> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] xfs_scrub: move to mallinfo2 when available 2022-05-05 16:04 ` [PATCH 1/2] xfs_scrub: move to mallinfo2 when available Darrick J. Wong 2022-05-05 19:28 ` Eric Sandeen @ 2022-05-10 9:38 ` Christoph Hellwig 1 sibling, 0 replies; 10+ messages in thread From: Christoph Hellwig @ 2022-05-10 9:38 UTC (permalink / raw) To: Darrick J. Wong; +Cc: sandeen, linux-xfs Looks good: Reviewed-by: Christoph Hellwig <hch@lst.de> ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/2] xfs_db: fix a complaint about a printf buffer overrun 2022-05-05 16:03 [PATCHSET 0/2] xfsprogs: random fixes Darrick J. Wong 2022-05-05 16:04 ` [PATCH 1/2] xfs_scrub: move to mallinfo2 when available Darrick J. Wong @ 2022-05-05 16:04 ` Darrick J. Wong 2022-05-05 19:34 ` Eric Sandeen 2022-05-10 9:38 ` Christoph Hellwig 2022-05-10 21:30 ` [PATCH 3/2] xfs: note the removal of XFS_IOC_FSSETDM in the documentation Darrick J. Wong 2 siblings, 2 replies; 10+ messages in thread From: Darrick J. Wong @ 2022-05-05 16:04 UTC (permalink / raw) To: sandeen, djwong; +Cc: linux-xfs From: Darrick J. Wong <djwong@kernel.org> gcc 11 warns that stack_f doesn't allocate a sufficiently large buffer to hold the printf output. I don't think the io cursor stack is really going to grow to 4 billion levels deep, but let's fix this anyway. Signed-off-by: Darrick J. Wong <djwong@kernel.org> --- db/io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/io.c b/db/io.c index 98f4e605..bfc86cc4 100644 --- a/db/io.c +++ b/db/io.c @@ -638,7 +638,7 @@ stack_f( char **argv) { int i; - char tagbuf[8]; + char tagbuf[14]; for (i = iocur_sp; i > 0; i--) { snprintf(tagbuf, sizeof(tagbuf), "%d: ", i); ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] xfs_db: fix a complaint about a printf buffer overrun 2022-05-05 16:04 ` [PATCH 2/2] xfs_db: fix a complaint about a printf buffer overrun Darrick J. Wong @ 2022-05-05 19:34 ` Eric Sandeen 2022-05-10 9:38 ` Christoph Hellwig 1 sibling, 0 replies; 10+ messages in thread From: Eric Sandeen @ 2022-05-05 19:34 UTC (permalink / raw) To: Darrick J. Wong; +Cc: linux-xfs On 5/5/22 11:04 AM, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > gcc 11 warns that stack_f doesn't allocate a sufficiently large buffer > to hold the printf output. I don't think the io cursor stack is really > going to grow to 4 billion levels deep, but let's fix this anyway. > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Eric Sandeen <sandeen@redhat.com> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] xfs_db: fix a complaint about a printf buffer overrun 2022-05-05 16:04 ` [PATCH 2/2] xfs_db: fix a complaint about a printf buffer overrun Darrick J. Wong 2022-05-05 19:34 ` Eric Sandeen @ 2022-05-10 9:38 ` Christoph Hellwig 1 sibling, 0 replies; 10+ messages in thread From: Christoph Hellwig @ 2022-05-10 9:38 UTC (permalink / raw) To: Darrick J. Wong; +Cc: sandeen, linux-xfs On Thu, May 05, 2022 at 09:04:10AM -0700, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > gcc 11 warns that stack_f doesn't allocate a sufficiently large buffer > to hold the printf output. I don't think the io cursor stack is really > going to grow to 4 billion levels deep, but let's fix this anyway. Looks good: Reviewed-by: Christoph Hellwig <hch@lst.de> ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 3/2] xfs: note the removal of XFS_IOC_FSSETDM in the documentation 2022-05-05 16:03 [PATCHSET 0/2] xfsprogs: random fixes Darrick J. Wong 2022-05-05 16:04 ` [PATCH 1/2] xfs_scrub: move to mallinfo2 when available Darrick J. Wong 2022-05-05 16:04 ` [PATCH 2/2] xfs_db: fix a complaint about a printf buffer overrun Darrick J. Wong @ 2022-05-10 21:30 ` Darrick J. Wong 2022-05-12 18:31 ` Eric Sandeen 2 siblings, 1 reply; 10+ messages in thread From: Darrick J. Wong @ 2022-05-10 21:30 UTC (permalink / raw) To: sandeen; +Cc: linux-xfs From: Darrick J. Wong <djwong@kernel.org> Update the documentation to note the removal of this ioctl. Signed-off-by: Darrick J. Wong <djwong@kernel.org> --- man/man3/handle.3 | 1 + man/man3/xfsctl.3 | 2 ++ 2 files changed, 3 insertions(+) diff --git a/man/man3/handle.3 b/man/man3/handle.3 index 154c0f29..2eb2bbcd 100644 --- a/man/man3/handle.3 +++ b/man/man3/handle.3 @@ -124,6 +124,7 @@ and fields in an XFS on-disk inode. It is analogous to the .BR "XFS_IOC_FSSETDM xfsctl" (3) command, except that a handle is specified instead of a file. +This function is not supported on Linux. .PP The .BR free_handle () diff --git a/man/man3/xfsctl.3 b/man/man3/xfsctl.3 index a591e61a..4a0d4d08 100644 --- a/man/man3/xfsctl.3 +++ b/man/man3/xfsctl.3 @@ -104,6 +104,7 @@ This command is restricted to root or to processes with device management capabilities. Its sole purpose is to allow backup and restore programs to restore the aforementioned critical on-disk inode fields. +This ioctl is not supported as of Linux 5.5. .TP .B XFS_IOC_DIOINFO @@ -318,6 +319,7 @@ functions (see .BR open_by_handle (3)). They are all subject to change and should not be called directly by applications. +XFS_IOC_FSSETDM_BY_HANDLE is not supported as of Linux 5.5. .SS Filesystem Operations In order to effect one of the following operations, the pathname ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 3/2] xfs: note the removal of XFS_IOC_FSSETDM in the documentation 2022-05-10 21:30 ` [PATCH 3/2] xfs: note the removal of XFS_IOC_FSSETDM in the documentation Darrick J. Wong @ 2022-05-12 18:31 ` Eric Sandeen 0 siblings, 0 replies; 10+ messages in thread From: Eric Sandeen @ 2022-05-12 18:31 UTC (permalink / raw) To: Darrick J. Wong; +Cc: linux-xfs On 5/10/22 4:30 PM, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > Update the documentation to note the removal of this ioctl> > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Eric Sandeen <sandeen@redhat.com> ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCHSET 0/2] xfsprogs: random fixes @ 2021-07-28 21:16 Darrick J. Wong 0 siblings, 0 replies; 10+ messages in thread From: Darrick J. Wong @ 2021-07-28 21:16 UTC (permalink / raw) To: sandeen, djwong; +Cc: Dave Chinner, linux-xfs Hi all, Here are a couple more random fixes. If you're going to start using this mess, you probably ought to just pull from my git trees, which are linked below. This is an extraordinary way to destroy everything. Enjoy! Comments and questions are, as always, welcome. --D kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=random-fixes xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=random-fixes fstests git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfstests-dev.git/log/?h=random-fixes --- quota/state.c | 3 ++- repair/phase6.c | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-05-12 18:32 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-05-05 16:03 [PATCHSET 0/2] xfsprogs: random fixes Darrick J. Wong 2022-05-05 16:04 ` [PATCH 1/2] xfs_scrub: move to mallinfo2 when available Darrick J. Wong 2022-05-05 19:28 ` Eric Sandeen 2022-05-10 9:38 ` Christoph Hellwig 2022-05-05 16:04 ` [PATCH 2/2] xfs_db: fix a complaint about a printf buffer overrun Darrick J. Wong 2022-05-05 19:34 ` Eric Sandeen 2022-05-10 9:38 ` Christoph Hellwig 2022-05-10 21:30 ` [PATCH 3/2] xfs: note the removal of XFS_IOC_FSSETDM in the documentation Darrick J. Wong 2022-05-12 18:31 ` Eric Sandeen -- strict thread matches above, loose matches on Subject: below -- 2021-07-28 21:16 [PATCHSET 0/2] xfsprogs: random fixes Darrick J. Wong
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.