[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-devel] RE: Rather slow time of Pin in Windows with GPL PVdriver
NDIS 5.x on Vista+ has some serious issues: see http://www.osronline.com/showThread.cfm?link=124242 This probably doesn't explain an immediate performance issue though. RSS is supported on Windows 2k3 SP2 IIRC but you need to bind as NDIS 5.2. I don't think it's present in the 6.x -> 5.x wrapper in Vista+ though. You'd need to use NDIS 6.1+. Paul > -----Original Message----- > From: James Harper [mailto:james.harper@xxxxxxxxxxxxxxxx] > Sent: 14 March 2011 00:46 > To: MaoXiaoyun; Paul Durrant > Cc: xen devel > Subject: RE: [Xen-devel] RE: Rather slow time of Pin in Windows with > GPL PVdriver > > > > > I've just pushed a bit of a rewrite of the rx path in gplpv. It's > not > > particularly well tested yet but I can't get it to crash. It > should > scale much > > better with SMP too. I'm using more lock free data structures so > the > lock's > > are held for much less time. > > > > Unfortunately performance still isn't good. What I've found is that > NDIS really does want you to only process packets on one CPU at one > time (eg CPU0), otherwise they are indicated to NDIS out of order > causing serious performance problems (according to the docs). > > In addition to KeSetTargetProcessorDpc(&xi->rx_dpc, 0), we also need > to do KeSetImportanceDpc(&xi->rx_dpc, HighImportance) - as Paul > stated, which makes sure the DPC runs immediately even if it is > triggered from another CPU (I assume this has IPI overhead though). > I think I could detect >1 CPU's and schedule the rx and tx onto > different CPU's to each other, but always the same CPU. > > Windows does support RSS which ensures per-connection in-order > processing of packets. From reading the "Receive-Side Scaling > Enhancements in Windows Server 2008" document, it appears that we > would need to hash various fields in the packet header and compute a > CPU number for that connection, then schedule the DPC onto that CPU. > It shouldn't be that hard except that xennet.sys is an NDIS5.1 > driver, not an NDIS6.0 driver, and in order to support NDIS6.0 I > would need to maintain two trees which I'm reluctant to do without a > very good reason. > Other docs state the RSS is supported for Windows 2003 SP2 but I > can't find any specifics - I've asked the question on the ntdev > list. > > James _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |