From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47155) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1am07f-0006oM-Bq for qemu-devel@nongnu.org; Fri, 01 Apr 2016 10:32:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1am07c-0002G2-5o for qemu-devel@nongnu.org; Fri, 01 Apr 2016 10:32:27 -0400 Received: from mailhub.sw.ru ([195.214.232.25]:37941 helo=relay.sw.ru) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1am07b-0002FS-OC for qemu-devel@nongnu.org; Fri, 01 Apr 2016 10:32:24 -0400 From: "Denis V. Lunev" Date: Fri, 1 Apr 2016 17:32:07 +0300 Message-Id: <1459521130-3792-1-git-send-email-den@openvz.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v3 0/3] ide: fix loss of the dma/atapi state during migration List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: "Denis V. Lunev" , jsnow@redhat.com, rkagan@virtuozzo.com, Pavel Butsykin This patch set fixes bugs in the IDE DMA and the IDE ATAPI on operations = to save/restore the state. >>From the user point of view this results in IDE timeouts in the guest when the user reads from the DVD like the following: [424332.169229] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6= frozen [424332.170423] sr 0:0:0:0: [sr0] CDB: [424332.171234] Read(10): 28 00 00 00 02 e4 00 00 01 00 [424332.172418] ata1.00: cmd a0/01:00:00:00:08/00:00:00:00:00/a0 tag 0 dm= a 2048 in res 40/00:02:00:0c:00/00:00:00:00:00/a0 Emask 0x4 (timeout) [424332.174877] ata1.00: status: { DRDY } [424337.212099] ata1: link is slow to respond, please be patient (ready=3D= 0) [424342.220084] ata1: device not ready (errno=3D-16), forcing hardreset [424342.222700] ata1: soft resetting link [424342.381059] ata1.00: configured for MWDMA2 [424342.383693] ata1: EH complete Another similar nasty effects are possible. Signed-off-by: Pavel Butsykin Reviewed-by: Roman Kagan Signed-off-by: Denis V. Lunev CC: John Snow Changes from v1: - added converter of IDE_DMA_* to IDE_RETRY_* (1) - fixed handling of the IDE_RETRY_HBA at the ide_restart_bh function (3) Changes from v2: - fixed enumeration value =E2=80=98IDE_DMA_ATAPI=E2=80=99 not handled in = switch for macio.c (3) Pavel Butsykin (3): ide: don't lose pending dma state ide: restart atapi dma by re-evaluating command packet ide: really restart pending and in-flight atapi dma hw/ide/atapi.c | 28 ++++++++++++++-------------- hw/ide/core.c | 36 +++++++++++++----------------------- hw/ide/internal.h | 36 ++++++++++++++++++++++++++++++++++++ hw/ide/macio.c | 2 ++ hw/ide/pci.c | 4 ++++ 5 files changed, 69 insertions(+), 37 deletions(-) --=20 2.7.4