On 26 October 2017 at 15:09, Laszlo Ersek <ler...@redhat.com> wrote: > Ard, Star, > > (CC Igor) > > On 10/26/17 07:08, Zeng, Star wrote: >> Good point. >> >> Could we find out what change causes the performance regression? Bus Master >> disable / Memory Space disable / IO Space disable? >> How about to only disable Bus Master in the exit boot service event >> notification? It seems the key point suggested by UEFI >> Driver_Writer_Guide_V1.0.1_120308.pdf. >> >> 7.7 >> Examples from the EDK II that use this feature are the PCI device drivers >> for USB Host >> Controllers. Some USB Host Controllers are PCI Bus Masters that continuously >> access a >> memory buffer to poll for operation requests. Access to this memory buffer >> by a USB >> Host Controller may be required to boot an operation system, but this >> activity must be >> terminated when the OS calls ExitBootServices(). *The typical action in the >> Exit Boot >> Services Event for these types of drivers is to disable the PCI bus master* >> and place the >> USB Host Controller into a halted state > > thank you for the ideas. > > * Disabling only EFI_PCI_IO_ATTRIBUTE_BUS_MASTER at EBS mitigates the > symptom. > > * Disabling (EFI_PCI_IO_ATTRIBUTE_BUS_MASTER | EFI_PCI_IO_ATTRIBUTE_IO) > at EBS preserves the symptom. > > * Disabling > (EFI_PCI_IO_ATTRIBUTE_BUS_MASTER | EFI_PCI_IO_ATTRIBUTE_MEMORY) at EBS > also mitigates the symptom. >
Excellent! > So it is as Ard suspected, disabling IO port decoding is what tickles > the bug in Windows. > > (Now I'm vaguely recalling an earlier discussion from qemu-devel that > Windows has a bug in that, if any given PCI device is disabled at boot, > then Windows will not load drivers for it, or some such. I'm struggling > to recall the context; maybe it was related to ACPI generation in QEMU. > I'm CC'ing Igor; maybe he remembers better.) > > I will post a patch, for disabling EFI_PCI_IO_ATTRIBUTE_BUS_MASTER only. > First, that's going to follow the driver writers' guide verbatim; > second, disabling BMDMA and MMIO, but not IO, would look weird in the > code. :/ > > Thank you both for the help! Anytime. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel