atom feed40 messages in org.freebsd.freebsd-archRe: CFR: m_tag patch
FromSent OnAttachments
Sam LefflerOct 6, 2002 9:38 pm 
Nate LawsonOct 6, 2002 10:01 pm 
Sam LefflerOct 6, 2002 10:21 pm 
Terry LambertOct 6, 2002 11:09 pm 
Julian ElischerOct 6, 2002 11:32 pm 
Julian ElischerOct 7, 2002 12:29 am 
Sam LefflerOct 7, 2002 9:24 am 
Sam LefflerOct 7, 2002 9:31 am 
Sam LefflerOct 7, 2002 9:46 am 
Julian ElischerOct 7, 2002 2:20 pm 
Terry LambertOct 7, 2002 3:34 pm 
Sam LefflerOct 7, 2002 3:52 pm 
Julian ElischerOct 7, 2002 4:10 pm 
Julian ElischerOct 7, 2002 4:22 pm 
Luigi RizzoOct 7, 2002 4:30 pm 
Julian ElischerOct 7, 2002 4:55 pm 
Sam LefflerOct 7, 2002 5:06 pm 
Julian ElischerOct 7, 2002 5:10 pm 
Julian ElischerOct 7, 2002 5:14 pm 
Julian ElischerOct 7, 2002 5:23 pm 
Terry LambertOct 7, 2002 5:31 pm 
Terry LambertOct 7, 2002 5:47 pm 
Nate LawsonOct 7, 2002 10:42 pm 
Don LewisOct 7, 2002 11:06 pm 
Julian ElischerOct 7, 2002 11:28 pm 
Julian ElischerOct 7, 2002 11:32 pm 
Terry LambertOct 8, 2002 12:42 am 
Terry LambertOct 8, 2002 12:53 am 
Harti BrandtOct 8, 2002 1:19 am 
Nate LawsonOct 8, 2002 11:25 am 
Don LewisOct 8, 2002 12:15 pm 
Sam LefflerOct 8, 2002 6:25 pm 
JINMEI Tatuya / 神明達哉Oct 10, 2002 7:33 pm 
Sam LefflerOct 11, 2002 11:11 am 
JINMEI Tatuya / 神明達哉Oct 16, 2002 3:03 am 
Luigi RizzoOct 16, 2002 7:45 am 
JINMEI Tatuya / 神明達哉Oct 16, 2002 11:06 am 
Luigi RizzoOct 16, 2002 11:18 am 
Julian ElischerOct 16, 2002 11:24 am 
Sam LefflerOct 16, 2002 11:29 am 
Subject:Re: CFR: m_tag patch
From:Nate Lawson (na@root.org)
Date:Oct 6, 2002 10:01:39 pm
List:org.freebsd.freebsd-arch

On Sun, 6 Oct 2002, Sam Leffler wrote:

http://www.freebsd.org/~sam/mtag.patch

has changes to -current to replace the "aux mbuf" with a more general mechanism borrowed from openbsd. Rather than dangling mbuf's off a packet when auxiliary information needs to be associated with a packet a list of variable-size struct m_tag's are kept. This is better because it:

1. Eliminates the use of mbufs as a general-purpose memory allocator. 2. Avoids confusing and problematic code (e.g. ipsec stuffs multiple data structures into an mbuf and often consults m_len to determine what might/should be present). 3. Means arbitrary size data can be stored (w/ mbufs you get what fits in a fixed-size mbuf or--if it were implemented--in a cluster). 4. Removes a recursive dependency that complicates locking in the mbuf code.

The patch actually contains three sets of changes that are intertwined:

1. Remove use of aux mbufs and replace with m_tag's. 2. Add an additional parameter to ip_output and ip6_output that was previously passed through an aux mbuf. 3. Rename luigi's m_tag_id hack #define to avoid name conflict with the m_tag definition.

I've been running something like this patch for ~9 months. The patch actually eliminates more code than it adds and is likely to improve performance (haven't measured). There should be no functional changes after this patch is applied.

Timely feedback is desired as I'd like to commit these changes in time for DP2.

Sam

I'm not familiar with that code so only a few questions:

1. Is ordering important or is an SLIST sufficient for all cases? 2. Is it possible to attach the aux argument to the mbuf chain instead of adding it as a new parameter to ip_output?

-Nate

To Unsubscribe: send mail to majo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message