Commit Graph

2824 Commits

Author SHA1 Message Date
christos
3b88282d06 elide vax compiler bug. 2016-03-23 21:38:51 +00:00
joerg
9adca58c0e Align the message buffer. The kernel routines normally are used only
with page aligned buffers and they assume at least pointer alignment. Be
defensive here and align to 256 Bytes.
2016-03-08 14:30:48 +00:00
christos
3eda01ea39 Avoid void * arithmetic 2016-03-07 00:51:32 +00:00
christos
8e7e68da22 PR/50900: David Binderman: optimize memset 2016-03-06 19:47:41 +00:00
pooka
2657abc4e0 add cpu_lock
from freqlabs on irc
2016-02-19 18:38:37 +00:00
riastradh
d80621961e Need <sys/mutex.h> for mutex(9). 2016-02-17 01:48:36 +00:00
riastradh
9e2ce23efb Caller must have exclusive access to rndsource for rnd_add_data(_sync). 2016-02-17 01:48:04 +00:00
riastradh
e3389acee7 Make hyperentropy rndsource work synchronously, again.
This time for real!  *crosses fingers*
2016-02-17 01:42:25 +00:00
ozaki-r
9c4cd06355 Introduce softint-based if_input
This change intends to run the whole network stack in softint context
(or normal LWP), not hardware interrupt context. Note that the work is
still incomplete by this change; to that end, we also have to softint-ify
if_link_state_change (and bpf) which can still run in hardware interrupt.

This change softint-ifies at ifp->if_input that is called from
each device driver (and ieee80211_input) to ensure Layer 2 runs
in softint (e.g., ether_input and bridge_input). To this end,
we provide a framework (called percpuq) that utlizes softint(9)
and percpu ifqueues. With this patch, rxintr of most drivers just
queues received packets and schedules a softint, and the softint
dequeues packets and does rest packet processing.

To minimize changes to each driver, percpuq is allocated in struct
ifnet for now and that is initialized by default (in if_attach).
We probably have to move percpuq to softc of each driver, but it's
future work. At this point, only wm(4) has percpuq in its softc
as a reference implementation.

Additional information including performance numbers can be found
in the thread at tech-kern@ and tech-net@:
http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html

Acknowledgment: riastradh@ greatly helped this work.
Thank you very much!
2016-02-09 08:32:07 +00:00
pooka
09c0762f99 Allocate struct cpu_info dynamically. Saves quite a lot of BSS in the
common case and reduces rump kernel memory requirements by 10% or more
in really tiny deployments.
2016-02-08 18:18:19 +00:00
mlelstv
bbd8666d0f Split case folding table into separate source file and add full
copyright and permission notice from http://www.unicode.org/copyright.html
2016-02-06 10:40:58 +00:00
pooka
b47801c831 Remove leading spaces.
Bet you didn't see that one coming.
2016-02-02 13:07:30 +00:00
pooka
f30877a77a optimize for size a.k.a. operation nuke trailing spaces 2016-02-02 13:02:34 +00:00
pooka
a8b37cc8bf Add capability to attach external memory to files on rumpfs. This
feature is useful e.g. for tight-memory systems where you don't need
block storage, but still need to provide some data via files.
2016-02-02 12:22:23 +00:00
pooka
4dac192382 regen 2016-02-02 01:15:58 +00:00
pooka
ae1e89ede5 snarf fcntl definitions 2016-02-02 01:15:24 +00:00
pooka
0bb9321be6 periodic regen (because having new rcs ids in comments is most useful) 2016-02-02 01:14:26 +00:00
pooka
524147ffc7 Move "shotgun approach to rump syscalls" from rump.h to a separate header,
sort of as a hint that relying on those macros is not necessarily the
way you want to do things in 2016.  Include things from rump.h for compat
for the time being, though.
2016-01-31 23:14:34 +00:00
christos
84c7254397 PR/50631: Joerg Sonnenberger: Don't rename syscalls before you include
the relevant headers.
2016-01-29 20:35:48 +00:00
pooka
cbf188301a regen syscall files 2016-01-26 23:49:46 +00:00
pooka
1730d8f0cf nuke a few missed -Ifactiondir CPPFLAGSitions. 2016-01-26 23:41:15 +00:00
pooka
93f2ab8ce8 regen vnode interfaces 2016-01-26 23:30:10 +00:00
pooka
00e5ca99e7 regen rump kernel interfaces for header change.
(they were already manually edited for a prior commit, so not much change)
2016-01-26 23:25:40 +00:00
pooka
9187c84558 "rump_private.h" -> <rump-sys/kern.h> 2016-01-26 23:24:55 +00:00
pooka
a3ffdb865d generate privhdrs to new location 2016-01-26 23:22:22 +00:00
pooka
bf54b2f752 include rumpif private headers from <rump-sys> 2016-01-26 23:21:18 +00:00
pooka
6bb5142288 Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories.  Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
2016-01-26 23:12:14 +00:00
pooka
18353ae21f prop_dictionary_t hasn't been needed here in, um, 5 years, so remove
the type madness.
2016-01-25 12:25:38 +00:00
pooka
d35b86acad Don't include <rump/rumpvnode_if.h> from rump.h. It's not needed
unless you're doing something special, but requires register_t.
Adjust the few places which actually need rumpvnode_if.h.
2016-01-25 11:45:57 +00:00
pooka
9331c560dd Move librumpuser compile-time options into the librumpuser source
directory.  Those options apply only for the in-tree implementation.
2016-01-25 00:24:23 +00:00
ozaki-r
eef1a9e462 Fix build with RUMP_LOCKDEBUG=yes 2016-01-22 04:26:01 +00:00
pooka
ea1845ad67 put lwp/proc stuff into the same source module (emul.c -> lwproc.c) 2016-01-18 23:27:20 +00:00
pooka
85df50f357 massively reduce header pollution from times prehistoric 2016-01-18 23:21:28 +00:00
pooka
45c68bb8cc Fix dlopen()/dlclose()+RUMP_USE_CTOR to not leave dangling pointers around. 2016-01-18 16:46:08 +00:00
pooka
bd792fddbf boottime is a timespec, not timeval 2016-01-18 15:53:38 +00:00
pooka
a987d455cc Implement the inverse of a nop. 2016-01-18 14:37:53 +00:00
knakahara
a9794d3914 conform rump behavior to NetBSD kernel (in paticular net.inet.ip.gifttl sysctl) 2016-01-08 04:06:48 +00:00
pooka
13f1407fea Initialize non-VFS parts of tty subsystem already at RUMP_COMPONENT_KERN.
That way components under RUMP__FACTION_DEV can call tty routines.
2016-01-07 21:09:01 +00:00
pooka
188e7ef2a6 use WSEMUL_NO_DUMB and WSEMUL_VT100 2016-01-07 21:04:27 +00:00
pooka
c33ddd066d regen 2016-01-07 13:54:08 +00:00
christos
8ec658f57a - Change LDADD/DPADD in library dependencies to LIBDPLIBS
- Fix some LDADD abuse and remove useless dependencies
- include <bsd.init.mk> in the right place where appropriate
From Rin Okuyama
2016-01-05 13:07:46 +00:00
pgoyette
e04dc48269 Now that the table of auto-loadable syscalls is per-emulation, make sure
that the rump-kernel has its own list.  Otherwise, missing syscalls won't
trigger a module auto-load.

This commit finishes the work to get tests/lib/librumphijack/t_tcpip
nfs_autoload test case working again after 16 months of failures!  (see
PR bin/49153).
2015-12-29 10:22:05 +00:00
pgoyette
7594d8cd11 Detach the {b,c}devsw after obtaining the device major numbers. We'll
re-attach during module initialization.

This enables the atf tests to once again succeed.
2015-12-26 10:22:09 +00:00
pgoyette
23c592fb1a Remove local CF_DRIVER_DECL - it is now defined in the raidframe driver's
module initialization code
2015-12-26 01:01:30 +00:00
christos
7cbc092f17 fix struct name 2015-12-08 22:16:01 +00:00
christos
8d10f96266 Replace DIOCGPART -> DIOCGPARTINFO which returns the data needed instead of
pointers.
2015-12-08 20:36:14 +00:00
pgoyette
2bc9136f54 Regen 2015-12-03 02:56:48 +00:00
pgoyette
54a32217dd Regen 2015-12-01 00:27:17 +00:00
pgoyette
135af292eb Finish the regen - some of the files from sys/kern got committed
accidentally with the fix to makesyscalls.sh - sorry about that.
2015-11-30 23:28:31 +00:00
pgoyette
abe91b09e0 Regen for 7.99.23 2015-11-30 22:48:53 +00:00