Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Nov 2012 18:52:34 -0800
From:      Alfred Perlstein <bright@mu.org>
To:        Daniel Eischen <eischen@vigrid.com>
Cc:        "attilio@freebsd.org" <attilio@freebsd.org>, Mark Linimon <linimon@lonesome.com>, Oleksandr Tymoshenko <gonzo@bluezbox.com>, "arch@freebsd.org" <arch@freebsd.org>
Subject:   Re: [RFC] sema_wait_sig
Message-ID:  <50B187F2.2040506@mu.org>
In-Reply-To: <CD4350B2-40E3-4964-B403-78825A00C75A@vigrid.com>
References:  <20121124193010.GB1627@lonesome.com> <50B12520.7040508@mu.org> <CAJ-FndBeLvsgXQ4fskRwdZh2qaWbn7-LrCOmJTjPcfnbmD7aYg@mail.gmail.com> <50B145C5.8070503@mu.org> <CAJ-FndC%2BjHO2uKg%2Bd8GmzWGkQ8nZ6_iefgyGAeno0VqprR84Wg@mail.gmail.com> <50B16E7A.60900@mu.org> <CAJ-FndAetPqiZ0nCQTY1xAcqBJuuaq9dZfUhP9YXXw669o0WNQ@mail.gmail.com> <50B178A3.4070305@mu.org> <46D582BB-1EB9-4080-9733-7558D6D87FA8@bsdimp.com> <50B17BF7.7020609@mu.org> <CD4350B2-40E3-4964-B403-78825A00C75A@vigrid.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 11/24/12 6:22 PM, Daniel Eischen wrote:
> On Nov 24, 2012, at 9:01 PM, Alfred Perlstein <bright@mu.org> wrote:
>
>> On 11/24/12 5:56 PM, Warner Losh wrote:
>>> On Nov 24, 2012, at 6:47 PM, Alfred Perlstein wrote:
>>>
>>>> 1) compat layer
>>>> /usr/src.local/sys/ofed/drivers/infiniband/core #
>>>> cddl/contrib/opensolaris
>>>>
>>>> 2)
>>>> if a user expects semaphores and we tell them to "rethink" things, then we're not providing the same facilities as every other non-BSD OS.
>>>>
>>>> I guess that makes us "cool", but really it just seems out of touch.
>>>>
>>>> The implementation is 176 lines of code + some headers.
>>>>
>>>> The sad part to me is that the original user asked "hey I need sema+signal" but we don't know the facility they really need, count of 1?  count of 10? instead of just giving them a textbook CS semaphore we tell them to "build your own using our primitives".
>>> You don't need stdio, you can build it from the syscall primitives...
>> Dude, don't make me replace string.h/strncpy/strlcpy with sbuf_(9), cause I will!
> Can we please chill?  We're not talking about getting rid of a commonly used API with sema(9).  We want to do what is right for FreeBSD, not Linux.  That's not to say we can't have a Linux kernel compat shim or something, but they should be hidden accordingly and not used by native drivers and such.  We definitely don't want every API for every OS, or we will become an amalgamation of those OSs.
Daniel, this is something that I really don't understand, a driver is a 
driver, it's a means for putting packets on the wire or bytes on disk.

Sometimes the stack becomes complicated due to topologies or interesting 
features (hot plug), but in essence they are very much the same.

I do not see the point of "FreeBSD'ing" a driver when we could share 
code with another OS (infiniband?).  It's just duplicate effort and 
makes it harder to maintain.

Sema is already used inside the sysv_ipc code.  I don't understand the 
point of trying to be different for the sake of differentness. It's 
really not done us any favors.

Our strength has been when we've surpassed the other OSes out there with 
innovation: examples: cam, geom, kqueue, sendfile, accept filters, 
audit, witness, vfs_debug, zfs.  Our strength is not our different names 
for the same things.

I would certainly be accepting of a driver in FreeBSD that used sema(9) 
and I think we should all, afterall our infiniband stack seems to, and 
that's kinda cool.

-Alfred




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50B187F2.2040506>