Messages in this thread | | | From | Chetan.Loke@Emulex ... | Date | Sat, 29 Aug 2009 05:04:58 -0700 | Subject | RE: [PATCH] SCSI driver for VMware's virtual HBA. |
| |
> -----Original Message----- > From: Alok Kataria [mailto:akataria@vmware.com] > Sent: Friday, August 28, 2009 6:31 PM > To: Loke,Chetan > Cc: linux-kernel@vger.kernel.org; akpm@linux-foundation.org; Dmitry > Torokhov; James.Bottomley@HansenPartnership.com; robert.w.love@intel.com; > randy.dunlap@oracle.com; michaelc@cs.wisc.edu > Subject: RE: [PATCH] SCSI driver for VMware's virtual HBA. > > Hi Chetan,
Hi
> > On Fri, 2009-08-28 at 14:18 -0700, Chetan.Loke@Emulex.Com wrote: > > Alok, > > > > > > > +static int __devinit pvscsi_allocate_rings(struct pvscsi_adapter > > > *adapter) > > > +{ > > > + adapter->rings_state = pci_alloc_consistent(adapter->dev, PAGE_SIZE, > > > + &adapter->ringStatePA); > > > + adapter->req_ring = pci_alloc_consistent(adapter->dev, > > > + adapter->req_pages * PAGE_SIZE, > > > + &adapter->reqRingPA); > > > + adapter->cmp_ring = pci_alloc_consistent(adapter->dev, > > > + adapter->cmp_pages * PAGE_SIZE, > > > + &adapter->cmpRingPA);
> > > > I understand the emulation etc. But I see that this function isn't > > allocating multiple rings right? Didn't see any performance benefits? > > > > The function is allocating multiple rings, actually 2 of them for the > IO path, request and completion rings (req_ring, cmp_ring). > > Let me know if you were asking something else. >
I was using 'Ring' loosely. So, Ring == [req_path,cmpl_path] Example - R0[req-path,cmpl-path]
But the code doesn't allocate R0,R1,...,RN.
Existing code -
-------- Ring-0 -------- Req + | + Cmpl
Why not multiple rings as shown below -
-------- -------- Ring-0 Ring-M -------- -------- Req Req + + | | + + Cmpl Cmpl
Creating multiple rings @ the guest level buys nothing in terms of performance? This is also related to how the hypervisor will schedule the world-interrupts. If 'a' pv-driver has multiple interrupt lines enabled then will the interrupts/ISR's get routed on different PCPU's for a vmworld? Or is there a limitation?
Chetan
| |