From: Alok Kataria <akataria@vmware.com>
To: "Chetan.Loke@Emulex.Com" <Chetan.Loke@Emulex.Com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
Dmitry Torokhov <dtor@vmware.com>,
"James.Bottomley@HansenPartnership.com"
<James.Bottomley@HansenPartnership.com>,
"robert.w.love@intel.com" <robert.w.love@intel.com>,
"randy.dunlap@oracle.com" <randy.dunlap@oracle.com>,
"michaelc@cs.wisc.edu" <michaelc@cs.wisc.edu>,
Maxime Austruy <maustruy@vmware.com>,
Bhavesh Davda <bhavesh@vmware.com>
Subject: RE: [PATCH] SCSI driver for VMware's virtual HBA.
Date: Mon, 31 Aug 2009 15:35:36 -0700 [thread overview]
Message-ID: <1251758136.16169.74.camel@ank32.eng.vmware.com> (raw)
In-Reply-To: <412A05BA40734D4887DBC67661F433080FF71D90@EXMAIL.ad.emulex.com>
Hi Chetan,
> >
> > 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?
We implement single (pair of) rings in the hypervisor too. And haven't
seen that as a bottleneck in our experiments, yet. And IMO it only makes
sense to support that once their are devices which support multiple
request queues out their.
It would be interesting to understand your view point on this as well.
Have you seen any interesting performance data with multiple rings
support, in the emulation software that you are aware of ?
> 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?
Right now since we support a single completion ring only one vector will
be used to deliver intr's.
Though its important to note that pvscsi does support MSI-X and hence
can support enabling multiple vectors once the need arises.
Thanks,
Alok
>
>
> Chetan
>
next prev parent reply other threads:[~2009-08-31 22:35 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-27 23:17 [PATCH] SCSI driver for VMware's virtual HBA Alok Kataria
2009-08-28 6:03 ` Rolf Eike Beer
2009-08-31 17:26 ` Alok Kataria
2009-08-31 18:51 ` Rolf Eike Beer
2009-08-31 21:54 ` Alok Kataria
2009-08-28 21:18 ` Chetan.Loke
2009-08-28 22:30 ` Alok Kataria
2009-08-29 12:04 ` Chetan.Loke
2009-08-31 22:35 ` Alok Kataria [this message]
2009-08-31 17:28 ` Alok Kataria
2009-08-31 18:00 ` James Bottomley
2009-08-31 21:53 ` Alok Kataria
2009-09-01 14:23 ` James Bottomley
2009-09-01 16:08 ` Alok Kataria
2009-09-01 16:13 ` Matthew Wilcox
2009-09-01 16:20 ` Boaz Harrosh
2009-09-01 16:47 ` Alok Kataria
2009-09-01 14:26 ` James Bottomley
2009-09-01 11:12 ` Bart Van Assche
2009-09-01 14:17 ` James Bottomley
2009-09-01 16:12 ` Roland Dreier
2009-09-01 16:16 ` Matthew Wilcox
2009-09-01 16:33 ` Dmitry Torokhov
2009-09-01 16:52 ` James Bottomley
2009-09-01 16:59 ` Alok Kataria
2009-09-01 17:25 ` James Bottomley
2009-09-01 17:41 ` Alok Kataria
2009-09-01 18:15 ` James Bottomley
2009-09-02 2:55 ` Alok Kataria
2009-09-02 15:06 ` James Bottomley
2009-09-02 17:16 ` Alok Kataria
2009-09-03 20:03 ` James Bottomley
2009-09-03 20:31 ` Dmitry Torokhov
2009-09-03 21:21 ` Ric Wheeler
2009-09-03 21:41 ` Dmitry Torokhov
2009-09-04 3:28 ` Alok Kataria
2009-09-01 17:25 ` Roland Dreier
2009-09-01 17:40 ` James Bottomley
2009-09-01 17:54 ` Alok Kataria
2009-09-01 18:38 ` Christoph Hellwig
2009-09-02 9:50 ` Bart Van Assche
2009-09-01 16:34 ` Bart Van Assche
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1251758136.16169.74.camel@ank32.eng.vmware.com \
--to=akataria@vmware.com \
--cc=Chetan.Loke@Emulex.Com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=akpm@linux-foundation.org \
--cc=bhavesh@vmware.com \
--cc=dtor@vmware.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maustruy@vmware.com \
--cc=michaelc@cs.wisc.edu \
--cc=randy.dunlap@oracle.com \
--cc=robert.w.love@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox