So, I was thinking about this, and generally speaking I don't think waiting for things to drain instead of squashing everything and taking the interrupt immediately is going to work for x86. In an OS, you might see a sequence of instructions like "sti; cli;". What that does is turn on interrupts and then immediately turn them back off. It's used to provide a single spot for interrupts to happen, for instance if you're in a long loop where the work it's doing in an iteration isn't interruptable but it can take interrupts between iterations. The "sti" will happen, but before the interrupt can be taken, the "cli" will also happen and prevent it.
I don't think you really save much by having things drain either. Sure, you don't throw away those instructions, but you have to wait for them before you trigger the interrupt. The other way, you trigger the interrupt immediately and then wait for it to get through the pipe. It doesn't make much of a difference. Gabe _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
