add ipi queue

1. use percpu IPI queue to handle IPI request
2. fix a problem when compiled with -O2