Age | Commit message (Collapse) | Author |
|
|
|
The only OSes I've seen that use SIZE_T_MAX are 4.4BSD-derived whereas
SYSV things seem to use SIZE_MAX. It is also consistent with SSIZE_MAX
(which we already have). deraadt@ OK
|
|
the fault is a EXE fault or R/W fault.
- mask/or the SR_NOEXEC bit into the segment register value
when the number of executable pages becomes 0/non-zero.
- create segments with SR_NOEXEC set, will be cleared when first
exec mapping in the segment is created.
- allow pte_spill_X() to deal with a new type of fault, page mapped
but non executable, when execute was requested.
Adds up to - non-exec stack support for powerpc.
|
|
|
|
portions of the tree.
|
|
non-executeable stack.
|
|
pmap_t is the exception, it is required by the MI code so pmap_t will
be used instead of using 'struct pmap *' in the code. (consistency)
|
|
|
|
|
|
|
|
Move the ddb files form macppc/macppc to powerpc/ddb, so that mvmeppc
can benefit from the better ddb that was in macppc.
db_interface.c is left as an md part.
|
|
ok drahn@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
remove eg mmap() ok miod@ art@
|
|
that specifies which printf funciton it should use. Implement
db_stack_trace_cmd in MI code.
Thanks to miod@ for all the tests.
|
|
Tested by various people on various platforms, I'm willing to fix any
breakage this causes.
ok niels@ deraadt@ and mickey@ (after his comments were applied)
|
|
now that binutils is updated. As hoped, resulting .o file was identical.
|
|
|
|
|
|
Currently as no-ops everywhere.
ok art@, deraadt@
|
|
type characteristics.
internal_types.h will contain only settings invisible from standard C, e.g.,
in the __* or _[A-Z]* namespace, and be reused by files like limits.h.
This allows us to shorten machine/limits.h greatly, as all the common defines
are now in sys/limits.h, plus a small stub in internal_types.h.
Tested on all arches as far as I know.
Approved after discussion with art, millert, deraadt, and others.
|
|
|
|
pte_spill_r(). ok art@
|
|
|
|
Fix missing 'attr' initialization.
Zero available memory.
Raise available memory limit from 256MB to 1GB. This code has only been
tested up to 512MB, but should be fine to 1GB. Ram modules are not avail
to the developers to test out the machines up to their 1.5GB physical limit.
|
|
from the preferred.
|
|
Fix bug where altivec context was not freed on process exit.
Fix bug where vscr was not correctly saved/restored.
replace asm statement was macros which expand to the same
asm code or to .long XXX which evaluates to the same instruction
since in-tree gas does not support altivec.
Enable ALTIVEC support by default on macppc, still conditional
for other powerpc ports.
|
|
|
|
|
|
|
|
your kernel configuration file.
By default, GENERIC will enable this.
When PTRACE is not enabled, several ptrace-like features of the procfs
filesystem will be disabled as well (namely, the ability to read and write
any process' registers, as well as attching, single stepping and detaching
to/from processes).
This should help paranoid people build better sandboxens, and us to build
smaller ramdisks.
|
|
the spill list for each PTEG, the V->P translations are stored in
trees for each pmap. All valid kernel mappings are preallocated
in 1-1 memory so that tlb spill/loads for kernel accesses can be
looked up while physical, user mappings are not guaranteed to
be 1-1 mapped, thus the kernel must go virtual to look up user
mappings. While this is more expensive, the tree search is much
lower cost than the long linked list search. Also on each pmap_remove()
it was necessary to search the linked lists for each possible mapping,
now it just looks up the entry in the tree.
This change gives a 25-36% speedup in 'make build' time. What was
around 2:50 is now around 1:55 on a 733MHz G4.
This change causes a likely existing bug to appear quite often,
it deals with the segment register invalidation in kernel mode.
Because of that problem, currently this change limits the physical
memory used to 256MB. This limitation will be fixed soon, it is not
an error in the pmap code.
* Effort sponsored in part by the Defense Advanced Research Projects
* Agency (DARPA) and Air Force Research Laboratory, Air Force
* Materiel Command, USAF, under agreement number F30602-01-2-0537.
|
|
on reboot. perhaps OF uses it at other times?
Since OF always use the same memory addresses, this should always allocate
the same ram to the msgbuf, and allow it to be preserved across reboot.
|
|
support for __warn_references (both from alpha/sparc4).
|
|
|
|
entry. Also terminate the search as soon as this entry is found.
|
|
removing by using the va it is replacing it with, NO!.
Calculate the va of the mapping by inverting the pte_hi calculation
producing bits 4-19 of the address. This is enough to correctly invalidate
the tlb entry for the mapping being removed.
|
|
well (not at all) with shortages of the vm_map where the pages are mapped
(usually kmem_map).
Try to deal with it:
- group all information the backend allocator for a pool in a separate
struct. The pool will only have a pointer to that struct.
- change the pool_init API to reflect that.
- link all pools allocating from the same allocator on a linked list.
- Since an allocator is responsible to wait for physical memory it will
only fail (waitok) when it runs out of its backing vm_map, carefully
drain pools using the same allocator so that va space is freed.
(see comments in code for caveats and details).
- change pool_reclaim to return if it actually succeeded to free some
memory, use that information to make draining easier and more efficient.
- get rid of PR_URGENT, noone uses it.
|
|
|
|
protection was not good enough. work from theo, pefo, toby.
|
|
memory, pmap structure.
|
|
counted as soft interrupts.
|
|
successfully ran 'make build'.
|
|
in the po lists, it will NOT have the PTE_VALID bit set. Thus valid
mappings could be ignored if enough mappings existed for that PTEG pair.
This explains the bus_dma panics.
|
|
It is not valid to call pool_put() from that context.
If called from that context, put the freed item on one of two lists
(race safe), poalloc() will attempt to fetch from there, and pofree()
will clean up if called from a normal context.
|