Font Size: a A A

GP-VPP:Enhanced VPP Host Stack For Multi-Thread Applications

Posted on:2021-08-19Degree:MasterType:Thesis
Country:ChinaCandidate:G A SunFull Text:PDF
GTID:2518306503974109Subject:Software engineering
Abstract/Summary:PDF Full Text Request
There emerges a tendency to implement userspace network stacks to avoid the inefficiencies of kernel stack.Among those userspace stack solutions,the Vector Packet Processor(VPP)is a typical efficient packet process framework due to integration of efficient kernel-bypass techniques,to achieve high-performance I/O,and backward-compatible interfaces,to provide shared-memory-based inter-core communication.However,we find one functionaliy limit that increases stack instability,and two bottlenecks causing performance degradation,when scaling the performance of multithread application on multicore system:(1)the interference between critical control events and I/O events breaks the correctness of stateful transport protocol due to queuing delay of pending batches,(2)multi-producersingle-consumer model in the session layer brings the degree of multi-thread processing parallelism down,and(3)the lock-based session sharing in the Ljournaltitle library incurs considerable lock contention overhead.To eliminate the above weakness,this paper presents GroupingPartition Vector Packet Processor Stack(referred to as GP-VPP)which leverages existed VPP framework and adds a few optimizations to make VPP stack scale better for multi-thread applications.GP-VPP exploits packet drop policy to address the conrtol/IO events interference problem in transport protocol layer due to queuing delay between VPP graph nodes;groups and partitions the application workers over several stack threads to improve mutlithread stack parallelism;bypasses the vls layer to avoid the lock overhead for specific multi-thread application scenarios.The experiments prove that GPVPP outperforms the native VPP stack by up to 2x,in handling light TCP flows when serving 8-worker NGINX,in multi-thread mode.
Keywords/Search Tags:VPP, host stack, multi-thread parallelism, grouping partition
PDF Full Text Request
Related items