Commit Graph

65 Commits

Author SHA1 Message Date
andvar aeb27b06e1 fix typos in comments. 2023-08-17 14:19:49 +00:00
mlelstv c57aea46e3 provide pmap_wired_count macro. 2022-08-22 13:22:10 +00:00
riastradh fd49f423fd Fix rump definition of cpu_number(). 2019-12-04 03:04:52 +00:00
ad f278a3b979 Add ci_onproc. 2019-12-01 18:29:26 +00:00
christos 87fd18f8e5 s/static inline/static __inline/g for consistency. 2018-04-19 21:50:06 +00:00
martin 8dca0c72be Add a dummy splraiseipl() 2016-04-11 10:53:06 +00:00
pooka 2c5012fa3d Apparently not all ports define struct clockframe in cpu.h, so we cannot
provide our definition that way.  Instead, generate the struct clockframe
passed to hardclock() in MD code.
2015-04-22 17:38:33 +00:00
pooka e94d45801a emulgate clockframe 2015-04-22 16:48:08 +00:00
pooka a60844e2f3 Give the kernel/local pmaps actual storage.
That way friendly neighborhood macros won't go scribbling
in the wrong places.
2015-04-17 12:43:15 +00:00
pooka 35bcd6f8af Allow compile-time optimizations to curlwp. This can have a pretty
staggering impact on performance.  When running sendto() in a loop,
the improvement is 200k more calls per second with an inlined __thread
curlwp as opposed to the default.  In other words, it shaves off hundreds
of CPU cycles per call (~20%).  Even just eliminating the x86_curlwp()
call in favor of an inline gives an improvement of 60k calls per second.
2014-03-15 15:15:26 +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 2d6a1e9048 update comments 2014-03-10 23:02:07 +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
mrg 02f2d66aa1 mark rump's CPU_INFO_ITERATOR as being __unused. 2013-10-30 08:42:45 +00:00
pooka 939c69c331 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.
2013-05-02 19:14:59 +00:00
skrll f7f22bc647 Provide splsoftserial.
GRRR RUMP
2013-01-08 08:55:28 +00:00
dyoung 9c14481bd4 Use <sys/bus.h> not <machine/bus.h>. 2011-07-15 23:40:56 +00:00
pooka 23bbd0e078 Update copyright statements.
no functional change.
2011-03-21 16:41:08 +00:00
pooka a9dcf542ce Add SMP support for all architectures.
tested on sparc64 by martin
2011-01-04 16:23:35 +00:00
pooka 688fddb6c6 add ci_curlwp since we use it now 2010-12-02 21:20:39 +00:00
pooka 55c3091ac6 Make IPLs not equal IPL_NONE to avoid some KASSERTs. 2010-08-30 18:29:52 +00:00
pooka 667d694ddb Fix snafu in previous -- if your test it flawed, it doesn't matter
how many times you pass.
2010-06-17 08:19:32 +00:00
pooka cd3e4f8ebc 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.
2010-06-16 11:45:21 +00:00
pooka bd84a040a4 Add missing public members of bus_dmamap_t per interface specification
(nothing uses them here for now, so untested).
2010-02-13 03:19:46 +00:00
pooka cefcf2133f Add a bus.h blanket header which forces definition of bus space /
bus dma interfaces as functions and therefore makes it possible to
use rump on archs which suffer from macro maladies, i.e. everything
except i386 and amd64.

(build-tested on sparc64 and vax, which are usually the two extremes
of weirdness in these cases)
2010-02-09 17:33:31 +00:00
pooka cfc0373f49 rump_get_curlwp() is dead 2009-10-15 16:46:37 +00:00
pooka 5a586117cf fix previous to make sense 2009-10-15 01:50:08 +00:00
pooka 466e9bcfec adjust for new rump_cpu 2009-10-15 01:35:23 +00:00
pooka b90ea1cecf 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)
2009-02-06 20:01:41 +00:00
he 5d08264428 Define IPL_SOFTSERIAL and provide a makeiplcookie() implementation,
so that kern/subr_pool.c can build again.

OK'ed by martin@
2009-01-24 12:34:04 +00:00
pooka 5e4b7cd86e powerpc md stuff for libkern 2009-01-06 13:20:34 +00:00
pooka 6ddc756654 Assemble with _LOCORE. 2009-01-05 14:35:47 +00:00
pooka 3c58d5b25f My clever hack was not enough. Disable DELAY via ifndef _RUMPKERN in
subr_prf until I manage to get all archs in line with a proper MI
signature.
2009-01-02 22:03:00 +00:00
pooka 055c86bdde Sauce with some kludges:
* revert rev 1.68 of emul.c: delay() is hopelessly MD and needs
  whipping (not the fun kind)
* #undef DELAY in cpu.h

This will hopefully fix build for all archs and give me time to
hop through our 46521 fine archs and edit the headers.
2009-01-02 16:18:59 +00:00
pooka 23bce3395a printf needs IPL_HIGH 2009-01-02 10:45:26 +00:00
pooka 649c12eb68 If the arch uses __BSWAP_RENAME, provide non-namespaced kernel
symbols which just call the libc symbols.  Allows to get rid of
rump machine/bswap.h.

XXX:
1) this is unlikely to work on non-NetBSD
==>
2) should look into including libkern in librump
2008-12-14 19:58:29 +00:00
pooka 22c85f18af Get rid of local machine/{mutex,rwlock}.h files by treating the
object storage as a single pointer (all archs have at least one
uintptr_t in the objects).
2008-12-13 15:34:48 +00:00
pooka 0d12ba9def Add a few MD ifdefs into the rump pmap stubs to enable us to get
rid of the local pmap.h and unify the pmap ABI with the kernel.
(XXX: compiles but doesn't work on vax)

Thanks once again to Greg Oster for helping with testbuilds.
2008-12-12 18:46:43 +00:00
pooka 0e6117b96f Apparently some ports rely on cpu.h including machine/pcb.h. 2008-12-11 16:25:23 +00:00
pooka 29d439f898 Make pmap_kernel() a MI macro for struct pmap *kernel_pmap_ptr,
which is now the "API" provided by the pmap module.  pmap_kernel()
remains as the syntactic sugar.

Bonus cosmetics round: move all the pmap_t pointer typedefs into
uvm_pmap.h.

Thanks to Greg Oster for providing cpu muscle for doing test builds.
2008-12-09 20:45:44 +00:00
pooka 6a5161dfcb Remove rump cpu_counter.h in favour of the arch native one. I'm
sure there was a reason why I originally added this, but I can't
find what would break without it now.  If something does pop up,
I'll fix it properly this time instead of adding silly headers.
2008-12-08 13:31:58 +00:00
pooka 316be31a2e Instead of punishing all archs for a fake vmparam.h, punish only
evbppc for its insolence and pick a ppc cpu family at random in
Makefile.rump.
2008-12-08 12:57:33 +00:00
pooka 23046e71b2 Add a few symbols required by nfsd 2008-11-26 15:04:02 +00:00
pooka afbf917f75 Alpha requires 8k pages for mbuf size calculation to work (maybe
sparc64 too?).  Make it so.
2008-10-16 22:05:12 +00:00
pooka 8fb0c4b043 Add support bits necessary for rumpnet functionality. 2008-10-15 13:04:26 +00:00
pooka fe413fd0f6 +IPL_SOFTNET 2008-10-14 14:09:29 +00:00
pooka fac4c8d11a Add some shameful kludges for the vax build. Eventually I'd like
to use the native kernel machine directory, so don't waste too much
effort fighting this now.
2008-10-12 22:08:08 +00:00
pooka 287270f554 Bump virtual page shift from 10 to 12. Otherwise the mbuf generating
macros fail to operate properly due to M_EXT_MAXPAGES being too
large and hence struct _m_ext being over MSIZE already by itself.
2008-10-09 12:34:36 +00:00
pooka 38b7d91d61 Add IPL_SOFTCLOCK, something required it (although I can't quite
recall what, this has been floating in my tree for a while)
2008-09-02 19:27:35 +00:00