[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
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. James > -----Original Message----- > From: MaoXiaoyun [mailto:tinnycloud@xxxxxxxxxxx] > Sent: Friday, 11 March 2011 16:10 > To: paul.durrant@xxxxxxxxxx; James Harper > Cc: xen devel > Subject: RE: [Xen-devel] RE: Rather slow time of Pin in Windows with GPL > PVdriver > > Hi Paul: > > Sorry I'm not fully follow your point. > One quick question is when you mention "pointless round robin", which > piece of code did you refer to? > > thanks. > > > From: Paul.Durrant@xxxxxxxxxx > > To: james.harper@xxxxxxxxxxxxxxxx; tinnycloud@xxxxxxxxxxx > > CC: xen-devel@xxxxxxxxxxxxxxxxxxx > > Date: Thu, 10 Mar 2011 11:05:56 +0000 > > Subject: RE: [Xen-devel] RE: Rather slow time of Pin in Windows with GPL > PVdriver > > > > It's kind of pointless because you're always having to go to vCPU0's shared > info for the event info. so you're just going to keep pinging this between > caches all the time. Same holds true of data you access in your DPC if it's > constantly moving around. Better IMO to keep locality by default and > distribute DPCs accessing distinct data explicitly. > > > > Paul > > > > > -----Original Message----- > > > From: James Harper [mailto:james.harper@xxxxxxxxxxxxxxxx] > > > Sent: 10 March 2011 10:41 > > > To: Paul Durrant; MaoXiaoyun > > > Cc: xen devel > > > Subject: RE: [Xen-devel] RE: Rather slow time of Pin in Windows with > > > GPL PVdriver > > > > > > > > > > > Yeah, you're right. We have a patch in XenServer to just use the > > > lowest > > > > numbered vCPU but in unstable it still pointlessly round robins. > > > Thus, > > > if you > > > > bind DPCs and don't set their importance up you will end up with > > > them > > > not > > > > being immediately scheduled quite a lot of the time. > > > > > > > > > > You say "pointlessly round robins"... why is the behaviour > > > considered pointless? (assuming you don't use bound DPCs) > > > > > > I'm looking at my networking code and if I could schedule DPC's on > > > processors on a round-robin basis (eg because the IRQ's are > > > submitted on a round robin basis), one CPU could grab the rx ring > > > lock, pull the data off the ring into local buffers, release the > > > lock, then process the local buffers (build packets, submit to NDIS, > > > etc). While the first CPU is processing packets, another CPU can > > > then start servicing the ring too. > > > > > > If Xen is changed to always send the IRQ to CPU zero then I'd have > > > to start round-robining DPC's myself if I wanted to do it that > > > way... > > > > > > Currently I'm suffering a bit from the small ring sizes not being > > > able to hold enough buffers to keep packets flowing quickly in all > > > situations. > > > > > > James _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |