From owner-freebsd-arch Thu Mar 28 13:47:35 2002 Delivered-To: freebsd-arch@freebsd.org Received: from h132-197-179-27.gte.com (h132-197-179-27.gte.com [132.197.179.27]) by hub.freebsd.org (Postfix) with ESMTP id 6EC4D37B428; Thu, 28 Mar 2002 13:46:46 -0800 (PST) Received: from kanpc.gte.com (localhost [IPv6:::1]) by h132-197-179-27.gte.com (8.12.2/8.12.2) with ESMTP id g2SLkjka029503; Thu, 28 Mar 2002 16:46:45 -0500 (EST) (envelope-from ak03@kanpc.gte.com) Received: (from ak03@localhost) by kanpc.gte.com (8.12.2/8.12.2/Submit) id g2SLkjRU029502; Thu, 28 Mar 2002 16:46:45 -0500 (EST) Date: Thu, 28 Mar 2002 16:46:45 -0500 From: Alexander Kabaev To: "Brian F. Feldman" Cc: arch@FreeBSD.ORG Subject: Re: vnode::v_op bugfix / PERFORCE change 8574 for review (fwd) Message-Id: <20020328164645.790f6247.ak03@gte.com> In-Reply-To: <200203281929.g2SJTBW04780@green.bikeshed.org> References: <200203281929.g2SJTBW04780@green.bikeshed.org> Organization: Verizon Data Services X-Mailer: Sylpheed version 0.7.4claws44 (GTK+ 1.2.10; i386-portbld-freebsd5.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG This fix will not work when/if the VFS layer will become preemptable. It also introduces potential performance penalty due to the additional pointer dereference and associated cache misses on each vnode operation. I have alternative patch which simple overallocates space for vop_t vectors a bit in order to avoid the need to realocate them and panics when this space becomes exausted. The amount of space kernel is preallocating is configurable through boot-time tunable. You can find patch at http://kan.dnsalias.net:8080/kan/tunable_vops.diff. This still needs some rewriting but it should be good enough to give you an idea on what I am proposing. There is also a patch which implement additional indirection the same way Brian's patch is doing, but tries to hide the change from the rest of the kernel code, so that operations like vp->v_op = ufs_specop_p need not be modified in existing code. The URL for the second patch is http://kan.dnsalias.net:8080/kan/indirect_vop_t.diff To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message