mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 02:17:36 -04:00
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: Christoph Hellwig <hch@lst.de> Reviewed-by: Hans Holmberg <hans.holmberg@wdc.com> Reviewed-by: Damien Le Moal <dlemoal@kernel.org> Signed-off-by: Carlos Maiolino <cem@kernel.org>
This commit is contained in:
committed by
Carlos Maiolino
parent
1d0d9e9459
commit
62c89988dc
@@ -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
|
is limited by the capabilities of the backing zoned device, file system
|
||||||
size and the max_open_zones mount option.
|
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)
|
zonegc_low_space (Min: 0 Default: 0 Max: 100)
|
||||||
Define a percentage for how much of the unused space that GC should keep
|
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
|
available for writing. A high value will reclaim more of the space
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
#include "xfs_log.h"
|
#include "xfs_log.h"
|
||||||
#include "xfs_log_priv.h"
|
#include "xfs_log_priv.h"
|
||||||
#include "xfs_mount.h"
|
#include "xfs_mount.h"
|
||||||
|
#include "xfs_zone_priv.h"
|
||||||
#include "xfs_zones.h"
|
#include "xfs_zones.h"
|
||||||
#include "xfs_zone_alloc.h"
|
#include "xfs_zone_alloc.h"
|
||||||
|
|
||||||
@@ -719,6 +720,17 @@ max_open_zones_show(
|
|||||||
}
|
}
|
||||||
XFS_SYSFS_ATTR_RO(max_open_zones);
|
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
|
static ssize_t
|
||||||
zonegc_low_space_store(
|
zonegc_low_space_store(
|
||||||
struct kobject *kobj,
|
struct kobject *kobj,
|
||||||
@@ -756,6 +768,7 @@ XFS_SYSFS_ATTR_RW(zonegc_low_space);
|
|||||||
|
|
||||||
static struct attribute *xfs_zoned_attrs[] = {
|
static struct attribute *xfs_zoned_attrs[] = {
|
||||||
ATTR_LIST(max_open_zones),
|
ATTR_LIST(max_open_zones),
|
||||||
|
ATTR_LIST(nr_open_zones),
|
||||||
ATTR_LIST(zonegc_low_space),
|
ATTR_LIST(zonegc_low_space),
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user