On Tue, 25 Mar 2025 15:49:37 +0800
Yuquan Wang <wangyuquan1...@phytium.com.cn> wrote:

> > -----原始邮件-----
> > 发件人: "Jonathan Cameron" <jonathan.came...@huawei.com>
> > 发送时间:2025-03-13 02:10:35 (星期四)
> > 收件人: "Yuquan Wang" <wangyuquan1...@phytium.com.cn>
> > 抄送: qemu-devel@nongnu.org, linux-...@vger.kernel.org
> > 主题: Re: [PATCH] docs/cxl: Add serial number for persistent-memdev
> > 
> > On Wed, 5 Mar 2025 18:35:40 +0800
> > Yuquan Wang <wangyuquan1...@phytium.com.cn> wrote:
> >   
> > > > 
> > > > On Tue, 4 Mar 2025 14:22:48 +0800
> > > > Yuquan Wang <wangyuquan1...@phytium.com.cn> wrote:
> > > >     
> > > > > > 
> > > > > > On Thu, Feb 20, 2025 at 04:12:13PM +0000, Jonathan Cameron wrote:   
> > > > > >    
> > > > > > > On Mon, 17 Feb 2025 19:20:39 +0800
> > > > > > > Yuquan Wang <wangyuquan1...@phytium.com.cn> wrote:
> > > > > > >       
> > > > > > > > Add serial number parameter in the cxl persistent examples.
> > > > > > > > 
> > > > > > > > Signed-off-by: Yuquan Wang <wangyuquan1...@phytium.com.cn>      
> > > > > > > Looks good.  I've queued it up on my gitlab staging tree, but
> > > > > > > Michael if you want to pick this one directly that's fine as 
> > > > > > > well.      
> > > > > > 
> > > > > > See no reason to, I was not even CC'd.      
> > > > > 
> > > > > Hi, Michael
> > > > > 
> > > > > I'm sorry, this is my fault. I used "get_maintainer.pl" to check this
> > > > > patch's maintainers but it shows "No maintainers found, printing 
> > > > > recent
> > > > > contributors". 
> > > > >     
> > > > I usually stage up multiple series together and send on to Michael.
> > > > So it was be being lazy for a minor change rather than anything much
> > > > that you did wrong.
> > > > 
> > > > If I get time I'll post a series with this a few other patches
> > > > later today.  
> > > > 
> > > > Jonathan
> > > >     
> > > Thank you!
> > > 
> > > BTW, I found a corner case in CXL numa node creation.
> > > 
> > > Condition: 
> > > 1) A UMA/NUMA system without SRAT, but with CEDT.CFMWS
> > > 2)Enable CONFIG_ACPI_NUMA
> > > 
> > > Results:
> > > 1) acpi_numa_init: the fake_pxm will be 0 and send to acpi_parse_cfmws()
> > > 2)If dynamically create cxl ram region, the cxl memory would be assigned
> > > to node0 rather than a new node
> > > 
> > > Confusions:
> > > 1) Is a numa system a requirement for CXL memory usage?  
> > 
> > Obviously discussion has gone on elsewhere, but I'd say in general it
> > would be a bad idea to not have an SRAT because the moment we add CXL
> > it is definitely a NUMA system and we want the Generic Port entry to
> > allow us to get perf information.
> > 
> > So I wouldn't mind if we fail CXL init in this case, but maybe
> > it is worth papering over things.
> > 
> > Jonathan
> >   
> 
> Hi, Jonathan
> 
> Recentlty I managed to do some hot-plug tests on cxl type3 device on QEMU.
> I tried use "device add" qemu command in monitor, but it failed. I also used
> unbind/bind cxl_pci driver in sysfs, I can see the software flow on device but
> no expected actions on cxl root ports linked(like pcie hot-plug interrupt and
> so on).
> 
> Could we simulate a hot-add flow of type3 device in qemu now? Maybe I used the
> wrong method :(

Only tweaks needed should be to set hotplug=true for the root port or switch
downstream ports and then via the qemu monitor something like:
device_add cxl-type3,bus_cxl_rp_port1,volatile-memdev=cxl-mem3,id=cxl-memD,sn=5
and you should see hotplug occur.

I just tested this on an arm64 setup (using my staging tree) but shouldn't
make any real difference as all native hotplug flows.

 pcieport 0000:0c:01.0: pciehp: Slot(3): Button press: will power on in 5 sec
 pcieport 0000:0c:01.0: pciehp: Slot(3): Card present
 pcieport 0000:0c:01.0: pciehp: Slot(3): Link Up
 pci 0000:0e:00.0: [8086:0d93] type 00 class 0x050210 PCIe Endpoint
 pci 0000:0e:00.0: BAR 0 [mem 0x00000000-0x0000ffff 64bit]
 pci 0000:0e:00.0: BAR 2 [mem 0x00000000-0x0003ffff 64bit]
 pci 0000:0e:00.0: BAR 4 [mem 0x00000000-0x00000fff]
 pci 0000:0e:00.0: enabling Extended Tags
 pcieport 0000:0c:01.0: bridge window [io  0x1000-0x0fff] to [bus 0e] add_size 
1000
 pcieport 0000:0c:01.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to 
[bus 0e] add_size 200000 add_align 100000
 pcieport 0000:0c:01.0: bridge window [mem size 0x00200000 64bit pref]: can't 
assign; no space
 pcieport 0000:0c:01.0: bridge window [mem size 0x00200000 64bit pref]: failed 
to assign
 pcieport 0000:0c:01.0: bridge window [io  size 0x1000]: can't assign; no space
 pcieport 0000:0c:01.0: bridge window [io  size 0x1000]: failed to assign
 pcieport 0000:0c:01.0: bridge window [mem size 0x00200000 64bit pref]: can't 
assign; no space
 pcieport 0000:0c:01.0: bridge window [mem size 0x00200000 64bit pref]: failed 
to assign
 pcieport 0000:0c:01.0: bridge window [io  size 0x1000]: can't assign; no space
 pcieport 0000:0c:01.0: bridge window [io  size 0x1000]: failed to assign
 pci 0000:0e:00.0: BAR 2 [mem 0x20000000-0x2003ffff 64bit]: assigned
 pci 0000:0e:00.0: BAR 0 [mem 0x20040000-0x2004ffff 64bit]: assigned
 pci 0000:0e:00.0: BAR 4 [mem 0x20050000-0x20050fff]: assigned
 pcieport 0000:0c:01.0: PCI bridge to [bus 0e]
 pcieport 0000:0c:01.0:   bridge window [mem 0x20000000-0x27ffffff]
 cxl_pci 0000:0e:00.0: enabling device (0000 -> 0002)

Whilst there are some corners where resource assignment actually fails
(various fixes have merged recently so maybe that all works now).
In this case it succeeds after a few tries (it reduces the requested
padding in this case I think but I haven't chased this one through).

If you are still having trouble I can fire up a test case on x86 but
probably not today.

Jonathan



> 
> Yuquan
> 
> 
> 信息安全声明:本邮件包含信息归发件人所在组织所有,发件人所在组织对该邮件拥有所有权利。请接收者注意保密,未经发件人书面许可,不得向任何第三方组织和个人透露本邮件所含信息。
> Information Security Notice: The information contained in this mail is solely 
> property of the sender's organization.This mail communication is 
> confidential.Recipients named above are obligated to maintain secrecy and are 
> not permitted to disclose the contents of this communication to others.

Reply via email to