[PATCH net-next v4 0/1] af_unix: Fix priority inversion issue

Nam Cao posted 1 patch 1 month, 4 weeks ago
net/unix/garbage.c | 3 ---
1 file changed, 3 deletions(-)
[PATCH net-next v4 0/1] af_unix: Fix priority inversion issue
Posted by Nam Cao 1 month, 4 weeks ago
Hi,

While auditing AF_UNIX sockets, I noticed that the sendmsg() code paths may
block on the garbage collector running as workqueue. This can cause
priority inversion and latency for real-time users.

The implementation does kindly avoid blocking "sane users". However, it is
impossible to tell whether the kernel's definition of "sane users"
accurately describes all users out there.

Digging into history and figuring out the reasons why sendmsg() needs to
wait for garbage collector, it is determined that those reasons no longer
apply.

v4:
  - Downsize this series to just removing the priority
    inversion. Garbage collector scheduling should still be cleaned up,
    but that is non-trivial and I do not want that to stand in the way
    of this simple fix.

v3:
  - Move unix_schedule_gc() to be after exit_task_work()

v2:
  - Add patch [1/3]
  - Rebase the other two patches onto the new patch
  - Change commit message to be more precise

Nam Cao (1):
  af_unix: Do not wait for garbage collector in sendmsg()

 net/unix/garbage.c | 3 ---
 1 file changed, 3 deletions(-)

-- 
2.47.3
Re: [PATCH net-next v4 0/1] af_unix: Fix priority inversion issue
Posted by Nam Cao 1 month ago
Hi,

Nam Cao <namcao@linutronix.de> writes:
> While auditing AF_UNIX sockets, I noticed that the sendmsg() code paths may
> block on the garbage collector running as workqueue. This can cause
> priority inversion and latency for real-time users.
>
> The implementation does kindly avoid blocking "sane users". However, it is
> impossible to tell whether the kernel's definition of "sane users"
> accurately describes all users out there.
>
> Digging into history and figuring out the reasons why sendmsg() needs to
> wait for garbage collector, it is determined that those reasons no longer
> apply.

I just looked at patchwork and noticed that this patch is marked as
"Changes Requested", but I'm not sure what changes are still expected.

Did I miss a question or an issue that still needs to be addressed?

Nam