A Performance Improvement of Linux TCP/IP Stack based on Flow-Level Parallelism in a Multi-Core System


The KIPS Transactions:PartA, Vol. 16, No. 2, pp. 113-124, Apr. 2009
10.3745/KIPSTA.2009.16.2.113,   PDF Download:

Abstract

With increasing multicore system, much effort has been put on the performance improvement of its application. Because multicore system has multiple processing devices in one system, its processing power increases compared to the single core system. However in many cases the advantages of multicore can not be exploited fully because the existing software and hardware were designed to be suitable for single core. When the existing software runs on multicore, its performance improvement is limited by the bottleneck of sharing resources and the inefficient use of cache memory on multicore. Therefore, according as the number of core increases, it doesn’t show performance improvement and shows performance drop in the worst case. In this paper we propose a method of performance improvement of multicore system by applying Flow-Level Parallelism to the existing TCP/IP network application and operating system. The proposed method sets up the execution environment so that each core unit operates independently as much as possible in network application, TCP/IP stack on operating system, device driver, and network interface. Moreover it distributes network traffics to each core unit through L2 switch. The proposed method allows to minimize the sharing of application data, data structure, socket, device driver, and network interface between each core. Also it allows to minimize the competition among cores to take resources and increase the hit ratio of cache. We implemented the proposed methods with 8 core system and performed experiment. Experimental results show that network access speed and bandwidth increase linearly according to the number of core.


Statistics
Show / Hide Statistics

Statistics (Cumulative Counts from September 1st, 2017)
Multiple requests among the same browser session are counted as one view.
If you mouse over a chart, the values of data points will be shown.


Cite this article
[IEEE Style]
H. U. Kwon, H. J. Jung, H. K. Kwak, Y. J. Kim, K. S. Chung, "A Performance Improvement of Linux TCP/IP Stack based on Flow-Level Parallelism in a Multi-Core System," The KIPS Transactions:PartA, vol. 16, no. 2, pp. 113-124, 2009. DOI: 10.3745/KIPSTA.2009.16.2.113.

[ACM Style]
Hui Ung Kwon, Hyung Jin Jung, Hu Keun Kwak, Young Jong Kim, and Kyu Sik Chung. 2009. A Performance Improvement of Linux TCP/IP Stack based on Flow-Level Parallelism in a Multi-Core System. The KIPS Transactions:PartA, 16, 2, (2009), 113-124. DOI: 10.3745/KIPSTA.2009.16.2.113.