From: Igor Mammedov <imammedo@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: Ani Sinha <ani@anisinha.ca>,
Gregory Price <gourry.memverge@gmail.com>,
qemu-devel@nongnu.org, mst@redhat.com,
marcel.apfelbaum@gmail.com, jonathan.cameron@huawei.com,
linux-cxl@vger.kernel.org, alison.schofield@intel.com,
dave@stgolabs.net, a.manzanares@samsung.com, bwidawsk@kernel.org,
gregory.price@memverge.com, hchkuo@avery-design.com.tw,
cbrowy@avery-design.com, ira.weiny@intel.com
Subject: Re: [BUG] hw/i386/pc.c: CXL Fixed Memory Window should not reserve e820 in bios
Date: Fri, 11 Nov 2022 14:24:11 +0100 [thread overview]
Message-ID: <20221111142411.41220086@imammedo.users.ipa.redhat.com> (raw)
In-Reply-To: <20221111114059.4eilz452nmfttp3a@sirius.home.kraxel.org>
On Fri, 11 Nov 2022 12:40:59 +0100
Gerd Hoffmann <kraxel@redhat.com> wrote:
> On Fri, Nov 11, 2022 at 11:51:23AM +0100, Igor Mammedov wrote:
> > On Tue, 8 Nov 2022 12:21:11 +0100
> > Gerd Hoffmann <kraxel@redhat.com> wrote:
> >
> > > > >> > diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> > > > >> > index 566accf7e6..5bf5465a21 100644
> > > > >> > --- a/hw/i386/pc.c
> > > > >> > +++ b/hw/i386/pc.c
> > > > >> > @@ -1061,7 +1061,6 @@ void pc_memory_init(PCMachineState *pcms,
> > > > >> > hwaddr cxl_size = MiB;
> > > > >> >
> > > > >> > cxl_base = pc_get_cxl_range_start(pcms);
> > > > >> > - e820_add_entry(cxl_base, cxl_size, E820_RESERVED);
> > >
> > > Just dropping it doesn't look like a good plan to me.
> > >
> > > You can try set etc/reserved-memory-end fw_cfg file instead. Firmware
> > > (both seabios and ovmf) read it and will make sure the 64bit pci mmio
> > > window is placed above that address, i.e. this effectively reserves
> > > address space. Right now used by memory hotplug code, but should work
> > > for cxl too I think (disclaimer: don't know much about cxl ...).
> >
> > As far as I know CXL impl. in QEMU isn't using etc/reserved-memory-end
> > at all, it' has its own mapping.
>
> This should be changed. cxl should make sure the highest address used
> is stored in etc/reserved-memory-end to avoid the firmware mapping pci
> resources there.
if (pcmc->has_reserved_memory && machine->device_memory->base) {
[...]
if (pcms->cxl_devices_state.is_enabled) {
res_mem_end = cxl_resv_end;
that should be handled by this line
}
*val = cpu_to_le64(ROUND_UP(res_mem_end, 1 * GiB));
fw_cfg_add_file(fw_cfg, "etc/reserved-memory-end", val, sizeof(*val));
}
so SeaBIOS shouldn't intrude into CXL address space
(I assume EDK2 behave similarly here)
> > so dropping reserved entries looks reasonable from ACPI spec point of view.
>
> Yep, I don't want dispute that.
>
> I suspect the reason for these entries to exist in the first place is to
> inform the firmware that it should not place stuff there, and if we
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
just to educate me, can you point out what SeaBIOS code does with reservations.
> remove that to conform with the spec we need some alternative way for
> that ...
with etc/reserved-memory-end set as above,
is E820_RESERVED really needed here?
(my understanding was that E820_RESERVED weren't accounted for when
initializing PCI devices)
>
> take care,
> Gerd
>
next prev parent reply other threads:[~2022-11-11 13:25 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-17 23:40 [BUG] hw/i386/pc.c: CXL Fixed Memory Window should not reserve e820 in bios Gregory Price
2022-10-18 2:58 ` Gupta, Pankaj
2022-10-18 14:49 ` Gregory Price
2022-10-18 6:05 ` Ani Sinha
2022-10-18 14:45 ` Gregory Price
2022-10-18 15:00 ` Ani Sinha
2022-11-08 11:21 ` Gerd Hoffmann
2022-11-11 10:51 ` Igor Mammedov
2022-11-11 11:40 ` Gerd Hoffmann
2022-11-11 13:24 ` Igor Mammedov [this message]
2022-11-11 13:36 ` Gerd Hoffmann
2022-11-11 14:37 ` Michael S. Tsirkin
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-all 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=20221111142411.41220086@imammedo.users.ipa.redhat.com \
--to=imammedo@redhat.com \
--cc=a.manzanares@samsung.com \
--cc=alison.schofield@intel.com \
--cc=ani@anisinha.ca \
--cc=bwidawsk@kernel.org \
--cc=cbrowy@avery-design.com \
--cc=dave@stgolabs.net \
--cc=gourry.memverge@gmail.com \
--cc=gregory.price@memverge.com \
--cc=hchkuo@avery-design.com.tw \
--cc=ira.weiny@intel.com \
--cc=jonathan.cameron@huawei.com \
--cc=kraxel@redhat.com \
--cc=linux-cxl@vger.kernel.org \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
/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;
as well as URLs for NNTP newsgroup(s).