public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Laszlo Ersek" <lersek@redhat.com>
To: Jordan Justen <jordan.l.justen@intel.com>,
	Anthony PERARD <anthony.perard@citrix.com>,
	devel@edk2.groups.io
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	Julien Grall <julien.grall@arm.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [edk2-devel] [PATCH v2 02/31] OvmfPkg: Create platform XenOvmf
Date: Thu, 11 Apr 2019 09:34:02 +0200	[thread overview]
Message-ID: <f3a359fa-df25-c1d0-95eb-5065ec134c29@redhat.com> (raw)
In-Reply-To: <155492143006.23894.8253130602441997952@jljusten-skl>

On 04/10/19 20:37, Jordan Justen wrote:
> On 2019-04-10 07:27:15, Laszlo Ersek wrote:
>> On 04/10/19 11:48, Jordan Justen wrote:
>>> On 2019-04-09 04:08:15, Anthony PERARD wrote:
>>>> This is a copy of OvmfX64, removing VirtIO and some SMM.
>>>>
>>>> This new platform will be changed to make it works on two types of Xen
>>>> guest: HVM and PVH.
>>>>
>>>> Compare to OvmfX64, this patch:
>>>>
>>>> - changed: PLATFORM_GUID, OUTPUT_DIRECTORY, FLASH_DEFINITION
>>>> - removed: VirtioLib class resolution
>>>> - removed: all UEFI_DRIVER modules for virtio devices
>>>> - removed: DXE_SMM_DRIVER and SMM_CORE lib class resolutions
>>>> - removed: DXE_SMM_DRIVER and SMM_CORE FDF rules
>>>> - removed: Everything related to SMM_REQUIRE==true
>>>> - removed: Everything related to SECURE_BOOT_ENABLE==true
>>>> - removed: Everything related to TPM2_ENABLE==true
>>>> - changed: PcdPciDisableBusEnumeration dynamic default flipped to TRUE
>>>> - changed: default FD_SIZE_IN_KB to 2M.
>>>>
>>>> Contributed-under: TianoCore Contribution Agreement 1.1
>>>> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
>>>> ---
>>>>  OvmfPkg/{OvmfPkgX64.dsc => XenOvmf.dsc}     | 202 +-------------------
>>>
>>> I guess we all want our name to be first :), but OvmfXen seems more
>>> like the pattern that edk2 uses when making sub-platforms.
> 
> For example: ArmVirtPkg/ArmVirtXen.dsc

Right, we all agree on this.

> 
>>>
>>> Also, in some cases we've used !ifdef type things to keep dsc and fdf
>>> files common. Would that not be workable here? Maybe it would get too
>>> ugly. :\
>>
>> I've been happy with a similar Xen<->QEMU split under ArmVirtPkg.
>> Duplications in updates are usually not a huge burden, and keeping the
>> files separate has proved very helpful for determining
>> maintainer/reviewer/tester responsibility.
>>
>>> It could help to prevent having to sync dsc changes across, and
>>> prevent changes from being omitted for Xen on accident.
>>
>> True, but in my experience that's been the smaller problem. The larger
>> problem has been modifying Xen stuff in unintended ways (= regressing
>> Xen), because we can't test (or don't even notice) the Xen-side
>> implications of changes made to common source.
> 
> Does that mean you avoid changing ArmVirtXen.dsc entirely, or you try
> to update it when it seems likely to not cause trouble? I could see
> unintended breakage either way.

Under ArmVirtPkg, we have three platforms: ArmVirtQemu,
ArmVirtQemuKernel, and ArmVirtXen. All of these have separate DSC files.
All include ArmVirt.dsc.inc.

In addition, all three have FDF files, but ArmVirtQemu and
ArmVirtQemuKernel share (include) ArmVirtQemuFvMain.fdf.inc.

ArmVirtQemu and ArmVirtQemuKernel differ in that the latter is supposed
to be launched with "-kernel" on QEMU, not via pflash.

I primarily care about ArmVirtQemu. I always start modifications there.
Then I evaluate whether the change makes sense for ArmVirtQemuKernel,
and rely on Ard to confirm that. ArmVirtXen is the last thought for me,
and I try to make a "best effort" to figure out the impact.

When I'm stongly in doubt re: Xen, I avoid modifying ArmVirtXen. When I
sort of suspect that modifying Xen is valid/necessary, then I (a) either
modify ArmVirtXen explicitly, or (b) modify ArmVirt.dsc.inc *AND* talk
about Xen explicitly in the commit message, and/or the cover letter.

Case (b) is quite rare. When it happens, it usually follows immediately
(a) -- I might change ArmVirtXen, and then realize something is now
shared between Xen and QEMU. It's then a separate decision whether I
actually want to merge that thing into ArmVirt.dsc.inc -- sometimes
that's not the best decision (exactly because it increases shared review
responsibility for the future).

In both case (a) and (b), I CC the Xen reviewers. The point is that
"Xen" is mentioned somewhere explicitly (diffstat or commit message).
This lets us decide more clearly whether Xen reviewers should
participate -- when they don't have to, that saves us all time, and so
when they *do* need to, their responsibility is both big and clear.

If, for QEMU feature development or bugfixing, we kept modifying files
that were by default processed in Xen builds too, then Xen people would
be bombarded with review requests they'd rather ignore. Their attention
would wane and they'd miss (or greatly delay) the reviews when they
should indeed follow up (and hopefully quickly).

It's not a 100% "scientific" workflow, and you are right that both
approaches can cause issues by omission. In my experience the split
tends to be safer (and easier on human resources), in practice.

> Anyway, it sounds like it's generally working out okay with
> ArmVirtXen, so it seems okay to follow that under OvmfPkg.

Thanks!
Laszlo

> 
> -Jordan
> 


  reply	other threads:[~2019-04-11  7:34 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-09 11:08 [PATCH v2 00/31] Specific platform to run OVMF in Xen PVH and HVM guests Anthony PERARD
2019-04-09 11:08 ` [PATCH v2 01/31] OvmfPkg/ResetSystemLib: Add missing dependency on PciLib Anthony PERARD
2019-04-10  8:48   ` [edk2-devel] " Laszlo Ersek
2019-04-10  9:16     ` Jordan Justen
2019-04-09 11:08 ` [PATCH v2 02/31] OvmfPkg: Create platform XenOvmf Anthony PERARD
2019-04-10  9:32   ` [edk2-devel] " Laszlo Ersek
2019-04-15 10:53     ` Anthony PERARD
2019-04-10  9:48   ` Jordan Justen
2019-04-10 14:27     ` Laszlo Ersek
2019-04-10 16:27       ` Ard Biesheuvel
2019-04-10 18:37       ` Jordan Justen
2019-04-11  7:34         ` Laszlo Ersek [this message]
2019-04-09 11:08 ` [PATCH v2 03/31] OvmfPkg: Introduce XenResetVector Anthony PERARD
2019-04-10  9:46   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 04/31] OvmfPkg: Introduce XenPlatformPei Anthony PERARD
2019-04-10 10:37   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 05/31] OvmfPkg/XenOvmf: Creating an ELF header Anthony PERARD
2019-04-11 10:43   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 06/31] OvmfPkg/XenResetVector: Add new entry point for Xen PVH Anthony PERARD
2019-04-11 10:49   ` [edk2-devel] " Laszlo Ersek
2019-04-11 12:52   ` [Xen-devel] " Andrew Cooper
2019-04-15 11:25     ` Anthony PERARD
2019-04-15 13:28       ` Andrew Cooper
2019-04-09 11:08 ` [PATCH v2 07/31] OvmfPkg/XenResetVector: Saving start of day pointer for PVH guests Anthony PERARD
2019-04-11 11:09   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 08/31] OvmfPkg/XenResetVector: Allow to jumpstart from either hvmloader or PVH Anthony PERARD
2019-04-11 11:19   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 09/31] OvmfPkg/XenOvmf: use a TimerLib instance that depends only on the CPU Anthony PERARD
2019-04-11 11:25   ` [edk2-devel] " Laszlo Ersek
2019-04-11 11:33     ` Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 10/31] OvmfPkg/XenPlatformPei: Detect OVMF_INFO from hvmloader Anthony PERARD
2019-04-11 11:47   ` [edk2-devel] " Laszlo Ersek
2019-04-11 11:47     ` Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 11/31] OvmfPkg/XenPlatformPei: Use mXenHvmloaderInfo to get E820 Anthony PERARD
2019-04-11 11:49   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 12/31] OvmfPkg/XenPlatformPei: Grab RSDP from PVH guest start of day struct Anthony PERARD
2019-04-11 11:58   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 13/31] OvmfPkg/Library/XenPlatformLib: New library Anthony PERARD
2019-04-11 12:10   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 14/31] OvmfPkg/AcpiPlatformDxe: Use PVH RSDP if exist Anthony PERARD
2019-04-11 12:20   ` [edk2-devel] " Laszlo Ersek
2019-04-11 12:23     ` Laszlo Ersek
2019-04-11 12:31       ` Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 15/31] OvmfPkg/XenHypercallLib: Enable it in PEIM Anthony PERARD
2019-04-12  9:07   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 16/31] OvmfPkg/XenPlatformPei: Introduce XenHvmloaderDetected Anthony PERARD
2019-04-12  9:08   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 17/31] OvmfPkg/XenPlatformPei: Reserve hvmloader's memory only when it as runned Anthony PERARD
2019-04-12  9:09   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 18/31] OvmfPkg/XenPlatformPei: Setup HyperPages earlier Anthony PERARD
2019-04-12  9:17   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 19/31] OvmfPkg/XenPlatformPei: Introduce XenPvhDetected Anthony PERARD
2019-04-12  9:20   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 20/31] OvmfPkg: Import XENMEM_memory_map hypercall to Xen/memory.h Anthony PERARD
2019-04-12  9:22   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 21/31] OvmfPkg/XenPlatformPei: Get E820 table via hypercall Anthony PERARD
2019-04-12  9:33   ` [edk2-devel] " Laszlo Ersek
2019-04-12  9:45     ` [Xen-devel] " Andrew Cooper
2019-04-09 11:08 ` [PATCH v2 22/31] OvmfPkg/XenPlatformPei: Rework memory detection Anthony PERARD
2019-04-12 11:15   ` [edk2-devel] " Laszlo Ersek
2019-04-15 13:42     ` Anthony PERARD
2019-04-09 11:08 ` [PATCH v2 23/31] OvmfPkg/XenPlatformPei: Reserve VGA memory region, to boot Linux Anthony PERARD
2019-04-15 13:21   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 24/31] OvmfPkg/XenPlatformPei: Ignore missing PCI Host Bridge on Xen PVH Anthony PERARD
2019-04-15 13:29   ` [edk2-devel] " Laszlo Ersek
2019-04-15 13:33     ` Laszlo Ersek
2019-04-15 13:37   ` [Xen-devel] " Andrew Cooper
2019-04-09 11:08 ` [PATCH v2 25/31] OvmfPkg/PlatformBootManagerLib: Handle the absence of PCI bus " Anthony PERARD
2019-04-15 13:33   ` [edk2-devel] " Laszlo Ersek
2019-04-15 13:49     ` Laszlo Ersek
2019-04-15 14:40       ` Anthony PERARD
2019-04-15 17:57         ` Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 26/31] OvmfPkg/XenOvmf: Override PcdFSBClock to Xen vLAPIC timer frequency Anthony PERARD
2019-04-15 13:52   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 27/31] OvmfPkg/XenOvmf: Introduce XenTimerDxe Anthony PERARD
2019-04-15 14:07   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 28/31] OvmfPkg/PlatformBootManagerLib: Use a Xen console for ConOut/ConIn Anthony PERARD
2019-04-15 14:56   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 29/31] OvmfPkg: Introduce XenIoPvhDxe to initialize Grant Tables Anthony PERARD
2019-04-16  8:49   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 30/31] OvmfPkg: Move XenRealTimeClockLib from ArmVirtPkg Anthony PERARD
2019-04-16  8:53   ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 31/31] OvmfPkg/XenOvmf: use RealTimeClockRuntimeDxe from EmbeddedPkg Anthony PERARD
2019-04-16  8:58   ` [edk2-devel] " Laszlo Ersek

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=f3a359fa-df25-c1d0-95eb-5065ec134c29@redhat.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