Looks good to me.  +1 on this revised specification.

    - Garrett

Roger A. Faulkner wrote:
>> Date: Thu, 03 Dec 2009 00:30:10 -0800
>> From: Mike Shapiro <mws at sun.com>
>> Subject: Re: delete obsolete system call traps [PSARC/2009/657]
>> To: "Roger A. Faulkner" <Roger.Faulkner at sun.com>
>> Cc: psarc-ext at sac.sfbay.sun.com, Bart.Smaalders at sun.com, 
>>     
> Bryan.Cantrill at sun.com, Michael.Shapiro at sun.com, Darrin.Johnson at 
> sun.com
>   
> ...
>   
>> I certainly agree some of this is implementation and doesn't matter.   
>> And from a technical perspective, because the current DTrace syscall  
>> provider advertises the sysent table names and not the sub-coded man  
>> page (2) view of system calls (something we intend to rectify  
>> someday), we marked those names as Private in our stability mechanism.
>>
>> But from a practical perspective, I'm very uncomfortable with the *at  
>> part of this project, whereby extremely well-known fundamental names  
>> used extensively by users of DTrace based on long-standing  
>> fundamentals like syscall::open:entry just go away, essentially for no  
>> benefit.
>>     
>
> I discussed this matter offline with Michael Shapiro and Bryan Cantrill.
>
> While it is unfortunate that the current DTrace syscall provider
> has caused the syscall trap table to have become a public interface,
> DTrace usage is widespread enough to warrent keeping unchanged what
> Mike refers to as "extremely well-known fundamental names used
> extensively by users of DTrace based on long-standing fundamentals
> like syscall::open:entry".
>
> This not a tenable long-term solution.  The kernel <-> user-level
> syscall trap interface has never been a Solaris public interface.
> The long-term solution is to implement what Mike refers to as
> "the sub-coded man page (2) view of system calls" in the DTrace
> syscall provider. 
>
> In the interim, for the current PSARC case for deleting obsolete
> system call traps, I am changing the proposal as follows:
>
> ===========================================================
>
> Retain these old system call traps;
> make sure they are called from libc as always so that
> existing DTrace scripts continue to work as always:
>     open()
>     open64()
>     stat()
>     lstat()
>     fstat()
>     stat64()
>     lstat64()
>     fstat64()
>     rename()
>     unlink()
>     rmdir()
>     chown()
>     lchown()
>     fchown()
>     access()
>
> Delete these in favor of open*(path, O_WRONLY | O_CREAT | O_TRUNC, mode):
>     creat()
>     creat64()
>
> Delete this in favor of fcntl(F_DUPFD):
>     dup()
>
> Delete these from i386 code in favor of *stat() amd mknod()
> (they should have been deleted when COFF support was dropped):
>     _xstat()
>     _lxstat()
>     _fxstat()
>     _xmknod()
>
> Delete these (they are never called from libc):
>     exec()
>     fork1()
>     forkall()
>     poll()
>     utime()
>     utimes()
>     umount()
>     wait()
>     lwp_mutex_lock()
>     lwp_sema_wait()
>
> Delete this:
>     fsat()
> in favor of individual (new) system call traps for each of its subcodes:
>     openat()
>     openat64()
>     fstatat()
>     fstatat64()
>     renameat()
>     unlinkat()
>     fchownat()
>     faccessat()
>
> ===========================================================
>
> Roger Faulkner
>
>   

Reply via email to