[show abstract][hide abstract] ABSTRACT: Studies of the performance of interrupt-driven operating systems in high-speed networks have brought forth the problem of receive livelock. Device hybrid interrupt-polling and interrupt coalescing are two common techniques used in general-purpose operating systems to mitigate this problem. Adaptive schemes based on local knowledge have been proposed for each technique above. However, all the schemes proposed so far are designed using heuristics. In addition, the capabilities of the proposed schemes have not been systematically compared. In this paper, we first analyze the capabilities of these schemes by investigating the relationship between key system parameters and system goodput in different packet protocol processing modes under heavy traffic load. Then we propose a robust device hybrid interrupt-polling (RHIP) scheme which achieves high system goodput, low packet loss and good latency with low consumption of CPU cycles, compared to other schemes. The key idea of RHIP is to use the recipient's buffer information to adjust the interrupt rate and the protocol processing time. We validate our analysis and design through several experiments.
[show abstract][hide abstract] ABSTRACT: Gigabit Ethernet is now finding wider deployment in computer networks. The conventional operating system suffers from the receive livelock problem in Gigabit Ethernet networks. The device hybrid (interrupt + polling) scheme has been widely used to overcome this problem in current operating systems such as GNU/Linux and FreeBSD. However, controlling the polling time without regard to the system state can degrade the ability of a hybrid scheme in some situations. This paper focuses on the system performance of the operating systems that employ the device hybrid scheme in kernel space. A queue-based adaptive polling (QAPolling) scheme is introduced that: (1) significantly improves system goodput and reduces packet loss over a wide range of computer hardware configurations and traffic conditions, (2) is scalable and easily deployed. The key idea behind QAPolling is to adjust the polling time adaptively according to the information of the application receiving queues, which are in kernel space and change with the system state, instead of the packet arrival rate. We validate our design through experimental results in Gigabit Ethernet networks.