[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/3] ide: don't loose pending dma state
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 1/3] ide: don't loose pending dma state |
Date: |
Wed, 23 Mar 2016 21:34:45 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 |
On 23/03/2016 11:26, Denis V. Lunev wrote:
> If the migration occurs after the IDE DMA has been set up but before it
> has been initiated, the state gets lost upon save/restore. Specifically,
> ->dma_cb callback gets cleared, so, when the guest eventually starts bus
> mastering, the DMA never completes, causing the guest to time out the
> operation.
>
> OTOH all the infrastructure is already in place to restart the DMA if
> the migration happens while the DMA is in progress.
>
> So reuse that infrastructure, by calling the DMA callback with an
> artificial error code in pre_save if the callback is already set but
> DMAING is clear. The callback then sets bus->error_status to indicate
> the need for restart; however since DMAING is clear the state upon
> restore will be exactly "ready forDMA" as before the save.
Could you just use the dma_cmd field to build the error_status?
For extra points, make ide_handle_rw_error convert IDE_DMA_* to
IDE_RETRY_* so that the callers only need to pass in IDE_RETRY_DMA (like
they only need to pass in IDE_RETRY_PIO).
Paolo
- [Qemu-devel] [PATCH for 2.6 0/3] ide: fix loss of the dma/atapi state during migration, Denis V. Lunev, 2016/03/23
- [Qemu-devel] [PATCH 3/3] ide: really restart pending and in-flight atapi dma, Denis V. Lunev, 2016/03/23
- [Qemu-devel] [PATCH 1/3] ide: don't loose pending dma state, Denis V. Lunev, 2016/03/23
- Re: [Qemu-devel] [PATCH 1/3] ide: don't loose pending dma state,
Paolo Bonzini <=
- Re: [Qemu-devel] [PATCH 1/3] ide: don't loose pending dma state, Pavel Butsykin, 2016/03/24
- Re: [Qemu-devel] [PATCH 1/3] ide: don't loose pending dma state, Paolo Bonzini, 2016/03/24
- Re: [Qemu-devel] [PATCH 1/3] ide: don't loose pending dma state, Pavel Butsykin, 2016/03/24
- Re: [Qemu-devel] [PATCH 1/3] ide: don't loose pending dma state, Paolo Bonzini, 2016/03/24
- Re: [Qemu-devel] [PATCH 1/3] ide: don't loose pending dma state, Pavel Butsykin, 2016/03/24
- Re: [Qemu-devel] [PATCH 1/3] ide: don't loose pending dma state, Paolo Bonzini, 2016/03/24
- Re: [Qemu-devel] [PATCH 1/3] ide: don't loose pending dma state, Pavel Butsykin, 2016/03/24
- Re: [Qemu-devel] [PATCH 1/3] ide: don't loose pending dma state, Eric Blake, 2016/03/24
- Re: [Qemu-devel] [PATCH 1/3] ide: don't loose pending dma state, Pavel Butsykin, 2016/03/24
Re: [Qemu-devel] [PATCH 1/3] ide: don't loose pending dma state, John Snow, 2016/03/30