The recent xlio_list change introduced a bug into epoll ready list iteration: a socket can be removed from the list before getting the next item. This leads to iteration over a removed item causing endless loop.
As a fix, remember 'si_next' before removing a socket from the list.
Also align mem_buf_desc_t to the cache line boundary.
What
Fix epoll ready list iteration
Why ?
Bugfix.
Change type
What kind of change does this PR introduce?
[x] Bugfix
[ ] Feature
[ ] Code style update
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Tests
[ ] Other
Check list
[ ] Code follows the style de facto guidelines of this project
[ ] Comments have been inserted in hard to understand places
Description
The recent xlio_list change introduced a bug into epoll ready list iteration: a socket can be removed from the list before getting the next item. This leads to iteration over a removed item causing endless loop.
As a fix, remember 'si_next' before removing a socket from the list.
Also align mem_buf_desc_t to the cache line boundary.
What
Fix epoll ready list iteration
Why ?
Bugfix.
Change type
What kind of change does this PR introduce?
Check list