getpagesize() to size_t. For some reason getpagesize() is defined to
return int, and several of the page counts we get come back from the
kernel as int32_t; in LP64 without the cast the byte count will be
computed in a 32-bit value and for large processes will overflow and
become negative... and then remain negative when divided by 1024 to
convert to kilobytes.
Fixes a problem I hit the other day where I saw negative RSS, which
turns out also to be PR 40642.
Note: other logic in here will break down when we first get >2TB
processes... and int32 page counts will break on >8TB processes. But
hopefully we won't see any of that for a few years yet.
>revision 1.6
>date: 2011/03/23 20:54:35; author: martin; state: Exp; lines: +2 -2
>Avoid using %g7
fixes rump on sparc, at least somewhat.
tested that normal kernels runs fine this with this change, too.
__*_chk functions included by -D_FORTIFY_SOURCE=2, and if the compiler
provides additional protection, it can mask broken functions..
(none of the _chk functions will return or process any data if
the length given is known to be larger than the buffer)
Move all-zero variables from .data to .bss
Use .lcomm for local variables.
Cleanup a bit of assembly.
Clear PSL_IP in the saved ofmsr (was previously done in ofwoea_machdep.c)
driver to the main acpi(4) stack. Follow Linux and evaluate it early.
Should fix PR port-amd64/42895, possibly also PR kern/42583, and many
other comparable bugs.
A common sense explanation is that Intel supplies additional CPU tables to
OEMs. BIOS writers do not bother to modify their DSDTs, but instead load
these extra tables dynamically as secondary SSDT tables. The actual Load()
happens when the _PDC method is invoked, and thus namespace errors occur
when the CPU-specific ACPI methods are not yet present but referenced in the
AML by various drivers, including, but not limited to, acpitz(4).
don't build the uvm_object.c uvm_object_printit() for _RUMPKERNEL. (XXX)
add empty panic() stubs for uvm_loanbreak() and ubc_purge().
fixes some more 5.99.53 rump build issues.
in the alpha ARM 4.7.8.1 (Accessing the FPCR):
Because Alpha floating-point hardware can overlap the execution of
a number of floating-point instructions, accessing the FPCR must
be synchronized with other floating-point instructions. An EXCB
instruction must be issued both prior to and after accessing the
FPCR to ensure that the FPCR access is synchronized with the
execution of previous and subsequent floating-point instructions;
otherwise synchronization is not ensured.
Use unions to convert between double and uint64_t to avoid casting.
pmapexechist. This replaces the old pmapdebug/PDB stuff.
In ddb, you can just use kernhist_dump(pmaphist) to view the history
or vmstat -H from userland.