softirq implementation