Home | History | Annotate | only in /src/sys/rump/librump/rumpkern/arch/i386
History log of /src/sys/rump/librump/rumpkern/arch/i386
RevisionDateAuthorComments
 1.7 12-Feb-2014  pooka Rototill a bit, and attempt to disguise it as non-gratuitous.

Add arch/generic and move non-x86 files from rumpkern/ there. Also,
move files from arch/i386 to arch/x86, and make both i386 and x86_64
use those.

This clarifies the situation with what is MD vs. MI code.

renames:
rumpcpu_generic,kobj_stubs,pmap_stubs => arch/generic/rump_generic_$x
arch/i386/* => arch/x86/rump_x86_$x

(for those who forget, x86 requires MD code because rump kernels
use the same ABI as kernel modules)
 1.6 16-Jun-2010  pooka branches: 1.6.8; 1.6.18; 1.6.22;
Reinstate the blanket pmap.h for archs which do not conform to the
kernel ABI (i.e. not i386 or amd64). Due to the "half function,
half macro, all noodles" nature of pmap.h, it's too entangling and
too brittle to keep up with an ifdeffy MI implementation.
 1.5 31-May-2010  pooka The x86 kernel ABI depends on __cpu_simple_lock stuff being present.
Since they are practically never used (only when prehistoric code
uses simple_lock()), their efficiency doesn't matter that much and
we can simply adapt the versions from x86 lock.h.
 1.4 11-May-2010  pooka add __HAVE_CPU_COUNTER stubs where possible (i.e. where the arch
doesn't think inlines are the second compiling)
 1.3 01-Jan-2009  pooka branches: 1.3.2; 1.3.4; 1.3.8; 1.3.10; 1.3.12;
Define MODULAR for rump core components. This enables module
loading via the kernel module framework (instead of dlopen()).
For now it only works on amd64 and i386, but for the rest it should
just be a matter of including the relevant kobj_machdep.c modules
from the kernel sources.
 1.2 01-Jan-2009  pooka Rename i386 and amd64 {cpu,spl}.c to rump{cpu,spl}.c to avoid
name collisions with other source files in the kernel tree.
 1.1 29-Dec-2008  pooka Switch i386 away from rump/include/machine. This means that rump
on i386 now uses the native kernel ABI. This in turn means that
rump modules and kernel modules are binary equivalent and can be
used interchangeably.
 1.3.12.2 03-Jul-2010  rmind sync with head
 1.3.12.1 30-May-2010  rmind sync with head
 1.3.10.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.3.8.3 11-Aug-2010  yamt sync with head.
 1.3.8.2 04-May-2009  yamt sync with head.
 1.3.8.1 01-Jan-2009  yamt file Makefile.inc was added on branch yamt-nfs-mp on 2009-05-04 08:14:30 +0000
 1.3.4.2 19-Jan-2009  skrll Sync with HEAD.
 1.3.4.1 01-Jan-2009  skrll file Makefile.inc was added on branch nick-hppapmap on 2009-01-19 13:20:26 +0000
 1.3.2.2 17-Jan-2009  mjf Sync with HEAD.
 1.3.2.1 01-Jan-2009  mjf file Makefile.inc was added on branch mjf-devfs2 on 2009-01-17 13:29:36 +0000
 1.6.22.1 18-May-2014  rmind sync with head
 1.6.18.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.8.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2 01-Jan-2009  pooka Rename i386 and amd64 {cpu,spl}.c to rump{cpu,spl}.c to avoid
name collisions with other source files in the kernel tree.
 1.1 29-Dec-2008  pooka Switch i386 away from rump/include/machine. This means that rump
on i386 now uses the native kernel ABI. This in turn means that
rump modules and kernel modules are binary equivalent and can be
used interchangeably.
 1.2 12-Feb-2014  pooka Rototill a bit, and attempt to disguise it as non-gratuitous.

Add arch/generic and move non-x86 files from rumpkern/ there. Also,
move files from arch/i386 to arch/x86, and make both i386 and x86_64
use those.

This clarifies the situation with what is MD vs. MI code.

renames:
rumpcpu_generic,kobj_stubs,pmap_stubs => arch/generic/rump_generic_$x
arch/i386/* => arch/x86/rump_x86_$x

(for those who forget, x86 requires MD code because rump kernels
use the same ABI as kernel modules)
 1.1 11-May-2010  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.14; 1.1.24; 1.1.28;
add __HAVE_CPU_COUNTER stubs where possible (i.e. where the arch
doesn't think inlines are the second compiling)
 1.1.28.1 18-May-2014  rmind sync with head
 1.1.24.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.14.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.6.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.1.6.1 11-May-2010  uebayasi file cpu_counter.c was added on branch uebayasi-xip on 2010-08-17 06:48:02 +0000
 1.1.4.2 11-Aug-2010  yamt sync with head.
 1.1.4.1 11-May-2010  yamt file cpu_counter.c was added on branch yamt-nfs-mp on 2010-08-11 22:55:07 +0000
 1.1.2.2 30-May-2010  rmind sync with head
 1.1.2.1 11-May-2010  rmind file cpu_counter.c was added on branch rmind-uvmplock on 2010-05-30 05:18:06 +0000
 1.4 12-Feb-2014  pooka Rototill a bit, and attempt to disguise it as non-gratuitous.

Add arch/generic and move non-x86 files from rumpkern/ there. Also,
move files from arch/i386 to arch/x86, and make both i386 and x86_64
use those.

This clarifies the situation with what is MD vs. MI code.

renames:
rumpcpu_generic,kobj_stubs,pmap_stubs => arch/generic/rump_generic_$x
arch/i386/* => arch/x86/rump_x86_$x

(for those who forget, x86 requires MD code because rump kernels
use the same ABI as kernel modules)
 1.3 22-Jul-2012  joerg branches: 1.3.2; 1.3.4;
Needs pmap_write_protect to finish DBG=-g build with clang.
 1.2 17-Jun-2010  pooka branches: 1.2.2; 1.2.4; 1.2.6; 1.2.14;
Give the kernel pmap a container in case some tries to access it
via some pmap.h macro.
 1.1 16-Jun-2010  pooka Reinstate the blanket pmap.h for archs which do not conform to the
kernel ABI (i.e. not i386 or amd64). Due to the "half function,
half macro, all noodles" nature of pmap.h, it's too entangling and
too brittle to keep up with an ifdeffy MI implementation.
 1.2.14.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.14.1 30-Oct-2012  yamt sync with head
 1.2.6.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.2.6.1 17-Jun-2010  uebayasi file pmap_x86.c was added on branch uebayasi-xip on 2010-08-17 06:48:02 +0000
 1.2.4.2 11-Aug-2010  yamt sync with head.
 1.2.4.1 17-Jun-2010  yamt file pmap_x86.c was added on branch yamt-nfs-mp on 2010-08-11 22:55:07 +0000
 1.2.2.2 03-Jul-2010  rmind sync with head
 1.2.2.1 17-Jun-2010  rmind file pmap_x86.c was added on branch rmind-uvmplock on 2010-07-03 01:20:03 +0000
 1.3.4.1 18-May-2014  rmind sync with head
 1.3.2.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.12 12-Feb-2014  pooka Rototill a bit, and attempt to disguise it as non-gratuitous.

Add arch/generic and move non-x86 files from rumpkern/ there. Also,
move files from arch/i386 to arch/x86, and make both i386 and x86_64
use those.

This clarifies the situation with what is MD vs. MI code.

renames:
rumpcpu_generic,kobj_stubs,pmap_stubs => arch/generic/rump_generic_$x
arch/i386/* => arch/x86/rump_x86_$x

(for those who forget, x86 requires MD code because rump kernels
use the same ABI as kernel modules)
 1.11 02-May-2013  pooka branches: 1.11.4;
Inform the rump kernel hypervisor of valid thread contexts so
that the implementation can allocate and release storage for them
in an optimal fashion, if necessary.
 1.10 19-Feb-2013  martin Stopgap fix to make rump cooperate with pserialize, may be revisited later.
Patch from pooka, ok: rmind. No related regressions in a complete atf test
run (which works again with this, even on non x86 SMP machines).
 1.9 28-Apr-2010  pooka branches: 1.9.8; 1.9.18;
set first attached cpu as primary
 1.8 27-Apr-2010  pooka Fix multiple virtual cpu support.

... or at least on x86. CPU_INFO_FOREACH() still isn't MI, and I
don't want to support 2^n different versions.
 1.7 15-Oct-2009  pooka branches: 1.7.2; 1.7.4;
Give lwp usage some much-needed love: stop treating lwp0 as the
all-sink and make sure each separate thread in rump has its own
lwp. Happy-go-lucky callers will get scheduled a temporary lwp
on entry, while true lwp connoisseurs may request a stable lwp
for their purposes. Some more love may be required later down the
road, but for now different threads will stepping on each others
toes.
 1.6 15-Oct-2009  pooka Add initial work on a rump virtual cpu scheduler. This is necessary
for kernel code which has been written to avoid MP contention by
using cpu-local storage (most prominently, select and pool_cache).

Instead of always assuming rump_cpu, the scheduler must now be run
(and unrun) on all entry points into rump. Likewise, rumpuser
unruns and re-runs the scheduler around each potentially blocking
operation. As an optimization, I modified some locking primitives
to try to get the lock without blocking before releasing the cpu.

Also, ltsleep was modified to assume that it is never called without
the biglock held and made to use the biglock as the sleep interlock.
Otherwise there is just too much drama with deadlocks. If some
kernel code wants to call ltsleep without the biglock, then, *snif*,
it's no longer supported and rump and should be modified to support
newstyle locks anyway.
 1.5 14-Oct-2009  pooka "rumppriv" goes back to "rump" per internal interface naming change.
 1.4 14-Oct-2009  pooka Adjust rump sources for external/internal interfaces.
No functional change.
 1.3 18-Mar-2009  cegger branches: 1.3.2;
Ansify function definitions w/o arguments. Generated with sed.
 1.2 01-Jan-2009  pooka branches: 1.2.2; 1.2.4; 1.2.6;
Define MODULAR for rump core components. This enables module
loading via the kernel module framework (instead of dlopen()).
For now it only works on amd64 and i386, but for the rest it should
just be a matter of including the relevant kobj_machdep.c modules
from the kernel sources.
 1.1 01-Jan-2009  pooka Rename i386 and amd64 {cpu,spl}.c to rump{cpu,spl}.c to avoid
name collisions with other source files in the kernel tree.
 1.2.6.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.2.4.3 28-Apr-2009  skrll Sync with HEAD.
 1.2.4.2 19-Jan-2009  skrll Sync with HEAD.
 1.2.4.1 01-Jan-2009  skrll file rumpcpu.c was added on branch nick-hppapmap on 2009-01-19 13:20:26 +0000
 1.2.2.2 17-Jan-2009  mjf Sync with HEAD.
 1.2.2.1 01-Jan-2009  mjf file rumpcpu.c was added on branch mjf-devfs2 on 2009-01-17 13:29:36 +0000
 1.3.2.4 11-Aug-2010  yamt sync with head.
 1.3.2.3 11-Mar-2010  yamt sync with head
 1.3.2.2 04-May-2009  yamt sync with head.
 1.3.2.1 18-Mar-2009  yamt file rumpcpu.c was added on branch yamt-nfs-mp on 2009-05-04 08:14:30 +0000
 1.7.4.1 30-May-2010  rmind sync with head
 1.7.2.1 30-Apr-2010  uebayasi Sync with HEAD.
 1.9.18.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.18.2 23-Jun-2013  tls resync from head
 1.9.18.1 25-Feb-2013  tls resync with head
 1.9.8.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.11.4.1 18-May-2014  rmind sync with head
 1.3 12-Feb-2014  pooka Rototill a bit, and attempt to disguise it as non-gratuitous.

Add arch/generic and move non-x86 files from rumpkern/ there. Also,
move files from arch/i386 to arch/x86, and make both i386 and x86_64
use those.

This clarifies the situation with what is MD vs. MI code.

renames:
rumpcpu_generic,kobj_stubs,pmap_stubs => arch/generic/rump_generic_$x
arch/i386/* => arch/x86/rump_x86_$x

(for those who forget, x86 requires MD code because rump kernels
use the same ABI as kernel modules)
 1.2 06-Feb-2009  pooka branches: 1.2.4; 1.2.16; 1.2.26; 1.2.30;
Rip out the rwlock spl emulation code. It never did anything useful
except keep my feet warm by consuming an insane amount of cpu
cycles -- in rump our current "cpu" context is never interrupted
& we have MULTIPROCESSOR.

(itch i'm scratching: it made the networking stack 10-20% slower.
this is one of the places where fast code actually matters)
 1.1 01-Jan-2009  pooka branches: 1.1.2; 1.1.4;
Rename i386 and amd64 {cpu,spl}.c to rump{cpu,spl}.c to avoid
name collisions with other source files in the kernel tree.
 1.1.4.3 03-Mar-2009  skrll Sync with HEAD.
 1.1.4.2 19-Jan-2009  skrll Sync with HEAD.
 1.1.4.1 01-Jan-2009  skrll file rumpspl.c was added on branch nick-hppapmap on 2009-01-19 13:20:26 +0000
 1.1.2.2 17-Jan-2009  mjf Sync with HEAD.
 1.1.2.1 01-Jan-2009  mjf file rumpspl.c was added on branch mjf-devfs2 on 2009-01-17 13:29:36 +0000
 1.2.30.1 18-May-2014  rmind sync with head
 1.2.26.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.16.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.4.2 04-May-2009  yamt sync with head.
 1.2.4.1 06-Feb-2009  yamt file rumpspl.c was added on branch yamt-nfs-mp on 2009-05-04 08:14:30 +0000
 1.3 12-Feb-2014  pooka Rototill a bit, and attempt to disguise it as non-gratuitous.

Add arch/generic and move non-x86 files from rumpkern/ there. Also,
move files from arch/i386 to arch/x86, and make both i386 and x86_64
use those.

This clarifies the situation with what is MD vs. MI code.

renames:
rumpcpu_generic,kobj_stubs,pmap_stubs => arch/generic/rump_generic_$x
arch/i386/* => arch/x86/rump_x86_$x

(for those who forget, x86 requires MD code because rump kernels
use the same ABI as kernel modules)
 1.2 22-Jan-2013  christos branches: 1.2.2;
use the definitions from lock.h
 1.1 31-May-2010  pooka branches: 1.1.2; 1.1.4; 1.1.6; 1.1.14; 1.1.24;
The x86 kernel ABI depends on __cpu_simple_lock stuff being present.
Since they are practically never used (only when prehistoric code
uses simple_lock()), their efficiency doesn't matter that much and
we can simply adapt the versions from x86 lock.h.
 1.1.24.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.24.1 25-Feb-2013  tls resync with head
 1.1.14.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.6.2 17-Aug-2010  uebayasi Sync with HEAD.
 1.1.6.1 31-May-2010  uebayasi file spinlock.c was added on branch uebayasi-xip on 2010-08-17 06:48:02 +0000
 1.1.4.2 11-Aug-2010  yamt sync with head.
 1.1.4.1 31-May-2010  yamt file spinlock.c was added on branch yamt-nfs-mp on 2010-08-11 22:55:07 +0000
 1.1.2.2 03-Jul-2010  rmind sync with head
 1.1.2.1 31-May-2010  rmind file spinlock.c was added on branch rmind-uvmplock on 2010-07-03 01:20:03 +0000
 1.2.2.1 18-May-2014  rmind sync with head
 1.2 01-Jan-2009  pooka Rename i386 and amd64 {cpu,spl}.c to rump{cpu,spl}.c to avoid
name collisions with other source files in the kernel tree.
 1.1 29-Dec-2008  pooka Switch i386 away from rump/include/machine. This means that rump
on i386 now uses the native kernel ABI. This in turn means that
rump modules and kernel modules are binary equivalent and can be
used interchangeably.

RSS XML Feed