From owner-freebsd-current Thu Mar 23 15:25:13 2000 Delivered-To: freebsd-current@freebsd.org Received: from mass.cdrom.com (mg-20425418-10.ricochet.net [204.254.18.10]) by hub.freebsd.org (Postfix) with ESMTP id 189B137C5AC for ; Thu, 23 Mar 2000 15:24:35 -0800 (PST) (envelope-from msmith@mass.cdrom.com) Received: from mass.cdrom.com (localhost [127.0.0.1]) by mass.cdrom.com (8.9.3/8.9.3) with ESMTP id PAA02518; Thu, 23 Mar 2000 15:26:47 -0800 (PST) (envelope-from msmith@mass.cdrom.com) Message-Id: <200003232326.PAA02518@mass.cdrom.com> X-Mailer: exmh version 2.1.1 10/15/1999 To: Greg Lehey Cc: Poul-Henning Kamp , Matthew Dillon , current@FreeBSD.ORG Subject: Re: patches for test / review In-reply-to: Your message of "Thu, 23 Mar 2000 15:12:20 PST." <20000323151220.A9318@mojave.worldwide.lemis.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 23 Mar 2000 15:26:47 -0800 From: Mike Smith Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > >> Eventually all physical I/O needs a physical address. The quickest > >> way to get to a physical address is to be given an array of vm_page_t's > >> (which can be trivially translated to physical addresses). > > > > Not all: PIO access to ATA needs virtual access. RAID5 needs > > virtual access to calculate parity. > > I'm not sure what you mean by "virtual access". If you mean > file-related rather than partition-related, no: like the rest of > Vinum, RAID-5 uses only partition-related offsets. No, the issue here has to do with the mapping of the data buffers. If you're doing PIO, or otherwise manipulating the data in the driver before you give it to the hardware (eg. inside vinum) then you need the data buffers mapped into your virtual address space. OTOH, if you're handing the buffer information to a busmaster device, you don't need this, instead you need the physical address of the buffer sections. > > For RAID5 we have the opposite problem also: data is created which > > has only a mapped existance and the b_pages[] array is not > > populated. > > Hmm. I really need to check that I'm not missing something here. The point here is that when you create RAID5 parity data, the buffer's physical addresses aren't filled in. -- \\ Give a man a fish, and you feed him for a day. \\ Mike Smith \\ Tell him he should learn how to fish himself, \\ msmith@freebsd.org \\ and he'll hate you for a lifetime. \\ msmith@cdrom.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message