1. A method for distributing interrupt load to processors in a multiprocessor system, the method comprising: executing a current transaction with first processor; receiving an interrupt request during the execution of the current transaction; estimating a first transaction completion time for a current transaction; and re-directing the interrupt request to a second processor.