On Fri, Oct 14, 2022 at 04:10:44PM +0100, Jonathan Cameron wrote:
> From: Huai-Cheng Kuo <hch...@avery-design.com.tw>
> 
> The CDAT can be specified in two ways. One is to add ",cdat=<filename>"
> in "-device cxl-type3"'s command option. The file is required to provide
> the whole CDAT table in binary mode. The other is to use the default
> that provides some 'reasonable' numbers based on type of memory and
> size.
> 
> The DOE capability supporting CDAT is added to hw/mem/cxl_type3.c with
> capability offset 0x190. The config read/write to this capability range
> can be generated in the OS to request the CDAT data.
> 
> Signed-off-by: Huai-Cheng Kuo <hch...@avery-design.com.tw>
> Signed-off-by: Chris Browy <cbr...@avery-design.com>
> Signed-off-by: Jonathan Cameron <jonathan.came...@huawei.com>
> 

In reviewing this patch under a debug kernel, I'm discovering some
warnings / tracebacks that I want to get a sanity check on.  They appear
to be warnings, but i'm not 100% sure what to make of them.

I get the following stack traces during boot (on the x86 machine).

Removing the type-3 device from the configuration prevents the traceback
from occurring, suggesting it's something to do with that code in
particular (which tracks with the patch here)

configuration:

qemu-system-x86_64 -drive 
file=/var/lib/libvirt/images/cxl.qcow2,format=qcow2,index=0,media=disk,id=hd \
-m 2G,slots=4,maxmem=4G \
-smp 4 \
-machine type=q35,accel=kvm,cxl=on \
-enable-kvm \
-nographic \
-device pxb-cxl,id=cxl.0,bus=pcie.0,bus_nr=52 \
-device cxl-rp,id=rp0,bus=cxl.0,chassis=0,slot=0 \
-object 
memory-backend-file,pmem=true,id=cxl-mem0,mem-path=/tmp/cxl-mem0,size=1G \
-object memory-backend-file,pmem=true,id=lsa0,mem-path=/tmp/cxl-lsa0,size=1G \
-device cxl-type3,bus=rp0,memdev=cxl-mem0,lsa=lsa0,id=cxl-pmem0 \
-M cxl-fmw.0.targets.0=cxl.0,cxl-fmw.0.size=1G

==== trace 1 ====

[   30.607343] WARNING: CPU: 0 PID: 23 at lib/debugobjects.c:545 
__debug_object_init.cold+0x18/0x183
[   30.688367] Modules linked in:
[   30.703848] CPU: 0 PID: 23 Comm: kworker/u2:1 Not tainted 
6.1.0-0.rc1.20221019gitaae703b02f92.17.fc38.x86_64 #1
[   30.794232] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 
rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
[   30.862301] Workqueue: events_unbound async_run_entry_fn
[   30.890460] RIP: 0010:__debug_object_init.cold+0x18/0x183
[   30.917120] Code: 0b 48 89 fe 48 c7 c7 e0 a7 9a b6 e8 50 74 fd ff 0f 0b 83 
c0 01 48 89 ee 48 c7 c7 d8 a9 9a b6 89 05 f9 d7 bd 03 e8 36 74 fd 0
[   31.019141] RSP: 0018:ffffbffb800c3a90 EFLAGS: 00010246
[   31.043604] RAX: 0000000000000050 RBX: ffff9bbec8f7c1b8 RCX: 0000000000000000
[   31.103764] RDX: 0000000000000001 RSI: 00000000ffffdfff RDI: 00000000ffffffff
[   31.134239] RBP: ffffbffb800c3bb0 R08: 0000000000000000 R09: ffffbffb800c3938
[   31.188841] R10: 0000000000000003 R11: ffffffffb7366368 R12: ffffffffb6440940
[   31.218418] R13: 0000000000130b50 R14: ffffffffb9c33b58 R15: ffffffffb9c33b50
[   31.273389] FS:  0000000000000000(0000) GS:ffff9bbf3da00000(0000) 
knlGS:0000000000000000
[   31.315480] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   31.352369] CR2: 00007fcd1cd57c08 CR3: 0000000049228000 CR4: 00000000000006f0
[   31.397279] Call Trace:
[   31.412605]  <TASK>
[   31.424189]  pci_doe_submit_task+0x5d/0xd0
[   31.459591]  pci_doe_discovery+0xb4/0x100
[   31.478560]  ? pci_doe_xa_destroy+0x10/0x10
[   31.499449]  pcim_doe_create_mb+0x219/0x290
[   31.516835]  cxl_pci_probe+0x192/0x430
[   31.532501]  local_pci_probe+0x41/0x80
[   31.549181]  pci_device_probe+0xb3/0x220
[   31.587266]  really_probe+0xde/0x380
[   31.601778]  ? pm_runtime_barrier+0x50/0x90
[   31.618854]  __driver_probe_device+0x78/0x170
[   31.656184]  driver_probe_device+0x1f/0x90
[   31.675865]  __driver_attach_async_helper+0x5c/0xe0
[   31.692896]  async_run_entry_fn+0x30/0x130
[   31.707297]  process_one_work+0x294/0x5b0
[   31.722375]  worker_thread+0x4f/0x3a0
[   31.741028]  ? process_one_work+0x5b0/0x5b0
[   31.757448]  kthread+0xf5/0x120
[   31.770179]  ? kthread_complete_and_exit+0x20/0x20
[   31.806496]  ret_from_fork+0x22/0x30
[   31.831317]  </TASK>
[   31.840206] irq event stamp: 1597
[   31.853893] hardirqs last  enabled at (1611): [<ffffffffb518e8de>] 
__up_console_sem+0x5e/0x70
[   31.908805] hardirqs last disabled at (1624): [<ffffffffb518e8c3>] 
__up_console_sem+0x43/0x70
[   31.965293] softirqs last  enabled at (354): [<ffffffffb51012ed>] 
__irq_exit_rcu+0xed/0x160
[   32.000551] softirqs last disabled at (345): [<ffffffffb51012ed>] 
__irq_exit_rcu+0xed/0x160
[   32.121265] ---[ end trace 0000000000000000 ]---


==== trace 2 ====

[   99.902268] WARNING: CPU: 0 PID: 530 at lib/debugobjects.c:545 
__debug_object_init.cold+0x18/0x183
[   99.921567] Modules linked in: i2c_i801(+) cxl_mem(+) bochs(+) pcspkr(+) 
drm_vram_helper i2c_smbus drm_ttm_helper ttm parport_pc(+) lpc_ich pg
[   99.956391] CPU: 0 PID: 530 Comm: systemd-udevd Tainted: G        W         
-------  ---  6.1.0-0.rc1.20221019gitaae703b02f92.17.fc38.x86_64 1
[   99.978561] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 
rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
[  100.000618] RIP: 0010:__debug_object_init.cold+0x18/0x183
[  100.011232] Code: 0b 48 89 fe 48 c7 c7 e0 a7 9a b6 e8 50 74 fd ff 0f 0b 83 
c0 01 48 89 ee 48 c7 c7 d8 a9 9a b6 89 05 f9 d7 bd 03 e8 36 74 fd 0
[  100.047919] RSP: 0018:ffffbffb80c6b770 EFLAGS: 00010246
[  100.060167] RAX: 0000000000000050 RBX: ffff9bbec9448b40 RCX: 0000000000000000
[  100.080397] RDX: 0000000000000001 RSI: ffffffffb698ef83 RDI: 00000000ffffffff
[  100.099485] RBP: ffffbffb80c6b918 R08: 0000000000000000 R09: ffffbffb80c6b618
[  100.116927] R10: 0000000000000003 R11: ffffffffb7366368 R12: ffffffffb6440940
[  100.134762] R13: 00000000000ec680 R14: ffffffffb9bef688 R15: ffffffffb9bef680
[  100.151144] FS:  00007f485962c580(0000) GS:ffff9bbf3da00000(0000) 
knlGS:0000000000000000
[  100.168115] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  100.181757] CR2: 000055f120bfa028 CR3: 0000000009598000 CR4: 00000000000006f0
[  100.196873] Call Trace:
[  100.205142]  <TASK>
[  100.211998]  pci_doe_submit_task+0x5d/0xd0
[  100.225314]  cxl_cdat_get_length+0xb8/0x110
[  100.237607]  ? dvsec_range_allowed+0x60/0x60
[  100.251315]  read_cdat_data+0xaf/0x1a0
[  100.259359]  cxl_port_probe+0x80/0x120
[  100.270131]  cxl_bus_probe+0x17/0x50
[  100.280874]  really_probe+0xde/0x380
[  100.290308]  ? pm_runtime_barrier+0x50/0x90
[  100.301589]  __driver_probe_device+0x78/0x170
[  100.313626]  driver_probe_device+0x1f/0x90
[  100.338204]  __device_attach_driver+0x85/0x110
[  100.357875]  ? driver_allows_async_probing+0x70/0x70
[  100.367909]  bus_for_each_drv+0x7a/0xb0
[  100.376261]  __device_attach+0xb3/0x1d0
[  100.384565]  bus_probe_device+0x9f/0xc0
[  100.403420]  device_add+0x41e/0x9b0
[  100.424240]  ? kobject_set_name_vargs+0x6d/0x90
[  100.437082]  ? dev_set_name+0x4b/0x60
[  100.452290]  devm_cxl_add_port+0x27b/0x3b0
[  100.477464]  devm_cxl_add_endpoint+0x82/0x130
[  100.506916]  cxl_mem_probe+0xc4/0x11d [cxl_mem]
[  100.525895]  cxl_bus_probe+0x17/0x50
[  100.556013]  really_probe+0xde/0x380
[  100.567388]  ? pm_runtime_barrier+0x50/0x90
[  100.604187]  __driver_probe_device+0x78/0x170
[  100.623848]  driver_probe_device+0x1f/0x90
[  100.643793]  __driver_attach+0xd5/0x1d0
[  100.655270]  ? __device_attach_driver+0x110/0x110
[  100.668906]  bus_for_each_dev+0x76/0xa0
[  100.684247]  bus_add_driver+0x1b1/0x200
[  100.694768]  driver_register+0x89/0xe0
[  100.706379]  ? 0xffffffffc03e7000
[  100.715846]  do_one_initcall+0x6e/0x320
[  100.726612]  do_init_module+0x4a/0x200
[  100.738882]  __do_sys_init_module+0x16a/0x1a0
[  100.752941]  do_syscall_64+0x5b/0x80
[  100.766652]  ? do_syscall_64+0x67/0x80
[  100.779569]  ? asm_exc_page_fault+0x22/0x30
[  100.794089]  ? lockdep_hardirqs_on+0x7d/0x100
[  100.813769]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
[  100.829029] RIP: 0033:0x7f485991253e
[  100.840991] Code: 48 8b 0d e5 58 0e 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 
0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 49 89 ca b8 af 00 00 00 0f 8
[  100.904842] RSP: 002b:00007ffd96d322b8 EFLAGS: 00000246 ORIG_RAX: 
00000000000000af
[  100.936376] RAX: ffffffffffffffda RBX: 000055f120b724b0 RCX: 00007f485991253e
[  100.971138] RDX: 00007f4859f9643c RSI: 0000000000002dbe RDI: 000055f120bdd000
[  101.016019] RBP: 00007f4859f9643c R08: 000055f120bd47f0 R09: 00007ffd96d2ef1e
[  101.042435] R10: 0000000000000005 R11: 0000000000000246 R12: 0000000000020000
[  101.073437] R13: 000055f120bd4530 R14: 0000000000000000 R15: 000055f120bd4860
[  101.120278]  </TASK>
[  101.132024] irq event stamp: 102985
[  101.153401] hardirqs last  enabled at (102999): [<ffffffffb518e8de>] 
__up_console_sem+0x5e/0x70
[  101.184098] hardirqs last disabled at (103014): [<ffffffffb518e8c3>] 
__up_console_sem+0x43/0x70
[  101.236473] softirqs last  enabled at (101888): [<ffffffffb51012ed>] 
__irq_exit_rcu+0xed/0x160
[  101.294275] softirqs last disabled at (101757): [<ffffffffb51012ed>] 
__irq_exit_rcu+0xed/0x160


==== trace 3 ====

[  111.356606] WARNING: CPU: 0 PID: 530 at lib/debugobjects.c:545 
__debug_object_init.cold+0x18/0x183
[  111.366842] Modules linked in: iTCO_wdt ppdev intel_pmc_bxt 
iTCO_vendor_support cxl_pmem libnvdimm snd_pcm snd_timer snd e1000e soundcore 
joyg
[  111.396404] CPU: 0 PID: 530 Comm: systemd-udevd Tainted: G        W         
-------  ---  6.1.0-0.rc1.20221019gitaae703b02f92.17.fc38.x86_64 1
[  111.410199] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 
rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
[  111.422370] RIP: 0010:__debug_object_init.cold+0x18/0x183
[  111.429086] Code: 0b 48 89 fe 48 c7 c7 e0 a7 9a b6 e8 50 74 fd ff 0f 0b 83 
c0 01 48 89 ee 48 c7 c7 d8 a9 9a b6 89 05 f9 d7 bd 03 e8 36 74 fd 0
[  111.453462] RSP: 0000:ffffbffb80c6b748 EFLAGS: 00010246
[  111.463194] RAX: 0000000000000050 RBX: ffff9bbec84818e8 RCX: 0000000000000000
[  111.472081] RDX: 0000000000000001 RSI: ffffffffb698ef83 RDI: 00000000ffffffff
[  111.481240] RBP: ffffbffb80c6b908 R08: 0000000000000000 R09: ffffbffb80c6b5f0
[  111.490230] R10: 0000000000000003 R11: ffffffffb7366368 R12: ffffffffb6440940
[  111.499437] R13: 00000000000ec680 R14: ffffffffb9bef688 R15: ffffffffb9bef680
[  111.507544] FS:  00007f485962c580(0000) GS:ffff9bbf3da00000(0000) 
knlGS:0000000000000000
[  111.518473] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  111.529110] CR2: 000055ea819dc228 CR3: 0000000009598000 CR4: 00000000000006f0
[  111.539622] Call Trace:
[  111.543604]  <TASK>
[  111.547146]  pci_doe_submit_task+0x5d/0xd0
[  111.553235]  cxl_cdat_read_table.isra.0+0x141/0x190
[  111.559888]  ? dvsec_range_allowed+0x60/0x60
[  111.566950]  read_cdat_data+0xfc/0x1a0
[  111.572438]  cxl_port_probe+0x80/0x120
[  111.579219]  cxl_bus_probe+0x17/0x50
[  111.586051]  really_probe+0xde/0x380
[  111.592435]  ? pm_runtime_barrier+0x50/0x90
[  111.598580]  __driver_probe_device+0x78/0x170
[  111.604947]  driver_probe_device+0x1f/0x90
[  111.610825]  __device_attach_driver+0x85/0x110
[  111.616997]  ? driver_allows_async_probing+0x70/0x70
[  111.623939]  bus_for_each_drv+0x7a/0xb0
[  111.629126]  __device_attach+0xb3/0x1d0
[  111.634907]  bus_probe_device+0x9f/0xc0
[  111.641211]  device_add+0x41e/0x9b0
[  111.650591]  ? kobject_set_name_vargs+0x6d/0x90
[  111.659416]  ? dev_set_name+0x4b/0x60
[  111.665160]  devm_cxl_add_port+0x27b/0x3b0
[  111.671486]  devm_cxl_add_endpoint+0x82/0x130
[  111.677424]  cxl_mem_probe+0xc4/0x11d [cxl_mem]
[  111.684237]  cxl_bus_probe+0x17/0x50
[  111.690079]  really_probe+0xde/0x380
[  111.695487]  ? pm_runtime_barrier+0x50/0x90
[  111.702526]  __driver_probe_device+0x78/0x170
[  111.710317]  driver_probe_device+0x1f/0x90
[  111.716468]  __driver_attach+0xd5/0x1d0
[  111.721786]  ? __device_attach_driver+0x110/0x110
[  111.728178]  bus_for_each_dev+0x76/0xa0
[  111.736175]  bus_add_driver+0x1b1/0x200
[  111.741584]  driver_register+0x89/0xe0
[  111.747214]  ? 0xffffffffc03e7000
[  111.753161]  do_one_initcall+0x6e/0x320
[  111.759145]  do_init_module+0x4a/0x200
[  111.773055]  __do_sys_init_module+0x16a/0x1a0
[  111.782164]  do_syscall_64+0x5b/0x80
[  111.788480]  ? do_syscall_64+0x67/0x80
[  111.795108]  ? asm_exc_page_fault+0x22/0x30
[  111.803255]  ? lockdep_hardirqs_on+0x7d/0x100
[  111.811142]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
[  111.818426] RIP: 0033:0x7f485991253e
[  111.824120] Code: 48 8b 0d e5 58 0e 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 
0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 49 89 ca b8 af 00 00 00 0f 8
[  111.873034] RSP: 002b:00007ffd96d322b8 EFLAGS: 00000246 ORIG_RAX: 
00000000000000af
[  111.888776] RAX: ffffffffffffffda RBX: 000055f120b724b0 RCX: 00007f485991253e
[  111.913156] RDX: 00007f4859f9643c RSI: 0000000000002dbe RDI: 000055f120bdd000
[  111.931096] RBP: 00007f4859f9643c R08: 000055f120bd47f0 R09: 00007ffd96d2ef1e
[  111.945030] R10: 0000000000000005 R11: 0000000000000246 R12: 0000000000020000
[  111.959393] R13: 000055f120bd4530 R14: 0000000000000000 R15: 000055f120bd4860
[  111.987474]  </TASK>
[  112.002511] irq event stamp: 104291
[  112.011044] hardirqs last  enabled at (104307): [<ffffffffb518e8de>] 
__up_console_sem+0x5e/0x70
[  112.046936] hardirqs last disabled at (104320): [<ffffffffb518e8c3>] 
__up_console_sem+0x43/0x70
[  112.066433] softirqs last  enabled at (103208): [<ffffffffb51012ed>] 
__irq_exit_rcu+0xed/0x160
[  112.086461] softirqs last disabled at (103183): [<ffffffffb51012ed>] 
__irq_exit_rcu+0xed/0x160
[  112.107575] ---[ end trace 0000000000000000 ]---

Reply via email to