Age | Commit message (Collapse) | Author |
|
does not have to deal with it as a common. Some platforms may be missed
by this commit... if you spot one, fix it the same way.
ok miod
|
|
ok deraadt@
|
|
free the softc before we return. While here, make the allocation
code a bit prettier too.
OK deraadt@
|
|
ok kettenis@
|
|
properly restore it in sigreturn. Lots of deep digging by matthieu,
otto, guenther, kettenis and I.. and I am certain I forgot some other
people.
ok kettenis otto matthieu
|
|
as the high/low guessing won't be done on these processors due to MSR
differences.
|
|
deraadt@ in one of the big restructuring diffs.
ok marco@, millert@, marco@
|
|
prefer binutils-compatible options in STRIPFLAGS (now that our non-binutils
strip(1) can handle them too)
ok drahn; miod kettenis (for parts)
|
|
a fat kernel (GERERIC or GENERIC.MP) into a temporary dir, then extract some
variables using make -V, and after some more singing and dancing use this
full and (more) correct list of files with ctags. Don't read this code.
ok guenther
|
|
and thus should be using spltty()
from Matthew Dempsky
ok oga guenther
|
|
to genassym.sh
ok deraadt
|
|
the differences between these files. You will need a newer config(8) binary
to be able to build kernels.
ok kettenis miod
|
|
result: kernels built without 'make depend'-provided information
(ie. the .depend file) are more likely to have their *.[Ss] file
compilations track changes to *.h files.
The "*.o: assym.h" dependencies listed are gotten from reading the
.depend output --- from the biggest kernel possible (ie. GENERIC.MP).
When an architecture changes in a substantial way (new .[sS] files),
the list should be updated in the prettiest way possible.
This is not encouraging people to skip 'make depend'; other issues are
not resolved and may be solved later with a change guenther is working
on. You can still screwed really easily, so continue running make
depend as config tells you.
Idea from a discussion with drahn
ok drahn, kettenis likes the idea too
|
|
idea that came out of discussion with drahn
|
|
delete the archaic links: target which is easily misused
handle special .[sS] files in a portable way
|
|
|
|
ok various people, tested by fewer people, tested by me on 15.
|
|
compiler. Also move towards passing $PARAM around in CPPFLAGS, instead
of compiling param.c in a special way, as discussed with miod
|
|
|
|
for now.
When we get bouncebuffers/decent iommu this can be revised to either
fall back (bouncebuffers) or just grab any memory (iommu), but for now
it is one less thing to worry about for turning bigmem back on.
ok kettenis@ and beck@
|
|
reservation, we don't need to stick to transferring single pages during boot
dump anymore.
so bump the limit up to MAXPHYS (64k). Dramatically speeding up boot
dump/crash on amd64. (my 4gig machine went from 13.5 minues to just over
1min with this diff)
ok toby, marco. Discussed with miod.
|
|
tested by ckuethe@, ok oga@
|
|
more to come later)
Specfically, there is no reason to reserve a special virtual address just so we
can do boot dump, we have a direct map of every page anyway.
since pmap_map is deprecated and MD only anyway, this means we can remove that
interface too. If anything this should increase reliability since pmap_enter
won't fail under memory pressure during dump (unlikely but possible). It is also
simpler and smaller ;)
Tested by myself and ckuethe, no regressions.
ok miod@
|
|
things that there really isn't a decent api for elsewhere.
Since on recent intel IGPs the gtt aperture is too big (256meg is not
uncommon) to be mapped on a kva-constrained arch like i386, introduce an agp
mapping api that does things depending on arch.
On amd64 which can afford the space (and will use the direct mapping
again soon)just do bus_space_map() on init, then parcels things out
using bus_space_subregion(), thus avoiding map/unmap overhead on every
call (this is how inteldrm does things right now).
On i386, we do bus_space_map() and bus_space_unmap as appropriate. Linux
has some tricks here involving ``atomic'' maps that are on only one cpu
and that you may not sleep with to avoid the ipi overhead for tlb
flushing. For now we don't go down that route but it is being
considered.
I am also considering if it is worth abstracting this a little more,
improving the api and making it a general MD interface.
Tested by myself on i386 and amd64 and by drahn@ (who has one of the
machines with an aperture that is too big) on i386.
|
|
ok jsg
|
|
PAT allows setting per-mapping cachability bits. Our main interest in it
for write combining mappings so we do not have to rely so heaviliy on
mtrrs (which are stupidly set up on more and more machines). MD flags to
pmap allow setting these bits (which bus_space now uses for PREFETCHABLE
maps), if a vm page has a bit set, then we will use WC for all mappings
of a page (used for userland mappings). We also check for known errata
and fall back to UC- mappings in that case.
comments from kettenis@, tedu@ and william@. kettenis@, tedu@ ok.
|
|
by reference for the trap frame, the infrastructure in locore.S for this
was already present.
This prevents gcc4 from optimising away stores into the frame and allows
a gcc4-compiled kernel to boot.
ok kettenis robert guenther
|
|
places in the tree need to be touched to update the object
initialisation with respect to that.
So, make a function (uvm_initobj) that takes the refcount, object and
pager ops and does this initialisation for us. This should save on
maintainance in the future.
looked good to fgs@. Tedu complained about the British spelling but OKed
it anyway.
|
|
"Absolutely, don't forget i386" kettenis@.
|
|
Makefile.* files
|
|
and SRCS= (common files always after the \)
|
|
but required for gcc4.
ok kettenis@ deraadt@ marco@, log2 suggested by robert@
|
|
|
|
|
|
two directories. in reality, because of how we place files, it has four:
.../arch/A, .../arch/A/A, .../arch/M, and .../arch/M/M
formalize this A/A and M/M scheme directly in the Makefiles, which makes
them a lot more similar
drahn likes the idea a lot
|
|
|
|
|
|
|
|
arch and machine dependent files (and add the missing files)
ok miod drahn
|
|
|
|
ok miod drahn
|
|
ok miod
|
|
identifier, allowing the disk to be identified without relying on the
device name.
ok deraadt@ krw@ beck@ marco@ todd@
|
|
ok miod@
|
|
OK tedu@
|
|
|
|
sysctl.h was reliant on this particular include, and many drivers included
sysctl.h unnecessarily. remove sysctl.h or add proc.h as needed.
ok deraadt
|
|
HARD uncached on anything since the P3), use just PCD which is UC-
(uncached but mtrrs can override it to write combining).
Now kernel mappings of WC-mtrred memory actually get write combining
memory.
the speed up is very very nice.
ok kettenis@, deraadt@, beck@ (who likes his scrollbars non-wibbly)
|
|
bit set. While there, add an #ifdef MULTIPROCESSOR to make the diff between
amd64 and i386 smaller.
ok art@
|
|
flush the TLB immediately after doing so, to make sure there are no stale
TLB entries. Suggested by art@
ok art@, oga@, deraadt@, weingart@
|