Commit 62c89988 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Carlos Maiolino
Browse files

xfs: expose the number of open zones in sysfs



Add a sysfs attribute for the current number of open zones so that it
can be trivially read from userspace in monitoring or testing software.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarHans Holmberg <hans.holmberg@wdc.com>
Reviewed-by: default avatarDamien Le Moal <dlemoal@kernel.org>
Signed-off-by: default avatarCarlos Maiolino <cem@kernel.org>
parent 1d0d9e94
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -550,6 +550,10 @@ For zoned file systems, the following attributes are exposed in:
	is limited by the capabilities of the backing zoned device, file system
	size and the max_open_zones mount option.

  nr_open_zones			(Min:  0  Default:  Varies  Max:  UINTMAX)
	This read-only attribute exposes the current number of open zones
	used by the file system.

  zonegc_low_space		(Min:  0  Default:  0  Max:  100)
	Define a percentage for how much of the unused space that GC should keep
	available for writing. A high value will reclaim more of the space
+13 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#include "xfs_log.h"
#include "xfs_log_priv.h"
#include "xfs_mount.h"
#include "xfs_zone_priv.h"
#include "xfs_zones.h"
#include "xfs_zone_alloc.h"

@@ -719,6 +720,17 @@ max_open_zones_show(
}
XFS_SYSFS_ATTR_RO(max_open_zones);

static ssize_t
nr_open_zones_show(
	struct kobject		*kobj,
	char			*buf)
{
	struct xfs_zone_info	*zi = zoned_to_mp(kobj)->m_zone_info;

	return sysfs_emit(buf, "%u\n", READ_ONCE(zi->zi_nr_open_zones));
}
XFS_SYSFS_ATTR_RO(nr_open_zones);

static ssize_t
zonegc_low_space_store(
	struct kobject		*kobj,
@@ -756,6 +768,7 @@ XFS_SYSFS_ATTR_RW(zonegc_low_space);

static struct attribute *xfs_zoned_attrs[] = {
	ATTR_LIST(max_open_zones),
	ATTR_LIST(nr_open_zones),
	ATTR_LIST(zonegc_low_space),
	NULL,
};