From: Igor Mammedov <imammedo@redhat.com>
To: Dave Jiang <dave.jiang@intel.com>
Cc: qemu-devel@nongnu.org,
Jonathan Cameron <Jonathan.Cameron@huawei.com>,
Ira Weiny <ira.weiny@intel.com>, Michael Tsirkin <mst@redhat.com>,
Ben Widawsky <bwidawsk@kernel.org>
Subject: Re: need help with ACPI generic port implementation for QEMU
Date: Tue, 28 Mar 2023 14:00:05 +0200 [thread overview]
Message-ID: <20230328140005.0d4776a3@imammedo.users.ipa.redhat.com> (raw)
In-Reply-To: <c021051b-feb5-04e7-c88c-135697276977@intel.com>
On Mon, 13 Mar 2023 14:58:42 -0700
Dave Jiang <dave.jiang@intel.com> wrote:
> I'm attempting to implement the support of ACPI "generic port" detailed
> in the ACPI r6.5 spec in QEMU. The spec section 5.2.16.7 details the
> Generi Port Affinity Structure where it ties a Device Handle to a
> Proximity Domain. And with section 6.2.28.4 for the HMAT table, the
> latency and bandwidth information are provided by the System Locality
> Latency and Bandwidth Information Structure (SLLBIS) sub-table.
>
> In the CXL world, a hotplugged type-3 device would not have the
> approriate end to end latency and bandwidth data provided by the HMAT.
> The QoS data needs to be computed from the CXL host bridge (HB) and the
> endpoint device. Some parts of the data are supplemented by the CDAT
> from the endpoint device and the CXL switch(es) if they exist in the
> path. The component missing is the path between the CPU and the CXL HB
> (generic port). The data provided by HMAT for generic port will fill
> that gap.
>
> In QEMU, the SRAT is generated by code and the table entry addition is a
> somewhat straight forward implementation. The HMAT information is fed
> through user parameter inputs and will require a new object to allow the
> representation of generic port. The intention is to be able to do
> something like:
> "-object genport,id=genport0"
> "-numa node,genport=genport0,nodeid=5,initiator=0"
> "-numa dist,src=0,dst=5,val=$dist"
> "-numa
> hmat-lb,initiator=0,target=5,hierachy=memory,data-type=access-latency,latency=$lat"
> "-numa
> hmat-lb,initiator=0,target=5,hierarchy=memory,data-type=access-bandwidth,bandwidth=$bw"
>
> I put together a skeletal generic port device that seems to pass the
> numa parsing code parts. However I'm hitting an error after that that I
> can't figure out how to deal with:
> qemu-system-x86_64: ../hw/core/qdev.c:316:
> qdev_assert_realized_properly_cb: Assertion `dev->realized' failed.
>
> At what point is qdev_realize() being called for a device object? It
> seems that this never happens for this generic port device. What am I
> missing in terms of initialization or setup? Any assistance is
> appreciated. Thanks in advance. Here's my latest code that I'm playing
> with as reference:
> https://github.com/davejiang/qemu/tree/genport
Pls, send an RFC series to qemu-devel to start discussion
prev parent reply other threads:[~2023-03-28 12:01 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-13 21:58 need help with ACPI generic port implementation for QEMU Dave Jiang
2023-03-28 12:00 ` Igor Mammedov [this message]
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=20230328140005.0d4776a3@imammedo.users.ipa.redhat.com \
--to=imammedo@redhat.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=bwidawsk@kernel.org \
--cc=dave.jiang@intel.com \
--cc=ira.weiny@intel.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).