|WARNING| ipc: increase hotplug devargs limit
dpdklab at iol.unh.edu
dpdklab at iol.unh.edu
Tue Nov 3 18:53:35 CET 2026
Test-Label: ai-code-review
Test-Status: WARNING
https://dpdk.org/patch/172603
_AI Code Review_
=== Patch Review: series.patch (via Claude) ===
Review date: 2026-11-03
# DPDK Patch Review
## ERRORS
None
## WARNINGS
### 1. Missing Release Notes Update
**Location:** No changes to `doc/guides/rel_notes/`
**Issue:** This patch increases the maximum devargs length from 127 to 247 bytes, which is a user-visible behavior change. Applications that were previously getting `-E2BIG` errors with devargs between 128-247 bytes will now succeed. This should be documented in release notes.
**Suggested Fix:** Add a note to the current release notes file (e.g., `doc/guides/rel_notes/release_26_03.rst`) under a "EAL" or "Multi-process" section:
```rst
* **Increased hotplug devargs length limit in multi-process mode.**
The maximum device arguments length for hotplug operations in multi-process
mode has been increased from 127 to 247 bytes (excluding terminating null).
```
### 2. Format Specifier Type Mismatch
**Location:** `lib/eal/common/eal_common_dev.c:279`
```c
EAL_LOG(ERR, "devargs truncated (len %zu, max %zu)",
strlen(devargs), EAL_DEV_MP_DEV_ARGS_MAX_LEN);
```
**Issue:** `EAL_DEV_MP_DEV_ARGS_MAX_LEN` is now a computed expression that evaluates to `size_t` (result of `sizeof` operations), but the format specifier is `%zu` which expects exactly that type. However, the expression result type is implementation-defined. While this will work correctly on all platforms DPDK supports, explicitly casting improves clarity.
**Suggested Fix:**
```c
EAL_LOG(ERR, "devargs truncated (len %zu, max %zu)",
strlen(devargs), (size_t)EAL_DEV_MP_DEV_ARGS_MAX_LEN);
```
## INFO
### 1. Macro Calculation Comments
**Location:** `lib/eal/common/hotplug_mp.h:14-16`
The comment explaining the macro calculation could be more precise:
```c
#define EAL_DEV_MP_DEV_ARGS_MAX_LEN (RTE_MP_MAX_PARAM_LEN \
- sizeof(enum eal_dev_req_type) - sizeof(int))
/* minus t and result from struct eal_dev_mp_req */
```
The comment refers to fields `t` and `result`, but their names in `struct eal_dev_mp_req` are `t` and `result` respectively. The comment is accurate but could be clearer about what's being excluded (the two non-array fixed-size fields).
**Suggested improvement:**
```c
/* minus fixed fields t and result from struct eal_dev_mp_req */
```
This is a minor clarity improvement, not a defect.
### 2. Static Assertion Placement
**Location:** `lib/eal/common/hotplug_mp.h:33-34`
The `static_assert` correctly validates that the struct fits within `RTE_MP_MAX_PARAM_LEN`. This is good defensive programming. The assertion is placed after the struct definition, which is appropriate.
Review-Result: WARNING
More information about the test-report
mailing list