qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 00/10] AHCI emulation support v2


From: Alexander Graf
Subject: [Qemu-devel] [PATCH 00/10] AHCI emulation support v2
Date: Thu, 18 Nov 2010 04:27:45 +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.

Another nitpick is CD-ROM support in Windows. Somehow it doesn't detect a
CD-ROM drive attached to AHCI. At least it doesn't list it.

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!

v1 -> v2:

  - rename IDEExtender to IDEBusOps and make a pointer (kraxel)
  - make dma hooks explicit by putting them into ops struct (stefanha)
  - use qdev buses (kraxel)
  - minor cleanups
  - dprintf overhaul
  - add reset function


Alex

Alexander Graf (8):
  ide: split ide command interpretation off
  ide: fix whitespace gap in ide_exec_cmd
  ide: add DMA hooks to bus ops
  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 bus ops
  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                          | 1280 ++++++++++++++++++++++++++++++++++++
 hw/ide/core.c                      |  800 ++++++++++++-----------
 hw/ide/internal.h                  |   34 +-
 hw/pc.c                            |    5 +
 hw/pci.h                           |    1 +
 hw/pci_ids.h                       |    1 +
 qemu-common.h                      |    2 +-
 13 files changed, 1754 insertions(+), 383 deletions(-)
 create mode 100644 hw/ahci.c




reply via email to

[Prev in Thread] Current Thread [Next in Thread]