On 03.07.2013 12:20, Nilay Vaish wrote:
> On Wed, 3 Jul 2013, Andreas Sandberg wrote: > >> On 07/03/2013 01:01 AM, Ali Saidi wrote: >> >>> On 02.07.2013 17:45, Nilay Vaish wrote: >>> >>>> On Fri, 28 Jun 2013, >>> Andreas Sandberg wrote: >>> >>>>> You're right about the uPC not being used in that case. However, still think that it is a bad idea to allow a drained system to be in a microcode sequence. My main concern is that this will lead to subtle and hard to find bugs related to CPU switching and it'll make the draining code harder to understand. Adding a halt+eret would microop would solve the issue in a cleaner way in my opinion. >>>> Though I have not tested this patch with other ISAs, but I am guessing similar issue can arise with them. Therefore, it would be better if we fix the cpu model. >>> Does stopping in the middle prevent the virtualization code from working? >> Yes. In order for virtualization to work, we need ensure that we never stop in microcode. If the CPU is in the middle of a microcode sequence at a switch, we won't know where to restart and restarting the current instruction is likely to break (half of the side-effects might have executed and corrupted the state needed to restart the instruction). > > I think we agreed that if the cpu moves to the idle state in the middle of > an instruction, then its fine. I'm pretty sure that still doesn't work. If you try to hand over execute to a virtualized CPU and you're in the middle of an instruction it doesn't seem possibly for it to work. Ali _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
