Matthew Dillon [Thu, 10 Jun 2010 06:06:41 +0000 (23:06 -0700)]
kernel - MPSAFE work - lockup vm_object.c
* Tokenize the vm_object.c API
Matthew Dillon [Thu, 10 Jun 2010 05:49:31 +0000 (22:49 -0700)]
kernel - MPSAFE work - lockup i386 pmap
* Put the critical sections that were removed from pmap.c back in.
Removing them was a bit premature. They can be removed once all
the vm_*.c files are tokenized.
Matthew Dillon [Thu, 10 Jun 2010 03:25:56 +0000 (20:25 -0700)]
kernel - MPSAFE - Fix UP build issue
* Add #ifdef SMP around mpcount test, set token to mpsafe unconditionally
when compiling UP.
Submitted-by: Sascha Wildner <saw@online.de>
Matthew Dillon [Thu, 10 Jun 2010 02:02:54 +0000 (19:02 -0700)]
kernel - MPSAFE work - lockup i386 pmap
* Tokenize the pmap API in platform/pc32/i386/pmap.c
* Cleanup comments. (non-block) interrupts are now always scheduled so
pmap operations are no longer called from them. And IPIs are not allowed
to do anything so sophisticated as to modify pmaps.
* Add a comment at the top indicating that the entire file is MPSAFE.
Matthew Dillon [Thu, 10 Jun 2010 00:13:57 +0000 (17:13 -0700)]
kernel - remove INTR_FAST
Rename INTR_FAST to INTR_CLOCK. Fast interrupts are now only supported for
clock interrupts and may no longer be used by drivers.
* Rename INTR_FAST to INTR_CLOCK
* Adjust clocks to use INTR_CLOCK and remove INTR_FAST from the few drivers
that specified it (if_em is the only one of note).
Matthew Dillon [Thu, 10 Jun 2010 00:10:51 +0000 (17:10 -0700)]
kernel - MPSAFE work - adjust global tokens
* Remove vm_object_token, vm_map_token, vm_page_token
* Add vm_token and kvm_token
Matthew Dillon [Wed, 9 Jun 2010 22:27:49 +0000 (15:27 -0700)]
kernel - MPSAFE work - Remove unused code
* Remove pmap_qenter2()
* Remove pmap_pvdump() and related helper code
Matthew Dillon [Wed, 9 Jun 2010 18:32:40 +0000 (11:32 -0700)]
kernel - MPSAFE work - Add cpu_pause() in scheduler contention path
* Add a cpu_pause() to the scheduler contention path to reduce intra-cpu
cache management effects.
Matthew Dillon [Wed, 9 Jun 2010 04:48:22 +0000 (21:48 -0700)]
kernel - MPSAFE work - fast-path UP tokens when the mplock is already held
* Optimize the case where a UP token is acquired and the MP lock is already
held, greatly reducing the acquisition & release overhead.
When the MP lock is already held we do not have to acquire it again
recursively, which saves us lots of unnecessary calls to get_mplock()
and rel_mplock().
Matthew Dillon [Wed, 9 Jun 2010 04:37:24 +0000 (21:37 -0700)]
kernel - MPSAFE work - Add global tokens
* Add global tokens for various subsystems but do not use them (yet).
Tie in mpsafe and collision count sysctls.
* Add a collision counter to the lwkt_token structure.
* Simplify the lwkt_token initializer macros.
* Minor namespace cleanup for sys/thread.h, place an #ifdef _KERNEL around
the procedure prototypes.
Sascha Wildner [Tue, 8 Jun 2010 07:29:21 +0000 (09:29 +0200)]
Makefile_upgrade.inc: Properly sort ionice.
Sascha Wildner [Tue, 8 Jun 2010 01:09:34 +0000 (03:09 +0200)]
Add a small standards(7) manual page.
So far it explains the _POSIX_C_SOURCE and _XOPEN_SOURCE macros.
Sascha Wildner [Mon, 7 Jun 2010 09:25:47 +0000 (11:25 +0200)]
pthread.3: Fix library name.
Sascha Wildner [Mon, 7 Jun 2010 01:29:15 +0000 (03:29 +0200)]
indent.1: Add missing description of -bs/-nbs.
Matthew Dillon [Sun, 6 Jun 2010 17:26:42 +0000 (10:26 -0700)]
kernel - lwkt_token revamp
* Simplify the token API. Hide the lwkt_tokref mechanics and simplify
the lwkt_gettoken()/lwkt_reltoken() API to remove the need to declare
and pass a lwkt_tokref along with the token.
This makes tokens operate more like locks. There is a minor restriction
that tokens must be unlocked in exactly the reverse order they were locked
in, and another restriction limiting the maximum number of tokens a thread
can hold to defined value (32 for now).
The tokrefs are now an array embedded in the thread structure.
* Improve performance when blocking and unblocking threads with recursively
held tokens.
* Improve performance when acquiring the same token recursively. This
operation is now O(1) and requires no locks or critical sections of any
sort.
This will allow us to acquire redundant tokens in deep call paths
without having to worry about performance issues.
* Add a flags field to the lwkt_token and lwkt_tokref structures and add
a flagged feature which will acquire the MP lock along with a particular
token. This will be used as a transitory mechanism in upcoming MPSAFE
work.
The mplock feature in the token structure can be directly connected
to a mpsafe sysctl without being vulnerable to state-change races.
Sascha Wildner [Sun, 6 Jun 2010 10:43:01 +0000 (12:43 +0200)]
vesa(4): Remove definition and usage of the obsolete V_MODEOPTINFO flag.
Prior to VBE 1.2, this flag specified whether optional information
for the mode was available in the ModeInfoBlock structure. Starting
with 1.2 this information became mandatory and the D1 bit became
reserved.
Since we claim to only support cards conforming to VBE 1.2 and higher,
adjust the code to no longer take this bit into account and remove its
definition.
Jan Lentfer [Tue, 9 Mar 2010 20:47:14 +0000 (21:47 +0100)]
drill: Import dig replacement into base.
Jan Lentfer [Tue, 9 Mar 2010 20:45:10 +0000 (21:45 +0100)]
libldns: Import alternative DNS Library into base
Jan Lentfer [Tue, 9 Mar 2010 20:42:10 +0000 (21:42 +0100)]
Initial vendor import of ldns-1.6.4 into contrib.
Matthew Dillon [Sat, 5 Jun 2010 22:56:24 +0000 (15:56 -0700)]
kernel - add short-form mutex calls
* Add short-form calls mtx_lock() and mtx_spinlock() which get a mutex
exclusively and omit extranious arguments.
Sascha Wildner [Sat, 5 Jun 2010 15:00:52 +0000 (17:00 +0200)]
mutex.9: Fix typo.
Sascha Wildner [Sat, 5 Jun 2010 01:03:42 +0000 (03:03 +0200)]
indent(1): Sync with FreeBSD (brings in -ta).
Sascha Wildner [Fri, 4 Jun 2010 19:47:40 +0000 (21:47 +0200)]
libprop: Comment out MLINK of prop_dictionary_mutable.3, too.
Sascha Wildner [Fri, 4 Jun 2010 19:45:48 +0000 (21:45 +0200)]
prop_dictionary.3: Comment out non-existant function.
Sascha Wildner [Thu, 3 Jun 2010 20:12:54 +0000 (22:12 +0200)]
Perform some mdoc cleanup on various manpages which came in lately.
Sascha Wildner [Thu, 3 Jun 2010 10:24:03 +0000 (12:24 +0200)]
Fix VKERNEL build.
Sascha Wildner [Thu, 3 Jun 2010 10:17:42 +0000 (12:17 +0200)]
Add wpi(4) to LINT and fix a warning.
Sascha Wildner [Wed, 2 Jun 2010 21:50:26 +0000 (23:50 +0200)]
ioprio(1): Partial revert of the previous commit to bring back strtol().
atoi() is deprecated.
Sascha Wildner [Wed, 2 Jun 2010 21:18:48 +0000 (23:18 +0200)]
ioprio(1): We want to set the absolute I/O priority here.
Sascha Wildner [Wed, 2 Jun 2010 20:56:06 +0000 (22:56 +0200)]
ioprio.1: Fix typo.
Sascha Wildner [Wed, 2 Jun 2010 20:54:21 +0000 (22:54 +0200)]
Rename ionice(1) to ioprio(1) and add a short manual page.
Sascha Wildner [Wed, 2 Jun 2010 18:50:42 +0000 (20:50 +0200)]
Uncomment some references to wpi(4) now that it is in.
Joe Talbott [Wed, 2 Jun 2010 15:32:34 +0000 (11:32 -0400)]
wpi - Build the firmware module along with the driver.
Joe Talbott [Wed, 2 Jun 2010 15:13:26 +0000 (11:13 -0400)]
wpifw - Bring in wpi(4) firmware blob and license.
Taken-From: FreeBSD
Joe Talbott [Wed, 2 Jun 2010 15:10:24 +0000 (11:10 -0400)]
wlan_amrr - Add module building framework.
Joe Talbott [Wed, 2 Jun 2010 15:08:41 +0000 (11:08 -0400)]
wpifw - Add firmware module building framework
Taken-From: FreeBSD
Joe Talbott [Wed, 2 Jun 2010 12:56:27 +0000 (08:56 -0400)]
wpi - Serialize interrupts, fixup mcluster allocation size, and cleanup
* Serialize interrupts with ifp->if_serializer.
* Change one last use of MJUMPAGESIZE to MCLBYTES.
* Remove some porting cruft.
Joe Talbott [Wed, 19 May 2010 00:55:06 +0000 (20:55 -0400)]
wpi(4) - Add manual page from FreeBSD.
Joe Talbott [Wed, 19 May 2010 00:49:23 +0000 (20:49 -0400)]
if_wpi - Add into build system.
Joe Talbott [Wed, 19 May 2010 00:48:56 +0000 (20:48 -0400)]
wlan_amrr - Make wlan_amrr its own loadable module.
Joe Talbott [Wed, 19 May 2010 00:42:26 +0000 (20:42 -0400)]
link_elf - Use proc0 rather than panicing when proc is NULL.
This is needed for the firmware API we brought over from FreeBSD.
Discussed-With: dillon
Joe Talbott [Wed, 19 May 2010 00:40:24 +0000 (20:40 -0400)]
ifaltq - Add ifq_drv_* fields needed for wpi() driver.
Joe Talbott [Wed, 19 May 2010 00:36:03 +0000 (20:36 -0400)]
if_wpi - Port of FreeBSD's wpi driver for Intel 3945ABG Wifi adapters.
Alex Hornung [Wed, 2 Jun 2010 00:04:52 +0000 (00:04 +0000)]
devfs - implement mkdir/rmdir
* Implement mkdir and rmdir support to allow for custom user directories
as used by LVM. The same policy applies as does to symlinks:
user-created directories won't be garbage collected and are the only
ones deletable by rmdir. One cannot delete automatically created
directories and empty user-created directories won't be garbage
collected automatically as happens with automatic dirs.
Alex Hornung [Wed, 2 Jun 2010 00:25:44 +0000 (00:25 +0000)]
conf.h - bump SPECNAMELEN to 63 (from 15)
* Increase SPECNAMELEN to 63 (from 15) to allow for longer device paths,
such as for example mapper/vg00-lv00.
Alex Hornung [Wed, 2 Jun 2010 09:51:49 +0000 (09:51 +0000)]
oops, strsep dos2unix!
Alex Hornung [Wed, 2 Jun 2010 09:39:23 +0000 (09:39 +0000)]
libkern - add strsep
Alex Hornung [Sun, 18 Apr 2010 18:00:19 +0000 (18:00 +0000)]
proplib - port to dragonfly
Many-thanks-to: Sascha Wildner
Sascha Wildner [Sun, 25 Apr 2010 00:43:56 +0000 (02:43 +0200)]
mdoc.local: Indent with spaces like everywhere else.
Alex Hornung [Sun, 18 Apr 2010 17:02:41 +0000 (17:02 +0000)]
proplib - Verbatim import from NetBSD
Alex Hornung [Sat, 24 Apr 2010 07:03:01 +0000 (07:03 +0000)]
libkern - add strchr
Aggelos Economopoulos [Tue, 1 Jun 2010 20:07:52 +0000 (23:07 +0300)]
Fix -pg compiled programs on i386
mcount() is supposed to preserve all registers. Since it
clobbered ecx, this resulted in argc/argv always being 0.
It probably only ever worked because of some artifact of
code generation by older GCCs.
Reported-by: Venkatesh Srinivas <me@endeavour.zapto.org>
Testing-by: swildner@
Antonio Huete Jimenez [Thu, 27 May 2010 00:13:34 +0000 (02:13 +0200)]
acpica - Use tsleep() instead of DELAY() to avoid long delays at boot time.
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1755>
Obtained-from: FreeBSD
Sascha Wildner [Sun, 30 May 2010 23:45:32 +0000 (01:45 +0200)]
Add a token(9) manual page explaining LWKT soft tokens.
Submitted-by: Venkatesh Srinivas <me@acm.jhu.edu>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1775>
Sascha Wildner [Sat, 29 May 2010 00:01:53 +0000 (02:01 +0200)]
lib/csu: Fix 'make clean'.
Sascha Wildner [Fri, 28 May 2010 23:25:59 +0000 (01:25 +0200)]
Adjust some comments/manpages regarding where profiling libs are.
Sascha Wildner [Fri, 28 May 2010 22:38:34 +0000 (00:38 +0200)]
gcc(1): Fix compilation with "c++ -pg" (for CCVER=gcc41).
We don't install profiling libraries as /usr/lib/lib${LIB}_p.a anymore
since it was switched to /usr/lib/profile/lib${LIB}.a almost 5 years
ago (in
c4c23d9061b6eb2a3456620a48b84583b00fe0ce).
Reported-by: Damian Weber <dweber@htw-saarland.de>
Sascha Wildner [Fri, 28 May 2010 22:32:59 +0000 (00:32 +0200)]
gcc(1): Fix typos in gcc41's spec so that profiling libraries are found.
Sascha Wildner [Fri, 28 May 2010 20:31:33 +0000 (22:31 +0200)]
evtranalyze(1): Staticise some functions for now to unbreak buildworld.
Aggelos Economopoulos [Fri, 28 May 2010 11:47:53 +0000 (14:47 +0300)]
evtranalyze: support for completion event statistics
- Refactor existing code to support different statistics for
different value types
- Implement a simple vector type
- Bring in a hash table implementation
Aggelos Economopoulos [Fri, 28 May 2010 11:44:59 +0000 (14:44 +0300)]
libevtr: correct copy length
Aggelos Economopoulos [Thu, 27 May 2010 22:06:15 +0000 (01:06 +0300)]
libevtr: add support for data objects
Currently using the Haskell data constructor syntax.
Matthew Dillon [Thu, 27 May 2010 19:51:32 +0000 (12:51 -0700)]
ftpd - Fix security issue in libopie. FreeBSD-SA-10:05.opie
* Fix a buffer overflow issue in libopie.
Submitted-by: Xin LI <delphij@delphij.net>
Credits: Maksymilian Arciemowicz and Adam Zabrocki
Matthew Dillon [Wed, 26 May 2010 21:20:11 +0000 (14:20 -0700)]
kernel - Fix up hysteresis for the zeroidle code
* Fix a minor bug in the zeroidle hysteresis code and document the
states.
With-input-from: Venkatesh Srinivas <me@acm.jhu.edu>
Matthew Dillon [Wed, 26 May 2010 21:19:15 +0000 (14:19 -0700)]
mmap: Remove an additional reference to the disablexworkaround variable
* Fix kernel build, remove a second disablexworkaround check that was
missed.
Aggelos Economopoulos [Wed, 26 May 2010 13:26:44 +0000 (16:26 +0300)]
mmap: get rid of old hack to support the XIG X server
Submitted-by: Venkatesh Srinivas <me@acm.jhu.edu>
Aggelos Economopoulos [Wed, 26 May 2010 13:13:08 +0000 (16:13 +0300)]
Start using our hash tables for thread switch/lifetime events
Aggelos Economopoulos [Wed, 26 May 2010 13:10:49 +0000 (16:10 +0300)]
ktrdump: constify pointer
Aggelos Economopoulos [Tue, 25 May 2010 22:17:36 +0000 (01:17 +0300)]
libevtr: alternative hash syntax and more fixes
- Rewrite hsh.foo to hsh["foo"]
- Better error handling and more controlled error reporting
(don't just write stuff to stderr)
- Accept integer constants in hexadecimal (0x) form as well
Aggelos Economopoulos [Mon, 24 May 2010 22:19:11 +0000 (01:19 +0300)]
ktrdump: dump some device info
Walk the kernel devices and populate the 'devnames' hash.
Aggelos Economopoulos [Mon, 24 May 2010 22:15:50 +0000 (01:15 +0300)]
evtranalyze: don't try to open stdin by default
We don't handle that correctly yet, so error out instead. A
lot of people were getting a crash on their first run b/c
they didn't specify an input file.
Aggelos Economopoulos [Sun, 23 May 2010 12:44:36 +0000 (15:44 +0300)]
libevtr: add support for string literals
Aggelos Economopoulos [Sun, 23 May 2010 12:35:23 +0000 (15:35 +0300)]
evtranalyze: correctly print out name of variable
Aggelos Economopoulos [Sun, 23 May 2010 12:33:45 +0000 (15:33 +0300)]
libevtr: oops, stay withing the bounds of the hash table
Matthew Dillon [Wed, 26 May 2010 00:18:04 +0000 (17:18 -0700)]
ath - use ifnet serialization calls instead of directly calling lwkt
* Use ifnet_*serialize_all() instead of lwkt_serialize_*().
Matthew Dillon [Tue, 25 May 2010 22:13:29 +0000 (15:13 -0700)]
kernel - Fix panic in setrlimit() when changing the stack limit
* setrlimit() has to make a VM call with the MP lock held when changing
the stack limit, and was not properly obtaining the MP lock.
Matthew Dillon [Tue, 25 May 2010 22:09:50 +0000 (15:09 -0700)]
tmpfs - Fix chown for tmpfs
* Replace the manual permission check bits with a call to
vop_helper_chown().
* Fixes an issue where suid programs were unable to call chown() on
files in tmpfs.
Reported-by: Francois Tigeot <ftigeot@wolfpond.org>
Sascha Wildner [Mon, 24 May 2010 07:43:57 +0000 (09:43 +0200)]
Sync with FreeBSD (somehow, DragonFly 2.6 had slipped).
Sascha Wildner [Sun, 23 May 2010 10:59:47 +0000 (12:59 +0200)]
usbd(8): Raise WARNS to 6 and fix warnings.
Constantine A. Murenin [Sun, 23 May 2010 01:39:15 +0000 (21:39 -0400)]
lm(4): support W83627EHF-A (an early revision of the chip in ASUS MBs)
Sascha Wildner [Sun, 23 May 2010 01:01:36 +0000 (03:01 +0200)]
sa(8): Raise WARNS to 6 and fix warnings.
Sascha Wildner [Sat, 22 May 2010 23:55:46 +0000 (01:55 +0200)]
ncplist(1): Raise WARNS to 3 and fix warnings.
Sascha Wildner [Sat, 22 May 2010 23:53:30 +0000 (01:53 +0200)]
sys/netproto/ncp/ncp_lib.h: Constify bn_name in struct ncp_bitname.
Matthew Dillon [Sat, 22 May 2010 16:40:14 +0000 (09:40 -0700)]
AHCI - Fix use of error ccb in error path
* A conditional was improperly reusing the 'ccb' variable. Use a different
variable name so the original ccb (the error ccb) is not replaced.
Sascha Wildner [Fri, 21 May 2010 20:09:48 +0000 (22:09 +0200)]
malloc.3: Sort of sync with NetBSD (for the examples, mainly).
Sascha Wildner [Fri, 21 May 2010 19:32:34 +0000 (21:32 +0200)]
acpi(4): Remove an unused variable.
Sascha Wildner [Thu, 20 May 2010 12:00:46 +0000 (14:00 +0200)]
bsd-family-tree: Sync with FreeBSD (for OpenBSD 4.7).
Sascha Wildner [Wed, 19 May 2010 18:45:01 +0000 (20:45 +0200)]
uuid_{name,addr}_lookup(3): Fix free() order.
Sascha Wildner [Tue, 18 May 2010 19:56:31 +0000 (21:56 +0200)]
scsi(4): Add a missing 'break'.
Sascha Wildner [Tue, 18 May 2010 10:15:40 +0000 (12:15 +0200)]
sys/netinet/in_pcb.c: Fix a broken range check.
Back in 2004, in commit
80dff869, RANGECHK() was changed from a macro
to an inline function. This broke the test since the passed 'var' could
not be changed by the inline unless a pointer was used.
Instead of changing to using pointers now (or adding a return value to
RANGECHK()), revert to using a macro again.
Sascha Wildner [Sun, 16 May 2010 19:06:21 +0000 (21:06 +0200)]
Go over sys/platform and remove dead initialization and unneeded variables.
No functional changes.
Sascha Wildner [Sun, 16 May 2010 18:41:39 +0000 (20:41 +0200)]
vkernel64: Do some more replacing amd64 -> x86_64.
This reduces differences with the non-vkernel 64 bit code.
Sascha Wildner [Sun, 16 May 2010 18:03:10 +0000 (20:03 +0200)]
Add a missing break in the 64 bit vkernel, too.
Sascha Wildner [Sun, 16 May 2010 17:41:01 +0000 (19:41 +0200)]
vkernel: To restart the scan, npv needs to be reset, not pv.
Matthew Dillon [Sun, 16 May 2010 17:46:35 +0000 (10:46 -0700)]
kernel - zero pages during idle
Bring in base work by Venkatesh Srinivas:
* vm/vm_zeropage.c and bzeront() code.
Plus make the following adjustments:
* Move the bzeront code from platform/ to cpu/ and add a x86_64 version
of bzeront().
* Expose the page zeroing rate via sysctl and adjust the default upwards.
* Expose the movnti feature via sysctl (defaults to off).
* Change poll interval from 1 second to 1/10 second.
* Correct a bug where the MP lock was not being initially released. The
thread is created with the MP lock held. This was causing the hysteresis
check to fail.
* Correct a bug where vm_page_zero_count was being double-incremented
due to changes in how the zerod page is freed.
* Clean up the code syntax a bit.
Submitted-by: Venkatesh Srinivas <me@endeavour.zapto.org>
Sascha Wildner [Sun, 16 May 2010 17:26:16 +0000 (19:26 +0200)]
vkernel: Fix a wrong check of netif_set_tapflags()'s return value.
Sascha Wildner [Sun, 16 May 2010 15:39:12 +0000 (17:39 +0200)]
kx86_64_set_watch(): Add a missing 'break'.
Sascha Wildner [Sun, 16 May 2010 01:46:31 +0000 (03:46 +0200)]
cxm(4) doesn't depend on smbus(4).
Reported-by: Thomas Klausner <wiz@netbsd.org>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1766>
Sascha Wildner [Sun, 16 May 2010 01:45:42 +0000 (03:45 +0200)]
Fix compiling iic(4) on x86_64 by adding <machine/iic.h>.
Reported-by: Thomas Klausner <wiz@netbsd.org>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1766>
Matthew Dillon [Sat, 15 May 2010 16:54:37 +0000 (09:54 -0700)]
kernel - Update random number generator
* Update the random number generator with recommended changes to IBAA.
This addresses a short-cycle problem and prevents bad initial states.
* Passes diehard (as did the original).
* Note that DragonFly continuously injects entropy and was likely not
subject to these issues, and with these changes is even less so.
Submitted-by: Robin Carey <robin.carey1@googlemail.com>