0
0

Xen netback改进

liuw 发表于 2011年10月17日 10:17 | Hits: 4301
Tag: Tech | improvement | netback | xen

下面的文字是由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.

原文链接: http://blog.liuw.name/1112

0     0

我要给这篇文章打分:

可以不填写评论, 而只是打分. 如果发表评论, 你可以给的分值是-5到+5, 否则, 你只能评-1, +1两种分数. 你的评论可能需要审核.

评价列表(0)