|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