我们有一个系统和一个外部底板管理控制器(BMC)来监控该系统。当系统发生严重错误时,应记录错误并将其发送到外部BMC。将错误消息发送到BMC的过程可能需要很长时间,因为我们需要编写日志条目,通过I2C总线发送事件。在中断处理程序中捕获错误,该处理程序需要以非常短的时间和非阻塞方式处理事件。另一方面,如果错误是不可恢复的,系统可能会立即重启。
请您推荐一种处理中断处理程序内部错误报告的好方法,或者这个程序有什么标准方法吗?任何建议表示赞赏。谢谢你提前。
答案 0 :(得分:0)
没有好办法。
如果您的BMC通信处于休眠状态,则无法从中断处理程序中执行这些操作,并且必须将它们移动到工作队列中。
如果您的系统在中断处理程序之后立即重新启动,则无法与BMC通信。
如果您的中断处理程序实际上知道系统将重新启动,那么您可以更改I²C驱动程序以添加一些方法从中断处理程序内部发送数据,通过忙碌轮询而不是休眠。