devlink: Add remote reload stats
Add remote reload stats to hold the history of actions performed due
devlink reload commands initiated by remote host. For example, in case
firmware activation with reset finished successfully but was initiated
by remote host.
The function devlink_remote_reload_actions_performed() is exported to
enable drivers update on remote reload actions performed as it was not
initiated by their own devlink instance.
Expose devlink remote reload stats to the user through devlink dev get
command.
Examples:
$ devlink dev show
pci/0000:82:00.0:
stats:
reload:
driver_reinit 2 fw_activate 1 fw_activate_no_reset 0
remote_reload:
driver_reinit 0 fw_activate 0 fw_activate_no_reset 0
pci/0000:82:00.1:
stats:
reload:
driver_reinit 1 fw_activate 0 fw_activate_no_reset 0
remote_reload:
driver_reinit 1 fw_activate 1 fw_activate_no_reset 0
$ devlink dev show -jp
{
"dev": {
"pci/0000:82:00.0": {
"stats": {
"reload": {
"driver_reinit": 2,
"fw_activate": 1,
"fw_activate_no_reset": 0
},
"remote_reload": {
"driver_reinit": 0,
"fw_activate": 0,
"fw_activate_no_reset": 0
}
}
},
"pci/0000:82:00.1": {
"stats": {
"reload": {
"driver_reinit": 1,
"fw_activate": 0,
"fw_activate_no_reset": 0
},
"remote_reload": {
"driver_reinit": 1,
"fw_activate": 1,
"fw_activate_no_reset": 0
}
}
}
}
}
Signed-off-by: Moshe Shemesh <moshe@mellanox.com>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
a254c26426
commit
77069ba2e3
@@ -25,6 +25,7 @@
|
||||
|
||||
struct devlink_dev_stats {
|
||||
u32 reload_stats[DEVLINK_RELOAD_STATS_ARRAY_SIZE];
|
||||
u32 remote_reload_stats[DEVLINK_RELOAD_STATS_ARRAY_SIZE];
|
||||
};
|
||||
|
||||
struct devlink_ops;
|
||||
@@ -1567,6 +1568,9 @@ void
|
||||
devlink_health_reporter_recovery_done(struct devlink_health_reporter *reporter);
|
||||
|
||||
bool devlink_is_reload_failed(const struct devlink *devlink);
|
||||
void devlink_remote_reload_actions_performed(struct devlink *devlink,
|
||||
enum devlink_reload_limit limit,
|
||||
u32 actions_performed);
|
||||
|
||||
void devlink_flash_update_begin_notify(struct devlink *devlink);
|
||||
void devlink_flash_update_end_notify(struct devlink *devlink);
|
||||
|
||||
Reference in New Issue
Block a user