[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <412A05BA40734D4887DBC67661F433080FF71D90@EXMAIL.ad.emulex.com>
Date: Sat, 29 Aug 2009 05:04:58 -0700
From: Chetan.Loke@...lex.Com
To: <akataria@...are.com>
CC: <linux-kernel@...r.kernel.org>, <akpm@...ux-foundation.org>,
<dtor@...are.com>, <James.Bottomley@...senPartnership.com>,
<robert.w.love@...el.com>, <randy.dunlap@...cle.com>,
<michaelc@...wisc.edu>
Subject: RE: [PATCH] SCSI driver for VMware's virtual HBA.
> -----Original Message-----
> From: Alok Kataria [mailto:akataria@...are.com]
> Sent: Friday, August 28, 2009 6:31 PM
> To: Loke,Chetan
> Cc: linux-kernel@...r.kernel.org; akpm@...ux-foundation.org; Dmitry
> Torokhov; James.Bottomley@...senPartnership.com; robert.w.love@...el.com;
> randy.dunlap@...cle.com; michaelc@...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@...lex.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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists