lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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