qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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



      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).