[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 00/10] AHCI emulation support
From: |
Alexander Graf |
Subject: |
[Qemu-devel] [PATCH 00/10] AHCI emulation support |
Date: |
Wed, 17 Nov 2010 02:05:26 +0100 |
This patch adds support for AHCI emulation. I have tested and verified it works
in Linux, OpenBSD, Windows Vista and Windows 7. This AHCI emulation supports
NCQ, so multiple read or write requests can be outstanding at the same time.
The code is however not fully optimized yet. I'm fairly sure that there are
low hanging performance fruits to be found still :). In my simple benchmarks
I achieved about 2/3rd of virtio performance.
Also, this AHCI emulation layer does not support legacy mode. So if you're
using a disk with this emulation, you do not get it exposed using the legacy
IDE interfaces.
To attach an AHCI disk to your VM, please use
-drive file=...,if=sata
This should do the trick for x86. On other platforms, you might need to add
the ahci host controller using -device.
This patch set is based on work done during the Google Summer of Code. I was
mentoring a student, Roland Elek, who wrote most of the AHCI emulation code
based on a patch from Chong Qiao. A bunch of other people were also involved,
so everybody who I didn't mention - thanks a lot!
Alex
Alexander Graf (8):
ide: split ide command interpretation off
ide: fix whitespace gap in ide_exec_cmd
ide: enable preallocated sg lists
pci: add storage class for sata
pci: add ich7 pci id
ahci: add ahci emulation
ahci: add -drive support
ahci: spawn controller on demand
Roland Elek (2):
ide: add support for ide extenders
ide: add ncq identify data for ahci sata drives
Makefile.objs | 1 +
Makefile.target | 4 +
blockdev.c | 6 +-
blockdev.h | 1 +
default-configs/i386-softmmu.mak | 1 +
default-configs/x86_64-softmmu.mak | 1 +
hw/ahci.c | 1171 ++++++++++++++++++++++++++++++++++++
hw/ide/core.c | 827 ++++++++++++++------------
hw/ide/internal.h | 31 +-
hw/pc.c | 5 +
hw/pci.h | 1 +
hw/pci_ids.h | 1 +
qemu-common.h | 2 +-
13 files changed, 1665 insertions(+), 387 deletions(-)
create mode 100644 hw/ahci.c
- [Qemu-devel] [PATCH 00/10] AHCI emulation support,
Alexander Graf <=
- [Qemu-devel] [PATCH 10/10] ahci: spawn controller on demand, Alexander Graf, 2010/11/16
- [Qemu-devel] [PATCH 07/10] pci: add ich7 pci id, Alexander Graf, 2010/11/16
- [Qemu-devel] [PATCH 05/10] ide: add ncq identify data for ahci sata drives, Alexander Graf, 2010/11/16
- [Qemu-devel] [PATCH 06/10] pci: add storage class for sata, Alexander Graf, 2010/11/16
- [Qemu-devel] [PATCH 01/10] ide: split ide command interpretation off, Alexander Graf, 2010/11/16
- [Qemu-devel] [PATCH 04/10] ide: enable preallocated sg lists, Alexander Graf, 2010/11/16
- [Qemu-devel] [PATCH 03/10] ide: add support for ide extenders, Alexander Graf, 2010/11/16