0
Xen netback改进
下面的文字是由Ian Campbell的邮件整理出来的,还有一些我自己的想法和查到的资料。
现在Xen netback的基本工作模式还是copying model,也就是说前后端数据交换的时候不是zero copy的。IanC目前正在向上游反馈skb paged fragment desctructor补丁,这系列补丁可以让backend对guest RX做grant mapping,从而实现zero copy。在copying model上进行后续工作意义不大。
紧接着就是一系列的重构。
目前的模型是driver domain的每个VCPU配置一个netback worker,这些netback worker在多个VIF之间共享。打算改为每个backend配置一个netback worker。在进行这样的改进时必须要注意内存的使用情况,原来的model中内存的使用基本是固定的,新model由于worker数目和backend数目相关,所以要有一定的扩展性。可以考虑使用内存池来防止worker过多导致内存消耗过大的问题。但是初步实现的话,静态内存分配也是可以接受的。
内部接口改用NAPI,这项改进依赖于前一项。大部分设备的TX completion都比较廉价,所以NAPI使用中最大的开销就是RX。但是切换过去之后(NAPI使用tasklet),就要考虑VCPU是否会过载(这也是目前还使用thread的原因)。这一部分需要仔细的测试。
再接下来的工作依赖于NAPI。
Receiver (guest) side copy,说得太模糊,不大清楚IanC的意思。
Multiple queues for TX and RX,这个可能和Stefano提到的VMDQ有关,把dispatch的的任务offload到硬件(原来是软件的bridge)。现在Intel的万兆网卡已经提供支持了,在VMWare上实现及测试的结果是有4x吞吐量约有1.3x的提升(4->9.2)。
除了上面的一系列想法之外,还有一个相对独立点的改进——netback对SR-IOV的支持。
想法很多,目前也不系统,先列一下,留待后用。
© 2011,liuw. All rights reserved.