[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-discuss] ppc and icount
From: |
Steven Seeger |
Subject: |
Re: [Qemu-discuss] ppc and icount |
Date: |
Wed, 10 Jan 2018 11:27:32 -0500 |
I removed the commit that caused the icount related error and continued to
run. What I'm observing is that I have modified the serial.c file to have a
timer to set a delay between transmit of characters. VxWorks has always had
(and they will not fix) a bug in their 16550 uart code where if the uart is
impossilby fast (as qemu's serial.c is) on TX, then the ISR will "hang"
because it transmits at most 11 characters at a time and then waits for an
interrupt (which won't come.)
The timer between each character should be approx 87 microseconds. (115200
baud)
When I have icount on, I see one character sent every 40 ms of
QEMU_CLOCK_VIRTUAL time. This is why it's so slow. If I change to
QEMU_CLOCK_VIRTUAL_RT then it runs "fast."
My goal is to have the device model world not influence the number of CPU
instructions. I want the virtual clock to slow down if the device model world
takes up too much time. For example, if at each character transmit in serial.c
I have a sleep(1); call I want the virtual clock to increase slowly with
number of instructions executed.
It seems to me that something is keeping me from having decent fideilty with
timers in icount mode. (shift=auto) Is there something I should be looking at
for this? Once the initial flood of uart interrupts (the only interrupt)
passes, more hardware is initialized (more timers) and I get better fidelity
of timers (including future uart messages.)
Any advice would be appreciated. Thanks.
Steven