| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Adjust the order of operations in spinlock_enter() and spinlock_exit() to
work properly with single-stepping in a kernel debugger.
Notes:
svn path=/stable/7/; revision=217856
|
| |
|
|
|
|
|
|
|
|
| |
The NetBSD Foundation has granted permission to remove clause 3 and 4 from
the software.
Obtained from: NetBSD
Notes:
svn path=/stable/7/; revision=213957
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=212893
|
| |
|
|
|
|
|
|
|
|
| |
Define architectural load bases for PIE binaries.
MFC r198203:
Change the load base to below 2GB for sparc64/sun4v.
Notes:
svn path=/stable/7/; revision=202642
|
| |
|
|
|
|
|
|
| |
Add INCLUDE_CONFIG_FILE in GENERIC on all non-embedded platforms.
# This is the resolution of removing it from DEFAULTS...
Notes:
svn path=/stable/7/; revision=202547
|
| |
|
|
|
|
|
| |
Add vlan(4) to all GENERIC kernels.
Notes:
svn path=/stable/7/; revision=202135
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=201536
|
| |
|
|
|
|
|
|
| |
Add INCLUDE_CONFIG_FILE, and a note in comments about how to also
include the comments with CONFIGARGS
Notes:
svn path=/stable/7/; revision=201164
|
| |
|
|
|
|
|
| |
Add AT_EXECPATH ELF auxinfo entry type.
Notes:
svn path=/stable/7/; revision=200861
|
| |
|
|
|
|
|
|
|
|
| |
AT_DEBUG and AT_BRK were OBE like 10 years ago, so retire them.
MFC r186225:
Remove two remnant uses of AT_DEBUG.
Notes:
svn path=/stable/7/; revision=200858
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cleanup ALIGNED_POINTER:
o add to platforms where it was missing (arm, i386, powerpc, sparc64, sun4v)
o define as "1" on amd64 and i386 where there is no restriction
o make the type returned consistent with ALIGN
o remove _ALIGNED_POINTER
o make associated comments consistent
Reviewed by: bde, imp, marcel
Approved by: sam (MFC to stable/7)
Notes:
svn path=/stable/7/; revision=200625
|
| |
|
|
|
|
|
| |
Add a new sysctl for reporting all of the supported page sizes.
Notes:
svn path=/stable/7/; revision=198742
|
| |
|
|
|
|
|
|
|
|
|
| |
Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to
a device pager (OBJT_DEVICE) object in that it uses fictitious pages to
provide aliases to other memory addresses. The primary difference is that
it uses an sglist(9) to determine the physical addresses for a given offset
into the object instead of invoking the d_mmap() method in a device driver.
Notes:
svn path=/stable/7/; revision=197197
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
195385, 195649, 195660, 195749, and 195774:
Add support to the virtual memory system for configuring machine-
dependent memory attributes:
- Refactor contigmalloc() into two functions: a simple front-end that deals
with the malloc tag and calls a new back-end, kmem_alloc_contig(), that
allocates the pages and maps them.
- Use kmem_alloc_contig() to implement the UMA back-end allocator for
jumbo frame zones.
- Use kmem_alloc_contig() to allocate the top-level page tables for PAE.
- Introduce vm_memattr_t to as a type to hold memory attributes.
- Introduce vm_object_set_memattr() for setting the default memory
attributes that will be given to an object's pages.
- Introduce and use pmap_page_{get,set}_memattr() for getting and
setting a page's machine-dependent memory attributes. Add full
support for these functions on amd64 and i386 and stubs for them on
the other architectures. The function pmap_page_set_memattr() is also
responsible for any other machine-dependent aspects of changing a
page's memory attributes, such as flushing the cache or updating the
direct map. The uses include kmem_alloc_contig(), vm_page_alloc(),
and the device pager:
kmem_alloc_contig() can now be used to allocate kernel memory with
non-default memory attributes on amd64 and i386.
vm_page_alloc() and the device pager will set the memory attributes
for the real or fictitious page according to the object's default
memory attributes.
- Update the various pmap functions on amd64 and i386 that map pages to
incorporate each page's memory attributes in the mapping.
Reviewed by: alc
Notes:
svn path=/stable/7/; revision=196838
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enable POSIX semaphores on all non-embedded architectures by default.
More applications (including Firefox) seem to depend on this nowadays,
so not having this enabled by default is a bad idea.
Proposed by: miwi
Patch by: Florian Smeets <flo kasimir com>
Approved by: re (kib)
Notes:
svn path=/stable/7/; revision=195706
|
| |
|
|
|
|
|
|
|
|
| |
Remove it and its helpers.
Drop unused extern declarations in amd64 that seem to have been related.
Reviewed by: alc
Notes:
svn path=/stable/7/; revision=195193
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=193641
|
| |
|
|
|
|
|
|
|
| |
- Add the interrupt vector number to intr_event_create so MI code can
lookup hard interrupt events by number.
- Add support to cpuset for binding hardware interrupts.
Notes:
svn path=/stable/7/; revision=192409
|
| |
|
|
|
|
|
|
| |
This allows all the INTR_FILTER #ifdef's to be removed from the MD
interrupt code.
Notes:
svn path=/stable/7/; revision=192406
|
| |
|
|
|
|
|
|
| |
and ie_eoi methods and collapsing down to a single intr_event_create()
routine.
Notes:
svn path=/stable/7/; revision=192311
|
| |
|
|
|
|
|
|
|
| |
The bus_dmamap_load_uio(9) shall use pmap of the thread recorded in the
uio_td to extract pages from, instead of unconditionally use kernel
pmap.
Notes:
svn path=/stable/7/; revision=191809
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix KBI breakage by r190520 which affects older linux.ko binaries:
1) Move the new field (brand_note) to the end of the Brandinfo structure.
2) Add a new flag BI_BRAND_NOTE that indicates that the brand_note pointer
is valid.
3) Use the brand_note field if the flag BI_BRAND_NOTE is set and as old
modules won't have the flag set, so the new field brand_note would be
ignored.
Suggested by: jhb
Reviewed by: jhb
Approved by: re (Ken Smith), kib (mentor)
Notes:
svn path=/stable/7/; revision=191210
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r189771:
Implement new way of branding ELF binaries by looking to a
".note.ABI-tag" section.
The search order of a brand is changed, now first of all the
".note.ABI-tag" is looked through.
Move code which fetch osreldate for ELF binary to check_note() handler.
r189919:
Use the properly sized types for ELF object header and program headers.
This fixes osrel fetching from the FreeBSD branding note for the 64bit
platforms (bug introduced by r189771).
r190264:
Fix several issues with parsing the notes for ELF objects.
Badly formed ELF note may cause the caclulated pointer to the next note
to point both after the note region, that was checked in the code, but
also to point before the region, that was not checked [1]. Remember the
first note location in note0 and leap out if the note is not between
note0 and note_end.
In the similar way, badly formed note may cause infinite loop by
pointing next note into the same or previous note. Guard against this
by
limiting amount of loop iterations by arbitrary choosen big number.
For clarity, check the calculated note alignment in each iteration.
PR: kern/132886
Approved by: re(Ken Smith)
Notes:
svn path=/stable/7/; revision=190520
|
| |
|
|
|
|
|
|
|
|
|
| |
itself. This also includes changes to the ia64 machine check code to
defer adding machine check records to the sysctl tree, removing Giant
from the CAM code that created dynamic sysctls, and tweaking the teardown
of da(4) and cd(4) peripheral devices to not hold locks when freeing the
sysctl tree.
Notes:
svn path=/stable/7/; revision=189640
|
| |
|
|
|
|
|
|
|
| |
implement pmap-level support for superpages.
Pointy hat to: jhb
Notes:
svn path=/stable/7/; revision=189088
|
| |
|
|
|
|
|
|
|
|
|
| |
superpage reservation system to the machine-independent VM system as well as
changes to the pmap code for amd64 and i386 to support superpages.
Reviewed by: alc
Tested by: ps
Notes:
svn path=/stable/7/; revision=189075
|
| |
|
|
|
|
|
|
|
|
|
| |
Change the static struct sysentvec and struct Elf_Brandinfo initializers
to the C99 style.
Explicitely initialize sysentvec.sv_maxssiz that was missed in most
sysvecs.
Notes:
svn path=/stable/7/; revision=186936
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Work-around a compiler optimization bug, that broke libthr. Massive
inlining resulted in constant propagation to the extend that cmpval
was known to the compiler to be URWLOCK_WRITE_OWNER (= 0x80000000U).
Unfortunately, instead of zero-extending the unsigned constant, it
was sign-extended. As such, the cmpxchg instruction was comparing
0x0000000080000000LU to 0xffffffff80000000LU and obviously didn't
perform the exchange.
But, since the value returned by cmpxhg equalled cmpval (when zero-
extended), the _thr_rtld_lock_release() function thought the exchange
did happen and as such returned as if having released the lock. This
was not the case. Subsequent locking requests found rw_state non-zero
and the thread in question entered the kernel and block indefinitely.
The work-around is to zero-extend by casting to uint64_t.
Approved by: re (kensmith)
Notes:
svn path=/stable/7/; revision=185526
|
| |
|
|
|
|
|
|
|
|
| |
DTrace support.
Note that this defaults the 'make buildkernel' to build with CTF data so
that the release kernel and modules are DTrace-able.
Notes:
svn path=/stable/7/; revision=182231
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=182202
|
| |
|
|
|
|
|
|
|
|
|
| |
Note that some of the changes that were mfc'ed to powerpc actually affect
other platforms. This hoisting brings those changes to the others.
This adds atomic_fetchadd_long to the rest, and adds
atomic_readandclear_ptr to ia64. While I have not compile tested this, it
looks harmless.
Notes:
svn path=/stable/7/; revision=181707
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In keeping with style(9)'s recommendations on macros, use a ';'
after each SYSINIT() macro invocation. This makes a number of
lightweight C parsers much happier with the FreeBSD kernel
source, including cflow's prcc and lxr.
Discussed with: imp, rink
The requirement to place a ; after each SYSINIT definition has not been
MFC'd, as this might break the compile third-party modules, but merging
the actual ; additions reduces diffs against 8.x making it easier to
merge other changes.
Notes:
svn path=/stable/7/; revision=180695
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Add a new method to interrupt events (ie_assign_cpu) for binding events
to CPUs.
- Bind ithreads to CPUs in their main loop (this is the original
implementation, it may be changed if the cpuset stuff is MFC'd).
- Add intr_event_bind().
- Implement ie_assign_cpu() and a 'intr_bind()' wrapper on amd64, i386,
and sparc64.
Notes:
svn path=/stable/7/; revision=180082
|
| |
|
|
|
|
|
|
|
|
|
| |
We can call ia64_flush_dirty() when the corresponding process is
locked or not. As such, use PROC_LOCKED() to determine which case
it is and lock the process when not.
This is a manual merge. No merge history is created.
Notes:
svn path=/stable/7/; revision=179479
|
| |
|
|
|
|
|
|
|
|
|
| |
Revision Changes Path
1.25 +4 -0 src/sys/ia64/ia64/elf_machdep.c
1.235 +18 -5 src/sys/ia64/ia64/machdep.c
1.198 +37 -84 src/sys/ia64/ia64/pmap.c
1.28 +1 -0 src/sys/ia64/include/md_var.h
Notes:
svn path=/stable/7/; revision=178541
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
o Rename cpu_thread_setup() to cpu_thread_alloc() to better communicate that
it relates to (is called by) thread_alloc()
o Add cpu_thread_free() which is called from thread_free() to counter-act
cpu_thread_alloc().
i386: Have cpu_thread_free() call cpu_thread_clean() to preserve behaviour.
ia64: Have cpu_thread_free() call mtx_destroy() for the mutex initialized
in cpu_thread_alloc().
files: sys/amd64/amd64/vm_machdep.c:1.256
sys/arm/arm/vm_machdep.c:1.35
sys/i386/i386/vm_machdep.c1.284
sys/ia64/ia64/machdep.c:1.227
sys/ia64/ia64/vm_machdep.c:1.95
sys/kern/kern_thread.c:1.260
sys/powerpc/powerpc/vm_machdep.c:1.117
sys/sparc64/sparc64/vm_machdep.c:1.77
sys/sun4v/sun4v/vm_machdep.c:1.8
sys/sys/proc.h:1.495
Notes:
svn path=/stable/7/; revision=178467
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
amd64/conf/GENERIC:1.489, amd64/include/stack.h:1.1, arm/db_trace.c:1.14,
arm/stack_machdep.c:1.1, arm/include/stack.h:1.1, NOTES:1.1457,
files:1.1254, files.amd64:1.115, files.arm:1.19, files.i386:1.588,
files.ia64:1.94, files.powerpc:1.67, files.sparc64:1.93, files.sun4v:1.13,
options:1.610, i386/conf/GENERIC:1.478, i386/db_trace.c:1.80,
i386/stack_machdep.c:1.1, i386/include/stack.h:1.1, ia64/conf/GENERIC:1.93,
ia64/db_machdep.c:1.6, ia64/stack_machdep.c:1.1, kern/subr_stack.c:1.5,
pc98/conf/GENERIC:1.299, powerpc/conf/GENERIC:1.73,
powerpc/include/stack.h:1.1, powerpc/db_trace.c:1.14,
powerpc/stack_machdep.c:1.1, sparc64/conf/GENERIC:1.129,
sparc64/include/stack.h:1.1, sparc64/db_trace.c:1.27,
sparc64/stack_machdep.c:1.1, sun4v/conf/GENERIC:1.16,
sun4v/include/stack.h:1.1, sun4v/db_trace.c:1.2, sun4v/stack_machdep.c:1.1,
sys/stack.h:1.4 from HEAD to RELENG_7:
Break out stack(9) from ddb(4):
- Introduce per-architecture stack_machdep.c to hold stack_save(9).
- Introduce per-architecture machine/stack.h to capture any common
definitions required between db_trace.c and stack_machdep.c.
- Add new kernel option "options STACK"; we will build in stack(9) if it
is defined, or also if "options DDB" is defined to provide
compatibility with existing users of stack(9).
Add new stack_save_td(9) function, which allows the capture of a
stacktrace of another thread rather than the current thread, which the
existing stack_save(9) was limited to. It requires that the thread be
neither swapped out nor running, which is the responsibility of the
consumer to enforce.
Update stack(9) man page.
Build tested: amd64, arm, i386, ia64, powerpc, sparc64, sun4v
Runtime tested: amd64 (rwatson), arm (cognet), i386 (rwatson)
Merge i386/stack_machdep.c:1.2 from HEAD to RELENG_7:
Remove duplicate $FreeBSD$ tag.
Merge files.pc98:1.359, pc98/include/stack.h:1.1 from HEAD to RELENG_7:
Catch up pc98 for i386 stack(9) changes:
Add stub stack.h for pc98 that includes i386 pc98.
Add i386 stack_machdep.c to files.pc98.
Spotted by: tinderbox
Notes:
svn path=/stable/7/; revision=178079
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=178061
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
uart_dev_at91usart.c:1.13, scsi_low.h:1.9, subr_ntoskrnl.c:1.94,
OsdDebug.c:1.14, dcons_os.c:1.20, ofw_consle.c:1.37,
dev/sio.c:1.473, syscons.c:1.454, uart_core.c:1.23,
union_subr.c:1.96, i386/machdep.c:1.664, i386/mp_watchdog.c:1.6,
ia64/machdep.c:1.228, kern_clock.c:1.206, kern_shutdown.c:1.186,
subr_kdb.c:1.25, subr_witness.c:1.239, vfs_subr.c:1.711,
ng_base.c:1.140, cbus/sio.c:1.247, pc98/machdep.c:1.399,
aim/machdep.c:1.107, pswitch.c:1.7, mac_test.c:19.3,
psycho.c:1.73, sparc64/machdep.c:1.140, sparc64/trap.c:1.89,
hvcons.c:1.7, sun4v/machdep.c:1.17, sun4v/trap.c:1.17, kdb.h:1.6
from HEAD to RELENG_7:
Add a new 'why' argument to kdb_enter(), and a set of constants to use
for that argument. This will allow DDB to detect the broad category of
reason why the debugger has been entered, which it can use for the
purposes of deciding which DDB script to run.
Assign approximate why values to all current consumers of the
kdb_enter() interface.
For ABI/KPI reasons, the MFC creates a new function, kdb_enter_why(),
with the new argument, updating existing consumers to use that,
preserving kdb_enter() with the current argument, and wrapping it around
kdb_enter_why().
Notes:
svn path=/stable/7/; revision=177734
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=177305
|
| |
|
|
|
|
|
|
|
|
|
|
| |
On Montecito processors, the instruction cache is in fact not
coherent with the data caches. Implement a quick fix to allow
us to boot on Montecito, while I'm working on a better fix in
the mean time.
Commit made on Montecito-based Itanium...
Notes:
svn path=/stable/7/; revision=176287
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=175819
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
silent NULL pointer dereference in the i386 and sparc64 pmap_pinit()
when the kmem_alloc_nofault() failed to allocate address space. Both
functions now return error instead of panicing or dereferencing NULL.
The reason for MFCing this so late in release cycle is, according to
marius@, because
> it fixes the crashing (though no panic) of the test suite
> of the graphic/OpenEXR port on sparc64. This test suite is run
> (and required to succeed) during the package build and that's
> why portmgr@ bitch about at it as OpenEXR is a dependency of KDE
> which in turn is supposed to end up on the release CD images.
Revisions MFCed:
1.677 of src/sys/amd64/amd64/machdep.c
1.592 of src/sys/amd64/amd64/pmap.c
1.88 of src/sys/arm/arm/pmap.c
1.27 of src/sys/arm/at91/kb920x_machdep.c
1.22 of src/sys/arm/sa11x0/assabet_machdep.c
1.8 of src/sys/arm/xscale/i80321/ep80219_machdep.c
1.29 of src/sys/arm/xscale/i80321/iq31244_machdep.c
1.3 of src/sys/arm/xscale/i8134x/crb_machdep.c
1.6 of src/sys/arm/xscale/ixp425/avila_machdep.c
1.41 of src/sys/compat/pecoff/imgact_pecoff.c
1.26 of src/sys/compat/svr4/imgact_svr4.c
1.660 of src/sys/i386/i386/machdep.c
1.596 of src/sys/i386/i386/pmap.c
1.68 of src/sys/i386/ibcs2/imgact_coff.c
1.56 of src/sys/i386/linux/imgact_linux.c
1.226 of src/sys/ia64/ia64/machdep.c
1.192 of src/sys/ia64/ia64/pmap.c
1.102 of src/sys/kern/imgact_aout.c
1.179 of src/sys/kern/imgact_elf.c
1.56 of src/sys/kern/imgact_gzip.c
1.310 of src/sys/kern/kern_exec.c
1.287 of src/sys/kern/kern_fork.c
1.236 of src/sys/kern/kern_kse.c
1.253 of src/sys/kern/kern_proc.c
1.352 of src/sys/kern/kern_sig.c
1.63 of src/sys/kern/kern_thr.c
1.257 of src/sys/kern/kern_thread.c
1.397 of src/sys/pc98/pc98/machdep.c
1.104 of src/sys/powerpc/powerpc/machdep.c
1.10 of src/sys/powerpc/powerpc/pmap_dispatch.c
1.139 of src/sys/sparc64/sparc64/machdep.c
1.167 of src/sys/sparc64/sparc64/pmap.c
1.16 of src/sys/sun4v/sun4v/machdep.c
1.40 of src/sys/sun4v/sun4v/pmap.c
1.493 of src/sys/sys/proc.h
1.78 of src/sys/sys/signalvar.h
1.80 of src/sys/vm/pmap.h
1.79 of src/sys/vm/vm_extern.h
1.226 of src/sys/vm/vm_glue.c
1.390 of src/sys/vm/vm_map.c
Requested by: marius
Tested by: Peter Holm, marius (make universe and sparc64 runs)
Approved by: re (kensmith)
Notes:
svn path=/stable/7/; revision=175435
|
| |
|
|
| |
Notes:
svn path=/stable/7/; revision=174217
|
| |
|
|
|
|
|
|
|
| |
don't stall.
Approved by: re
Notes:
svn path=/stable/7/; revision=173938
|
| |
|
|
|
|
|
|
|
|
| |
PR: 116496
Submitted by: koitsu
Reviewed by: rrs
Approved by: re (kensmith)
Notes:
svn path=/head/; revision=172332
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ways:
(1) Cached pages are no longer kept in the object's resident page
splay tree and memq. Instead, they are kept in a separate per-object
splay tree of cached pages. However, access to this new per-object
splay tree is synchronized by the _free_ page queues lock, not to be
confused with the heavily contended page queues lock. Consequently, a
cached page can be reclaimed by vm_page_alloc(9) without acquiring the
object's lock or the page queues lock.
This solves a problem independently reported by tegge@ and Isilon.
Specifically, they observed the page daemon consuming a great deal of
CPU time because of pages bouncing back and forth between the cache
queue (PQ_CACHE) and the inactive queue (PQ_INACTIVE). The source of
this problem turned out to be a deadlock avoidance strategy employed
when selecting a cached page to reclaim in vm_page_select_cache().
However, the root cause was really that reclaiming a cached page
required the acquisition of an object lock while the page queues lock
was already held. Thus, this change addresses the problem at its
root, by eliminating the need to acquire the object's lock.
Moreover, keeping cached pages in the object's primary splay tree and
memq was, in effect, optimizing for the uncommon case. Cached pages
are reclaimed far, far more often than they are reactivated. Instead,
this change makes reclamation cheaper, especially in terms of
synchronization overhead, and reactivation more expensive, because
reactivated pages will have to be reentered into the object's primary
splay tree and memq.
(2) Cached pages are now stored alongside free pages in the physical
memory allocator's buddy queues, increasing the likelihood that large
allocations of contiguous physical memory (i.e., superpages) will
succeed.
Finally, as a result of this change long-standing restrictions on when
and where a cached page can be reclaimed and returned by
vm_page_alloc(9) are eliminated. Specifically, calls to
vm_page_alloc(9) specifying VM_ALLOC_INTERRUPT can now reclaim and
return a formerly cached page. Consequently, a call to malloc(9)
specifying M_NOWAIT is less likely to fail.
Discussed with: many over the course of the summer, including jeff@,
Justin Husted @ Isilon, peter@, tegge@
Tested by: an earlier version by kris@
Approved by: re (kensmith)
Notes:
svn path=/head/; revision=172317
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of pages don't sum to anywhere near the total number of pages on amd64.
This is for the most part because uma_small_alloc() pages have never been
counted as wired pages, like their kmem_malloc() brethren. They should
be. This changes fixes that.
It is no longer necessary for the page queues lock to be held to free
pages allocated by uma_small_alloc(). I removed the acquisition and
release of the page queues lock from uma_small_free() on amd64 and ia64
weeks ago. This patch updates the other architectures that have
uma_small_alloc() and uma_small_free().
Approved by: re (kensmith)
Notes:
svn path=/head/; revision=172189
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Recently the AP in my Merced box seems to have grown a habit
of getting unexpected interrupts, such as redundant wake-ups
and legacy interrupts that require an INTA cycle.
While here, replace DELAY(0) with cpu_spinwait() so that it's
clear what we're doing as well as enable the code to take
advantage of cpu_spinwait() when it gets implemented.
Approved by: re (blanket)
Notes:
svn path=/head/; revision=171740
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's no advantage in allowing nested external interrupts.
In fact, it leads to a potential stack overrun.
While here, put the interrupt vector in the trapframe, so as
to compensate for the 36 cycle latency of reading cr.ivr.
Further simplify assembly code by dealing with ASTs from C.
Approved by: re (blanket)
Notes:
svn path=/head/; revision=171739
|