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
| ||
|
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