Commit Graph

2420 Commits

Author SHA1 Message Date
pooka
1ac307e403 kill undesirable #ifndef _RUMPKERNEL 2014-03-11 20:32:05 +00:00
pooka
98631d955a Reinstance cpu_counter.h so that we don't have to work around the
MD implications everywhere else.
2014-03-11 20:25:05 +00:00
pooka
75234fdf68 deduplicate uvm_object_printit() implementation 2014-03-11 20:22:47 +00:00
pooka
0d17764267 Put the syncobjs in emul.c instead of locks.c so that they are
present for both locks.c and locks_up.c alike.
2014-03-11 00:59:38 +00:00
pooka
2d6a1e9048 update comments 2014-03-10 23:02:07 +00:00
pooka
3cbed593c7 add a compat prototype for rump_getversion() 2014-03-10 22:48:29 +00:00
pooka
e163d16682 rump_getversion() does not require a thread context, so make it a straight
call instead of being wrapped around rump_pub_getversion().
2014-03-10 22:44:10 +00:00
pooka
495782ee0e Move the "is arch capable of loading native kernel modules into
rump kernel" clauses from bsd.own.mk to Makefile.rump.  Also,
add a rump_nativeabi_p() call to determine if rump kernel is
compiled with native ABI support.
2014-03-10 22:38:53 +00:00
matt
c3a9c63860 Be a little more careful checking MLIBDIR 2014-03-07 05:49:05 +00:00
matt
f2ada4d7f5 Use ARCH_ELFSIZE=32 is MLIBDIR == "powerpc" 2014-03-07 04:10:43 +00:00
pooka
da53b95428 also include bsd.own.mk, so value for RUMP_NPF_TESTING can come from mk.conf 2014-03-03 19:09:52 +00:00
pooka
9d7981d3bd Fix the memory limiter to work for non-pagedaemon threads again
reported by njoly
2014-03-03 16:50:28 +00:00
pooka
ddbee4681a For now, make it possible to not specify -D_NPF_TESTING by compiling
with RUMP_NPF_TESTING_=no.  This in turn makes it possible to use npf
in a rump kernel for real packet filtering instead of just testing.

no change to default
2014-03-03 14:01:30 +00:00
pooka
c40bbed43a Pull in the changes from the dpdk, netmap and snabb switch repos.
There are two major changes:

1) All thread context policy is pushed down to the hypercalls.
   This is meant to help performance-mongering implementations be
   able to control packet scheduling better (e.g. pin down packet
   reception to certain physical cores).
2) Generalize linkstr, meaning that the interface can now take an
   arbitrary string which is passed to the create() hypercall.  This can
   be used to map backend device characteristics to the rump kernel
   interface instance.
2014-03-03 13:56:40 +00:00
matt
2260871018 Use the new FEAT_LDREX to replace ARMV6/ARMV7 2014-02-28 14:19:25 +00:00
skrll
dd7bb1e0a8 G/C sys/simplelock.h includes 2014-02-28 10:16:51 +00:00
hannken
d940ddcc62 Currently dead vnodes still reside on the vnodelist of the file system
they have been removed from.

Create a "dead mount" that takes dead vnodes until they get freed.

Discussed on tech-kern.
2014-02-27 13:00:06 +00:00
pooka
711a488a45 Run constructor as part of network faction bootstrap, not device
(rumpdev no longer necessary)
2014-02-26 02:39:29 +00:00
pooka
24b70d334d Schedule only those netisr's that have registered handlers. 2014-02-25 22:40:53 +00:00
pooka
4f6fb3bf35 Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before
the sysctl link sets are processed, and remove redundancy.

Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate
lines of code.
2014-02-25 18:30:08 +00:00
justin
69dd91d347 Add kern.{ostype,osrelease,osrevision,version} kern.domainname,
kern.rawpartition sysctl support to rump kernel.
Moved the sysctl support that is shared between rump and normal
kernels to init_sysctl_base.c as rump cannot use init_sysctl.c
in order to avoid code duplication. Agreed with pooka@.
2014-02-25 01:02:42 +00:00
pooka
0c98ef9a00 +rump_wmd 2014-02-24 19:22:14 +00:00
pooka
9f29e8de3d truncate is not a defined operation for host files 2014-02-24 11:43:33 +00:00
skrll
d44a8024fa Fix typo in fix for PR/48606 2014-02-21 08:33:51 +00:00
christos
7d843710ef PR/48606: Lloyd Parkes: Drivers not using ifp->if_input but using ether_input
directly.
2014-02-21 02:10:40 +00:00
pooka
b7c666f338 + resettodr 2014-02-20 01:01:10 +00:00
pooka
47693a4792 Remove the "host" signal model. I'm not sure it ever made any sense.
I'm also quite sure nobody ever really wanted to use it.

Change the "raise" sigmodel to include the rump kernel PID in the call
to rumpuser_kill().  The purpose is to provide some hint for non-POSIX
platforms which don't sport signals and multiplex many clients in a
single address space.

While this is technically an ABI change, see above.  Also, since
rumpuser_kill() was not documented, I'll just claim I'm fixing a bug in
the implementation (and will be sure to document the interface correctly
very soon).
2014-02-20 00:41:05 +00:00
pooka
8966dd15d3 remove stub now provided by rump kernel base 2014-02-18 06:20:46 +00:00
pooka
a2e24f6a7e Use same uvm_swap_shutdown() stub for !vmswap kernels and rump kernels. 2014-02-18 06:18:13 +00:00
pooka
37fe00547f simply issue a warning if <1MB RAM configured. it might work, but
not going to start enumerating when and where it might.
2014-02-17 19:43:52 +00:00
pooka
67ab7d006c reserve a small amount of memory for the pagedaemon 2014-02-17 19:33:05 +00:00
pooka
459f46c52b Register netisr's from component constructors instead of via a hardcoded
global list.
2014-02-14 01:43:13 +00:00
pooka
c1c33d6851 g/c prototype of imaginary routine 2014-02-14 01:27:48 +00:00
pooka
f16e4e4778 Minor comment massage, zero functionality massage. 2014-02-12 22:30:45 +00:00
pooka
9563724619 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)
2014-02-12 22:28:43 +00:00
hannken
97834f7ba0 Change vnode operation lookup to return the resulting vnode *vpp unlocked.
Change cache_lookup() to return an unlocked vnode.

Discussed on tech-kern@

Welcome to 6.99.31
2014-02-07 15:29:20 +00:00
pgoyette
f496b70ec7 Undo previous - it still needs a lot more work.
For now, we'll use the hand-crafted cf* structures and directly
call all the config routines.
2014-02-03 23:11:40 +00:00
pgoyette
a9062aa8b9 Use ioconf file to generate config data structures 2014-01-31 18:13:01 +00:00
pooka
934cd9a889 lwp0 needs l_proc set for panic->cpu_reboot to dump core the right way 2014-01-29 18:42:14 +00:00
njoly
b7dce7e999 Build with IPv6 support. 2014-01-28 10:54:45 +00:00
njoly
5df178fa15 Add now needed linux_pipe.c sources. 2014-01-25 10:40:40 +00:00
njoly
3e71eccadc Regen for pipe2 and lchown. 2014-01-25 10:31:01 +00:00
njoly
485190e7b7 Add pipe2 and lchown syscalls. 2014-01-25 10:30:22 +00:00
hannken
04c776e5c8 Change vnode operations create, mknod, mkdir and symlink to return
the resulting vnode *vpp unlocked.

Discussed on tech-kern@

Welcome to 6.99.30
2014-01-23 10:13:55 +00:00
christos
2e665b4bd4 Kludges like to procreate. Add alpha cpu_frequency() kludge. 2014-01-22 23:38:21 +00:00
martin
4fee85be61 Make IPL_ values different.
This makes ni real difference for rump, but avoods
KASSERTs in common code when we try to assert
"ipl not higher as...".
Suggested by riastradh, OK: pooka.
2014-01-19 07:01:55 +00:00
pooka
84093338b2 don't use temp buffer from the stack, fix the constants 2014-01-17 14:57:04 +00:00
hannken
1139274440 Change vnode operations create, mknod, mkdir and symlink to keep the
directory node dvp locked on return.

Discussed on tech-kern@

Welcome to 6.99.29
2014-01-17 10:55:01 +00:00
pooka
964b56f42b sysctl_init needs to be pretty much at the top of main() 2014-01-17 02:05:54 +00:00
pooka
2d79771930 Use subr_cprng.c instead of stub implementation. Rijndael migrates from
rumpkern_crypto to rumpkern due to it being mandatory for cprng.
2014-01-17 01:32:53 +00:00
pgoyette
aff4b3ca56 Don't bring in the zlib stuff at build time. This will get resolved
when the user starts the rump_server process.

OK pooka@
2014-01-16 14:12:09 +00:00
pgoyette
8409919195 Use existing rumpkern_z library rather than including another copy of
zlib.c
2014-01-16 02:38:20 +00:00
pgoyette
f8dd541c8b Remove explicit definition of COMPAT_50. As pointed out by pooka@,
this is already defined in Makefile.rump
2014-01-16 02:21:24 +00:00
pooka
eed75ee5c9 yearly update
Miraculously, the list got smaller(!)
2014-01-15 15:10:31 +00:00
pgoyette
ae263bb3de Link new opencrypto library into the build. 2014-01-14 17:17:52 +00:00
pgoyette
5e3ad7ff0e Add new rump library for opencrypto framework 2014-01-14 17:15:09 +00:00
pgoyette
2e6d77ce29 Add the MODULE parts for blowfish and des.
Add camellia algorithm.  (pooka@ says no lib version change required)
2014-01-14 17:05:50 +00:00
njoly
5298a5a891 Regen. 2014-01-10 20:10:43 +00:00
njoly
cc84e6774d Add NetBSD futimes/lutimes syscalls which does not exists on Linux. 2014-01-10 20:10:23 +00:00
njoly
c21d61a30f Regen. 2014-01-10 19:45:43 +00:00
njoly
a022633d69 Do not redefine linux syscalls arguments, just use compat ones
instead.
Include linux_socketcall.h to bring missing socket syscall
arguments/prototypes on arches that have socketcall(2).
Finally, cleanup rump linux syscall wrapper, to remove linux syscall
argument/prototype local copy.
2014-01-10 19:44:47 +00:00
pooka
b50bd486cc OpenBSD has kqueue 2014-01-08 11:06:33 +00:00
pooka
acb676442c Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only. 2014-01-02 18:29:01 +00:00
pooka
6971bddad3 include shmif_dumpbus 2013-12-20 10:13:24 +00:00
pooka
1150b99ea3 use _KERNEL_RCSID only in _KERNEL, _RCSID elsewhere 2013-12-20 10:00:59 +00:00
pooka
1a7f9ac66c header massage, mostly improves portability 2013-12-20 09:06:35 +00:00
pooka
c0dbaf1358 install rumperr.h 2013-12-18 20:14:02 +00:00
pooka
796ef7fdf2 regen 2013-12-18 20:12:08 +00:00
pooka
31ca0a94e8 generate errno -> str routine (for portable programs) 2013-12-18 20:10:58 +00:00
pooka
7d5558e88d fix tyop 2013-12-17 14:30:18 +00:00
pooka
f5bd9f4075 Translate return values for emulations, e.g. Linux. For ports without
__HAVE_MINIMAL_EMUL, we simply look up the values from p->p_emul->e_errno.
For ports which cannot afford to keep an extra pointer per emul structure
around, we hope there is __HAVE_SYSCALL_INTERN support and thread the
errno values through p_emuldata.  Notably, we cannot alter the syscall
method like most ports do with syscall_intern, since they do it via
p_mdproc, so MI code is not possible there.
2013-12-16 15:36:29 +00:00
njoly
6d25749476 Regen. 2013-12-14 17:35:11 +00:00
njoly
d491161468 Use native/rump syscalls for pread/pwrite instead of linux ones
which only exist to deal with PAD argument.
2013-12-14 17:34:47 +00:00
njoly
f820357119 Regen. 2013-12-14 10:30:50 +00:00
njoly
3fa945c034 Add syscall wrapper for mknodat(2) to deal with PAD argument difference
between rump and linux versions.
2013-12-14 10:29:45 +00:00
pooka
f11ea73cc4 regen 2013-12-11 23:14:03 +00:00
pooka
87860d8cc5 need to grab KTRFACv[n] too 2013-12-11 23:13:48 +00:00
pooka
ef738750b7 reregengen 2013-12-11 09:45:01 +00:00
pooka
4bb2a888c3 regen 2013-12-09 21:13:21 +00:00
pooka
6cddbc313d Now that Makefile.rump is included here first, do not override any
SRCS it adds.  This is required for linksyms_sun.c used when linking
with the Solaris linker.
2013-12-09 20:44:00 +00:00
pooka
7b1b5f1abc Reenable calls to KPREEMPT_EN/DISABLE(). I'm almost certain I commented
them out accidentally in rev 1.30.

... not that they do much in rump kernels which are always
run-to-completion, but maybe there's some driver debugging value.
2013-12-09 19:47:59 +00:00
pooka
e5b8d78b8e regen 2013-12-09 19:31:36 +00:00
pooka
5335d68dd3 include ktrace constants 2013-12-09 19:31:00 +00:00
pooka
a32f91a34e regen 2013-12-09 19:19:39 +00:00
pooka
0ba40768c8 Make ktrace a compile-time option 2013-12-09 17:57:11 +00:00
pooka
2f027c575e regen 2013-12-09 17:15:11 +00:00
pooka
33ab42bca0 make !LOCKDEBUG work too 2013-12-09 17:03:41 +00:00
pooka
f4f26b55de need ktrace.h now 2013-12-09 16:56:11 +00:00
pooka
5624f8eb6b Support ktrace for rump kernels.
Requested by Justin Cormack on rumpkernel-users.
2013-12-09 16:54:20 +00:00
pooka
a639bb644d regen 2013-12-09 16:35:12 +00:00
pooka
257a0d4d1f Use sy_invoke() instead of sy_call() directly. 2013-12-09 16:23:10 +00:00
pooka
afc932bfaa stop ktrace at process exit 2013-12-09 16:21:15 +00:00
njoly
e767fbcf4a Regen. 2013-12-08 08:55:27 +00:00
njoly
30c1ae2545 Add support for *at syscalls. 2013-12-08 08:54:48 +00:00
njoly
965d2f018b Regen. 2013-12-07 11:49:56 +00:00
njoly
2f2a9081c4 Add dup3 support. 2013-12-07 11:49:27 +00:00
njoly
f4eb1c9fc7 Regen. 2013-12-07 09:20:22 +00:00
njoly
fb1f7d2f0d Remove liutimes(2) that linux never had. 2013-12-07 09:19:36 +00:00
christos
e929654b56 add a copy of uvm_swap_shutdown() here so that it is not undefined when we
use it.
2013-11-23 22:24:31 +00:00
christos
0b725b63c7 change the mountlist CIRCLEQ into a TAILQ 2013-11-23 13:35:36 +00:00
christos
92afcdc148 we now use TAILQ 2013-11-22 21:56:24 +00:00
njoly
41f9717ed2 Do lwp0 initialisation as early as possible, right after
rumpuser_init(). This makes rump applications work again when
RUMP_LOCKDEBUG is enabled.

ok pooka.
2013-11-18 18:45:29 +00:00
rmind
4db7db6b0f Move rumpnet_bpfjit under MKSLJIT as well. 2013-11-16 14:00:57 +00:00
alnsn
def19d8993 Build and install sljit and bpfjit rump components iff ${MKSLJIT} != "no". 2013-11-16 13:01:38 +00:00
martin
115703ed50 sljit is only available on very few architectures, so do not try to build
it on all.
2013-11-16 10:34:47 +00:00
rmind
6e88b59054 Build rumpkern_sljit and rumpnet_bpfjit; include them into the sets. 2013-11-16 01:39:17 +00:00
rmind
80f3a45395 Add rumpkern_sljit and rumpnet_bpfjit modules. 2013-11-16 01:23:37 +00:00
martin
41de4c61e8 As discussed on tech-kern: make TOPDOWN-VM runtime selectable per process
(offer MD code or emulations to override it).
2013-11-14 12:07:11 +00:00
pooka
8ce507197f regen 2013-11-13 16:42:30 +00:00
pooka
bf32f59ada do enums, grab enum modctl 2013-11-13 16:42:00 +00:00
pooka
63714dea2f Avoid calling curcpu() when we know the result is constant. 2013-11-11 23:11:30 +00:00
pooka
d64fcb8d70 Defer softint thread creation to first softint_establish() for that level.
Speeds up rump kernel bootstrap and saves memory -- very rarely are all
softint levels in a rump kernel used.
2013-11-11 23:06:40 +00:00
joerg
5dce7f2a9f Fix syntax for undefined HAVE_GCC. 2013-11-11 00:56:20 +00:00
rmind
a79812ea10 NPF: add support for specifying the interfaces before they are attached.
If an interface is or gets detached, all associated rules and connections
will be deactivated (it might be useful to have an option to invalidate
the associated connections).  Once the interface is reattached they will
become active.

Bump NPF_VERSION.
2013-11-08 00:38:26 +00:00
christos
c2157dc68c avoid gcc bug on sh3 2013-11-07 21:30:58 +00:00
mrg
02f2d66aa1 mark rump's CPU_INFO_ITERATOR as being __unused. 2013-10-30 08:42:45 +00:00
pooka
08030c27cb Add MIPS. Requested by Justin Cormack. 2013-10-29 16:19:28 +00:00
pooka
f04b573a14 Maintain arch list in a separate variable.
no functional change
2013-10-29 16:18:42 +00:00
pooka
684100d315 Enable holding implicit threads over explicit scheduling points (i.e.
a kernel driver calling rump_lwproc_switch()).  Also, correctly handle
curcpu()->ci_curlwp and biglock there.
2013-10-27 20:25:45 +00:00
pooka
605dec17d4 Give the hypercall interface a version number. This is for
implementations outside of the tree.
2013-10-27 16:03:19 +00:00
christos
74e86c11e9 remove unused variable 2013-10-18 19:56:11 +00:00
njoly
4a806b5236 Regen for mknodat(2) device argument type change. 2013-10-17 18:04:40 +00:00
njoly
9ef9256e1a Regen for utimensat(2). 2013-10-05 09:22:43 +00:00
njoly
acf696a10e Add utimensat(2) support. 2013-10-05 09:22:01 +00:00
pooka
3afd1f0a82 +BUS_DMA_TAG_IS_VALID 2013-09-23 17:57:59 +00:00
pooka
6e46c1395e Make dma_tag_t a bit more useful.
XXX: this header should definitely not exist, but given that it does,
let's use it to make life easier.  The implication of its existence is
that x86 port rump kernel components are not ABI-compatible with kernel
modules which use bus_space/bus_dma.  I'm not sure if anyone is interested
in that...
2013-09-22 20:51:18 +00:00
pooka
d9a6bf91c0 use ioconf for mainbus 2013-09-20 16:49:00 +00:00
pooka
67be9b8a43 Move the bus_dma implementation that works only with ugenhc into the
ugenhc component itself.
2013-09-19 17:55:22 +00:00
pooka
fa25181c5c Pull in all of sys/dev (i.e. don't skip pci/ and microcode/). 2013-09-19 16:16:03 +00:00
rmind
7b5edfdc0d NPF: G/C n-code in favour of BPF byte-code. Delete lots of code, mmm! 2013-09-19 01:49:07 +00:00
pooka
f12cd61cff Make it possible to run component constructors after mainbus attaches,
but before config_finalize() is run.
2013-09-17 23:55:16 +00:00
pooka
21d147878b allow pcibus to attach to a rump kernel mainbus 2013-09-17 00:50:19 +00:00
joerg
f9cf12b211 GC rumpusb_device_intr_methods. 2013-09-13 20:38:39 +00:00
joerg
421316e0bf Remove busversion. 2013-09-13 20:38:04 +00:00
joerg
7a17852c4d GC unused functions. Don't bother building ieee80211_acl.c, nothing in
it is non-static.
2013-09-13 20:19:53 +00:00
pooka
543084bf66 regen 2013-09-10 17:42:02 +00:00
pooka
6a483aa182 +rump_server 2013-09-10 17:08:57 +00:00
pooka
dcf10cb7c5 Fix minor bug in previous: make sure we come out of rump_init()
without a bound lwp set.
2013-09-09 19:18:08 +00:00
pooka
15344de734 Fool isatty() into thinking we're a tty. 2013-09-08 04:37:17 +00:00
pooka
fbf90abc10 fix -Wuninitialized 2013-09-07 18:17:35 +00:00
pooka
28fc97ca89 Add an initial console device and open fd's 0/1/2 for initproc. This is
again useful in standalone-type environments such as Xen, where all
printf/etc calls go through the rump kernel.
2013-09-07 17:58:00 +00:00
pooka
4c0122ee7f Also create hw.pagesize, makes sysconf(_SC_PAGESIZE) return a more
sensible result.
2013-09-04 17:56:08 +00:00
pooka
f754a2f110 + don't rename rump_syscalls.*o
+ support RUMP_KERNEL_IS_LIBC
2013-09-03 21:32:21 +00:00
pooka
cee3de56df regen 2013-09-03 21:30:43 +00:00
pooka
fb19198452 RUMPCOMP_USEROBJ -> RUMPOBJ_NORENAME
Widens the implied usage scope of the variable.
2013-09-03 19:57:02 +00:00
pooka
31b175eb03 Don't autogenerate the wrapper that is called from the rump kernel
local syscall entry points.  The wrapper is now so big that it doesn't
get inlined (original intent for having it close to the entry points),
and autogenerating a regular function just loses in flexibility.
2013-09-03 19:55:13 +00:00
pooka
8ab637bd54 regen 2013-08-30 10:34:39 +00:00
pooka
74f1a93841 Rename RUMPTEST_BUILDSH to RUMPKERN_ONLY. Turns out not building any
POSIX implementations of hypercalls is useful beyond the build.sh test,
such as when building rump kernels for non-POSIX hosts.
2013-08-30 10:29:06 +00:00
rmind
8088e72932 Remove SS_ISCONFIRMING, it is unused and TP4 will not come back. 2013-08-29 17:49:20 +00:00
matt
ac1a767070 Teach this about ARMV7 2013-08-22 15:53:05 +00:00