From owner-cvs-all@FreeBSD.ORG Tue Oct 19 22:55:03 2004 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DDBD216A4CE; Tue, 19 Oct 2004 22:55:03 +0000 (GMT) Received: from fledge.watson.org (fledge.watson.org [204.156.12.50]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7F1D843D49; Tue, 19 Oct 2004 22:55:03 +0000 (GMT) (envelope-from robert@fledge.watson.org) Received: from fledge.watson.org (localhost [127.0.0.1]) by fledge.watson.org (8.13.1/8.13.1) with ESMTP id i9JMsrKZ084112; Tue, 19 Oct 2004 18:54:53 -0400 (EDT) (envelope-from robert@fledge.watson.org) Received: from localhost (robert@localhost)i9JMsrjx084109; Tue, 19 Oct 2004 18:54:53 -0400 (EDT) (envelope-from robert@fledge.watson.org) Date: Tue, 19 Oct 2004 18:54:53 -0400 (EDT) From: Robert Watson X-Sender: robert@fledge.watson.org To: Andre Oppermann In-Reply-To: <41759A70.11BF9238@freebsd.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: cvs-src@freebsd.org cc: src-committers@freebsd.org cc: cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/netinet ip_divert.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Oct 2004 22:55:04 -0000 On Wed, 20 Oct 2004, Andre Oppermann wrote: > Robert Watson wrote: > > > > On Wed, 20 Oct 2004, Andre Oppermann wrote: > > > > > Hmm... I'll take a look at those attempts and see what I can come up > > > with to get some general solution for the protocol cases. The approach > > > of callout_drain() looks promising though. > > > > BTW, it looks like the divert pcb zone uses UMA_ZONE_NOFREE so that the > > memory is type-stable (presumably in particular for the sysctl), so all > > memory allocated by the divert module for pcbs is likely leaked on unload. > > I'm beginning to think we should just block unload for divert and solve > > the unload problem another day for another protocol... > > It is indeed an oversight by me not to uma_zdestroy() the zone on > unload. The sysctl handler uses normal malloc. If it's like other instances of type-stable storage, it's so that weak consistency can be used by the monitoring sysctl in order to avoid allocating lots of memory and/or suspending operation while monitoring takes place. Other instances of type-stable storage in the socket code and network stack rely on the "chain'o'pcbs" list pointers not being cleared on allocation and free. Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert@fledge.watson.org Principal Research Scientist, McAfee Research