svn commit: r284959 - in head: . share/man/man4 share/man/man9 sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe sys/dev/syscons sys/dev/ubsec sys/dev/virtio/random sy...

Slawa Olhovchenkov slw at zxy.spb.ru
Sun Jul 26 23:17:55 UTC 2015


On Sun, Jul 26, 2015 at 07:01:37PM -0400, kpneal at pobox.com wrote:

> On Sat, Jul 25, 2015 at 11:52:09AM +0300, Slawa Olhovchenkov wrote:
> > On Fri, Jul 24, 2015 at 11:06:59PM -0600, Scott Long via svn-src-all wrote:
> > 
> > > > I'm working on a premise of "tools, not policy". I'd like there to be
> > > > enough harvesting points for the box owner to get the warm fuzzies.
> > > > If they choose to use less, fine by me.
> > > > 
> > > 
> > > Sure, and that's not an unreasonable goal, but the devil is in the details.
> > > It's an unfortunate fact of modern CPU architecture that even something
> > > as simple and innocent as a run-time control that checks a variable can
> > > cause significant performance problems, thanks to the penalty of cache
> > > misses and bus contention between lots of CPU cores.  Maybe these
> > > "extended" collection points should be controlled with a compile-time
> > > option?
> > 
> > I am hate compile-time option, may be time to introduction some JIT in
> > project? As global feature.
> 
> I agree with your dislike of compile-time options, and this is especially
> true in the OS itself.
> 
> However, a JIT is rather large, and is a rather large effort as well.  A
> JIT in the kernel would scare the heck out of me because ensuring it didn't
> have exploitable security issues would be a lost cause. You could have the
> kernel call out to a userland JIT that created (re)loadable modules, but
> you'd need to have the source either in kernel, or you'd need to be certain
> that all the relevant source was installed.
> 
> Simpler JITs could be written, but that is a large amount of effort for
> generated code that wouldn't be as good as the system compiler's code.
> 
> Heck, I ported a 31-bit (yes, thirty-one) JIT for MVS to 64-bit z/OS (modern
> MVS), working full time, and it still took me two and a half years to
> finish it.

For some purpose may be enough some limited, very specific JIT.
For example, BPF have JIT as option.
'JIT for options' may be working just as in-place patching (replace
call by nops), as example.


More information about the svn-src-all mailing list