[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH 2/2/][RFT] Make DMA bottom-half driven (v2)
From: |
Edgar E. Iglesias |
Subject: |
[Qemu-devel] Re: [PATCH 2/2/][RFT] Make DMA bottom-half driven (v2) |
Date: |
Fri, 24 Oct 2008 22:20:40 +0200 |
User-agent: |
Mutt/1.5.16 (2007-06-09) |
On Fri, Oct 24, 2008 at 02:15:40PM -0500, Anthony Liguori wrote:
> The current DMA routines are driven by a call in main_loop_wait() after every
> select.
>
> This patch converts the DMA code to be driven by a constantly rescheduled
> bottom half. The advantage of using a scheduled bottom half is that we can
> stop scheduling the bottom half when there no DMA channels are runnable. This
> means we can potentially detect this case and sleep longer in the main loop.
>
> The only two architectures implementing DMA_run() are cris and i386. For
> cris,
> I converted it to a simple repeating bottom half. I've only compile tested
> this as cris does not seem to work on a 64-bit host. It should be
> functionally
> identical to the previous implementation so I expect it to work.
Hello,
Thanks for the update. This version works much better for CRIS/ETRAX.
The code looks good as far as I can tell.
>
> For x86, I've made sure to only fire the DMA bottom half if there is a DMA
> channel that is runnable. The effect of this is that unless you're using sb16
> or a floppy disk, the DMA bottom half never fires.
>
> You probably should test this malc. My own benchmarks actually show slight
> improvement by it's possible the change in timing could affect your demos.
>
> Since v1, I've changed the code to use a BH instead of a timer. cris at least
> seems to depend on faster than 10ms polling.
>
> Signed-off-by: Anthony Liguori <address@hidden>
Acked-by: Edgar E. Iglesias <address@hidden>