* [PATCH] blkzone: add report capacity command
@ 2020-09-11 8:47 Hans Holmberg
2020-09-11 10:42 ` Karel Zak
0 siblings, 1 reply; 2+ messages in thread
From: Hans Holmberg @ 2020-09-11 8:47 UTC (permalink / raw)
To: Karel Zak
Cc: Damien Le Moal, Shinichiro Kawasaki, Matias Bjorling, util-linux,
Hans Holmberg
Add a command that answers the the question:
"How much data can I store on this device/in this range of zones?"
Implement this by summing up zone capacities over the given range.
Signed-off-by: Hans Holmberg <hans.holmberg@wdc.com>
---
As commands like blockdev --getsize and lsblk returns the size
of the entire address space, it is useful to provide users with a command
that calculates the actual storage capacity in that address space
for zoned block devices.
sys-utils/blkzone.8 | 7 +++++++
sys-utils/blkzone.c | 28 ++++++++++++++++++++--------
2 files changed, 27 insertions(+), 8 deletions(-)
diff --git a/sys-utils/blkzone.8 b/sys-utils/blkzone.8
index 043bc96e23ac..958677e1bffa 100644
--- a/sys-utils/blkzone.8
+++ b/sys-utils/blkzone.8
@@ -52,6 +52,13 @@ ro:Read only
x?:Reserved conditions (should not be reported)
.TE
+.SS capacity
+The command \fBblkzone capacity\fP is used to report device capacity information.
+.PP
+By default, the command will report the sum, in number of sectors, of all
+zone capacities on the device. Options may be used to modify this behavior,
+changing the starting zone or the size of the report, as explained below.
+
.SS reset
The command \fBblkzone reset\fP is used to reset one or more zones. Unlike
.BR sg_reset_wp (8),
diff --git a/sys-utils/blkzone.c b/sys-utils/blkzone.c
index 67eaf1a02430..c416e0711fc3 100644
--- a/sys-utils/blkzone.c
+++ b/sys-utils/blkzone.c
@@ -91,6 +91,10 @@ static const struct blkzone_command commands[] = {
.name = "report",
.handler = blkzone_report,
.help = N_("Report zone information about the given device")
+ },{
+ .name = "capacity",
+ .handler = blkzone_report,
+ .help = N_("Report sum of zone capacities for the given device")
},{
.name = "reset",
.handler = blkzone_action,
@@ -224,6 +228,8 @@ static const char *condition_str[] = {
static int blkzone_report(struct blkzone_control *ctl)
{
+ bool only_capacity_sum = !strcmp(ctl->command->name, "capacity");
+ uint64_t capacity_sum = 0;
struct blk_zone_report *zi;
unsigned long zonesize;
uint32_t i, nr_zones;
@@ -290,21 +296,27 @@ static int blkzone_report(struct blkzone_control *ctl)
else
cap = entry->len;
- printf(_(" start: 0x%09"PRIx64", len 0x%06"PRIx64
- ", cap 0x%06"PRIx64", wptr 0x%06"PRIx64
- " reset:%u non-seq:%u, zcond:%2u(%s) [type: %u(%s)]\n"),
- start, len, cap, (type == 0x1) ? 0 : wp - start,
- entry->reset, entry->non_seq,
- cond, condition_str[cond & (ARRAY_SIZE(condition_str) - 1)],
- type, type_text[type]);
+ if (only_capacity_sum) {
+ capacity_sum += cap;
+ } else {
+ printf(_(" start: 0x%09"PRIx64", len 0x%06"PRIx64
+ ", cap 0x%06"PRIx64", wptr 0x%06"PRIx64
+ " reset:%u non-seq:%u, zcond:%2u(%s) [type: %u(%s)]\n"),
+ start, len, cap, (type == 0x1) ? 0 : wp - start,
+ entry->reset, entry->non_seq,
+ cond, condition_str[cond & (ARRAY_SIZE(condition_str) - 1)],
+ type, type_text[type]);
+ }
nr_zones--;
ctl->offset = start + len;
-
}
}
+ if (only_capacity_sum)
+ printf(_("0x%09"PRIx64"\n"), capacity_sum);
+
free(zi);
close(fd);
--
2.20.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] blkzone: add report capacity command
2020-09-11 8:47 [PATCH] blkzone: add report capacity command Hans Holmberg
@ 2020-09-11 10:42 ` Karel Zak
0 siblings, 0 replies; 2+ messages in thread
From: Karel Zak @ 2020-09-11 10:42 UTC (permalink / raw)
To: Hans Holmberg
Cc: Damien Le Moal, Shinichiro Kawasaki, Matias Bjorling, util-linux
On Fri, Sep 11, 2020 at 10:47:23AM +0200, Hans Holmberg wrote:
> sys-utils/blkzone.8 | 7 +++++++
> sys-utils/blkzone.c | 28 ++++++++++++++++++++--------
> 2 files changed, 27 insertions(+), 8 deletions(-)
Applied, thanks.
--
Karel Zak <kzak@redhat.com>
http://karelzak.blogspot.com
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-09-11 10:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-11 8:47 [PATCH] blkzone: add report capacity command Hans Holmberg
2020-09-11 10:42 ` Karel Zak
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).