diff options
author | Kuniyuki Iwashima <kuniyu@amazon.com> | 2025-01-16 14:34:40 +0900 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2025-01-20 11:27:41 -0800 |
commit | b3e365bbf4f47b8f76b25b0fcf3f38916ca53e42 (patch) | |
tree | 5c95ac94b8c5120f48409e5d8d55128d68ed3b17 /tools/perf/scripts/python/export-to-sqlite.py | |
parent | bace4b468049a558295a0f59460fcb51e28f8fde (diff) |
af_unix: Set drop reason in unix_dgram_disconnected().
unix_dgram_disconnected() is called from two places:
1. when a connect()ed socket dis-connect()s or re-connect()s to
another socket
2. when sendmsg() fails because the peer socket that the client
has connect()ed to has been close()d
Then, the client's recv queue is purged to remove all messages from
the old peer socket.
Let's define a new drop reason for that case.
# echo 1 > /sys/kernel/tracing/events/skb/kfree_skb/enable
# python3
>>> from socket import *
>>>
>>> # s1 has a message from s2
>>> s1, s2 = socketpair(AF_UNIX, SOCK_DGRAM)
>>> s2.send(b'hello world')
>>>
>>> # re-connect() drops the message from s2
>>> s3 = socket(AF_UNIX, SOCK_DGRAM)
>>> s3.bind('')
>>> s1.connect(s3.getsockname())
# cat /sys/kernel/tracing/trace_pipe
python3-250 ... kfree_skb: ... location=skb_queue_purge_reason+0xdc/0x110 reason: UNIX_DISCONNECT
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://patch.msgid.link/20250116053441.5758-8-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/export-to-sqlite.py')
0 files changed, 0 insertions, 0 deletions