Peter Memishian wrote:
>  > Then those interfaces should not have been promoted, IMO.  Instead, 
>  > leave a contract in place, and provide suitable replacements for truly 
>  > public consumption that either lack the side effect, or make it clear 
>  > that a side effect exists (mcopyandfreemsg().).   As I pointed out 
>  > earlier, there are cases where that side effect is toxic, and mcopymsg() 
>  > cannot be used.
>
> I agree it's unfortunate that mcopymsg() has a side effect, but the fact
> is that it was already in widespread use and thus renaming it or otherwise
> playing paperwork games wouldn't have materially changed things -- we'd
> still need to define a new function with a different name that doesn't
> have the side effect.
>   

Ah, but it *does* matter.  Those "paperwork" games mean that when I'm 
implementing a new driver I look to the DDI.  A function that is 
documented as part of the DDI is much more likely to be exposed, and 
used.  Its a "blessed" form of API.  In my particular case, the only 
reason I gutted some of my private implementation and started using 
mcopymsg() was when I found it in the DDI (man pages).  Unfortunately, I 
had to go back to my own implementation because of the side effect.

Using a Contract or some other kind of Private level would have kept me 
from attempting to use it in the first place.  So I'd rather have had a 
2nd function, without the side-effect, as a part of the public DDI.

> In any case, my point was that your original attack was off the mark,
> because the interfaces had already leaked out of the consolidation and
> thus were already sedimented -- as covered in the case materials:
>
>   Please note that although these interfaces are consolidation-private,
>   that has not always stopped other consolidations from making use of them.
>   Indeed, a quick search shows that both the NWS and NSPG consolidations
>   have drivers which reference some of the interfaces this case proposes to
>   make public.  As such, only minor backwards-compatible changes (noted
>   below) have been made to the existing interfaces.
>   

Marking these interfaces public, committed interfaces, means that they 
get used by a lot more than just NSPG/NWS.  There used to be another 
form of classification, called "Sun Private".  I guess that doesn't 
exist anymore, but that would have been appropriate here.

Just because a few bad citizens blatantly violate the DDI does not mean 
that everyone will.   (I guess I'm a bit of a DDI bigot.  At one time my 
own afe driver was the only NIC driver known to pass the ddict test 
suite, other than a few toy drivers that lacked all of the normally 
pertinent NIC features.)

    -- Garrett


_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to