devlink: Add ISO/IEC switch
Add -i/--iec switch to print rate values using binary prefixes. Update devlink(8) and devlink-rate(8) pages. Signed-off-by: Dmytro Linkin <dlinkin@nvidia.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: David Ahern <dsahern@kernel.org>
This commit is contained in:
parent
6c70aca76e
commit
dedf895184
|
|
@ -71,6 +71,8 @@ static bool g_indent_newline;
|
||||||
#define INDENT_STR_MAXLEN 32
|
#define INDENT_STR_MAXLEN 32
|
||||||
static char g_indent_str[INDENT_STR_MAXLEN + 1] = "";
|
static char g_indent_str[INDENT_STR_MAXLEN + 1] = "";
|
||||||
|
|
||||||
|
static bool use_iec = false;
|
||||||
|
|
||||||
static void __attribute__((format(printf, 1, 2)))
|
static void __attribute__((format(printf, 1, 2)))
|
||||||
pr_err(const char *fmt, ...)
|
pr_err(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
|
|
@ -4555,7 +4557,7 @@ static void pr_out_port_fn_rate(struct dl *dl, struct nlattr **tb)
|
||||||
mnl_attr_get_u64(tb[DEVLINK_ATTR_RATE_TX_SHARE]);
|
mnl_attr_get_u64(tb[DEVLINK_ATTR_RATE_TX_SHARE]);
|
||||||
|
|
||||||
if (rate)
|
if (rate)
|
||||||
print_rate(false, PRINT_ANY, "tx_share",
|
print_rate(use_iec, PRINT_ANY, "tx_share",
|
||||||
" tx_share %s", rate);
|
" tx_share %s", rate);
|
||||||
}
|
}
|
||||||
if (tb[DEVLINK_ATTR_RATE_TX_MAX]) {
|
if (tb[DEVLINK_ATTR_RATE_TX_MAX]) {
|
||||||
|
|
@ -4563,7 +4565,7 @@ static void pr_out_port_fn_rate(struct dl *dl, struct nlattr **tb)
|
||||||
mnl_attr_get_u64(tb[DEVLINK_ATTR_RATE_TX_MAX]);
|
mnl_attr_get_u64(tb[DEVLINK_ATTR_RATE_TX_MAX]);
|
||||||
|
|
||||||
if (rate)
|
if (rate)
|
||||||
print_rate(false, PRINT_ANY, "tx_max",
|
print_rate(use_iec, PRINT_ANY, "tx_max",
|
||||||
" tx_max %s", rate);
|
" tx_max %s", rate);
|
||||||
}
|
}
|
||||||
if (tb[DEVLINK_ATTR_RATE_PARENT_NODE_NAME]) {
|
if (tb[DEVLINK_ATTR_RATE_PARENT_NODE_NAME]) {
|
||||||
|
|
@ -9085,6 +9087,7 @@ int main(int argc, char **argv)
|
||||||
{ "verbose", no_argument, NULL, 'v' },
|
{ "verbose", no_argument, NULL, 'v' },
|
||||||
{ "statistics", no_argument, NULL, 's' },
|
{ "statistics", no_argument, NULL, 's' },
|
||||||
{ "Netns", required_argument, NULL, 'N' },
|
{ "Netns", required_argument, NULL, 'N' },
|
||||||
|
{ "iec", no_argument, NULL, 'i' },
|
||||||
{ NULL, 0, NULL, 0 }
|
{ NULL, 0, NULL, 0 }
|
||||||
};
|
};
|
||||||
const char *batch_file = NULL;
|
const char *batch_file = NULL;
|
||||||
|
|
@ -9100,7 +9103,7 @@ int main(int argc, char **argv)
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((opt = getopt_long(argc, argv, "Vfb:njpvsN:",
|
while ((opt = getopt_long(argc, argv, "Vfb:njpvsN:i",
|
||||||
long_options, NULL)) >= 0) {
|
long_options, NULL)) >= 0) {
|
||||||
|
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
|
|
@ -9135,6 +9138,9 @@ int main(int argc, char **argv)
|
||||||
goto dl_free;
|
goto dl_free;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'i':
|
||||||
|
use_iec = true;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
pr_err("Unknown option.\n");
|
pr_err("Unknown option.\n");
|
||||||
help();
|
help();
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ devlink-rate \- devlink rate management
|
||||||
|
|
||||||
.ti -8
|
.ti -8
|
||||||
.IR OPTIONS " := { "
|
.IR OPTIONS " := { "
|
||||||
.BR -j [ \fIson "] | " -p [ \fIretty "] }"
|
.BR -j [ \fIson "] | " -p [ \fIretty "] | " -i [ \fIec "] }"
|
||||||
|
|
||||||
.ti -8
|
.ti -8
|
||||||
.B devlink port function rate show
|
.B devlink port function rate show
|
||||||
|
|
@ -61,9 +61,10 @@ except decimal number, to avoid collisions with leafs.
|
||||||
.PP
|
.PP
|
||||||
Command output show rate object identifier, it's type and rate values along with
|
Command output show rate object identifier, it's type and rate values along with
|
||||||
parent node name. Rate values printed in SI units which are more suitable to
|
parent node name. Rate values printed in SI units which are more suitable to
|
||||||
represent specific value. JSON (\fB-j\fR) output always print rate values in
|
represent specific value. To print values in IEC units \fB-i\fR switch is
|
||||||
bytes per second. Zero rate values means "unlimited" rates and ommited in
|
used. JSON (\fB-j\fR) output always print rate values in bytes per second. Zero
|
||||||
output, as well as parent node name.
|
rate values means "unlimited" rates and ommited in output, as well as parent
|
||||||
|
node name.
|
||||||
|
|
||||||
.SS devlink port function rate set - set rate object parameters.
|
.SS devlink port function rate set - set rate object parameters.
|
||||||
Allows set rate object's parameters. If any parameter specified multiple times
|
Allows set rate object's parameters. If any parameter specified multiple times
|
||||||
|
|
@ -85,7 +86,7 @@ rate group.
|
||||||
.TP 8
|
.TP 8
|
||||||
.I VALUE
|
.I VALUE
|
||||||
These parameter accept a floating point number, possibly followed by either a
|
These parameter accept a floating point number, possibly followed by either a
|
||||||
unit.
|
unit (both SI and IEC units supported).
|
||||||
.RS
|
.RS
|
||||||
.TP
|
.TP
|
||||||
bit or a bare number
|
bit or a bare number
|
||||||
|
|
@ -117,6 +118,9 @@ Gigabytes per second
|
||||||
.TP
|
.TP
|
||||||
tbps
|
tbps
|
||||||
Terabytes per second
|
Terabytes per second
|
||||||
|
.P
|
||||||
|
To specify in IEC units, replace the SI prefix (k-, m-, g-, t-) with IEC prefix
|
||||||
|
(ki-, mi-, gi- and ti-) respectively. Input is case-insensitive.
|
||||||
.RE
|
.RE
|
||||||
.PP
|
.PP
|
||||||
.BI parent " NODE_NAME \fR| " noparent
|
.BI parent " NODE_NAME \fR| " noparent
|
||||||
|
|
@ -168,6 +172,16 @@ pci/0000:03:00.0/1 type leaf
|
||||||
.br
|
.br
|
||||||
.RE
|
.RE
|
||||||
|
|
||||||
|
.PP
|
||||||
|
\fB*\fR Display leaf rate object rate values using IEC units:
|
||||||
|
.RS 4
|
||||||
|
.PP
|
||||||
|
# devlink -i port function rate show pci/0000:03:00.0/2
|
||||||
|
.br
|
||||||
|
pci/0000:03:00.0/2 type leaf 11718Kibit
|
||||||
|
.br
|
||||||
|
.RE
|
||||||
|
|
||||||
.PP
|
.PP
|
||||||
\fB*\fR Display node rate object with name some_group of the pci/0000:03:00.0 device:
|
\fB*\fR Display node rate object with name some_group of the pci/0000:03:00.0 device:
|
||||||
.RS 4
|
.RS 4
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,10 @@ Output statistics.
|
||||||
.BR "\-N", " \-Netns " <NETNSNAME>
|
.BR "\-N", " \-Netns " <NETNSNAME>
|
||||||
Switches to the specified network namespace.
|
Switches to the specified network namespace.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
.BR "\-i", " --iec"
|
||||||
|
Print human readable rates in IEC units (e.g. 1Ki = 1024).
|
||||||
|
|
||||||
.SS
|
.SS
|
||||||
.I OBJECT
|
.I OBJECT
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue