Software Improvement toward Fast I/O Devices

Category: Innovating

Tags: System Software

The performance of I/O devices such as NICs has been continuously growing. Consequently, it gets challenging for legacy software to effectively utilize their performance benefits. In this project, we investigate the design and implementation of software to catch up with the speed of hardware.

A trick for developing process scheduling policies in user space

  • Background and problem: Process scheduling is important for the response time of networked software, and previous studies have shown custom process scheduling policies specialized for particular workloads contribute to application performance. However, the custom scheduling policies, presented in the previous studies, often come with specific kernel/hypervisor extensions, therefore, it is often hard for users to deploy them despite their performance merits.
  • This work: We explore a trick to develop process scheduling policies in user space by only using common OS features.
  • Materials: [blog] [paper] [code]

A TCP/IP stack implementation

  • Background and problem: The research and industry community have discovered a series of important techniques to implement high-performance TCP/IP stacks. However, it is hard for many users to employ the previously presented implementations because they incur high integration complexity.
  • This work: We design and implement a new TCP/IP stack that takes both the previously discovered performance factors and portability into account.
  • Materials: [blog1] [blog2] [paper] [code]

A system call hook mechanism

  • Background and problem: Researchers have demonstrated the performance and security benefits of user-space OS subsystems, and system call hooks are the key to transparently applying them to existing user-space programs. However, existing hook mechanisms incur performance and coverage issues.
  • This work: We propose a new system call hook mechanism aiming to be free from the issues of the existing hook mechanisms.
  • Materials: [blog] [paper] [code]

A memory sharing scheme for Virtual Machines (VMs)

  • Background and problem: VMs are typically needed to return to the host context to access shared physical I/O devices which are controlled over memory regions so that the host can ensure the VMs cannot abuse the shared physical I/O devices. However, the transition between the host and VM contexts is a costly operation for CPUs and degrades the performance of the application running on the VM.
  • This work: We propose a new memory sharing scheme that enables VMs to access shared I/O devices without returning to the host context while ensuring the VMs cannot conduct malicious operations.
  • Materials: [blog] [paper] [code]

PAGE TOP