xen的设备I/O环机制,旨在提供给guest os高效异步的设备I/O机制.
我们应该知道,xen通过虚拟设备模式,来给guest os提供虚拟的I/O.具体的方式就是,guest os产生I/O请求,然后guest os里面有一个虚拟设备驱动,称为前端,前端将
虚拟请求转发给后端,后端处理完以后,将处理的结果转发给前端.这两步都需要设备I/O机制.
以xen 4.4的源码,我们来分析一下具体的实现
#define DEFINE_RING_TYPES(__name, __req_t, __rsp_t) \
\
/* Shared ring entry */ \
union __name##_sring_entry { \
__req_t req; \
__rsp_t rsp; \
}; \
\
/* Shared ring page */ 全局的 \
struct __name##_sring {