Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Oct 2001 11:03:51 +0900
From:      Keiichi SHIMA / =?ISO-2022-JP?B?GyRCRWc3RDBsGyhC?= <keiichi@iij.ad.jp>
To:        Luigi Rizzo <rizzo@aciri.org>
Cc:        Bosko Milekic <bmilekic@technokratis.com>, David Malone <dwmalone@maths.tcd.ie>, Alfred Perlstein <bright@mu.org>, net@FreeBSD.ORG
Subject:   Re: performance issues with M_PREPEND on clusters
Message-ID:  <86ofmr2oe0.wl@keiichi01.osaka.iij.ad.jp>
In-Reply-To: <20011026075001.C64631@iguana.aciri.org>
References:  <20011023110307.A34494@iguana.aciri.org> <20011023132813.I15052@elvis.mu.org> <20011023114650.C34494@iguana.aciri.org> <20011023140034.M15052@elvis.mu.org> <20011023140628.A36095@iguana.aciri.org> <20011023185759.A328@technokratis.com> <20011026110635.B14635@walton.maths.tcd.ie> <86u1wmlj1s.wl@keiichi01.osaka.iij.ad.jp> <20011026075001.C64631@iguana.aciri.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi Luigi,

Luigi Rizzo wrote:
> 
> so i have a question for you -- the next step on this kind of
> optimizations is to avoid that m_pullup() allocates an mbuf
> when data is already contiguous and in a writable (non-shared)
> cluster.
> 
> Garret was suggesting a new interface for this, at the beginning
> i thought the same, but now i am a bit uncertain on whether
> it is really necessary to use a different interface,
> or whether this would cause compatibility
> problems with other BSD's.
> 
> Maybe you have already thought about this issue while developing
> the KAME code, and can say something on the topic ?

Though I am not a mbuf expert, I try to state my understanding.  (If some
other KAME guys read this thread, please response.)

As Bill already said, there are the code those rely on the side-effect
of m_pullup() which ensure that the data is not shared.  Our code also
has such dependency.  If we change the behaviour, probably we will
have invisible bugs.

The possible way is to introduce a new API that does as you are
proposing, that is to pullup the mbuf regardless of their
writability.  In this case, we can use the new API in a new code to
gain the performance.  Also, the old code works with no problem.

I think, if we want a new m_pullup, a new API is a better solution.

---
Keiichi SHIMA
IIJ Research Laboratory  <keiichi@iij.ad.jp>
KAME Project <keiichi@kame.net>

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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86ofmr2oe0.wl>