A methodology for protecting Linux*-based embedded services from I/O-connected device errors via an I/O RPC service
Publication Date: 2012-May-22
The IP.com Prior Art Database
Described is a novel way of protecting management services from receiving this SIGBUS signal directly, yet still allow management services to detect if an error has occurred and take appropriate steps to recover from the error or gracefully shut down the embedded system.
Page 01 of 2
Ȉˇ ˇ ˄ ˇ ˙ Ȉˇ ˇ ˄ ˇ ˙ ˝
˝˛ ˚~ ˇ ˄
˛ ˚~ ˇ ˄
In general, embedded devices contain a firmware image that is essentially a stripped-down version of a fully-functional operating system with a custom set of services that manage the device and any potentially connected devices. In embedded Linux*, non-kernel applications that access an I/O device and subsequently cause an error on the I/O device are killed by the init process by direction of the kernel using the SIGBUS signal. This disclosure describes a novel way of protecting management services from receiving this SIGBUS signal directly yet still allow management services to detect if an error has occurred and take appropriate steps to recover from the error or gracefully shut down the embedded system.
Linux-based embedded environments are used in a large number of varying applications and uses ranging from custom ASIC device management to wireless router applications. In many cases, external busses are relied upon to communicate with a device or devices that the embedded system is tasked to manage using custom services that operate in a non-kernel capacity. However, if an error occurs on any of these external devices or the communication paths used to connect to these devices, the default behavior of the Linux kernel is to inform the init process of the error and deliver a SIGBUS signal to the offending process, subsequently killing it. In many cases, this is undesirable as:
• the error may not be catastrophic in nature and recoverable
• even if the error is catastrophic, there may be a need to inform other peer or controlling embedded systems of the error and take appropriate actions
• there may be...