tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

re: updating COMPAT_LINUX for linux 2.6.x support (take 2)



> On Thu, Jun 17, 2010 at 12:07:43PM -0400, Matthew Mondor wrote:
> > On Thu, 17 Jun 2010 10:25:59 +0000
> > Andrew Doran <ad%NetBSD.org@localhost> wrote:
> > 
> > > This is mainly down the fact that we need kernel_lock to bracket "legacy"
> > > sections of code that aren't preemption safe.  I think MULTIPROCESSOR
> > > should be sent off to the glue factory but that's another discussion :-).
> > 
> > Is there any way that performance for the uniprocessor case could be
> > preserved, where some synchronization/preemption-safe blocks are
> > unnecessary, without having conditional code when MULTIPROCESSOR?
> 
> Generally speaking, performance for the uniprocessor case is, in fact,
> preserved, because the actual bus-locking operations are patched away
> at startup time.
> 
> However, only x86 currently supports this, I believe.  Very similar code
> is required by part of DTrace (FBT) and I wish someone had both the time
> and the skills to work on it for more architectures.  But that's not me.

i ran a bunch of measurements for sparc64 when i changed GENERIC to be
MP by default (it's necessary for now, until we parse the numa-like
memory maps and avoid memory not available without depending on the CPU
it is physically attached to.)

i couldn't observe any difference in a abunch of real world and micro-
benchmark cases, so i never even bothered with patching away code that
"isn't necessary" (though i've written code to do said patching.)


.mrg.


Home | Main Index | Thread Index | Old Index