From owner-freebsd-hackers@FreeBSD.ORG Mon May 10 19:09:47 2010 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2654C1065674 for ; Mon, 10 May 2010 19:09:47 +0000 (UTC) (envelope-from thespin@gmail.com) Received: from mail-yx0-f175.google.com (mail-yx0-f175.google.com [209.85.210.175]) by mx1.freebsd.org (Postfix) with ESMTP id D9D578FC1A for ; Mon, 10 May 2010 19:09:46 +0000 (UTC) Received: by yxe5 with SMTP id 5so1953724yxe.3 for ; Mon, 10 May 2010 12:09:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=NOFSRbnKqRv4s+EmAp1avtebv6uEDhltV+ymAD2SROk=; b=rfdwEaNv5jlQjPc6zoYItJwZuVH7PZaHVx074YpkAw2r6mG7QEAjzCFb85merSCA3i NaDM6yX6t62JK+5ZGV5iImZZbN3phPF0UVFSNpZ7oCmJk8FJS4qac+hxnyKQXHeGNexD uoyRa0ZMEPjHVHLnSOLJIjLL6FHVqqI1dKcrc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=Txxyax+HhzWCPYdR8NY3kUPomstqYvExnZ4XGhvSTFtAAw+WmIoCykTlRkQ5cOS28k ru4llSf1pWqkPkGeW8Jd0RvDhoUseQgs8ugS90bkVVK6jyrD8xavsVBUm7vgA2cu1ZQ0 pwjMTrr0+wKP1EMnCuhIJgDMYESuR6q84WpUw= MIME-Version: 1.0 Received: by 10.231.79.144 with SMTP id p16mr3176003ibk.4.1273516946751; Mon, 10 May 2010 11:42:26 -0700 (PDT) Received: by 10.231.12.129 with HTTP; Mon, 10 May 2010 11:42:26 -0700 (PDT) Date: Mon, 10 May 2010 11:42:26 -0700 Message-ID: From: Evan Geller To: freebsd-hackers@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Subject: Recursion in the UVA X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 May 2010 19:09:47 -0000 I'm a bit confused how recursion in the UVA works. vm_map_entries are allocated from a vm_map_entry zone, but if the vm_map_entry slabs are full and it needs to allocate a vm_map_entry to satisfy the mapping, there would seem to be a starvation. I also see a uk_recurse field per keg that gets increased when calling back in... but I don't exactly understand what goes on after the NULL is returned. I'm also a bit confused about the difference between a keg, a zone, and a slab... the classic definition of the slab is the per-object cache with slabs... I'm having trouble understanding what the 3 level structure gets you. -- --- Evan Geller thespin@gmail.com