On 25 October 2017 at 16:26, Laszlo Ersek <[email protected]> wrote: > Hi Star, Eric, > > On 09/08/17 00:41, Laszlo Ersek wrote: >> The AtaAtapiPassThru driver maps three system memory regions for Bus >> Master Common Buffer operation on the following call path, if the >> controller has PCI_CLASS_MASS_STORAGE_SATADPA class code: >> >> AtaAtapiPassThruStart() >> EnumerateAttachedDevice() >> AhciModeInitialization() >> AhciCreateTransferDescriptor() >> >> The device is disabled (including Bus Master DMA) when the controller is >> unbound, in AtaAtapiPassThruStop(). Then the regions are unmapped. >> >> The former step should also be done when we exit the boot services, and >> the OS gains ownership of system memory. >> >> Cc: Ard Biesheuvel <[email protected]> >> Cc: Brijesh Singh <[email protected]> >> Cc: Eric Dong <[email protected]> >> Cc: Jiewen Yao <[email protected]> >> Cc: Star Zeng <[email protected]> >> Contributed-under: TianoCore Contribution Agreement 1.1 >> Signed-off-by: Laszlo Ersek <[email protected]> >> --- >> MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.h | 6 ++ >> MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.c | 59 >> +++++++++++++++++++- >> 2 files changed, 64 insertions(+), 1 deletion(-) > > this patch -- that is, commit 6fb8ddd36bde > ("MdeModulePkg/AtaAtapiPassThru: disable the device at > ExitBootServices()", 2017-09-03) -- has caused a performance regression > in OVMF, in booting Windows installer ISOs from emulated IDE CD-ROMs. > > Interestingly, the performance regression only affects the "traditional" > IDE controller of the "pc" (i440fx) machine type of QEMU; it does not > affect the AHCI/SATA controller of the "q35" machine type.
Does it make any difference if you only disable memory decoding and bus mastering, but leave I/O port decoding enabled? _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

