Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Feb 2012 09:13:18 -0800
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        Juli Mallett <jmallett@freebsd.org>, Adrian Chadd <adrian@freebsd.org>, Brooks Davis <brooks@freebsd.org>, Luigi Rizzo <rizzo@iet.unipi.it>, net@freebsd.org
Subject:   Re: Abstracting struct ifnet
Message-ID:  <1F812CB2-152F-47AF-9952-6AEAC6D95547@xcllnt.net>
In-Reply-To: <20120221090821.GE55074@deviant.kiev.zoral.com.ua>
References:  <338757D1-6B1E-49CF-983F-5D5851066FD3@xcllnt.net> <20120220231601.GA51310@lor.one-eyed-alien.net> <20120221001552.GA60050@onelab2.iet.unipi.it> <CAJ-Vmoni1DHpxet08=JWSDGLFBP7MHO4-WDBLwX9vGxibR=EDA@mail.gmail.com> <CACVs6=_kTVC7tnsPJqgRq3VtUaSefkunVU8JetTdsXjGCmUT7A@mail.gmail.com> <CAJ-Vmo=T28t0XBmzmkNjOEA6wJ-Ub3Bc9DiWu1upDpBt8bM=XA@mail.gmail.com> <CACVs6=9efUMQHTr9RH9SHm=Apo0PV7NeKcwFyV%2B2k9HCFNjS9g@mail.gmail.com> <20120221090821.GE55074@deviant.kiev.zoral.com.ua>

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

On Feb 21, 2012, at 1:08 AM, Konstantin Belousov wrote:

> On Mon, Feb 20, 2012 at 06:42:15PM -0800, Juli Mallett wrote:
>> On Mon, Feb 20, 2012 at 18:34, Adrian Chadd <adrian@freebsd.org> wrote:
>>> Is the target though _binary_ compatibility? Just having a blessed
>>> method of doing accessor method things will buy more source
>>> flexibility. The KBI can stay the same in the default case and IMHO
>>> this kind of thing gives developers more power to do smart invariant
>>> and debugging things.
>> 
>> KBI compatibility requires very little discipline and makes loadable
>> modules for network drivers much less hellish.  Inlines, macros and
>> full visibility of ifnet in -current may be useful, but unless there's
>> a performance reason for doing so, retaining KBI compatibility *and*
>> the ability to merge ifnet changes to -stable sounds pretty nice to
>> me.
*snip*
> You could take a look how mutexes or vm_page_locks are handled,
> giving inlines for kernel proper and stable KBI for modules.


A stable KBI is what we'll be aiming for at Juniper. We're working
towards a kernel proper without any networking, the FreeBSD network
stack as a module, the Juniper network stack as a module and H/W
network drivers as modules. The network drivers and how they talk
to the network stack is the big piece we still had to flesh out.

Dynamic loading and unloading of network stack modules is not a goal,
but we do want to be able to pre-load the network stack that we want
to use and not have to worry about matching the H/W network drivers
with the stack of choice.

Inlines for the kernel proper and a stable KBI for modules seems to
match everyone's objectives/concerns. We'll definitely take a look
at the mutexes and vm_page_locks.

FYI,

-- 
Marcel Moolenaar
marcel@xcllnt.net





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1F812CB2-152F-47AF-9952-6AEAC6D95547>