| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
vm.kmem_size_min. Useful when using ZFS to make sure that vm.kmem size will
be at least 256mb (for example) without forcing a particular value via vm.kmem_size.
Approved by: njl (mentor)
Reviewed by: alc
|
| |
|
|
|
|
| |
Approved by: re (kensmith)
|
|
|
|
| |
It breaks GCC 4.1 compiles and does not appear to be required.
|
|
|
|
|
|
|
| |
header file. Reimplement PCPU_LAZY_INC() on amd64 and i386 making it
atomic with respect to interrupts.
Reviewed by: bde, jhb
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bus_setup_intr()
o add an int return code to all fast handlers
o retire INTR_FAST/IH_FAST
For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current
Reviewed by: many
Approved by: re@
|
|
|
|
|
|
| |
enough.
Approved by: pjd
|
|
|
|
|
|
|
|
|
|
|
| |
partitioning class that supports multiple schemes. Current
schemes supported are APM (Apple Partition Map) and GPT.
Change all GEOM_APPLE anf GEOM_GPT options into GEOM_PART_APM
and GEOM_PART_GPT (resp).
The ctlreq interface supports verbs to create and destroy
partitioning schemes on a disk; to add, delete and modify
partitions; and to commit or undo changes made.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
headers in .S directly rather than getting to their macros through
genassym.c/assym.s so there are less headers genassym.c has to be
kept in sync with.
While at it fix some stytle(9) bugs (indentation, prototype format,
sort headers, etc) and remove trailing whitespace.
|
|
|
|
|
|
|
|
|
|
| |
may also reflect a Fireplane/Safari or JBus bus (or a virtual bus which
in turn reflects a JBus bus or something like that...).
- In the both the sparc64 and sun4v bus_machdep.c use __FBSDID.
- Spell SBus the official way in comments.
- Replace hardcoded function names (all of which were actually outdated)
in panic and status strings with __func__.
- Fix whitespace nits.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and friends along with all hacks required to implement them. None of
the drivers currently built (as part of GENERIC, LINT or modules) on
sparc64 or sun4v and none of those we might want to use there in
future uses them, AFAICT there actually never was a driver hooked up
to the sparc64 or sun4v build that correctly used these functions
(and it looks like that due to a bug read{b,w,l}()/write{b,w,l}() and
the other functions working on a memory handle never actually worked on
sun4v). All they ever were good for on sparc64 and sun4v was erroneously
dragging in dependencies on isa(4) in drivers like f.e. dpt(4), si(4)
and syscons(4) in source files that supposedly were bus-neutral and
hiding issues with drivers like f.e. ng_bt3c(4) that used these
functions with busses other than isa(4) and therefore couldn't work on
these platforms.
|
| |
|
|
|
|
|
|
| |
for circumstances which are quite normal.
Discussed with: kmacy
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pmap on i386
- check for change in executable status in pmap_enter
- pmap_qenter and pmap_qremove only need to invalidate the range if one
of the pages has been referenced
- remove pmap_kenter/pmap_kremove as they were only used by pmap_qenter
and pmap_qremove
- in pmap_copy don't copy wired bit to destination pmap
- mpte was unused in pmap_enter_object - remove
- pmap_enter_quick_locked is not called on the kernel_pmap, remove check
- move pmap_remove_write specific logic out of tte_clear_phys_bit
- in pmap_protect check for removal of execute bit
- panic in the presence of a wired page in pmap_remove_all
- pmap_zero_range can call hwblkclr if offset is zero and size is PAGE_SIZE
- tte_clear_virt_bit is only used by pmap_change_wiring - thus it can be
greatly simplified
- pmap_invalidate_page need only be called in tte_clear_phys_bit if there
is a match with flags
- lock the pmap in tte_clear_phys_bit so that clearing the page bits is
atomic with invalidating the page
- these changes result in 100s reduction in buildworld from a malloc backed
disk to a malloc backed disk - ~2.5%
|
| |
|
|
|
|
|
| |
- the implementation also made the mistake of assuming the
dst_pmap is the current pmap
|
| |
|
|
|
|
|
| |
only used early in initialization so SMP safeness isn't really an
issue
|
| |
|
|
|
|
| |
description
|
|
|
|
| |
handling
|
|
|
|
|
|
| |
usage to conform to that of tl0_trap - the separate code path
for unaligned faults was never getting used (and evidently doesn't
work), so ifdef out for now
|
|
|
|
| |
pc_caller is no longer part of pcpu
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
slots and annulling
|
|
|
|
|
|
|
| |
- The PCPU usage was to ensure that there were no faults on the stack while
the tte_hash_bucket lock was held - but this can be avoided by making sure
the address on the stack is already referenced.
- PCPU removal obviates the need for critical_{enter, exit}
|
|
|
|
|
| |
with critical_enter, critical_exit
revert previous change to pmap.c now that tte_hash_resize is protected internally
|
|
|
|
| |
put under spinlock_enter
|
| |
|
|
|
|
| |
- a cast is needed to quiet warnings
|
|
|
|
|
|
|
|
| |
- rename skip_utrap to tl0_skip_utrap to indicate its use by the fill trap fault handler
- handle a null kstack by switching to the idle threads stack and then going to trap
- correctly handle a unaligned or unmapped stack during a fill trap
- save off some extra data in the pcpu pad in ptl1_panic
- add an assert that PCB is valid in vm_machdep.c
|
|
|
|
| |
- protect pmap_ipi with spinlock_enter when resizing tte_hash
|
|
|
|
| |
this fixes the unkillable syscall in stress2
|
|
|
|
|
| |
- don't shuffle phys_avail following kernel to the beginning if the
range is less than what would remain in a 256MB page (248MB)
|
|
|
|
|
| |
- handle some cases where the return value of mdesc_update() is not zero
when it should be
|
|
|
|
|
| |
- partition phys_avail along 4GB boundaries as possible workaround for hardware
problems causing watchdog panics
|
|
|
|
| |
base of our stack
|
| |
|
|
|
|
| |
add a printf for when we fault on the direct area (should never happen)
|
|
|
|
| |
previously we were acting as if physmem was being set when it was not
|
|
|
|
|
|
|
| |
at which the kernel should start allocating physical memory. The primary
purpose of this is to test 64-bit cleanness of the data path by setting
hw.physmemstart=4G so that all physical allocations are above 4GB. AMD64
and i386/PAE could also benefit from having this option.
|
|
|
|
|
|
| |
is already bounded by hw.physmem to calculate phys_avail[] - previously only
real_phys_avail[] was being bound by hw.physmem so we were allocating memory
that wasn't mapped in the direct map
|