[Skiboot] [PATCH 2/3] bt: Remove use of TIMER_POLL
Benjamin Herrenschmidt
benh at au1.ibm.com
Thu Sep 10 10:08:51 AEST 2015
Use a 2s timer instead. TIMER_POLL can fire a *lot* when there is console
activity and I would like to mostly get rid of it.
We should still stop using that timer completely when interrupts are
working unless there's an active request, in which case we can arm it
for timeouts.
Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
---
hw/bt.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/hw/bt.c b/hw/bt.c
index 41fe24e..42db3f3 100644
--- a/hw/bt.c
+++ b/hw/bt.c
@@ -39,8 +39,11 @@
#define BT_INTMASK_B2H_IRQ 0x02
#define BT_INTMASK_BMC_HWRST 0x80
-/* Default poll interval before interrupts are working */
-#define BT_DEFAULT_POLL_MS 200
+/* Poll interval before interrupts are working */
+#define BT_NOIRQ_POLL_MS 200
+
+/* Poll interval when interrupts are working (for timeouts) */
+#define BT_IRQ_POLL_MS 2000
/*
* Minimum size of an IPMI request/response including
@@ -52,8 +55,6 @@
/*
* How long (in uS) to poll for new ipmi data.
*/
-#define POLL_TIMEOUT 10000
-
/*
* Maximum number of outstanding messages to allow in the queue.
*/
@@ -393,7 +394,9 @@ static void bt_poll(struct timer *t __unused, void *data __unused,
bt_send_and_unlock();
schedule_timer(&bt.poller,
- bt.irq_ok ? TIMER_POLL : msecs_to_tb(BT_DEFAULT_POLL_MS));
+ bt.irq_ok ?
+ msecs_to_tb(BT_IRQ_POLL_MS) :
+ msecs_to_tb(BT_NOIRQ_POLL_MS));
}
static void bt_add_msg(struct bt_msg *bt_msg)
@@ -551,7 +554,7 @@ void bt_init(void)
* least until we have at least one interrupt occurring at which
* point we turn it into a background poller
*/
- schedule_timer(&bt.poller, msecs_to_tb(BT_DEFAULT_POLL_MS));
+ schedule_timer(&bt.poller, msecs_to_tb(BT_NOIRQ_POLL_MS));
irq = dt_prop_get_u32(n, "interrupts");
bt_lpc_client.interrupts = LPC_IRQ(irq);
More information about the Skiboot
mailing list