| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
machine-dependent macro and passing it to all machine-dependent
macros.
Eliminated the state variable for the GUPROF case.
|
| |
|
|
|
|
| |
Sponsored by: Juniper Networks, Inc. <pst@jnx.com>
|
| |
|
|
|
|
|
| |
also add the at_shutdown callout list, and change the one user of
the present (broken) method (the vn driver) to use the new scheme.
|
| |
|
|
|
|
| |
Eliminates an obnoxious warning.
|
| |
|
| |
|
|
|
|
| |
Submitted by: A JOSEPH KOSHY <koshy@india.hp.com>
|
|
|
|
|
|
|
|
|
| |
nearest .01 Mhz rather than simply truncating it downwards.
This hack makes this 89.999928 Mhz clock correctly round to the closer
90.00-MHz rather than 89.99-MHz:
> i586 clock: 89999928 Hz, i8254 clock: 1193152 Hz
> CPU: Pentium (90.00-MHz 586-class CPU)
|
| |
|
|
|
|
|
|
|
| |
Changed i586_ctr_bias from long long to u_int. Only the low 32 bits
are used now that microtime uses a multiplication to do the scaling.
Previously the high 32 bits had to match those of rdtsc() to prevent
overflow traps and invalid timeval adjustments.
|
|
|
|
| |
ffs(). (That is to say, it searches in the opposite direction.)
|
|
|
|
| |
in interrupt handlers.
|
|
|
|
|
|
|
| |
sleep(). Implemented wakeup_one() which may be used in the future to combat
the "thundering herd" problem for some special cases.
Reviewed by: dyson
|
|
|
|
|
|
|
|
|
|
|
| |
early enough when the dump device is specified in the config file.
Removed stale comment about configuration root and swap devices.
Don't bother clearing dumplo when dumpdev is set to NODEV. Everything
is controlled by dumpdev.
Fixed the kern.dumpdev sysctl. Writes were handle bogusly.
|
|
|
|
|
|
|
| |
handled bogusly.
Centralized the setting of all the frequency variables. Set these
variables atomically. Some new ones aren't used yet.
|
|
|
|
|
|
|
| |
problem with the 'shell scripts' was found, but there was a 'strange'
problem found with a 486 laptop that we could not find. This commit
backs the code back to 25-jul, and will be re-entered after the snapshot
in smaller (more easily tested) chunks.
|
| |
|
|
|
|
| |
pte hint (for now), and general code cleanup.
|
|
|
|
|
| |
remove some (currently) gratuitious tests for PG_V... This bug could
have caused various anomolous (temporary) behavior.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
performance issues.
1) The pmap module has had too many inlines, and so the
object file is simply bigger than it needs to be.
Some common code is also merged into subroutines.
2) Removal of some *evil* PHYS_TO_VM_PAGE macro calls.
Unfortunately, a few have needed to be added also.
The removal caused the need for more vm_page_lookups.
I added lookup hints to minimize the need for the
page table lookup operations.
3) Removal of some bogus performance improvements, that
mostly made the code more complex (tracking individual
page table page updates unnecessarily). Those improvements
actually hurt 386 processors perf (not that people who
worry about perf use 386 processors anymore :-)).
4) Changed pv queue manipulations/structures to be TAILQ's.
5) The pv queue code has had some performance problems since
day one. Some significant scalability issues are resolved
by threading the pv entries from the pmap AND the physical
address instead of just the physical address. This makes
certain pmap operations run much faster. This does
not affect most micro-benchmarks, but should help loaded system
performance *significantly*. DG helped and came up with most
of the solution for this one.
6) Most if not all pmap bit operations follow the pattern:
pmap_test_bit();
pmap_clear_bit();
That made for twice the necessary pv list traversal. The
pmap interface now supports only pmap_tc_bit type operations:
pmap_[test/clear]_modified, pmap_[test/clear]_referenced.
Additionally, the modified routine now takes a vm_page_t arg
instead of a phys address. This eliminates a PHYS_TO_VM_PAGE
operation.
7) Several rewrites of routines that contain redundant code to
use common routines, so that there is a greater likelihood of
keeping the cache footprint smaller.
|
|
|
|
| |
Submitted by: The FreeBSD(98) development team
|
|
|
|
| |
Submitted by: bde
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
make it more intelligible, improve the partially bogus locking, and
allow for a ``quick re-acquiration'' from a pending release of timer 0
that happened ``recently'', so it was not processed yet by clkintr().
This latter modification now finally allows to play XBoing over
pcaudio without losing sounds or getting complaints. ;-) (XBoing
opens/writes/closes the sound device all over the day.)
Correct locking for sysbeep().
Extensively (:-) reviewed by: bde
|
|
|
|
|
| |
a comment and in code that was only used when pcaudio was closed. The
maximum error was 66 usec.
|
| |
|
|
|
|
| |
in use in another process that blocked in uiomove().
|
|
|
|
| |
/dev/zero.
|
|
|
|
|
| |
There is little difference now since the amount copied is large,
and bcopy will become much faster on some machines.
|
|
|
|
| |
Cleaned up some comments.
|
|
|
|
| |
Restored a truncated comment.
|
| |
|
|
|
|
|
|
| |
Finished the constant poisoning that was begun in rev.1.14. Consts
aren't very poisonous (or useful) unless -Wcast-qual is in CFLAGS,
and it isn't in the default CFLAGS.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
type identification code out of machdep.c and into a new file of its
own. Hopefully other grot can be moved out of machdep.c as well
(by other people) into more descriptively-named files.
|
|
|
|
|
|
| |
variables: don't depend on the compiler generating atomic code to set
the variables - use inline asm to specify the atomic instruction(s)
explicitly.
|
|
|
|
| |
places.
|
|
|
|
|
|
|
|
|
|
| |
Testing with the high frequency of 20000 Hz (to find problems) only found
the problem that this frequency is too high for slow i386's.
Disable interrupts while setting the timer frequency. This was unnecessary
before rev.1.57 and forgotten in rev.1.57. The critical (i8254) interrupts
are disabled in another way at boot time but not in the sysctl to change
the frequency.
|
|
|
|
|
|
| |
implications (4 KB bloat, slight slowdown of syscalls).
Reviewed by: freebsd-hackers
|
|
|
|
|
| |
resident page stats were not being decremented. This mode corrects
that problem.
|
|
|
|
|
| |
some declarations are moved from <machine/cpufunc.h> to better
places.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed profiling of system times. It was pre-4.4Lite and didn't support
statclocks. System times were too small by a factor of 8.
Handle deferred profiling ticks the 4.4Lite way: use addupc_task() instead
of addupc(). Call addupc_task() directly instead of using the ADDUPC()
macro.
Removed vestigial support for PROFTIMER.
switch.s:
Removed addupc().
resourcevar.h:
Removed ADDUPC() and declarations of addupc().
cpu.h:
Updated a comment. i386's never were tahoe's, and the deferred profiling
tick became (possibly) multiple ticks in 4.4Lite.
Obtained from: mostly from NetBSD
|
|
|
|
|
|
|
|
| |
multiplication in addupc() overflowed for addresses >= 256K, assuming
the usual profil(2) scale parameter of 0x8000. addupc() will go away
soon.
Submitted by: John Polstra <jdp@polstra.com>
|
| |
|
| |
|
| |
|