Dr. Zhiyuan Shao

Associate Professor in Computer College at Huazhong University of Science and Technology, Wuhan, China

E-Mail: zyshao AT hust DOT edu DOT cn






My Codes




TCP connection Replication

The Source Code and Required Modification on the Kernel

Notes: Designed as a loadable module for Linux kernel version 2.4 (includes the source code, experiment results and the benchmark). It is works on multiple server nodes of a cluster, and its effectiveness is to replicate a TCP connection in another server node to implement high availability at the TCP connection granularity. The latest update is made in Jun. 2005, and I quit working on this since then, for the limited usage and its unclear future.

SDP (Simple Dynamic Priority) Scheduler for Xen

The Code Patch on Xen 3.4 and Auxiliary Tools

Notes: A simple scheduler for Xen 3.4 (with changeset 19028), which adopts very simple dynamic priority adjusting algorithm. The scheduler is designed to solve the scheduling problem happened in the virtualized client environment, where the roles of guest domains are asymmetrically configured (i.e., one primary guest, and two or three possible auxiliary guest domains). Using this scheduler, one can give the primary guest high priority (e.g., 80), and the auxiliary guests lower priority (e.g., 60). And by using SDP scheduler, you can play movies, audios in the primary domain fluently, even when I/O intensive tasks are running inside the auxiliary domains. I wrote this scheduler in the autumn of 2008, when I was visiting Intel Asia R&D Center located in Shanghai, China. Note, the primary domain using this scheduler should be HVM domain, and require that the video card is directly assigned (VT-d) to it.

VCPU Scheduling Analyzer (VSA)

was now moved to Google-Code

Notes: A simple tool for analyzing scheduling information of Xen. The code is made to analyzing the scheduling data recorded by "xentrace" (plain text file, i.e., after processed by xentrace_format).  Many statistics data can be obtained, and this will help on your analysis on the behavior of the Xen's scheduler during the recorded period.

Xen Smart yielding for MPICH2-1.2.1

The Code Patch, and the README file

Notes: The work is made to improve MPI communication performance inside the overcommitted virtual processors, where Xen is used as the hypervisor. And the code patch is applicable to MPICH2-1.2.1. I believe the mechanism manifested within this code patch can be employed by other implementations of MPI libraries to improve communication performance as well, although I have no time to make all of these.  The code is written in the winter of 2009, and Qiang Wang helped a lot.