RE: [PATCH] SCSI driver for VMware's virtual HBA.

From: Chetan . Loke
Date: Sat Aug 29 2009 - 08:05:35 EST


> -----Original Message-----
> From: Alok Kataria [mailto:akataria@xxxxxxxxxx]
> Sent: Friday, August 28, 2009 6:31 PM
> To: Loke,Chetan
> Cc: linux-kernel@xxxxxxxxxxxxxxx; akpm@xxxxxxxxxxxxxxxxxxxx; Dmitry
> Torokhov; James.Bottomley@xxxxxxxxxxxxxxxxxxxxx; robert.w.love@xxxxxxxxx;
> randy.dunlap@xxxxxxxxxx; michaelc@xxxxxxxxxxx
> Subject: RE: [PATCH] SCSI driver for VMware's virtual HBA.
>
> Hi Chetan,

Hi

>
> On Fri, 2009-08-28 at 14:18 -0700, Chetan.Loke@xxxxxxxxxx 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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/