#
8bdf4aaf |
|
24-Feb-2021 |
Shuo Chen <chenshuo@chenshuo.com> |
Use TEMP_FAILURE_RETRY() to deal with EINTR. Also replace read(2) with recv(2), write(2) with send(2). On Linux 5.10, recv/send save a hop in VFS, so it's a bit more efficient. read -> do_syscall_64 -> ksys_read -> vfs_read -> new_sync_read -> call_read_iter -> sock_read_iter -> inet_recvmsg readv -> do_syscall_64 -> do_readv -> vfs_readv -> do_iter_read -> do_iter_readv_writev -> call_read_iter -> sock_read_iter -> inet_recvmsg recv -> do_syscall_64 -> __x64_sys_recvfrom -> __se_sys_recvfrom -> __do_sys_recvfrom -> __sys_recv_from -> inet_recvmsg write -> do_syscall_64 -> ksys_write -> vfs_write -> new_sync_write -> call_write_iter -> sock_write_iter -> sock_sendmsg send -> do_syscall_64 -> __x64_sys_sendto -> __se_sys_sendto -> __do_sys_sendto -> __sys_sendto -> sock_sendmsg |