From: Stephen Hemminger <stephen@networkplumber.org>
To: Konstantin Ananyev <konstantin.ananyev@huawei.com>
Cc: <dev@dpdk.org>, <honnappa.nagarahalli@arm.com>,
<jerinj@marvell.com>, <hemant.agrawal@nxp.com>,
<drc@linux.ibm.com>
Subject: Re: [PATCH v1 0/4] ring: some fixes and improvements
Date: Thu, 22 Jan 2026 21:01:48 -0800 [thread overview]
Message-ID: <20260122210148.13684289@phoenix.local> (raw)
In-Reply-To: <20250521111432.207936-1-konstantin.ananyev@huawei.com>
On Wed, 21 May 2025 12:14:28 +0100
Konstantin Ananyev <konstantin.ananyev@huawei.com> wrote:
> First two patches are ‘low risk’ ones.
> Third one touches some core functions within rte_ring library and
> would probably requires extra reviews/testing from different vendors.
> 4th one enables C11 based code on all x86 platforms by default.
> The stretch goal for it – make all supported platforms to use C11
> based code and get rid of legacy code in rte_ring_generic_pvt.h.
> If there would be some issues with latest two patches – we can limit
> ourselves with just first two to apply.
>
> Konstantin Ananyev (4):
> ring: introduce extra run-time checks
> ring/soring: fix head-tail synchronization issue
> ring: fix potential sync issue between head and tail values
> config/x86: enable RTE_USE_C11_MEM_MODEL by default
>
> config/x86/meson.build | 1 +
> lib/ring/rte_ring_c11_pvt.h | 29 ++++++++++++++++++-----------
> lib/ring/rte_ring_elem_pvt.h | 8 ++++++--
> lib/ring/rte_ring_hts_elem_pvt.h | 14 ++++++++++----
> lib/ring/rte_ring_rts_elem_pvt.h | 14 ++++++++++----
> lib/ring/soring.c | 2 ++
> 6 files changed, 47 insertions(+), 21 deletions(-)
>
This patch needs work before being seriously considered.
Lots of feedback on this series is not addressed. No longer applies to main,
and AI had more to say.
=== Patch Review: bundle-1678-ring-fix.mbox (via Claude) ===
# DPDK Patch Review: bundle-1678-ring-fix.mbox
## Overview
This patch series (4 patches) addresses ring synchronization issues and introduces runtime checks for the DPDK ring library. The series includes bug fixes for head-tail synchronization problems discovered on ARM platforms and enables C11 memory model by default on x86.
---
## Patch 1/4: ring: introduce extra run-time checks
### Errors
1. **Missing SPDX license identifier in modified files**
- The patch modifies existing files but doesn't show the license headers. Assuming they exist in the original files, this is acceptable.
2. **Double space in commit message body**
- Line: "return meaningful *entries value" has two spaces before `*entries`
### Warnings
1. **Subject line could be more descriptive**
- Current: "ring: introduce extra run-time checks"
- The subject is acceptable but could specify "RTE_ASSERT checks" for clarity
2. **Missing Cc: stable@dpdk.org**
- This patch adds debugging assertions which could be useful for stable releases, though it's primarily a development aid
### Info
1. **Good practice**: Adding `RTE_ASSERT()` checks helps catch programming errors during development
2. **Code change in rte_ring_c11_pvt.h**: Moving `*new_head = *old_head + n;` before the early return is a behavioral change that should be documented in the commit message
---
## Patch 2/4: ring/soring: fix head-tail synchronization issue
### Errors
1. **Missing `Cc: stable@dpdk.org`**
- This is a bug fix with a `Fixes:` tag, so it should include `Cc: stable@dpdk.org` for backport consideration
### Warnings
1. **Commit message body line exceeds 75 characters**
- Multiple lines exceed the 75-character limit:
- "I believe that we are hitting the following race-condition scenario here:" (72 chars - OK)
- "Note that this issue happens only on the second iteration of" (61 chars - OK)
- But several lines like "One extra thing to note – I think the same problem potentially exists" appear close to or exceed the limit
- Lines with em-dashes (–) and technical content should be wrapped properly
2. **Use of non-ASCII characters**
- The commit message uses em-dashes (–) instead of regular hyphens (-) or double hyphens (--)
- Example: "i.e. – when we use" should be "i.e., when we use" or "i.e. - when we use"
3. **Commit message starts explanation with scenario numbers but inconsistent formatting**
- The numbered steps (1, 2, 3) are good for clarity but formatting varies
### Info
1. **Well-documented bug analysis**: The commit message provides excellent context about the race condition
2. **Alternative solution mentioned**: The commit notes an alternative fix approach (using Acquire-Release for CAS), which is helpful for reviewers
3. **The fix adds memory fences after tail updates** - this is a valid approach but patch 3/4 provides a potentially cleaner solution
---
## Patch 3/4: ring: fix potential sync issue between head and tail values
### Errors
1. **Missing `Cc: stable@dpdk.org`**
- This is a bug fix with multiple `Fixes:` tags, so it should include `Cc: stable@dpdk.org`
2. **Fixes tags may reference commits not in stable branches**
- `Fixes: 49594a63147a ("ring/c11: relax ordering for load and store of the head")` - verify this is the correct commit
### Warnings
1. **Commit message body line length issues**
- Several lines appear to exceed 75 characters
- Technical explanations should be wrapped appropriately
2. **Use of non-ASCII characters**
- Similar to patch 2/4, uses em-dashes (–) instead of ASCII hyphens
3. **Incomplete sentence in commit message**
- "But, so far I didn't manage to reproduce it in reality." - grammatically fine but informal
4. **Comment style inconsistency in code**
```c
/*
* on failure, *old_head is updated.
* this CAS(ACQ_REL, ACQUIRE) serves as a hoist
```
- Comment starts with lowercase after `/*` which is inconsistent with DPDK style (should start with uppercase or use `/* lowercase */` format consistently)
### Info
1. **This patch supersedes patch 2/4's approach** - The series structure is logical: patch 2 provides a quick fix, patch 3 provides the "better" fix
2. **Removes the fences added in patch 2/4** - This is correct as the CAS ordering change makes them unnecessary
3. **Performance consideration noted** - Good that the author tested performance impact
---
## Patch 4/4: config/x86: enable RTE_USE_C11_MEM_MODEL by default
### Errors
None identified.
### Warnings
1. **Missing documentation update**
- Enabling `RTE_USE_C11_MEM_MODEL` by default on x86 is a significant change that should be noted in release notes
- Consider adding an entry in `doc/guides/rel_notes/release_XX_XX.rst`
2. **Potential ABI/behavior change**
- While this shouldn't cause ABI issues, it changes the default behavior on x86 platforms
- Applications may see different performance characteristics
### Info
1. **Good direction**: Moving toward C11 memory model is the modern approach
2. **Completes the series**: This patch makes sense in context of the synchronization fixes
3. **Subject line is clear and accurate**
---
## General Series Issues
### Warnings
1. **Series ordering consideration**
- Patches 2 and 3 both fix the same underlying issue differently
- Patch 3 removes code added by patch 2
- Consider squashing patches 2 and 3, or clearly document in patch 2 that it's a "temporary" fix superseded by patch 3
2. **Missing cover letter context in individual patches**
- Each patch should stand alone for `git bisect`, but the relationship between patches 2 and 3 could be clearer
### Info
1. **Good testing evidence**: The author mentions specific test failures and hardware (Ampere Altra Max)
2. **Comprehensive fix approach**: The series addresses the issue at multiple levels
---
## Summary
| Severity | Count | Key Issues |
|----------|-------|------------|
| Error | 2 | Missing `Cc: stable@dpdk.org` for bug fixes (patches 2, 3) |
| Warning | 10 | Line length issues, non-ASCII characters, missing release notes, comment style |
| Info | 8 | Good documentation, well-reasoned fixes, performance consideration |
### Recommended Actions
1. **Add `Cc: stable@dpdk.org`** to patches 2/4 and 3/4
2. **Wrap commit message lines** to stay within 75 characters
3. **Replace em-dashes (–)** with regular hyphens or double hyphens
4. **Add release notes entry** for enabling C11 memory model on x86
5. **Consider squashing patches 2 and 3** or better documenting their relationship
6. **Fix double space** in patch 1/4 commit message
prev parent reply other threads:[~2026-01-23 5:01 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-21 11:14 [PATCH v1 0/4] ring: some fixes and improvements Konstantin Ananyev
2025-05-21 11:14 ` [PATCH v1 1/4] ring: introduce extra run-time checks Konstantin Ananyev
2025-05-21 12:14 ` Morten Brørup
2025-05-21 12:34 ` Konstantin Ananyev
2025-05-21 18:36 ` Morten Brørup
2025-05-21 19:38 ` Konstantin Ananyev
2025-05-21 22:02 ` Morten Brørup
2025-05-26 8:39 ` Konstantin Ananyev
2025-05-26 9:57 ` Morten Brørup
2025-05-21 11:14 ` [PATCH v1 2/4] ring/soring: fix head-tail synchronization issue Konstantin Ananyev
2025-05-21 11:14 ` [PATCH v1 3/4] ring: fix potential sync issue between head and tail values Konstantin Ananyev
2025-05-21 20:26 ` Morten Brørup
2025-05-22 22:03 ` Wathsala Wathawana Vithanage
2025-05-26 11:54 ` Konstantin Ananyev
2025-05-27 21:33 ` Wathsala Wathawana Vithanage
2025-05-27 22:47 ` Wathsala Wathawana Vithanage
2025-06-02 11:11 ` Konstantin Ananyev
2025-06-04 3:47 ` Wathsala Wathawana Vithanage
2025-06-04 17:20 ` Wathsala Wathawana Vithanage
2025-06-12 11:39 ` Konstantin Ananyev
2025-05-21 11:14 ` [PATCH v1 4/4] config/x86: enable RTE_USE_C11_MEM_MODEL by default Konstantin Ananyev
2025-05-21 19:47 ` Morten Brørup
2026-01-14 19:42 ` [PATCH v1 0/4] ring: some fixes and improvements Stephen Hemminger
2026-01-23 5:01 ` Stephen Hemminger [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260122210148.13684289@phoenix.local \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=drc@linux.ibm.com \
--cc=hemant.agrawal@nxp.com \
--cc=honnappa.nagarahalli@arm.com \
--cc=jerinj@marvell.com \
--cc=konstantin.ananyev@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.