* [PATCH v2 0/2] Fix port enumeration failure
@ 2026-02-07 13:35 Li Ming
2026-02-07 13:35 ` [PATCH v2 1/2] cxl/port: Hold port host lock while dport adding Li Ming
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Li Ming @ 2026-02-07 13:35 UTC (permalink / raw)
To: dave, jonathan.cameron, dave.jiang, alison.schofield,
vishal.l.verma, ira.weiny, dan.j.williams
Cc: linux-cxl, linux-kernel
I ran CXL mock testing with next branch, I usually hit the following
call trace.
Oops: general protection fault, probably for non-canonical address 0xdffffc0000000092: 0000 [#1] SMP KASAN NOPTI
KASAN: null-ptr-deref in range [0x0000000000000490-0x0000000000000497]
CPU: 3 UID: 0 PID: 42 Comm: kworker/u16:1 Tainted: G O J 6.19.0-rc5-cxl+ #4 PREEMPT(voluntary)
Tainted: [O]=OOT_MODULE, [J]=FWCTL
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014
Workqueue: async async_run_entry_fn
RIP: 0010:cxl_dpa_to_region+0x105/0x1f0 [cxl_core]
Call Trace:
<TASK>
cxl_event_trace_record+0xd1/0xa70 [cxl_core]
__cxl_event_trace_record+0x12f/0x1e0 [cxl_core]
cxl_mem_get_records_log+0x261/0x500 [cxl_core]
cxl_mem_get_event_records+0x7c/0xc0 [cxl_core]
cxl_mock_mem_probe+0xd38/0x1c60 [cxl_mock_mem]
platform_probe+0x9d/0x130
really_probe+0x1c8/0x960
driver_probe_device+0x45/0x120
__device_attach_driver+0x15d/0x280
bus_for_each_drv+0x100/0x180
__device_attach_async_helper+0x199/0x250
async_run_entry_fn+0x95/0x430
process_one_work+0x7db/0x1940
After detailed debugging, I identified adding dport failure leads to the
problem.
What I observed is when two memdev were trying to enumerate a same port,
the first memdev was responsible for port creation and bind it to the
cxl port driver. However, there is a small window between the point
where the new port becomes visible(after being added to the device list
of cxl bus) and when it is bound to the port driver. During this window,
the second memdev may discover the port and acquire its lock while
attempting to add its dport, which blocks bus_probe_device() inside
device_add(). As a result, the second memdev observes the port as
unbound and fails to add its dport. The second memdev->endpoint would
not be updated because of that, then trigger above trace.
The solution is to fix this race by holding the host lock of the target
port during dport addition, preventing premature access before driver
binding completed.
base-commit: 63fbf275fa9f18f7020fb8acf54fa107e51d0f23 cxl/next
Changes from V1:
- Remove the patch of initializing memdev->endpoint to NULL. (Dan)
- Fixes typo errors. (Jonathan)
- Introduce a helper called to_port_host().
- unregister_port() cleanup.
Li Ming (2):
cxl/port: Hold port host lock while dport adding.
cxl/port: unregister_port() cleanup
drivers/cxl/core/port.c | 47 +++++++++++++++++++++++++----------------
1 file changed, 29 insertions(+), 18 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH v2 1/2] cxl/port: Hold port host lock while dport adding.
2026-02-07 13:35 [PATCH v2 0/2] Fix port enumeration failure Li Ming
@ 2026-02-07 13:35 ` Li Ming
2026-02-07 17:28 ` dan.j.williams
2026-02-07 13:35 ` [PATCH v2 2/2] cxl/port: unregister_port() cleanup Li Ming
2026-02-10 3:04 ` [PATCH v2 0/2] Fix port enumeration failure Alison Schofield
2 siblings, 1 reply; 10+ messages in thread
From: Li Ming @ 2026-02-07 13:35 UTC (permalink / raw)
To: dave, jonathan.cameron, dave.jiang, alison.schofield,
vishal.l.verma, ira.weiny, dan.j.williams
Cc: linux-cxl, linux-kernel
CXL testing environment can trigger following trace
Oops: general protection fault, probably for non-canonical address 0xdffffc0000000092: 0000 [#1] SMP KASAN NOPTI
KASAN: null-ptr-deref in range [0x0000000000000490-0x0000000000000497]
RIP: 0010:cxl_dpa_to_region+0x105/0x1f0 [cxl_core]
Call Trace:
<TASK>
cxl_event_trace_record+0xd1/0xa70 [cxl_core]
__cxl_event_trace_record+0x12f/0x1e0 [cxl_core]
cxl_mem_get_records_log+0x261/0x500 [cxl_core]
cxl_mem_get_event_records+0x7c/0xc0 [cxl_core]
cxl_mock_mem_probe+0xd38/0x1c60 [cxl_mock_mem]
platform_probe+0x9d/0x130
really_probe+0x1c8/0x960
__driver_probe_device+0x187/0x3e0
driver_probe_device+0x45/0x120
__device_attach_driver+0x15d/0x280
When CXL subsystem adds a cxl port to a hierarchy, there is a small
window where the new port becomes visible before it is bound to a
driver. This happens because device_add() adds a device to bus device
list before bus_probe_device() binds it to a driver.
So if two cxl memdevs are trying to add a dport to a same port via
devm_cxl_enumerate_ports(), the second cxl memdev may observe the port
and attempt to add a dport, but fails because the port has not yet been
attached to cxl port driver. That causes the memdev->endpoint can not be
updated.
The sequence is like:
CPU 0 CPU 1
devm_cxl_enumerate_ports()
# port not found, add it
add_port_attach_ep()
# hold the parent port lock
# to add the new port
devm_cxl_create_port()
device_add()
# Add dev to bus devs list
bus_add_device()
devm_cxl_enumerate_ports()
# found the port
find_cxl_port_by_uport()
# hold port lock to add a dport
device_lock(the port)
find_or_add_dport()
cxl_port_add_dport()
return -ENXIO because port->dev.driver is NULL
device_unlock(the port)
bus_probe_device()
# hold the port lock
# for attaching
device_lock(the port)
attaching the new port
device_unlock(the port)
To fix this race, require that dport addition holds the host lock
of the target port(the host of CXL root and all cxl host bridge ports is
the platform firmware device, the host of all other ports is their
parent port). The CXL subsystem already requires holding the host lock
while attaching a new port. Therefore, successfully acquiring the host
lock guarantees that port attaching has completed.
Fixes: 4f06d81e7c6a ("cxl: Defer dport allocation for switch ports")
Signed-off-by: Li Ming <ming.li@zohomail.com>
---
drivers/cxl/core/port.c | 40 ++++++++++++++++++++++++++++++++--------
1 file changed, 32 insertions(+), 8 deletions(-)
diff --git a/drivers/cxl/core/port.c b/drivers/cxl/core/port.c
index 5c82e6f32572..6f0d9fe439db 100644
--- a/drivers/cxl/core/port.c
+++ b/drivers/cxl/core/port.c
@@ -612,6 +612,23 @@ struct cxl_port *parent_port_of(struct cxl_port *port)
return port->parent_dport->port;
}
+static struct device *to_port_host(struct cxl_port *port)
+{
+ struct cxl_port *parent = parent_port_of(port);
+
+ /*
+ * The host of CXL root port and the first level of ports is
+ * the platform firmware device, the host of all other ports
+ * is their parent port.
+ */
+ if (!parent)
+ return port->uport_dev;
+ else if (is_cxl_root(parent))
+ return parent->uport_dev;
+ else
+ return &parent->dev;
+}
+
static void unregister_port(void *_port)
{
struct cxl_port *port = _port;
@@ -1790,7 +1807,16 @@ static struct cxl_dport *find_or_add_dport(struct cxl_port *port,
{
struct cxl_dport *dport;
- device_lock_assert(&port->dev);
+ /*
+ * The port is already visible in CXL hierarchy, but it may still
+ * be in the process of binding to the CXL port driver at this point.
+ *
+ * port creation and driver binding are protected by the port's host
+ * lock, so acquire the host lock here to ensure the port has completed
+ * driver binding before proceeding with dport addition.
+ */
+ guard(device)(to_port_host(port));
+ guard(device)(&port->dev);
dport = cxl_find_dport_by_dev(port, dport_dev);
if (!dport) {
dport = probe_dport(port, dport_dev);
@@ -1857,13 +1883,11 @@ int devm_cxl_enumerate_ports(struct cxl_memdev *cxlmd)
* RP port enumerated by cxl_acpi without dport will
* have the dport added here.
*/
- scoped_guard(device, &port->dev) {
- dport = find_or_add_dport(port, dport_dev);
- if (IS_ERR(dport)) {
- if (PTR_ERR(dport) == -EAGAIN)
- goto retry;
- return PTR_ERR(dport);
- }
+ dport = find_or_add_dport(port, dport_dev);
+ if (IS_ERR(dport)) {
+ if (PTR_ERR(dport) == -EAGAIN)
+ goto retry;
+ return PTR_ERR(dport);
}
rc = cxl_add_ep(dport, &cxlmd->dev);
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v2 1/2] cxl/port: Hold port host lock while dport adding.
2026-02-07 13:35 ` [PATCH v2 1/2] cxl/port: Hold port host lock while dport adding Li Ming
@ 2026-02-07 17:28 ` dan.j.williams
2026-02-08 12:05 ` Li Ming
2026-02-08 12:20 ` Li Ming
0 siblings, 2 replies; 10+ messages in thread
From: dan.j.williams @ 2026-02-07 17:28 UTC (permalink / raw)
To: Li Ming, dave, jonathan.cameron, dave.jiang, alison.schofield,
vishal.l.verma, ira.weiny, dan.j.williams
Cc: linux-cxl, linux-kernel
Li Ming wrote:
> CXL testing environment can trigger following trace
> Oops: general protection fault, probably for non-canonical address 0xdffffc0000000092: 0000 [#1] SMP KASAN NOPTI
> KASAN: null-ptr-deref in range [0x0000000000000490-0x0000000000000497]
> RIP: 0010:cxl_dpa_to_region+0x105/0x1f0 [cxl_core]
> Call Trace:
> <TASK>
> cxl_event_trace_record+0xd1/0xa70 [cxl_core]
> __cxl_event_trace_record+0x12f/0x1e0 [cxl_core]
> cxl_mem_get_records_log+0x261/0x500 [cxl_core]
> cxl_mem_get_event_records+0x7c/0xc0 [cxl_core]
> cxl_mock_mem_probe+0xd38/0x1c60 [cxl_mock_mem]
> platform_probe+0x9d/0x130
> really_probe+0x1c8/0x960
> __driver_probe_device+0x187/0x3e0
> driver_probe_device+0x45/0x120
> __device_attach_driver+0x15d/0x280
>
> When CXL subsystem adds a cxl port to a hierarchy, there is a small
> window where the new port becomes visible before it is bound to a
> driver. This happens because device_add() adds a device to bus device
> list before bus_probe_device() binds it to a driver.
> So if two cxl memdevs are trying to add a dport to a same port via
> devm_cxl_enumerate_ports(), the second cxl memdev may observe the port
> and attempt to add a dport, but fails because the port has not yet been
> attached to cxl port driver. That causes the memdev->endpoint can not be
> updated.
>
> The sequence is like:
>
> CPU 0 CPU 1
> devm_cxl_enumerate_ports()
> # port not found, add it
> add_port_attach_ep()
> # hold the parent port lock
> # to add the new port
> devm_cxl_create_port()
> device_add()
> # Add dev to bus devs list
> bus_add_device()
> devm_cxl_enumerate_ports()
> # found the port
> find_cxl_port_by_uport()
> # hold port lock to add a dport
> device_lock(the port)
> find_or_add_dport()
> cxl_port_add_dport()
> return -ENXIO because port->dev.driver is NULL
> device_unlock(the port)
> bus_probe_device()
> # hold the port lock
> # for attaching
> device_lock(the port)
> attaching the new port
> device_unlock(the port)
>
> To fix this race, require that dport addition holds the host lock
> of the target port(the host of CXL root and all cxl host bridge ports is
> the platform firmware device, the host of all other ports is their
> parent port). The CXL subsystem already requires holding the host lock
> while attaching a new port. Therefore, successfully acquiring the host
> lock guarantees that port attaching has completed.
>
> Fixes: 4f06d81e7c6a ("cxl: Defer dport allocation for switch ports")
> Signed-off-by: Li Ming <ming.li@zohomail.com>
> ---
> drivers/cxl/core/port.c | 40 ++++++++++++++++++++++++++++++++--------
> 1 file changed, 32 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/cxl/core/port.c b/drivers/cxl/core/port.c
> index 5c82e6f32572..6f0d9fe439db 100644
> --- a/drivers/cxl/core/port.c
> +++ b/drivers/cxl/core/port.c
> @@ -612,6 +612,23 @@ struct cxl_port *parent_port_of(struct cxl_port *port)
> return port->parent_dport->port;
> }
>
> +static struct device *to_port_host(struct cxl_port *port)
> +{
> + struct cxl_port *parent = parent_port_of(port);
> +
> + /*
> + * The host of CXL root port and the first level of ports is
> + * the platform firmware device, the host of all other ports
> + * is their parent port.
> + */
> + if (!parent)
> + return port->uport_dev;
This helper looks good and this case is theoretically correct, but I
assume that find_or_add_dport() never hits this case, right?
How about move the introduction of this helper to its own lead-in patch
and use it to replace the open coded version of this pattern in
unregister_port(), __devm_cxl_add_dport(), and endpoint_host().
I do notice you caught the one in unregister_port(), but there are more.
With that change you can add:
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v2 1/2] cxl/port: Hold port host lock while dport adding.
2026-02-07 17:28 ` dan.j.williams
@ 2026-02-08 12:05 ` Li Ming
2026-02-08 12:20 ` Li Ming
1 sibling, 0 replies; 10+ messages in thread
From: Li Ming @ 2026-02-08 12:05 UTC (permalink / raw)
To: dan.j.williams
Cc: linux-cxl, linux-kernel, dave, jonathan.cameron, dave.jiang,
alison.schofield, vishal.l.verma, ira.weiny
在 2026/2/8 01:28, dan.j.williams@intel.com 写道:
> Li Ming wrote:
[...]
>>
>> diff --git a/drivers/cxl/core/port.c b/drivers/cxl/core/port.c
>> index 5c82e6f32572..6f0d9fe439db 100644
>> --- a/drivers/cxl/core/port.c
>> +++ b/drivers/cxl/core/port.c
>> @@ -612,6 +612,23 @@ struct cxl_port *parent_port_of(struct cxl_port *port)
>> return port->parent_dport->port;
>> }
>>
>> +static struct device *to_port_host(struct cxl_port *port)
>> +{
>> + struct cxl_port *parent = parent_port_of(port);
>> +
>> + /*
>> + * The host of CXL root port and the first level of ports is
>> + * the platform firmware device, the host of all other ports
>> + * is their parent port.
>> + */
>> + if (!parent)
>> + return port->uport_dev;
> This helper looks good and this case is theoretically correct, but I
> assume that find_or_add_dport() never hits this case, right?
Right. This case is only for finding cxl root's host,
find_or_add_dport() is
only used for cxl host bridge ports and cxl switch ports.
> How about move the introduction of this helper to its own lead-in patch
> and use it to replace the open coded version of this pattern in
> unregister_port(), __devm_cxl_add_dport(), and endpoint_host().
Sure, will do it in next version, thanks for that.
Ming
> I do notice you caught the one in unregister_port(), but there are more.
>
> With that change you can add:
>
> Reviewed-by: Dan Williams <dan.j.williams@intel.com>
>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v2 1/2] cxl/port: Hold port host lock while dport adding.
2026-02-07 17:28 ` dan.j.williams
2026-02-08 12:05 ` Li Ming
@ 2026-02-08 12:20 ` Li Ming
1 sibling, 0 replies; 10+ messages in thread
From: Li Ming @ 2026-02-08 12:20 UTC (permalink / raw)
To: dan.j.williams
Cc: linux-cxl, linux-kernel, dave, jonathan.cameron, dave.jiang,
alison.schofield, vishal.l.verma, ira.weiny
在 2026/2/8 01:28, dan.j.williams@intel.com 写道:
> Li Ming wrote:
[...]
> +static struct device *to_port_host(struct cxl_port *port)
> +{
> + struct cxl_port *parent = parent_port_of(port);
> +
> + /*
> + * The host of CXL root port and the first level of ports is
> + * the platform firmware device, the host of all other ports
> + * is their parent port.
> + */
> + if (!parent)
> + return port->uport_dev;
> This helper looks good and this case is theoretically correct, but I
> assume that find_or_add_dport() never hits this case, right?
>
> How about move the introduction of this helper to its own lead-in patch
> and use it to replace the open coded version of this pattern in
> unregister_port(), __devm_cxl_add_dport(), and endpoint_host().
BTW, after taking a look into __devm_cxl_add_dport(), this helper is not
suitable for this case,
the host in __devm_cxl_add_dport() means the new dport's host, it is the
device of the cxl port which
the cxl port belongs(or the uport_dev of the cxl port if the port is cxl
root).
So I will update unregister_port() and endpoint_host(), and check if
there are other
places needed to be cleanup.
Ming
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 2/2] cxl/port: unregister_port() cleanup
2026-02-07 13:35 [PATCH v2 0/2] Fix port enumeration failure Li Ming
2026-02-07 13:35 ` [PATCH v2 1/2] cxl/port: Hold port host lock while dport adding Li Ming
@ 2026-02-07 13:35 ` Li Ming
2026-02-10 3:04 ` [PATCH v2 0/2] Fix port enumeration failure Alison Schofield
2 siblings, 0 replies; 10+ messages in thread
From: Li Ming @ 2026-02-07 13:35 UTC (permalink / raw)
To: dave, jonathan.cameron, dave.jiang, alison.schofield,
vishal.l.verma, ira.weiny, dan.j.williams
Cc: linux-cxl, linux-kernel
to_port_host() has been introduced, use to_port_host() in
unregister_port() to get the host device of the target port.
Signed-off-by: Li Ming <ming.li@zohomail.com>
---
drivers/cxl/core/port.c | 16 +---------------
1 file changed, 1 insertion(+), 15 deletions(-)
diff --git a/drivers/cxl/core/port.c b/drivers/cxl/core/port.c
index 6f0d9fe439db..5754cffe6b8e 100644
--- a/drivers/cxl/core/port.c
+++ b/drivers/cxl/core/port.c
@@ -632,22 +632,8 @@ static struct device *to_port_host(struct cxl_port *port)
static void unregister_port(void *_port)
{
struct cxl_port *port = _port;
- struct cxl_port *parent = parent_port_of(port);
- struct device *lock_dev;
-
- /*
- * CXL root port's and the first level of ports are unregistered
- * under the platform firmware device lock, all other ports are
- * unregistered while holding their parent port lock.
- */
- if (!parent)
- lock_dev = port->uport_dev;
- else if (is_cxl_root(parent))
- lock_dev = parent->uport_dev;
- else
- lock_dev = &parent->dev;
- device_lock_assert(lock_dev);
+ device_lock_assert(to_port_host(port));
port->dead = true;
device_unregister(&port->dev);
}
--
2.43.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v2 0/2] Fix port enumeration failure
2026-02-07 13:35 [PATCH v2 0/2] Fix port enumeration failure Li Ming
2026-02-07 13:35 ` [PATCH v2 1/2] cxl/port: Hold port host lock while dport adding Li Ming
2026-02-07 13:35 ` [PATCH v2 2/2] cxl/port: unregister_port() cleanup Li Ming
@ 2026-02-10 3:04 ` Alison Schofield
2026-02-10 11:56 ` Li Ming
2 siblings, 1 reply; 10+ messages in thread
From: Alison Schofield @ 2026-02-10 3:04 UTC (permalink / raw)
To: Li Ming
Cc: dave, jonathan.cameron, dave.jiang, vishal.l.verma, ira.weiny,
dan.j.williams, linux-cxl, linux-kernel
On Sat, Feb 07, 2026 at 09:35:10PM +0800, Li Ming wrote:
> I ran CXL mock testing with next branch, I usually hit the following
> call trace.
Hi Ming,
I started hitting this after you first posted, however it takes me a
long time to hit it. Do you have a method to reproduce that is better
than running on repeat as I do? Thanks!
-- Alison
snip
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 0/2] Fix port enumeration failure
2026-02-10 3:04 ` [PATCH v2 0/2] Fix port enumeration failure Alison Schofield
@ 2026-02-10 11:56 ` Li Ming
2026-02-10 15:00 ` Dave Jiang
0 siblings, 1 reply; 10+ messages in thread
From: Li Ming @ 2026-02-10 11:56 UTC (permalink / raw)
To: Alison Schofield
Cc: dave, jonathan.cameron, dave.jiang, vishal.l.verma, ira.weiny,
dan.j.williams, linux-cxl, linux-kernel
在 2026/2/10 11:04, Alison Schofield 写道:
> On Sat, Feb 07, 2026 at 09:35:10PM +0800, Li Ming wrote:
>> I ran CXL mock testing with next branch, I usually hit the following
>> call trace.
> Hi Ming,
> I started hitting this after you first posted, however it takes me a
> long time to hit it. Do you have a method to reproduce that is better
> than running on repeat as I do? Thanks!
> -- Alison
>
> snip
Hi Alison,
My environment is a VM with 2 CPUs, maybe you can try it.
I use a script to run "meson test --suite=cxl" again and again in the VM.
I can typically reproduce it within 30 minutes, I have also encountered
cases where it fails to reproduce even after one or two hours.
Ming
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 0/2] Fix port enumeration failure
2026-02-10 11:56 ` Li Ming
@ 2026-02-10 15:00 ` Dave Jiang
2026-02-11 11:49 ` Li Ming
0 siblings, 1 reply; 10+ messages in thread
From: Dave Jiang @ 2026-02-10 15:00 UTC (permalink / raw)
To: Li Ming, Alison Schofield
Cc: dave, jonathan.cameron, vishal.l.verma, ira.weiny, dan.j.williams,
linux-cxl, linux-kernel
On 2/10/26 4:56 AM, Li Ming wrote:
>
> 在 2026/2/10 11:04, Alison Schofield 写道:
>> On Sat, Feb 07, 2026 at 09:35:10PM +0800, Li Ming wrote:
>>> I ran CXL mock testing with next branch, I usually hit the following
>>> call trace.
>> Hi Ming,
>> I started hitting this after you first posted, however it takes me a
>> long time to hit it. Do you have a method to reproduce that is better
>> than running on repeat as I do? Thanks!
>> -- Alison
>>
>> snip
>
> Hi Alison,
>
> My environment is a VM with 2 CPUs, maybe you can try it.
>
> I use a script to run "meson test --suite=cxl" again and again in the VM.
The other day Alison showed me the --repeat=N parameter for meson test. You can use that instead of script unless it does something special.
>
> I can typically reproduce it within 30 minutes, I have also encountered cases where it fails to reproduce even after one or two hours.
>
>
> Ming
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 0/2] Fix port enumeration failure
2026-02-10 15:00 ` Dave Jiang
@ 2026-02-11 11:49 ` Li Ming
0 siblings, 0 replies; 10+ messages in thread
From: Li Ming @ 2026-02-11 11:49 UTC (permalink / raw)
To: Dave Jiang, Alison Schofield
Cc: dave, jonathan.cameron, vishal.l.verma, ira.weiny, dan.j.williams,
linux-cxl, linux-kernel
在 2026/2/10 23:00, Dave Jiang 写道:
>
> On 2/10/26 4:56 AM, Li Ming wrote:
>> 在 2026/2/10 11:04, Alison Schofield 写道:
>>> On Sat, Feb 07, 2026 at 09:35:10PM +0800, Li Ming wrote:
>>>> I ran CXL mock testing with next branch, I usually hit the following
>>>> call trace.
>>> Hi Ming,
>>> I started hitting this after you first posted, however it takes me a
>>> long time to hit it. Do you have a method to reproduce that is better
>>> than running on repeat as I do? Thanks!
>>> -- Alison
>>>
>>> snip
>> Hi Alison,
>>
>> My environment is a VM with 2 CPUs, maybe you can try it.
>>
>> I use a script to run "meson test --suite=cxl" again and again in the VM.
> The other day Alison showed me the --repeat=N parameter for meson test. You can use that instead of script unless it does something special.
>
Good to know that, thanks. I tried it and it can also hit the issue.
Ming
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-02-11 11:50 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-07 13:35 [PATCH v2 0/2] Fix port enumeration failure Li Ming
2026-02-07 13:35 ` [PATCH v2 1/2] cxl/port: Hold port host lock while dport adding Li Ming
2026-02-07 17:28 ` dan.j.williams
2026-02-08 12:05 ` Li Ming
2026-02-08 12:20 ` Li Ming
2026-02-07 13:35 ` [PATCH v2 2/2] cxl/port: unregister_port() cleanup Li Ming
2026-02-10 3:04 ` [PATCH v2 0/2] Fix port enumeration failure Alison Schofield
2026-02-10 11:56 ` Li Ming
2026-02-10 15:00 ` Dave Jiang
2026-02-11 11:49 ` Li Ming
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox