mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 07:01:32 +00:00
devlink: add hardware errors tracing facility
Define a tracepoint and allow user to trace messages in case of an hardware error code for hardware associated with devlink instance. Signed-off-by: Nir Dotan <nird@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8ce5cd5ed4
commit
57186a5f43
@ -46,6 +46,35 @@ TRACE_EVENT(devlink_hwmsg,
|
||||
(int) __entry->len, __get_dynamic_array(buf), __entry->len)
|
||||
);
|
||||
|
||||
/*
|
||||
* Tracepoint for devlink hardware error:
|
||||
*/
|
||||
TRACE_EVENT(devlink_hwerr,
|
||||
TP_PROTO(const struct devlink *devlink, int err, const char *msg),
|
||||
|
||||
TP_ARGS(devlink, err, msg),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__string(bus_name, devlink->dev->bus->name)
|
||||
__string(dev_name, dev_name(devlink->dev))
|
||||
__string(driver_name, devlink->dev->driver->name)
|
||||
__field(int, err)
|
||||
__string(msg, msg)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__assign_str(bus_name, devlink->dev->bus->name);
|
||||
__assign_str(dev_name, dev_name(devlink->dev));
|
||||
__assign_str(driver_name, devlink->dev->driver->name);
|
||||
__entry->err = err;
|
||||
__assign_str(msg, msg);
|
||||
),
|
||||
|
||||
TP_printk("bus_name=%s dev_name=%s driver_name=%s err=%d %s",
|
||||
__get_str(bus_name), __get_str(dev_name),
|
||||
__get_str(driver_name), __entry->err, __get_str(msg))
|
||||
);
|
||||
|
||||
#endif /* _TRACE_DEVLINK_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
@ -64,6 +93,10 @@ static inline void trace_devlink_hwmsg(const struct devlink *devlink,
|
||||
{
|
||||
}
|
||||
|
||||
static inline void trace_devlink_hwerr(const struct devlink *devlink,
|
||||
int err, const char *msg)
|
||||
{
|
||||
}
|
||||
#endif /* _TRACE_DEVLINK_H */
|
||||
|
||||
#endif
|
||||
|
@ -81,6 +81,7 @@ struct devlink_dpipe_header devlink_dpipe_header_ipv6 = {
|
||||
EXPORT_SYMBOL(devlink_dpipe_header_ipv6);
|
||||
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(devlink_hwmsg);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(devlink_hwerr);
|
||||
|
||||
static LIST_HEAD(devlink_list);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user