From: Jordan Justen <jordan.l.justen@intel.com>
To: "Gao, Liming" <liming.gao@intel.com>,
Brijesh Singh <brijesh.ksingh@gmail.com>,
Laszlo Ersek <lersek@redhat.com>,
edk2-devel@lists.01.org, "Kinney,
Michael D" <michael.d.kinney@intel.com>,
Cc: Thomas.Lendacky@amd.com, leo.duran@amd.com, brijesh.sing@amd.com
Subject: Re: [RFC PATCH v1 4/5] OvmfPkg/BaseIoLibIntrinsic: import BaseIoLibIntrinsic package
Date: Tue, 07 Mar 2017 12:06:28 -0800 [thread overview]
Message-ID: <148891718851.27104.2018366977522352345@jljusten-skl> (raw)
In-Reply-To: <2c6593dd-12f5-9277-0c36-ffd2d6c2cc55@redhat.com>
On 2017-03-07 09:20:14, Laszlo Ersek wrote:
> On 03/07/17 00:27, Brijesh Singh wrote:
> > Imports IoLib into OvmfPkg to make the changes to support SEV guest.
>
> Ugh, this looks terrible.
>
> $ wc -l $(git ls-files MdePkg/Library/BaseIoLibIntrinsic/)
> 82 MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
> 24 MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.uni
> 26 MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicInternal.h
> 141 MdePkg/Library/BaseIoLibIntrinsic/Ia32/IoFifo.asm
> 137 MdePkg/Library/BaseIoLibIntrinsic/Ia32/IoFifo.nasm
> 2356 MdePkg/Library/BaseIoLibIntrinsic/IoHighLevel.c
> 317 MdePkg/Library/BaseIoLibIntrinsic/IoLib.c
> 599 MdePkg/Library/BaseIoLibIntrinsic/IoLibArm.c
> 342 MdePkg/Library/BaseIoLibIntrinsic/IoLibEbc.c
> 196 MdePkg/Library/BaseIoLibIntrinsic/IoLibGcc.c
> 214 MdePkg/Library/BaseIoLibIntrinsic/IoLibIcc.c
> 736 MdePkg/Library/BaseIoLibIntrinsic/IoLibIpf.c
> 411 MdePkg/Library/BaseIoLibIntrinsic/IoLibMmioBuffer.c
> 228 MdePkg/Library/BaseIoLibIntrinsic/IoLibMsc.c
> 127 MdePkg/Library/BaseIoLibIntrinsic/X64/IoFifo.asm
> 126 MdePkg/Library/BaseIoLibIntrinsic/X64/IoFifo.nasm
> 6062 total
>
> Jordan, Liming, if I recall correctly, you guys were leading the
> IoFifoLib discussion a few weeks back. At that time, I would have
> preferred to add those functions to a separate IoFifoLib class (like
> Brijesh originally suggested), but seeing the consensus on adding the
> Fifo primitives to IoLib instead, I didn't speak up.
>
> So now that the Fifo primitives have to be customized (unrolled), and
> the selection should be made dynamically (at runtime), what do you guys
> suggest for the implementation, without importing six thousand lines
> into OvmfPkg?
>
> I think this patch should be dropped, and the next patch (#5) should be
> applied straight to MdePkg. SEV detection happens via the CPUID
> instruction, and it is specified by a public industry standard, so
> adding the code to MdePkg looks appropriate to me.
Yeah, I agree. (Not sure if Liming and Mike agree though. :)
Additionally, it would be nice to have a spec citation for the "Public
Industry Standard" in the commit message.
> If even the CPUID check should be omitted in the default case, then we
> should use a new FeaturePCD.
Apparently we don't mind terribly about adding a cpuid call straight
into the normal flow of commonly used functions
(881813d7a93d9009c873515b043c41c4554779e4). :)
I would say that I don't quite agree with that. And, further, it could
be that once per I/O operation has more of a perf impact than once per
flush. Do we know that cpuid time is so far down in the noise compared
to I/O that it won't matter?
One other thought is, should we consider a DxeSmm alternative .inf for
BaseIoLibIntrinsic.inf? In that case we could use a global variable to
help out. Maybe this could prevent the concern that might drive a new
PCD to be added?
-Jordan
next prev parent reply other threads:[~2017-03-07 20:06 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-06 23:27 [RFC PATCH v1 0/5] x86: Secure Encrypted Virtualization (AMD) Brijesh Singh
2017-03-06 23:27 ` [RFC PATCH v1 1/5] OvmfPkg/ResetVector: Set memory encryption when SEV is active Brijesh Singh
[not found] ` <3ec1cf2d-952d-97fa-108d-a6c70e613277@amd.com>
2017-03-07 16:34 ` Brijesh Singh
2017-03-07 16:35 ` Laszlo Ersek
2017-03-08 18:38 ` Jordan Justen
2017-03-08 18:42 ` Brijesh Singh
2017-03-06 23:27 ` [RFC PATCH v1 2/5] OvmfPkg/MemcryptSevLib: Add SEV helper library Brijesh Singh
2017-03-07 17:06 ` Laszlo Ersek
2017-03-07 19:14 ` Brijesh Singh
2017-03-07 22:08 ` Laszlo Ersek
2017-03-07 22:36 ` Brijesh Singh
2017-03-08 8:40 ` Laszlo Ersek
2017-03-17 2:02 ` Brijesh Singh
2017-03-17 10:29 ` Laszlo Ersek
2017-03-17 14:08 ` Brijesh Singh
2017-03-08 14:56 ` Duran, Leo
2017-03-08 15:19 ` Laszlo Ersek
2017-03-06 23:27 ` [RFC PATCH v1 3/5] OvmfPkg/PlatformPei: Initialize SEV support Brijesh Singh
2017-03-07 17:08 ` Laszlo Ersek
2017-03-07 19:17 ` Brijesh Singh
2017-03-06 23:27 ` [RFC PATCH v1 4/5] OvmfPkg/BaseIoLibIntrinsic: import BaseIoLibIntrinsic package Brijesh Singh
2017-03-07 17:20 ` Laszlo Ersek
2017-03-07 20:06 ` Jordan Justen [this message]
2017-03-07 22:18 ` Laszlo Ersek
2017-03-08 15:41 ` Gao, Liming
2017-03-08 16:26 ` Brijesh Singh
2017-03-09 1:43 ` Gao, Liming
2017-03-08 18:58 ` Jordan Justen
2017-03-09 1:48 ` Gao, Liming
2017-03-09 15:36 ` Duran, Leo
2017-03-09 16:36 ` Laszlo Ersek
2017-03-06 23:28 ` [RFC PATCH v1 5/5] OvmfPkg/BaseIoLibIntrinsic: Unroll String I/O when SEV is active Brijesh Singh
[not found] ` <5a66f334-27e1-3b49-150e-c01209ecb2f6@amd.com>
2017-03-07 18:43 ` Brijesh Singh
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=148891718851.27104.2018366977522352345@jljusten-skl \
--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