Sascha Wildner [Mon, 17 Jan 2011 20:32:02 +0000 (21:32 +0100)]
groff: Raise WARNS to 1.
Sascha Wildner [Mon, 17 Jan 2011 20:31:47 +0000 (21:31 +0100)]
devd(8): Raise WARNS to 5 and fix a warning.
Sascha Wildner [Mon, 17 Jan 2011 20:17:50 +0000 (21:17 +0100)]
lib/libncp: Silence some warnings that cropped up with CSTD=gnu99.
Sascha Wildner [Mon, 17 Jan 2011 20:11:04 +0000 (21:11 +0100)]
compile_et(1): Set CSTD to gnu89 (compile_et(1) is in contrib/).
Sepherosa Ziehau [Mon, 17 Jan 2011 15:17:24 +0000 (23:17 +0800)]
x86_64 intr: Support upto 192 IDT entries in ipl and intr vector asm code
Most parts are same as following commit on i386:
c263294b570bc9641fe5184b066fd801803046a4
except that 64bits mask array is used.
Things like (1UL << $const_val) does not work in .s file; currently
"movq $1,%rcx; shlq $const_val,%rcx;" is used instead.
Sepherosa Ziehau [Mon, 17 Jan 2011 13:46:11 +0000 (21:46 +0800)]
icu: Remove unused macros
Sepherosa Ziehau [Mon, 17 Jan 2011 08:54:49 +0000 (16:54 +0800)]
x86_64 madt: Remove unapplicable comment
Sascha Wildner [Mon, 17 Jan 2011 08:18:51 +0000 (09:18 +0100)]
NELEM: Take back the sys/boot part. We'll care about that later.
Sascha Wildner [Mon, 17 Jan 2011 08:03:15 +0000 (09:03 +0100)]
kernel: Use NELEM() where we can.
Sascha Wildner [Mon, 17 Jan 2011 05:16:09 +0000 (06:16 +0100)]
kernel: Use NELEM() in a few more places and nuke private arysize()'s.
Sepherosa Ziehau [Mon, 17 Jan 2011 02:15:37 +0000 (10:15 +0800)]
udp ctlport: We should call udp_addrcpu() instead of INP_MPORT_HASH_UDP()
This is the leftover after we serialize UDP user space output to CPU0
Reported-by: pavalos@
Sascha Wildner [Sun, 16 Jan 2011 22:44:07 +0000 (23:44 +0100)]
Unbreak buildworld.
Sascha Wildner [Sun, 16 Jan 2011 19:52:02 +0000 (20:52 +0100)]
Set CSTD back to gnu89 for tip(1) too (this needs cleanup).
Sascha Wildner [Sun, 16 Jan 2011 19:51:22 +0000 (20:51 +0100)]
Set CSTD back to gnu89 again for various contrib/ related stuff.
Sascha Wildner [Sun, 16 Jan 2011 09:29:19 +0000 (10:29 +0100)]
Revert "Lower some WARNS from 1 to 0. This needs more work."
This reverts commit
e49a8a3866b68864b4b89ab47dbe8f878d7abaa2.
Leave the WARNS where they are. We'll lower CSTD instead.
Sascha Wildner [Sun, 16 Jan 2011 09:43:20 +0000 (10:43 +0100)]
vi(1): Add some missing CLEANFILES.
Sascha Wildner [Sun, 16 Jan 2011 08:28:06 +0000 (09:28 +0100)]
Pluck options which are not applicable to C++ out of the C++ command line.
-Wnested-externs
-W*-prototypes
-Wno-pointer-sign
-Wold-style-definition
Also, ignore -std=... for the moment. It's set globally to gnu99 now and
that leads to warnings in C++ compilation. We'll ponder other ways to cope
with this later.
This commit will allow us to raise WARNS further for C++.
Taken-from: FreeBSD
Sascha Wildner [Sun, 16 Jan 2011 07:06:43 +0000 (08:06 +0100)]
Use CSTD and remove local CSTD settings which are no longer needed.
Also, stick with gnu89 for lib/liblvm and libexec/tcpd for now.
Sascha Wildner [Sun, 16 Jan 2011 04:55:31 +0000 (05:55 +0100)]
Set the C standard we use for compiling userland to gnu99.
Sascha Wildner [Sun, 16 Jan 2011 04:53:01 +0000 (05:53 +0100)]
Lower some WARNS from 1 to 0. This needs more work.
Sascha Wildner [Sun, 16 Jan 2011 04:51:04 +0000 (05:51 +0100)]
cam: Fix for missing prototypes (userland).
Sascha Wildner [Sun, 16 Jan 2011 04:49:11 +0000 (05:49 +0100)]
libkern: Add missing prototype for userland.
Sascha Wildner [Sun, 16 Jan 2011 04:46:06 +0000 (05:46 +0100)]
symorder(1): Fix for missing prototypes.
Sascha Wildner [Sun, 16 Jan 2011 04:44:50 +0000 (05:44 +0100)]
ppp(8): Fix for missing prototypes.
Sascha Wildner [Sun, 16 Jan 2011 04:39:44 +0000 (05:39 +0100)]
kzip(8): Clean up a bit and raise WARNS to 2.
Sascha Wildner [Sun, 16 Jan 2011 04:26:19 +0000 (05:26 +0100)]
rpc.statd(8): Fix for missing prototypes.
Sascha Wildner [Sun, 16 Jan 2011 04:24:56 +0000 (05:24 +0100)]
rpc.ypxfrc(8): Fix for missing prototypes.
Sascha Wildner [Sun, 16 Jan 2011 04:18:09 +0000 (05:18 +0100)]
rtadvd(8): Fix for missing prototypes.
Sascha Wildner [Sun, 16 Jan 2011 04:12:56 +0000 (05:12 +0100)]
fsck(8): Fix for missing prototypes.
Sascha Wildner [Sun, 16 Jan 2011 04:09:23 +0000 (05:09 +0100)]
liby: Add yyparse() prototype.
Sepherosa Ziehau [Sun, 16 Jan 2011 08:08:42 +0000 (16:08 +0800)]
x86_64 apic: Remove no longer applicable comment
Sepherosa Ziehau [Sun, 16 Jan 2011 08:07:22 +0000 (16:07 +0800)]
x86_64 intr: Don't pass the vector name to INTR_HANDLER
Sepherosa Ziehau [Sun, 16 Jan 2011 08:02:35 +0000 (16:02 +0800)]
x86_64 intr: We no longer have the fast version of intr vectors
Sepherosa Ziehau [Sun, 16 Jan 2011 07:50:47 +0000 (15:50 +0800)]
x86_64 icu: Strip extra blank lines
Sepherosa Ziehau [Sun, 16 Jan 2011 07:47:58 +0000 (15:47 +0800)]
x86_64 icu: Remove no onger applicable comment
Sepherosa Ziehau [Sun, 16 Jan 2011 07:41:01 +0000 (15:41 +0800)]
x86_64 intr_abi: Reindent
Sepherosa Ziehau [Sun, 16 Jan 2011 06:12:53 +0000 (14:12 +0800)]
ioapic: Use shll in APIC_INTR{DIS,EN}
Sepherosa Ziehau [Sat, 15 Jan 2011 15:30:25 +0000 (23:30 +0800)]
ioapic: macro renaming
Consistent with i386. No functional changes
Sascha Wildner [Sun, 16 Jan 2011 06:42:47 +0000 (07:42 +0100)]
dloader: Add missing prototype.
Sascha Wildner [Sun, 16 Jan 2011 03:24:04 +0000 (04:24 +0100)]
Move CSTD out of NO_WARNS (i.e., it shall apply too if NO_WARNS is set).
Sascha Wildner [Sat, 15 Jan 2011 12:23:49 +0000 (13:23 +0100)]
twa(4): Fix some __printflike() issues I overlooked previously.
Sepherosa Ziehau [Sat, 15 Jan 2011 12:02:34 +0000 (20:02 +0800)]
tcp: Don't panic if persist timer is started in CLOSED and TERMINATING
Persistent timer could go wrong only when SYN is to be turned on in
tcp_output(), however, CLOSED and TERMINATING states' flags does not
contain SYN at all. And starting persistent timer in CLOSED state is
absolutely valid, e.g. from tcp_drop()
Reported-by: dillon@
Sascha Wildner [Sat, 15 Jan 2011 02:43:46 +0000 (03:43 +0100)]
Add __printflike's where possible and fix all related bugs & issues.
Matthew Dillon [Fri, 14 Jan 2011 04:56:05 +0000 (20:56 -0800)]
kernel - Fix maximum file size limit for NFSv3
* Remove throwback from an older era where the buffer cache used 32 bit
block numbers.
* Maximum file size for NFSv3 is not 2^63-1
Reported-by: Rick Macklem <rmacklem@uoguelph.ca>
Matthew Dillon [Fri, 14 Jan 2011 02:44:22 +0000 (18:44 -0800)]
kernel - Fix an inefficiency in wait*()
* The exit code was not taking into account the fact that a parent
process might race an exiting child, causing a tsleep(... "lwpzomb", hz)
to delay an entire second.
Issue the proper wakeup in all cases where p->p_nthreads drops to 1 or 0.
* Improves buildworld performance a little.
YONETANI Tomokazu [Thu, 13 Jan 2011 00:14:35 +0000 (09:14 +0900)]
pf: statekey needs to be initialized for IPv6, too.
This fixes the panic described in issue1956.
Matthew Dillon [Wed, 12 Jan 2011 20:12:04 +0000 (12:12 -0800)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Venkatesh Srinivas [Wed, 12 Jan 2011 20:09:37 +0000 (12:09 -0800)]
Merge branch 'master' of /repository/git/dragonfly
Matthew Dillon [Wed, 12 Jan 2011 20:08:11 +0000 (12:08 -0800)]
kernel - Fix minor build error when building without INVARIANTS
* Fix an unused variable when building without INVARIANTS that was
tripping up the kernel compile.
Venkatesh Srinivas [Wed, 12 Jan 2011 19:43:30 +0000 (11:43 -0800)]
kernel -- tmpfs: Make tmpfs_strategy MPSAFE.
tmpfs_strategy now acquires only the per-mount token directly.
Venkatesh Srinivas [Wed, 12 Jan 2011 05:46:31 +0000 (21:46 -0800)]
kernel -- tmpfs: Make tmpfs_read() MPSAFE.
tmpfs_read() no longer takes the MPlock or per-mount token via the VOP
callbacks. It obtains the mount token itself around the uncached read path.
Matthew Dillon [Wed, 12 Jan 2011 03:43:23 +0000 (19:43 -0800)]
HAMMER VFS - Remove B-Tree allocation hints, add double_buffer option.
* Remove the allocation hints when allocating b-tree nodes and
remove over-full test in the blockmap allocator for b-tree and
meta-data elements.
The hinting and leaving some space unused in the big-blocks did
not improve performance. Write performance is actually slightly
better when new allocations are made linearly.
* Either way we have to depend on the reblocker to reorganize the
B-Tree.
* Add a sysctl vfs.hammer.double_buffer, defaulting to off. This
is currently used for debugging and testing live-dedup.
Normally only small-data blocks are run through the device vnode's
buffer cache (allowing us to consolidate many small data blocks
within the device vnode's buffer cache), and large data blocks are
read directly into the file vnode's buffer.
Turning on double_buffer cases ALL file data to run through the
device vnode's buffer cache, resulting in double data caching
which is not normally useful, so leave this off for now. It will
not improve performance.
Sascha Wildner [Wed, 12 Jan 2011 03:07:59 +0000 (04:07 +0100)]
bus_dma.9: Document the recently added flags for bus_dma_tag_create().
Matthew Dillon [Wed, 12 Jan 2011 00:37:06 +0000 (16:37 -0800)]
HAMMER VFS - Unlock around uiomove
* Unlock the uncached read path's lock and the write path's lock
around the uiomove(). The cached read path is already unlocked
around the uiomove().
* Results in a marginal improvement in concurrency. Full buffers (64K)
are large enough to warrent the unlock/relock.
Matthew Dillon [Tue, 11 Jan 2011 22:36:24 +0000 (14:36 -0800)]
kernel - Fix very annoying lockup (SMP)
* Fix an extremely annoying lockup that took a week+ to find. The cpusync
code is rather fragile and any for (;;) or while (1) style loops in the
kernel can trip it up and cause a deadlock. These loops are careful to
call lwkt_process_ipiq() to ensure that cpusync processing occurs.
However, there is a race in the LWKT thread migration code where a thread
deschedules itself on one cpu and schedules itself on another via a remote
ipi. The target cpu expects the thread's TDF_RUNNING state to clear and
will loop until that happens.
An IPI could sneak itself into the deschedule/lwkt_switch() path and
deadlock against a cpusync, preventing the thread from leaving the
TDF_RUNNING state.
The solution is to ensure that lwkt_process_ipiq() is *NOT* run in
the lwkt_switch() path if the calling thread has descheduled itself.
* The original bug could be reproduced by running blogbench in one window
and a while (1) ps axl shell script in another.
* Add DEBUG_PUSH_INFO(msg)/DEBUG_POP_INFO() macros which record (msg)
in the globaldata structure as a debugging aid.
* Remove unused platform/pc64/x86_64/systimer.c file. The entire contents
of this file was #ifdef'd out and its functionality is handled elsewhere
by the lapic timer code.
* #if 0 out numerous debugging bits but don't remove the code because it
is extremely useful for finding lockup conditions.
Matthew Dillon [Tue, 11 Jan 2011 09:19:55 +0000 (01:19 -0800)]
kernel - Enhance getcacheblk() (improve saturated write performance (3)).
* Change getcacheblk() to use getblk() instead of findblk() when the
block size is known, allowing a cached buffer to be reinstantiated
from VM backing store in the MPSAFE path.
Well, mostly MPSAFE, the vm_token is still acquired, but this is still
much faster than what HAMMER does when the buffer is not in-cache.
* This more than doubles blogbench performance w/HAMMER and further reduces
concurrent read vs write conflicts.
Matthew Dillon [Tue, 11 Jan 2011 09:19:19 +0000 (01:19 -0800)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Tue, 11 Jan 2011 07:17:34 +0000 (23:17 -0800)]
HAMMER VFS - Improve saturated write performance (2).
* Change the dirty io buffer lists from TAILQs to Red-Black trees.
* The dirty io buffers are sorted by disk address on a flush-group by
flush-group basis and I/O writes are initiated in sorted order.
This significantly improves write I/O throughput to normal HDs.
Essentially what is happening here is that the sheer number of
unsorted buffers are overwhelming the HDs own caches. Having HAMMER
pre-sort the buffers, of which there can be upwards of 100MBs worth,
allow the HD to write more optimally.
Matthew Dillon [Tue, 11 Jan 2011 02:07:20 +0000 (18:07 -0800)]
HAMMER VFS - Improve saturated write performance.
* Change vfs.hammer.limit_reclaim to auto-scale to 1/10 the maximum
number of vnodes, instead of using a fixed value of 4000. On a
typical i386 box this will be around ~10000 and on a typical x86-64
box this will be ~50000.
* Greatly reduce the vfs.hammer.autoflush default from 2000 inodes
to 500 inodes.
This results in better locality of reference within the flush groups
and better pipelining when the reclaim limit is approached (when the
vnode cache is saturated).
* Refactor the sequencing of the hammer_flush_group structure, fixing
a number of issues which caused the structures to hold an inconsistent
number of inodes.
* Refactor the flusher's sequence space management.
* Blogbench performance is greatly improved, as is mixed random read/write
I/O in general.
Note, however, that typical production operations do not involve
hundreds of thousands of files and will not be impacted as much.
Venkatesh Srinivas [Tue, 11 Jan 2011 04:19:28 +0000 (23:19 -0500)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Venkatesh Srinivas [Tue, 11 Jan 2011 04:09:35 +0000 (23:09 -0500)]
Remove prototype of disksort().
Venkatesh Srinivas [Tue, 11 Jan 2011 04:01:02 +0000 (20:01 -0800)]
kernel -- kref: Add KREF_DEC macro to allow braced blocks for destructors.
Convert sfbuf to use braced blocks on unref.
Matthew Dillon [Mon, 10 Jan 2011 23:42:24 +0000 (15:42 -0800)]
HAMMER VFS - Change default hammer fs version from 4 to 5
* change the default hammer fs from 4 to 5. newfs_hammer calls with
newly built worlds will now create version 5 by default.
The version 5 filesystem media format supports de-dup.
Matthew Dillon [Mon, 10 Jan 2011 23:39:47 +0000 (15:39 -0800)]
HAMMER VFS - Implement Version 6 features as WIP (work in progress)
* Add a new directory hash which generates segmented CRC and then adds
them together for the filename.
This tends to result in a directory key offset instead of a complete
re-randomization when a temporary file extension is renamed to its base
filename.
Numerous programs create temporary files and then rename them. This
tends to maintain inode number / directory name entry ordering a bit
better.
* This is a work in progress version. Production systems should not upgrade
their HAMMER filesystem to version 6 at this time.
Matthew Dillon [Mon, 10 Jan 2011 23:37:01 +0000 (15:37 -0800)]
kernel64 - Add some lapic timer based debugging (disabled by default)
* Adjust the Xtimer interrupt to unconditionally call
lapic_timer_always() regardless of the critical section state.
* Create a procedure lapic_timer_always() on x86-64 which is #if 0'd
out by default with some on-screen debugging that can be used to
help find system lockups.
Matthew Dillon [Mon, 10 Jan 2011 23:31:29 +0000 (15:31 -0800)]
kernel - Do a better job with the filesystem background sync
* Adjust code for MNT_LAZY, MNT_NOWAIT, and MNT_WAITOK to reflect
the fact that they are three different flags and not enumeration
constants.
* HAMMER now sets VMSC_ONEPASS for MNT_LAZY syncs (background filesystem
sync). This generally reduces instances where the background sync
winds up running continuously when heavy filesystem ops saturate
the disk. Fewer vnodes dirtied after the sync is initiated will get
caught up in the sync.
Matthew Dillon [Mon, 10 Jan 2011 23:26:31 +0000 (15:26 -0800)]
kernel - Refactor VMSC_ONEPASS
* Refactor the VMSC_ONEPASS flag to only iterate the current number
of vnodes associated with a mount point, instead of 2x the vnodes.
This makes 'sync' a bit more consistent in the face of heavy filesystem
activity.
Matthew Dillon [Mon, 10 Jan 2011 23:25:47 +0000 (15:25 -0800)]
kernel - Ensure rover in vfs_cache is not optimized.
* Add a cpu_ccfence() to ensure that the static rover variable is
not optimized by the compiler.
Matthew Dillon [Mon, 10 Jan 2011 23:17:25 +0000 (15:17 -0800)]
kernel - refactor cpusync and pmap_inval code, fix lockup
* Simplify the cpusync API. The API now has only one initialization call,
one simplified rollup call, and two primary calls handling a single
function callback (instead of three callbacks).
cpusync_interlock() interlocks the specified set of cpus and ensures they
are running in a safe place, cpusync_deinterlock() executes the initialized
function on the cpu set and does not return until all cpus have completed
the operation.
* Simplify the pmap_inval per-platform API. pmap_inval_interlock() and
pmap_inval_deinterlock() now reflect similar functionality to the cpusync
API. pmap/pte operations are now synchronized when pmap_inval_deinterlock()
is called and not when pmap_inval_done() is called, reducing the range of
code which can execute while the cpu set is held quiescent.
pmap_inval_flush() has been removed. Critical section handling has also
been rearranged slightly in the pmap_inval* and cpusync* APIs.
* Fixes a cpusync lockup which occurs when the x86-64 pmap and pmap_inval
code is used to hold a cpu mask quiescent across complex subsystem calls.
Primarily accomplished by moving the synchronization out of
pmap_inval_flush() and into pmap_inval_deinterlock().
Sascha Wildner [Sun, 9 Jan 2011 16:15:28 +0000 (17:15 +0100)]
x86_64: Put the x86_64 specific "seg-fault..." message under bootverbose.
Reported-by: John Marino
Sepherosa Ziehau [Thu, 6 Jan 2011 15:53:19 +0000 (23:53 +0800)]
intr: Support upto 192 IDT entries in ipl and intr vector asm code
Remove 32bits gd_fpending mask and add 32bits gd_ipending mask array
which has 6 elements. This allows 192 intrs to be pending.
192 is chosen, because the first 32 entries in IDT is reserved, while
the last 32 entries in IDT are used for IPIs.
This paves the way toward correcting interrupt routing using MPTable
or ACPI and supporting MSI and MSI-X
Sepherosa Ziehau [Thu, 6 Jan 2011 04:59:22 +0000 (12:59 +0800)]
apic: Remove no longer applicable comment
Sepherosa Ziehau [Thu, 6 Jan 2011 04:51:09 +0000 (12:51 +0800)]
intr: Don't pass the vector name to INTR_HANDLER
Sepherosa Ziehau [Thu, 6 Jan 2011 04:34:33 +0000 (12:34 +0800)]
intr: We no longer have the fast version of intrs
Sepherosa Ziehau [Thu, 6 Jan 2011 04:30:56 +0000 (12:30 +0800)]
icu: Strip extra blank lines
Sepherosa Ziehau [Thu, 6 Jan 2011 04:29:44 +0000 (12:29 +0800)]
icu: Remove no onger applicable comment
Sepherosa Ziehau [Thu, 6 Jan 2011 04:28:14 +0000 (12:28 +0800)]
intr_abi: Reindent
Sepherosa Ziehau [Wed, 5 Jan 2011 12:23:02 +0000 (20:23 +0800)]
Revert "Revert "IO APIC: Assign pins dedicated to PCI in the early stage.""
This reverts commit
4612bd39e96dec8f15117c89cbaa12c6bdfb75d2.
Sepherosa Ziehau [Sun, 9 Jan 2011 07:01:32 +0000 (15:01 +0800)]
pf: It's opt_carp.h not use_carp.h
Sascha Wildner [Sun, 9 Jan 2011 06:36:45 +0000 (07:36 +0100)]
Bring in sephe's recent intr/apic work to x86_64.
The following commits:
6ab7c3a intr: Clean up comment of Local APIC TPR
84bf7d5 intr: Remove unused TRP macros
e4a4c49 intr: Remove unused typedef
507bf37 intr: Make sure that changing IPI offset will also update related TPR
072d9b3 intr: Move IO/APIC IDT vector offset into isa/intr_machdep.h
7b32a0a apic: Remove unused macros and duplicated comment
2ce3ae8 apic: Remove unused macros
26408d7 intr: Remove call_fast_unpend() declaration
87e3ca2 intr: Start hardware interrupt at IDT_OFFSET
90a567f apic: Clear all entries in int table
Sascha Wildner [Sun, 9 Jan 2011 06:35:08 +0000 (07:35 +0100)]
pci: MPTable pcib/hostb should not be used, if !apic_io_enable
MP Table is not parsed at all if !apic_io_enable
[Recent work by sephe brought in from i386.]
Sascha Wildner [Sat, 8 Jan 2011 23:21:09 +0000 (00:21 +0100)]
kernel: Uncomment aacp in the configs.
Sascha Wildner [Sat, 8 Jan 2011 23:03:42 +0000 (00:03 +0100)]
tws.4: Bump some dates.
Sascha Wildner [Sat, 8 Jan 2011 20:47:12 +0000 (21:47 +0100)]
Add tws(4), a driver for the LSI 3ware 9750 series SATA/SAS RAID controllers.
It should support the following controllers:
* LSI 3ware SAS 9750-4i
* LSI 3ware SAS 9750-4i4e
* LSI 3ware SAS 9750-8i
* LSI 3ware SAS 9750-8e
* LSI 3ware SAS 9750-16i4e
* LSI 3ware SAS 9750-24i4e
It was tested with the 9750-4i.
Many thanks to LSI Corporation. The driver is a port of their FreeBSD driver
that comes on the Installation CD (manual page added by me).
Thanks to vsrinivas and sephe for helping with finding and fixing a busdma
locking issue.
Sepherosa Ziehau [Fri, 31 Dec 2010 09:43:11 +0000 (17:43 +0800)]
busdma: Free map, if bus_dmamap_create() fails
Sepherosa Ziehau [Fri, 31 Dec 2010 09:28:12 +0000 (17:28 +0800)]
busdma: Make sure bounce zone's sysctl tree is created before destroying it
Sepherosa Ziehau [Fri, 31 Dec 2010 09:25:05 +0000 (17:25 +0800)]
busdma: Free bounce zone if any error happens during bus_dma_tag_create()
Sepherosa Ziehau [Mon, 27 Dec 2010 08:24:03 +0000 (16:24 +0800)]
busdma: Add PROTECTED bus_dma_tag_create() flag.
PROTECTED
All of the functions called with the dma_tag are already protected by
the caller, so busdma code need not to protect the internal data
structures. Panic, if the "defered dmamap load callback" is going to
happen.
When used along with PRIVBZONE, ALLOCALL and ALLOCNOW, it could greatly
reduce the work load of fixing all of the drivers that mal-use busdma
functions.
Sepherosa Ziehau [Mon, 27 Dec 2010 07:44:23 +0000 (15:44 +0800)]
busdma: Add PRIVBZONE and ALLOCALL bus_dma_tag_create() flags.
PRIVBZONE
Use a private bounce zone instead of a shared one. A private bounce
zone will vanish if the dma_tag is destroyed.
ALLOCALL
Allocate all required resources (mainly bounce buffer), if any
allocation failes, bus_dmamap_create() will fail.
Using PRIVBZONE alone could possiblely reduce the contention between
driver instances.
Using PRIVBZONE and ALLOCALL could promise that the "defered dmamap
load callback" will not happen. This could be used to ease some driver
work and reduce the work load to fix the existing drivers which may
(incorrectly) rely on or may not expect the "defered dmamap load
callback" semantic of bus_dmamap_load().
Sascha Wildner [Sat, 8 Jan 2011 12:47:55 +0000 (13:47 +0100)]
Revert "Remove the broken burncd(8)."
This reverts commit
fd6f482a63584f75b8a119c8815ad384815c990a.
A number of people disagreed with this commit, so I'm reverting
it.
The reason I removed burncd(8) was that it didn't work here at
all and that others (on IRC) had reported the same. So bring it
back for now so we can re-evaluate.
Peter Avalos [Sat, 8 Jan 2011 01:36:38 +0000 (15:36 -1000)]
pthread.h: Fix prototypes.
We need to remove the condition of _POSIX_THREAD_PROCESS_SHARED for the
pshared prototypes. Otherwise, programs have to include unistd.h (to
get the definition of _POSIX_THREAD_PROCESS_SHARED) before pthread.h.
This is not the way to do things.
This fixes at least kde4, and I'm sure there's others.
Sascha Wildner [Fri, 7 Jan 2011 05:48:10 +0000 (06:48 +0100)]
aac(4): Use bio (not bp) for the bio pointer.
Sascha Wildner [Fri, 7 Jan 2011 05:14:19 +0000 (06:14 +0100)]
aac(4): Update to version 2.1.9-1 (current FreeBSD).
This brings in support for ~40 additional controllers of the family. See
the manual page for the full list.
It also fixes dumping to aac(4).
Tested with a Dell PERC 320/DC.
Reported-by: Archimedes Gaviola <archimedes.gaviola@gmail.com>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1391>
Sascha Wildner [Thu, 6 Jan 2011 12:48:03 +0000 (13:48 +0100)]
xargs(1): Add -P option for parallel mode.
Submitted-by: Axel Scheepers <axel@axel.truedestiny.net>
Taken-from: FreeBSD
Dragonfly-bug: <http://bugs.dragonflybsd.org/issue1953>
Sascha Wildner [Wed, 5 Jan 2011 23:11:07 +0000 (00:11 +0100)]
Remove the broken burncd(8).
There's cdrecord from pkgsrc/sysutils/cdrtools (which also comes on our
LiveCD).
Matthew Dillon [Wed, 5 Jan 2011 20:48:07 +0000 (12:48 -0800)]
finger - Fix seg-fault
* Fix a seg-fault where finger was improperly assuming that w->tty and w->host
where char arrays when in fact they were simply char pointers.
Reported-by: Robin Carey <robin.carey1@googlemail.com>
Sascha Wildner [Wed, 5 Jan 2011 14:49:44 +0000 (15:49 +0100)]
hptmv(4): Save some unneeded variables in the locking functions.
Sascha Wildner [Wed, 5 Jan 2011 04:20:56 +0000 (05:20 +0100)]
hptmv(4): Fix shutting down.
This didn't work at all. pAdapter->eh was never assigned to and the event
handler for deregistering was wrong, too.
So the driver ended up deregistering all callbacks of the shutdown_final
handler during shutdown_post_sync.
Matthew Dillon [Tue, 4 Jan 2011 23:06:59 +0000 (15:06 -0800)]
vkernel - Fix corrupt tailq (vkernel64 only)
* Properly remove an exiting thread from any tsleep queue it might be
enqueued on (due to tsleep_interlock() use cases) prior to exiting.
* Fixes tailq corruption which can occur with threaded programs.
* Fix is only applicable to vkernel64. All other platforms already
properly remove the thread.
* Assert that an exiting thread has been removed from any sleep queue
before freeing it in kern_exit.c to catch any future cases.
Samuel J. Greear [Tue, 4 Jan 2011 21:39:46 +0000 (21:39 +0000)]
hammer - Describe live_dedup_cache_size sysctl