From: "Yao, Jiewen" <jiewen.yao@intel.com>
To: "Ni, Ruiyu" <ruiyu.ni@intel.com>, Paolo Bonzini <pbonzini@redhat.com>
Cc: "Dong, Eric" <eric.dong@intel.com>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
edk2-devel-01 <edk2-devel@lists.01.org>,
"Dann Frazier" <dannf@ubuntu.com>,
Laszlo Ersek <lersek@redhat.com>,
"Zeng, Star" <star.zeng@intel.com>
Subject: Re: [PATCH] MdeModulePkg/AtaAtapiPassThru: disable only BM-DMA at ExitBootServices()
Date: Fri, 24 Nov 2017 01:40:18 +0000 [thread overview]
Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503AA2B77C@shsmsx102.ccr.corp.intel.com> (raw)
In-Reply-To: <892BF6B9-3CCC-45DB-8C72-E526130502BE@intel.com>
Maybe, can we revisit the original requirement on why we need disable BME at ExitBootService for OVMF?
I recall we have lots of discussion at September. It is good to refresh.
==============================
[edk2] [PATCH 0/4] MdeModulePkg: some PCI HC drivers: unmap common buffers at ExitBootServices()
https://lists.01.org/pipermail/edk2-devel/2017-September/014099.html
At ExitBootServices(), PCI and VirtIo drivers should only care about
aborting pending DMA on the devices. Cleaning up PciIo mappings (which
ultimately boil down to IOMMU mappings) for those aborted DMA operations
should be the job of the IOMMU driver.
==============================
I think the Driver Writer's Guide recommend to stop the transaction.
But it does not say you must turn off BME.
Clear BME is just one way to meet the recommendation.
Maybe we can figure out other way to halt the controller, or stop DMA transaction?
Such as stop timer event, set device reset/halt register, etc.
I think USB has already done that.
On the other hand, I do not think "OVMF does not support S4" is a good justification to add PCD.
Yes, it does not support at this moment. But who knows the status after 3 or 5 years?
I also heard some VMM do support S4 resume Guest.
I also recommend to rollback all BME operation at EBS as first step, then go back to see what is best way to
resolve DMA operation concern without breaking the OS, and meet DWG requirement at same time.
Thank you
Yao Jiewen
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Ni,
> Ruiyu
> Sent: Friday, November 24, 2017 9:04 AM
> To: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Dong, Eric <eric.dong@intel.com>; Ard Biesheuvel
> <ard.biesheuvel@linaro.org>; edk2-devel-01 <edk2-devel@lists.01.org>; Dann
> Frazier <dannf@ubuntu.com>; Laszlo Ersek <lersek@redhat.com>; Zeng, Star
> <star.zeng@intel.com>
> Subject: Re: [edk2] [PATCH] MdeModulePkg/AtaAtapiPassThru: disable only
> BM-DMA at ExitBootServices()
>
> Maybe win10 does some optimization in S4 path.
>
> Sent from a small-screen device
>
> 在 2017年11月24日,上午8:01,Paolo Bonzini
> <pbonzini@redhat.com<mailto:pbonzini@redhat.com>> 写道:
>
> On 23/11/2017 14:08, Laszlo Ersek wrote:
> On 11/23/17 03:20, Ni, Ruiyu wrote:
> I cannot explain precisely why the S4 resume fails.
> I can just guess: Windows might have some assumptions on the BM bit.
> Can we make this configurable on the platform level somehow?
>
> On one hand, I certainly don't want to break Windows 10, even in case
> this issue ultimately turns out to be a Windows 10 bug.
>
> On the other hand, OVMF does not support S4, and disabling BMDMA at
> ExitBootServices() in PCI drivers is specifically what the Driver
> Writers' Guide recommends. Otherwise pending DMA could corrupt OS memory.
>
> S4 can be done by the OS even if firmware says it doesn't support it.
>
> Once hibernation is done, it is merely a "courtesy" for the OSPM to turn
> off the computer using the _S4 ACPI object rather than _S5.
>
> Paolo
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
next prev parent reply other threads:[~2017-11-24 1:36 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-26 15:48 [PATCH] MdeModulePkg/AtaAtapiPassThru: disable only BM-DMA at ExitBootServices() Laszlo Ersek
2017-10-26 19:56 ` dann frazier
2017-10-27 3:23 ` Zeng, Star
2017-10-27 12:25 ` Laszlo Ersek
2017-10-27 14:57 ` Aleksei
2017-10-27 16:09 ` Laszlo Ersek
2017-11-22 10:05 ` Ni, Ruiyu
2017-11-22 10:26 ` Zeng, Star
2017-11-23 2:20 ` Ni, Ruiyu
2017-11-23 13:08 ` Laszlo Ersek
2017-11-23 14:58 ` Ni, Ruiyu
2017-11-23 17:19 ` Laszlo Ersek
2017-11-23 23:06 ` Ni, Ruiyu
2017-11-24 0:01 ` Paolo Bonzini
2017-11-24 1:04 ` Ni, Ruiyu
2017-11-24 1:40 ` Yao, Jiewen [this message]
2017-11-27 12:29 ` Laszlo Ersek
2017-11-27 12:58 ` Zeng, Star
2017-11-27 13:41 ` Yao, Jiewen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=74D8A39837DF1E4DA445A8C0B3885C503AA2B77C@shsmsx102.ccr.corp.intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox