edac: Allow the option of creating a deferrable work for polling
EDAC provides a mechanism to poll for errors using a callback function and uses a delayed timer to schedule it. Provide an option to create a deferrable timer if the error checking is not worth waking up the cpu from idle. Change-Id: Ia25216323eabf7fa4b894897c950414006921f3f Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org> Signed-off-by: Venkata Narendra Kumar Gutta <vnkgutta@codeaurora.org>
This commit is contained in:
parent
19910d905d
commit
b6541efc03
@ -388,9 +388,15 @@ static void edac_device_workq_setup(struct edac_device_ctl_info *edac_dev,
|
||||
*/
|
||||
edac_dev->poll_msec = msec;
|
||||
edac_dev->delay = msecs_to_jiffies(msec);
|
||||
|
||||
#ifdef CONFIG_EDAC_QGKI
|
||||
if (edac_dev->defer_work)
|
||||
INIT_DEFERRABLE_WORK(&edac_dev->work,
|
||||
edac_device_workq_function);
|
||||
else
|
||||
INIT_DELAYED_WORK(&edac_dev->work, edac_device_workq_function);
|
||||
#else
|
||||
INIT_DELAYED_WORK(&edac_dev->work, edac_device_workq_function);
|
||||
|
||||
#endif
|
||||
/* optimize here for the 1 second case, which will be normal value, to
|
||||
* fire ON the 1 second time event. This helps reduce all sorts of
|
||||
* timers firing on sub-second basis, while they are happy
|
||||
|
@ -165,6 +165,9 @@ struct edac_device_ctl_info {
|
||||
int panic_on_ue; /* boolean for panic'ing on an UE */
|
||||
unsigned poll_msec; /* number of milliseconds to poll interval */
|
||||
unsigned long delay; /* number of jiffies for poll_msec */
|
||||
#ifdef CONFIG_EDAC_QGKI
|
||||
bool defer_work; /* Create a deferrable work for polling */
|
||||
#endif
|
||||
|
||||
/* Additional top controller level attributes, but specified
|
||||
* by the low level driver.
|
||||
|
Loading…
Reference in New Issue
Block a user