Diff for /wikisrc/users/kamil/proposals.mdwn between versions 1.1 and 1.3

version 1.1, 2018/07/29 19:20:24 version 1.3, 2018/07/29 19:27:00
Line 24  A typical project consist of: Line 24  A typical project consist of:
  - addition of ATF (automated test framework in NetBSD) regression tests covering the new feature,   - addition of ATF (automated test framework in NetBSD) regression tests covering the new feature,
  - integration with MKSANITIZER/MKLIBCSANITIZER/kernel.   - integration with MKSANITIZER/MKLIBCSANITIZER/kernel.
   
 1. Port the LLVM DataFlow sanitizer to NetBSD (MKSANITIZER).  #### Port the LLVM DataFlow sanitizer to NetBSD (MKSANITIZER).
   
 Not started and not researched.  Not started and not researched.
   
 2. Port Scudo to NetBSD (MKSANITIZER).  #### Port Scudo to NetBSD (MKSANITIZER).
   
 There is a draft port, however tests are designed against the  There is a draft port, however tests are designed against the
 GNU malloc(3) API (mallinfo). Porting or reimplementing the  GNU malloc(3) API (mallinfo). Porting or reimplementing the
 tests for jemalloc(3) is needed. The feature might be fully  tests for jemalloc(3) is needed. The feature might be fully
 functional with local patches, but its status is unknown.  functional with local patches, but its status is unknown.
   
 3. Port LLVM CFI to NetBSD (MKSANITIZER).  #### Port LLVM CFI to NetBSD (MKSANITIZER).
   
 This project certainly needs commitment and connection of  This project certainly needs commitment and connection of
 all the toolchain pieces together. It might require work  all the toolchain pieces together. It might require work
 on programs like ar(1), ld(1), and dynamic ELF loader.  on programs like ar(1), ld(1), and dynamic ELF loader.
   
 4. Port SafeStack to MKSANITIZER.  #### Port SafeStack to MKSANITIZER.
   
 The port is done. All tests pass. It needs research and  The port is done. All tests pass. It needs research and
 integration as the MKSANITIZER option. It might work  integration as the MKSANITIZER option. It might work
 out of the box, but it's not tested and not researched.  out of the box, but it's not tested and not researched.
   
 5. Research and reimplement safestack shared between MKLIBCSANITIZER and the kernel.  #### Research and reimplement safestack shared between MKLIBCSANITIZER and the kernel.
   
 Already done by Fuchsia, a research OS from Google.  Already done by Fuchsia, a research OS from Google.
 The feature must be C++ free, similar to micro-UBSan.  The feature must be C++ free, similar to micro-UBSan.
   
 6. Port the LLVM cov, profile, xray, and sancov profiling to NetBSD.  #### Port the LLVM cov, profile, xray, and sancov profiling to NetBSD.
   
 Most of this already works, but investigation  Most of this already works, but investigation
 of the failing tests is needed.  of the failing tests is needed.
   
 A quick comparison (as explained by an upstream developer):  A quick comparison (as explained by an upstream developer):
   
 cov -> Did my test execute everything?  ##### cov
   
 profile -> Record optimizer-relevant details of what was executed.  Did my test execute everything?
            Profile can have performance overhead where useful, as  
            long as it doesn't skew the profile or make it unusable.  
   
 xray -> Record programmer-relevant details of what was  ##### profile
         executed. Xray must have *absolute* minimal overhead  
         when *not* doing anything, but ability dynamically  
         to enable this kind of tracing is necessary.  
   
 sancov -> Record the degree to which possible paths/data are covered  Record optimizer-relevant details of what was executed.
           by fuzz testing, in order to direct the fuzzer itself.  Profile can have performance overhead where useful, as
   long as it doesn't skew the profile or make it unusable.
   
 7. Research LLVM cov, profile and sancov in the NetBSD kernel. Compare it to Linux and FreeBSD KCOV.  ##### xray
   
   Record programmer-relevant details of what was
   executed. Xray must have *absolute* minimal overhead
   when *not* doing anything, but ability dynamically
   to enable this kind of tracing is necessary.
   
   ##### sancov
   
   Record the degree to which possible paths/data are covered
   by fuzz testing, in order to direct the fuzzer itself.
   
   #### Research LLVM cov, profile and sancov in the NetBSD kernel. Compare it to Linux and FreeBSD KCOV.
   
 Port as much as possible to the NetBSD kernel.  Port as much as possible to the NetBSD kernel.
   
 8. Research LLVM XRay as a replacement of DTrace in the NetBSD kernel.  #### Research LLVM XRay as a replacement of DTrace in the NetBSD kernel.
   
 This is a tricky feature with userland assumptions.  This is a tricky feature with userland assumptions.
 Upstream is looking forward to this research and offers assistance.  Upstream is looking forward to this research and offers assistance.
   
 9. Port AFL Triforce kernel fuzzer to NetBSD.  #### Port AFL Triforce kernel fuzzer to NetBSD.
   
 A port to OpenBSD already exists. Port and eliminate bugs.  A port to OpenBSD already exists. Port and eliminate bugs.
   
 10. Integration of rumpkernel (the NetBSD kernel) with userland tools.  #### Integration of rumpkernel (the NetBSD kernel) with userland tools.
   
 Slice the NetBSD kernel in userland as a library,  Slice the NetBSD kernel in userland as a library,
 and integrate fuzzers with the subsystems (network  and integrate fuzzers with the subsystems (network

Removed from v.1.1  
changed lines
  Added in v.1.3


CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb