From owner-freebsd-hackers Wed Jun 4 10:29:09 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id KAA12059 for hackers-outgoing; Wed, 4 Jun 1997 10:29:09 -0700 (PDT) Received: from george.lbl.gov (george-2.lbl.gov [131.243.2.12]) by hub.freebsd.org (8.8.5/8.8.5) with SMTP id KAA12048 for ; Wed, 4 Jun 1997 10:29:07 -0700 (PDT) Received: from localhost (peb@localhost) by george.lbl.gov (8.6.10/8.6.5) with SMTP id KAA04850 for ; Wed, 4 Jun 1997 10:29:07 -0700 Date: Wed, 4 Jun 1997 10:29:06 -0700 (PDT) From: Pat Bozeman Reply-To: PBozeman@lbl.gov To: freebsd-hackers@FreeBSD.ORG Subject: Re: Virtual address question for VM guru's In-Reply-To: <199706040745.RAA16094@ogre.dtir.qld.gov.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Thanks to all for the input, here is what I propose to do, if this doesn't make sense can someone please correct me (although I understand the general ideas behind the FreeBSD VM system, I don't really have a good handle on the details of the implementation so this may not quite make sense) fault in and wire all pages in user supplied buffer (already working) build vm_page_t ms[] of pages in buffer get a new kva by calling kmem_alloc_pageable(kernel_map, buffer_size) associate buffer pages with kva by calling pmap_qenter(kva, ms, npages) My understanding is that kmem_alloc_pagable allocates virutal addresses that do not have coresponding physical addresses. Then, pmap_qenter takes the new virtual address and associates n pages starting at that address with the physical addresses of the vm_page_t array.