There are probably three main patches that could help.  The fact you
mention the timer interrupt makes me think Andreas is right and these might
solve your issue.

1. http://reviews.gem5.org/r/2363/  - o3 is supposed to stop fetching
instructions immediately once a quiesce instruction is encountered, some
managed to sneak by.  Quiesce is used for things like sleeping until an
interrupt occurs, etc.  Without this patch, we experienced the case where
o3 state would get corrupted and an instruction would sit at commit until
the next timer interrupt happened.  At which point taking the interrupt
would clear the state and execution would continue (until this same bug
happened again).

2. http://reviews.gem5.org/r/2367/  - If o3 was being drained while an
interrupt occurred on x86, it could deadlock.

3. I believe this last patch will be posted in a day or two.  x86 currently
does not tag any instruction that suspends() the CPU as a "quiesce".  This
is required by o3 to properly operate, but not by the Atomic CPU.  This
makes the issue in #1 far more likely to occur.  It's pretty amazing that
x86 booted linux at all on o3 without this.  I believe this patch will be
posted shortly, but otherwise you could just tag the "MicroHalt"
instruction as "IsQuiesce" yourself.

So a combination of those things (mainly the last one) could lead to what
you are seeing.


On Wed, Aug 27, 2014 at 12:59 PM, Zi Yan via gem5-users <gem5-users@gem5.org
> wrote:

> OK. Could you please tell me which patches are there? In the
> review board there are quite a lot of new patches waiting
> for review.
>
> I can apply those patches myself and do a quick test.
>
> Thanks.
>
> --
> Best Regards
> Yan Zi
>
> On 27 Aug 2014, at 13:56, Andreas Hansson wrote:
>
> > Hi Yan,
> >
> > I would suspect this is due to a bug in the X86 O3 CPU. There have been
> > quite a few fixes posted on the review board for similar issues. I hope
> to
> > have these committed in the next week or so.
> >
> > Andreas
> >
> >
> > On 27/08/2014 18:02, "Zi Yan via gem5-users" <gem5-users@gem5.org>
> wrote:
> >
> >> Hi all,
> >>
> >> I am running kmeans via hadoop in gem5 X86 FS mode. I am using
> >> linux kernel 3.2.60 with configuration file linux-2.6.28.4 from
> >> gem5.org.
> >>
> >> I take a checkpoint before a map task and put a "m5 exit" after the map
> >> task.
> >> I am using *X86kvmCPU* to take checkpoints.
> >>
> >> When I restore from the same checkpoint, atomic CPU and O3 CPU give me
> >> quite different executed instructions:
> >> 1) atomic CPU executes about 350 million instructions, reaches "m5
> exit",
> >> then stops simulation.
> >> 2) O3 CPU executes more than 12 billion instructions, and still not
> >> reaches
> >> "m5 exit" to stop the simulation.
> >>
> >> I dump out committed PCs from atomic CPU and O3 CPU, finding out that
> >> after about 500,000 instructions, the systems behave differently,
> >> where atomic CPU is still executing user code, but O3 CPU switch to
> >> apic_timer_interrupt(a kernel function, it also appears in atomic CPU
> >> execution, but somewhere else).
> >>
> >> Could anyone please give some advice about why this happen?
> >>
> >> Thanks.
> >>
> >> --
> >> Best Regards
> >> Yan Zi
> >
> >
> > -- IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose the
> contents to any other person, use it for any purpose, or store or copy the
> information in any medium.  Thank you.
> >
> > ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ,
> Registered in England & Wales, Company No:  2557590
> > ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1
> 9NJ, Registered in England & Wales, Company No:  2548782
>
> _______________________________________________
> gem5-users mailing list
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to