11/07/2022 14:45, Jerin Jacob: > On Thu, Jul 7, 2022 at 5:13 PM Mattias Rönnblom <hof...@lysator.liu.se> wrote: > > > > From: Mattias Rönnblom <mattias.ronnb...@ericsson.com> > > > > Fix bug in flow migration, which under certain conditions causes > > reordering and violation of atomicity guarantees. > > > > The issue occurs when the processing of a flow (on an atomic queue) > > has resulted in events enqueued to a flow currently being migrated, > > and the former (producer) flow is also selected for migration. The > > events are buffered ("paused") on the originating port, and released > > (forwarded) when the migration has completed. However, at the time of > > "unpausing" the latter (consumer) flow, processing of the producer > > flow on the port to which it was migrated may have already produced > > events, for the same paused flow. This constitutes a race condition, > > and depending on which port wins, reordering may have been introduced. > > > > This patch forbids migration when a port has paused events, since > > those events may have been the result of processing a to-be-migrated > > flow. > > > > This patch also disallows processing events pertaining to a flow under > > migration, for the same reason. A new buffer is introduced, which > > holds such not-yet-processed events dequeued from the port's input > > ring. Such events are forwarded to the target port as a part of the > > migration process. > > > > The 'forwarding' migration state is eliminated, and instead background > > processing is only performed if there are no unreleased events on the > > port. > > > > The bug is primarily triggered in situations where multiple flows are > > migrated as one transaction, but may occur even if only a single flow > > is migrated (e.g., with older DSW versions, which does not support > > multi-flow migration). > > > > Fixes: f6257b22e767 ("event/dsw: add load balancing") > > Cc: sta...@dpdk.org > > > > Signed-off-by: Mattias Rönnblom <mattias.ronnb...@ericsson.com> > > + @Thomas Monjalon to merge to the main tree directly.
No sorry, it would not be serious to merge such a big patch in the last minute. And it is not a new bug.