devlink: Add health report functionality
authorEran Ben Elisha <eranbe@mellanox.com>
Thu, 17 Jan 2019 21:59:12 +0000 (23:59 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Jan 2019 22:51:22 +0000 (14:51 -0800)
commitc7af343b4e33578b7de91786a3f639c8cfa0d97b
treee60cab858369020cc94ce5f569e82d53a62e57f0
parent880ee82f0313453ec5a6cb122866ac057263066b
devlink: Add health report functionality

Upon error discover, every driver can report it to the devlink health
mechanism via devlink_health_report function, using the appropriate
reporter registered to it. Driver can pass error specific context which
will be delivered to it as part of the dump / recovery callbacks.

Once an error is reported, devlink health will do the following actions:
* A log is being send to the kernel trace events buffer
* Health status and statistics are being updated for the reporter instance
* Object dump is being taken and stored at the reporter instance (as long
  as there is no other dump which is already stored)
* Auto recovery attempt is being done. depends on:
  - Auto Recovery configuration
  - Grace period vs. time since last recover

Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
Reviewed-by: Moshe Shemesh <moshe@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/devlink.h
include/trace/events/devlink.h
net/core/devlink.c