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

Reply via email to