Hey everybody. I'm currently waiting on x86 to boot under gdb where I'm occasionally stepping in to see what it's doing. It's spinning furiously in a tight, three instruction loop while it calibrates the local APIC timer. These instructions are:

pause
cmpl   $0x19,0x2860b(%rip)        # 0xffffffff80903438
jle    0xffffffff808dae24 <setup_boot_APIC_clock+142>


The second instruction checks to see if the loop can exit and the third is the jump back to the top. The first instruction, "pause", is supposed to make the CPU hang out briefly where "briefly" is a small, possibly zero, delay. For us, this could make M5 boot X86 faster because it means fewer instructions would be executed waiting for timer interrupts and in other delay loops.

I think the quiescCycles pseudo op function would make implementing this behavior pretty easy, but then the question is how many cycles to wait. Does anyone have an informed (but not too informed) opinion about what an appropriate number of cycles would be?

Gabe
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to