udp_poll(9)
π NAME π
okay so bestie, this is udp_poll(9) from the Kernel API Manual, and it's here to wait for a UDP event β¨ literally that's the whole vibe π
β¨ SYNOPSIS β¨
__poll_t udp_poll (struct file *file , struct socket *sock , poll_table *wait );
π«Ά ARGUMENTS π«Ά
fileβ the file struct ποΈ like, that file struct.sockβ the socket 𧦠yep, that socket.waitβ the poll table π« the waiting-table situation.
πΈ DESCRIPTION πΈ
so this is the same as datagram poll, except for the special case of blocking sockets π«Ά
here's the tea: if an application is using a blocking fd and a packet with a checksum error is in the queue, then it could get a return from select indicating data is available β but then it blocks when reading it π not the plot twist we wanted.
so there's special case code added to work around these arguably broken applications π periodt.
ngl, that's the whole reason this special case exists β those apps are arguably broken, and this is the workaround π
π SEE ALSO π
Kernel file ./net/ipv4/udp.c has the friend group: udp_lib_get_port(9), udp4_lib_lookup1(9), udp4_hwcsum(9), and first_packet_length(9) π go say hi π
mwah π this little page lives in ./net/ipv4, dated October 2026, and it's literally udp_poll(9) β bye bestie! π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms