Sept. 14, 2011
2:04 p.m.
Hi, In the following cases, how does the CPU work done by the kernel on behalf of the application get accounted for? 1. When an application writes to a TCP/UDP socket, the networking stack does transmit side processing. 2. When an application receives data on a TCP/UDP socket, the networking stack does receive side processing.
From what I understand: In case (1), the kernel code executes in the context of the application, so the CPU cycles are accounted directly to process that called write() (or send/sendto). But in case (2), unless some processing is done, it is impossible to know which application is going to receive this packet. Whom do these cycles get charged to?
Thanks, -- Vimal