optimize irq checking