[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] ppc icount questions
From: |
Steven Seeger |
Subject: |
Re: [Qemu-devel] ppc icount questions |
Date: |
Fri, 12 Jan 2018 13:35:47 -0500 |
> I think this is the issue:
>
> I/O thread vCPU thread
> -----------------------------------------------------------------------
> executes 1,000,000,000-th instruction
> wakes up I/O thread
> finds 1st timer
> runs 1st timer
> executes 1,000 instructions
> ----------- QEMU_CLOCK_VIRTUAL now is 1,000,001,000 --------------------
> 1st timer finishes
> executes 10,000 instructions
> ----------- QEMU_CLOCK_VIRTUAL now is 1,000,011,000 --------------------
> runs 2nd timer
I would agree this is the issue. I was thinking that the timer ran in the same
thread as the CPU (thus preventing the two from running at the same time) but
I guess this is not true. There must be some sync point, because taking too
long to finish the timer makes things stall (or that may just be due to
causing a delay in delivery of the next interrupt.)
So I guess what I am looking for is a way to ensure the two run mutually
exclusive of each other. I know from other systems that we can run all this in
a single thread (hardware models and guest CPU) so it should be possible to do
in QEMU as well.
Steven