Hasso Tepper [Sat, 5 Apr 2008 18:12:30 +0000 (18:12 +0000)]
DRM update to git snapshot from 2008-01-04.
Sascha Wildner [Sat, 5 Apr 2008 09:13:24 +0000 (09:13 +0000)]
Remove trailing space.
Sascha Wildner [Sat, 5 Apr 2008 09:12:45 +0000 (09:12 +0000)]
Fix typo in comment.
Sascha Wildner [Sat, 5 Apr 2008 08:50:41 +0000 (08:50 +0000)]
Sync with FreeBSD (adds -n, -s and -x).
Matthias Schmidt [Sat, 5 Apr 2008 08:07:11 +0000 (08:07 +0000)]
Fix typo.
Noticed-by: swildner@
Sepherosa Ziehau [Sat, 5 Apr 2008 07:57:22 +0000 (07:57 +0000)]
When aarpwhohas() is called, interface's serializer has already been held:
ether_output() -> aarpresolve() -> aarpwhohas()
Sepherosa Ziehau [Sat, 5 Apr 2008 07:40:28 +0000 (07:40 +0000)]
Hold serializer of the correct interface when calling if_output
Sepherosa Ziehau [Sat, 5 Apr 2008 06:28:35 +0000 (06:28 +0000)]
tunoutput() is declared as static function and is used in this way too.
Sepherosa Ziehau [Sat, 5 Apr 2008 05:57:07 +0000 (05:57 +0000)]
sppp_output() is installed in ifnet.if_output and is only called through that
interface, so it has already been serialized.
Sepherosa Ziehau [Sat, 5 Apr 2008 05:30:29 +0000 (05:30 +0000)]
atm_output() must be serialized.
Sascha Wildner [Fri, 4 Apr 2008 19:25:46 +0000 (19:25 +0000)]
Treat the argument as a file name only if it contains a '/'.
This catches the case where a user would do 'man foo' from a directory
which contains a file named foo.
Sascha Wildner [Fri, 4 Apr 2008 19:09:50 +0000 (19:09 +0000)]
Start sentences on a new line and add some markup.
Sepherosa Ziehau [Thu, 3 Apr 2008 16:02:32 +0000 (16:02 +0000)]
Unbreak UP building
Sepherosa Ziehau [Thu, 3 Apr 2008 13:43:29 +0000 (13:43 +0000)]
Parallelize ip_flow:
- Create per-CPU ipflow hash table. During initial ipflow installation, route
entry to the destination is allocated on each CPU and cached in the ipflow,
so each CPU will only access the route entry owned by itself.
- Timeout processing on per-CPU ipflow hash table is initialized by broadcasting
IPI to each CPU. In IPI, a per-CPU netmsg is used to inform CPU local netisr
to do the real timout processing.
- Add sysctl node to show how many ipflow entries are used on the each CPU.
Sepherosa Ziehau [Thu, 3 Apr 2008 12:55:15 +0000 (12:55 +0000)]
Add counters for serializer enter/try
Suggested-by: aggelos@
Sascha Wildner [Wed, 2 Apr 2008 21:25:30 +0000 (21:25 +0000)]
Add support for the Core 2 Duo T7500.
Submitted-by: Cristi Magherusan <cristi.magherusan@net.utcluj.ro>
Joerg Sonnenberger [Wed, 2 Apr 2008 14:46:37 +0000 (14:46 +0000)]
Fix buffer overflow in config parser.
Sepherosa Ziehau [Wed, 2 Apr 2008 14:18:55 +0000 (14:18 +0000)]
- Save statistics
- Factor out common routine to end threads
Sepherosa Ziehau [Wed, 2 Apr 2008 14:16:16 +0000 (14:16 +0000)]
Constify second parameter of timeval{add,sub}()
Sepherosa Ziehau [Wed, 2 Apr 2008 13:27:24 +0000 (13:27 +0000)]
Correct print format
Sepherosa Ziehau [Wed, 2 Apr 2008 13:11:48 +0000 (13:11 +0000)]
- Add two fields in lwkt_serialize to profile serializer contention.
- Expose serializer contention data through em's private sysctl tree.
Sepherosa Ziehau [Wed, 2 Apr 2008 11:48:30 +0000 (11:48 +0000)]
Use sysctl_ctx in softc
Sascha Wildner [Tue, 1 Apr 2008 21:10:26 +0000 (21:10 +0000)]
* MLINK nrelease(7) -> release(7).
* Merge relevant information from nrelease/README.
* Prerequisite for realquickrel is buildworld/-kernel and not necessarily
make release (reported by Max Herrgaard <herrgard@gmail.com>).
Sascha Wildner [Tue, 1 Apr 2008 20:55:06 +0000 (20:55 +0000)]
Make ISOROOT overridable.
Nicolas Thery [Tue, 1 Apr 2008 20:20:29 +0000 (20:20 +0000)]
Use M_ZERO instead of bzero().
Nicolas Thery [Tue, 1 Apr 2008 18:06:34 +0000 (18:06 +0000)]
Migrate allocation of proc structures from zones to kmalloc(). This gives us
MP-safety and does not seem to decrease performance (using make buildworld as
benchmark). Using an objcache seems unnecessary because there isn't much
pre-initialization code we could move to a constructor and there is no
performance gain.
Debatted-With: dillon@, hsu@, corecode@
Sascha Wildner [Tue, 1 Apr 2008 15:22:44 +0000 (15:22 +0000)]
Make the value of PTT_RELAY_SID match the RFC.
This fixes problems with relayed PPPoE.
Reported-by: Jordan Gordeev <jgordeev@dir.bg>
Taken-from: FreeBSD
Matthew Dillon [Sun, 30 Mar 2008 21:33:42 +0000 (21:33 +0000)]
HAMMER 36B/many: Misc debugging.
* Add vfs.hammer.contention_count to report B-Tree node contention
* Conditionalize debugging kprintf's for B-Tree node contention
around vfs.hammer.debug_locks, default disabled.
Matthew Dillon [Sun, 30 Mar 2008 20:39:01 +0000 (20:39 +0000)]
It's frankly long past time that we turn net.inet.tcp.always_keepalive
on by default.
The default test internal is 2 hours of idle (left unchanged). I am not
going to make it shorter but I will note that while you might not have wanted
to have the feature enabled 15 years ago (because many people were using
demand-dial), these days you actually almost universally want the feature
enabled for a multitude of reasons:
(1) Because you will often be running over a NAT and can lose the NAT
entry if the connection stays idle with no traffic at all for too
long a period of time.
(2) Because you will often be running over stateful filters which can also
get confused and lose the table entry if they see no traffic for too
long a period of time.
(3) Because having this turned on guarantees that stuck tcp connections,
especially those generated through batch operations, will eventually
get unstuck. A TCP connection can become stuck if it is waiting on
data and the remote end has closed the connection, but the RST got lost.
Without this feature such connections can remain stuck literally
forever.
In some cases you might even need a far shorter interval but that is another
issue not addressed by this commit.
Sascha Wildner [Sun, 30 Mar 2008 18:11:58 +0000 (18:11 +0000)]
Fix 'testmain' building.
Simon Schubert [Sun, 30 Mar 2008 16:45:04 +0000 (16:45 +0000)]
Sync audio data with other output.
Hasso Tepper [Sun, 30 Mar 2008 14:40:13 +0000 (14:40 +0000)]
Decrease the number of reported stray interrupts from 100 to 10. Problems
with stray interrupt 7 seem to be common nowadays when many computers don't
have parallel ports at all.
Sepherosa Ziehau [Sun, 30 Mar 2008 10:15:46 +0000 (10:15 +0000)]
Clean it up a little bit
Sascha Wildner [Sun, 30 Mar 2008 00:32:33 +0000 (00:32 +0000)]
Remove old time zone files.
Sascha Wildner [Sat, 29 Mar 2008 23:31:07 +0000 (23:31 +0000)]
* Update to Ficl 3.03:
- Newly implemented CORE EXT words: CASE, OF, ENDOF, and ENDCASE. Also
added FALLTHROUGH, which works like ENDOF but jumps to the instruction
just after the next OF.
- Bugfix: John-Hopkins locals syntax now accepts | and -- in the comment
(between the first -- and the }.)
- Bugfix: Changed vmGetWord0() to make Purify happier. The resulting
code is no slower, no larger, and slightly more robust.
* Instead of just not defining a bunch of words when TESTMAIN is set,
provide stubs that at least handle the stack correctly. This makes it
much easier to experiment with loader scripts from userland.
Taken-from: FreeBSD
Matthew Dillon [Sat, 29 Mar 2008 20:12:54 +0000 (20:12 +0000)]
HAMMER 36/many: Stabilization pass.
* Assert that no cursor linkages remain when releasing the last ref on
an inode.
* Rewrite the node lock upgrade and downgrade code and fix a bug where
a no-error (0) from locking the cursors parent was overriding a
possible error from locking the cursors current node, which could
result in B-Tree node corruption or an assertion later on.
Sepherosa Ziehau [Sat, 29 Mar 2008 11:45:46 +0000 (11:45 +0000)]
Add configuration to generate packets with different [sd]port and/or [sd]addr
in round-robin fashion.
Sepherosa Ziehau [Sat, 29 Mar 2008 05:27:07 +0000 (05:27 +0000)]
Add tunable for polling burst max, which is a significant tuning parameter
in addition to polling hz for polling(4) operation
Sepherosa Ziehau [Sat, 29 Mar 2008 04:45:47 +0000 (04:45 +0000)]
Add two tunables to run netisr and udp_thread without mplock, so experiment
could be conducted under controlled environment.
Default values of these two tunables are to run netisr/udp_thread with mplock.
Sepherosa Ziehau [Sat, 29 Mar 2008 03:38:53 +0000 (03:38 +0000)]
ifaddr threads does not need MP lock
Sepherosa Ziehau [Sat, 29 Mar 2008 03:37:15 +0000 (03:37 +0000)]
Add MPSAFE version of netmsg_service_loop()
Sepherosa Ziehau [Fri, 28 Mar 2008 11:03:44 +0000 (11:03 +0000)]
Pull back part of rev1.7
Simon Schubert [Thu, 27 Mar 2008 19:37:15 +0000 (19:37 +0000)]
Fix layout.
Submitted-by: Andreas Burghardt <a-burghardt@gmx.de>
Sepherosa Ziehau [Thu, 27 Mar 2008 11:42:11 +0000 (11:42 +0000)]
Install into /usr/sbin
Matthew Dillon [Thu, 27 Mar 2008 04:28:09 +0000 (04:28 +0000)]
Make sure there is no possibility of a cothread trying to access the
per-cpu globaldata space. cothreads operate like coprocessors and run
outside the cpu abstraction, and thus have no per-cpu abstraction.
Sepherosa Ziehau [Wed, 26 Mar 2008 15:05:33 +0000 (15:05 +0000)]
Remove debug prints
Sepherosa Ziehau [Wed, 26 Mar 2008 14:44:59 +0000 (14:44 +0000)]
Fix bugs concerning cached route entry in UDP inpcb.
For an unconnected and unbound UDP socket, first sending calls in_pcbladdr()
to fix the local port, which may change the target CPU of the next sending.
in_pcbladdr() has a side effect to allocate the route entry cached in inpcb.
If the target CPU after in_pcbladdr() is no longer the current CPU, then
the route entry will be accessed/freed on non-owner CPU during later sending.
Similarly, connect/disconnect a UDP socket may change the target CPU too; the
target CPU may no longer the owner of the cached route entry.
So, for the first sending happens on an unconnected and unbound UDP socket,
the target CPU of next sending is compared with the current CPU. If they
are different, then cached route entry will be freed, so next time a packet
sent on this socket, a new route entry owned by the correct CPU will be
cached. Same target CPU check is applied to UDP socket connect/disconnect.
Originally UDP PRU_CONNECT always happens on CPU0, which will cause problem if
following conditions are met:
- Dst of the cached route entry is different from the dst to be connected
- Cached route entry is not allocated on CPU0
This could happen if two datagram are sent on an unbounded and unconnected UDP
socket, then later connectting this UDP socket will cause cached route entry
being freed on different CPU. To solve this problem, PRU_CONNECT is dispatched
according to existing [lf]{addr,port} pairs.
If in_pcbladdr() fails after altering the cached route entry, the cached route
entry is freed to make sure that freeing this cached route entry happens on
its owner CPU.
Reported-by: y0netan1@
Tested-by: y0netan1@
Sepherosa Ziehau [Wed, 26 Mar 2008 13:53:14 +0000 (13:53 +0000)]
Add kernel module and a simple configure tool to generate packets at full speed
Sending host:
Athlon64 X2 3600+
em(4) (1000PT), hw.em0.int_throttle_ceil set to 4000
Result of a 10 seconds test:
cnt
14475256, err 0, time 9.990372
Receiving host:
Turion64 X2 TL-58
msk(4) (Yukon EU), hw.mskc0.intr_rate set to 4000
Output of 'netstat -w 1 -I msk0':
input (msk0) output
packets errs bytes packets errs bytes colls
0 0 0 0 0 0 0
0 0 0 0 0 0 0
103556 0 6213360 0 0 0 0
1465259 0
87915540 0 0 0 0
1461728 0
87703680 0 0 0 0
1463788 0
87827280 0 0 0 0
1456630 0
87397800 0 0 0 0
1459206 0
87552360 0 0 0 0
1464240 0
87854400 0 0 0 0
1468240 0
88094400 0 0 0 0
1464305 0
87858300 0 0 0 0
1468011 0
88080660 0 0 0 0
1200293 0
72017580 0 0 0 0
0 0 0 0 0 0 0
Matthew Dillon [Wed, 26 Mar 2008 04:32:54 +0000 (04:32 +0000)]
HAMMER 35C/many: Stabilization pass.
* The reblock code was only adjusting the data offset for B-Tree elements
when moving records containing in-line data. Also adjust the offset in
the record itself.
Dave Hayes [Tue, 25 Mar 2008 22:55:38 +0000 (22:55 +0000)]
* Allow nrelease/Makefile to build the local installer in usr.sbin
onto a LiveCD for installation.
* Tweak the installer shell scriptage to use the correct installer.
* Create a share/installer directory for installer data
(e.g. cmdnames.conf, fred.txt)
* Patch the installer so it does not coredump, and identifies itself
as the local installer.
* Tweak usr.sbin/installer/Makefiles to allow patches to the
installer to be automatically included in the build.
Please test the new local installer! Thanks. :)
Matthew Dillon [Tue, 25 Mar 2008 06:43:44 +0000 (06:43 +0000)]
HAMMER 35B/many: Stabilization pass, cleanups.
* Fix a B-Tree node load race which could result in an assertion. A
B-Tree node load is backed by a hammer_buffer and can race a buffer
teardown. Interlock the two and properly deal with a loading
B-Tree node whos buffer gets ripped out from under it.
* Fix an ordering issue with the volume->io.loading field, plus some
cleanups.
Matthew Dillon [Tue, 25 Mar 2008 03:58:21 +0000 (03:58 +0000)]
HAMMER utilities: Add -lm for double arithmatic.
Matthew Dillon [Tue, 25 Mar 2008 03:57:58 +0000 (03:57 +0000)]
HAMMER utilities: automatic sync/sleep
* Add 64 bit versions of the 'now' and 'stamp' commands, called
'now64' and 'stamp64'.
* The 'now' and 'now64' commands now automatically sync.
* The 'now' command also sleeps until the second hand turns over.
* Add a new option, -x, which may be used to disable the automatic sync &
sleep. The stamp and stamp64 commands do not sync or sleep.
Suggested-by: "Thomas E. Spanjaard" <tgen@netphreax.net>
Matthew Dillon [Mon, 24 Mar 2008 23:50:23 +0000 (23:50 +0000)]
HAMMER 35/many: Stabilization pass, cleanups
* Fix a buffer load race which could result in an assertion or panic
related to a referenced HAMMER buffer with a NULL bp. The problem was
that the loading flag must be used when releasing the buffer as well
as when acquiring the buffer. Change the loading flag to a loading
count.
* Do not lose flush requests. The flush request now stays flagged until
the buffer is able to be flushed.
* Fix stale blockmap offsets cached in hammer_buffer. Clear the cached
offset when freeing a big block from the blockmap. NOTE: We do not yet
try to index buffers based on the blockmap offset but we should.
* Remove the old write ordering code in preparation for redoing the algorithm.
* General code cleanups.
Sascha Wildner [Mon, 24 Mar 2008 23:45:29 +0000 (23:45 +0000)]
gx(4) and ray(4) are gone
Sascha Wildner [Mon, 24 Mar 2008 23:04:19 +0000 (23:04 +0000)]
Bring in some fixes from FreeBSD.
Matthew Dillon [Mon, 24 Mar 2008 14:28:44 +0000 (14:28 +0000)]
Rename PCIP_STORAGE_SATA_AHCI to PCIP_STORAGE_SATA_AHCI_1_0
Sascha Wildner [Mon, 24 Mar 2008 12:54:43 +0000 (12:54 +0000)]
Sync zoneinfo database with tzdata2008b from elsie.
asia: 8.14 -> 8.18
backward: 8.4 -> 8.6
northamerica: 8.20 -> 8.23
southamerica: 8.18 -> 8.19
zone.tab: 8.13 -> 8.16
From Arthur David Olson's comments:
* Iraq abandons DST.
* Syria switched (from 2008 forward) to start DST at the start of the first
Friday in April and end DST at the start of October 1.
* Change Cuba (from 2008 forward) to start DST the third Sunday in March.
* Add America/Argentina/San_Luis information.
* "Saigon" zone renamed "Ho_Chi_Minh".
* "Calcutta" zone renamed to "Kolkata".
Matthew Dillon [Mon, 24 Mar 2008 06:41:56 +0000 (06:41 +0000)]
Synchronize various changes from FreeBSD. This is not exhaustive but gets
the most important patches.
* Better AHCI detection and reporting.
* More robust AHCI chipinit.
* Fixes for additional chipsets which do not support 64K DMA transfers
* VIA8237S support
* Hitachi detection logic.
* Vendor identification for otherwise unidentified chipsets.
* keep ivars intact on atapi-cd reinit.
Sascha Wildner [Sun, 23 Mar 2008 19:46:49 +0000 (19:46 +0000)]
Remove ipw(4) remains.
Sepherosa Ziehau [Sun, 23 Mar 2008 09:48:20 +0000 (09:48 +0000)]
Nuke debug prints.
Noticed-by: swildner@
Sepherosa Ziehau [Sun, 23 Mar 2008 09:44:36 +0000 (09:44 +0000)]
Add Broadcom 4402 in bfe(4)
Obtained-from: Linux b44
Sepherosa Ziehau [Sun, 23 Mar 2008 09:40:07 +0000 (09:40 +0000)]
regen
Sepherosa Ziehau [Sun, 23 Mar 2008 09:31:50 +0000 (09:31 +0000)]
Add PCI id for Broadcom 4402 10/100 ethernet controller
Matthew Dillon [Sun, 23 Mar 2008 04:43:26 +0000 (04:43 +0000)]
HAMMER 34B/many: Stabilization pass.
Lookups on non-data in-memory records (aka symlinks) were failing, causing
readlink() to fail prior to the record being synchronized to disk. Fix
the memory record search code to properly handle ASOF.
buildworld now completes with a HAMMER /usr/obj.
Matthew Dillon [Sun, 23 Mar 2008 00:07:46 +0000 (00:07 +0000)]
Add mount_hammer, newfs_hammer, and the hammer utility to the build.
Sascha Wildner [Sat, 22 Mar 2008 21:34:23 +0000 (21:34 +0000)]
Bump .Dd for -V.
Matthew Dillon [Sat, 22 Mar 2008 21:24:44 +0000 (21:24 +0000)]
Fix collision in conf/files, add hammer_signal.c.
Matthew Dillon [Sat, 22 Mar 2008 20:52:00 +0000 (20:52 +0000)]
Add a FS_HAMMER id for disklabel.
Matthew Dillon [Sat, 22 Mar 2008 18:09:42 +0000 (18:09 +0000)]
Bump cpdup's version to 1.08.
Matthew Dillon [Sat, 22 Mar 2008 18:09:16 +0000 (18:09 +0000)]
Miscellanious features and adjustments to cpdup.
* Add the -V option to cpdup. If specified cpdup will verify the contents
of regular files which otherwise appear to be the same.
* Only MD5 regular files.
* Separate out target bytes read from source bytes read, and do not count
the stat structure as bytes read.
* Track the number of hard-links created and report in -I output.
Sepherosa Ziehau [Sat, 22 Mar 2008 09:55:41 +0000 (09:55 +0000)]
Remove ipw(4) module and manpage during upgrading
Sepherosa Ziehau [Sat, 22 Mar 2008 09:51:46 +0000 (09:51 +0000)]
Remove ipw(4) manpage
Sepherosa Ziehau [Sat, 22 Mar 2008 09:49:11 +0000 (09:49 +0000)]
GC ipw(4)
Sepherosa Ziehau [Sat, 22 Mar 2008 09:45:44 +0000 (09:45 +0000)]
Remove ipw(4) from LINT building and module building
Sepherosa Ziehau [Sat, 22 Mar 2008 07:07:34 +0000 (07:07 +0000)]
- Set number of TX descriptors to 512.
- Add interrupt moderation support in msk(4).
- Add a sysctl node for interrupt rate, which is disabled by default. (*)
Obtained-from: Marvell's myk(4)
#
# Set interrupt rate to 4000(/sec) on Yukon EC(rev2):
# - If the other side sends at 200Kpps, interrupt time will be reduced from
# 50%-70% to 30%-50%
# - If msk(4) is used to blast packets, interrupt time will be reduced from
# 35%-40% to 25%-%35 and packet rate will be increased by 10Kpps-15Kpps
#
# (*) Marvell's myk(4) uses different clock for EC_U/FE/XL than the value set
# in mskc_attach(), due to lack of document, it is unclear which clock is
# correct, so disabling interrupt moderation timer by default is the safest
# choice.
Matthew Dillon [Sat, 22 Mar 2008 02:06:55 +0000 (02:06 +0000)]
HAMMER 34/many: Stabilization pass
* Fix a node reference count leak in hammer_btree_lock_children(). This
was resulting in a panic at umount time.
* Fix a misordered lock in hammer_cursor_up() which could result in
an assertion in the B-Tree iteration code. The cursor-up code was
resolving the parent index prior to acquiring a shared lock on the
parent node. An insertion by another thread could do a split and
change the parent index. The shared lock must be acquired first.
* Add additional debugging output and add additional assertions. HAMMER
now has 205 assert lines in the code.
Reported-by: YONETANI Tomokazu <qhwt+dfly@les.ath.cx> (umount panic)
Matthew Dillon [Fri, 21 Mar 2008 19:42:41 +0000 (19:42 +0000)]
We must hold the lwp we are trying to kill to prevent it from being
ripped out from under our loop due to lwpsignal() potentially blocking.
This fixes a crash which can occur when killing a multi-threaded program.
Sascha Wildner [Fri, 21 Mar 2008 00:40:33 +0000 (00:40 +0000)]
Remove old function (no longer used since r1.25).
Sascha Wildner [Thu, 20 Mar 2008 21:25:30 +0000 (21:25 +0000)]
Remove unused variables.
Sepherosa Ziehau [Thu, 20 Mar 2008 14:08:45 +0000 (14:08 +0000)]
- Nuke last parameter of ether_ipfw_chk(), which is always FALSE
- Remove trailing white spaces
Sepherosa Ziehau [Thu, 20 Mar 2008 12:55:32 +0000 (12:55 +0000)]
Change ether_demux() interface to accept mbuf containing ether header.
Sepherosa Ziehau [Thu, 20 Mar 2008 10:42:15 +0000 (10:42 +0000)]
Typo
Matthew Dillon [Thu, 20 Mar 2008 06:08:40 +0000 (06:08 +0000)]
HAMMER 33C/many: features and bug fixes.
* Add a signal test for long-running ioctl's which allows them to be
interrupted.
* Assert that a record update's delete_tid does not match it's create_tid
and fix a case in the rename code and another case in the inode update
code where this could occur.
* Add a feature to the pruning ioctl that the new snapshot softlink
option for 'hammer prune' needs.
* Fix a minor overflow assertion in the transaction code.
Matthew Dillon [Thu, 20 Mar 2008 06:02:50 +0000 (06:02 +0000)]
Remove calls to pmap_clear_modify() in the swap_pager, fixing a kernel panic.
The modify bit is cleared by the pageout code's call to vm_page_protect()
and does not need to be cleared again.
The pmap code cannot safely access non-kernel pmaps from the interrupt
service routine it uses to process the asynchronous I/O completion. These
non-kernel pmaps are present because the pageout code protects the page
with VM_PROT_READ (which is desireable) rather then VM_PROT_NONE.
Matthew Dillon [Thu, 20 Mar 2008 04:03:03 +0000 (04:03 +0000)]
HAMMER utilities: feature add.
* Add an option to hammer prune which creates softlinks to available
snapshots based on the pruning regimen.
Matthew Dillon [Thu, 20 Mar 2008 03:59:10 +0000 (03:59 +0000)]
A threaded process going into SZOMB may still have active threads which are
in the midst of exiting. Wait for those threads to exit before trying to
reap the master thread.
This fixes a crash where kern_wait() improperly reaps threads other then the
master thread.
Matthew Dillon [Thu, 20 Mar 2008 02:14:56 +0000 (02:14 +0000)]
Improve vkernel support.
* Add a new cothread API for vkernel drivers. This creates real threads
to act as DMA engines for I/O. These threads operate OUTSIDE the
vkernel's cpu abstraction and thus work with UP builds or SMP builds with
-n 1.
* Asynchronize the virtual disk (vkd). VKD now queues I/O to a cothread
which runs it and then generates a signal to the vkernel's cpu 0 to run
the virtual device's 'interrupt' function.
* The new cothread code works better then the kqueue code because it allows
I/O's to be ganged together for bulk operation without causing a signal
for each one. The kqueue code is still used by VKE but should
be considered obsolete.
Peter Avalos [Thu, 20 Mar 2008 02:12:19 +0000 (02:12 +0000)]
Update our README for the 1.0.5 import.
Peter Avalos [Thu, 20 Mar 2008 02:02:11 +0000 (02:02 +0000)]
Merge from vendor branch BZIP:
Import bzip-1.0.5 which fixes CVE-2008-1372.
Peter Avalos [Thu, 20 Mar 2008 02:02:11 +0000 (02:02 +0000)]
Import bzip-1.0.5 which fixes CVE-2008-1372.
Matthew Dillon [Wed, 19 Mar 2008 20:49:46 +0000 (20:49 +0000)]
HAMMER 33B/many: Further B-Tree fix.
* The last commit didn't get all the cases. This one should.
Matthew Dillon [Wed, 19 Mar 2008 20:18:17 +0000 (20:18 +0000)]
HAMMER 33/many: Expand transaction processing, fix bug in B-Tree
* Expand transaction processing to cover more of the code space for
upcoming undo code.
* Fix a bug in the btree_split_leaf(), the separator would sometimes not
properly be to the left of the split point, resulting in a panic.
Temporarily add many more assertions to btree_split_leaf().
* Improve the critical path for blockmap lookups, the (newly) passed trans
already contains a referenced root volume so the blockmap code does not
have to acquire one.
Reported-by: YONETANI Tomokazu <qhwt+dfly@les.ath.cx> (B-Tree bug)
Sepherosa Ziehau [Wed, 19 Mar 2008 14:46:03 +0000 (14:46 +0000)]
Tiny step to keep ether header in mbuf on ethernet input path:
- ng_ether_input_p does not need interface to release its serializer.
- Instead of letting ng_ether_input_p glue back ether header, we simply
pass mbuf with ether header to it. Change ng_ether_input_p interface
accordingly.
Sepherosa Ziehau [Wed, 19 Mar 2008 13:20:48 +0000 (13:20 +0000)]
- Factor out ether_restore_header() from ether_ipfw_chk() and
ether_output_frame()
- Add statistics to count number of ether header restoration and number of
ether header restoration which needs mbuf prepending
Matthew Dillon [Tue, 18 Mar 2008 20:20:26 +0000 (20:20 +0000)]
HAMMER 32B/many: Reblocking work.
* Fix a bug in the record reblocking code. data_offset's representing
data embedded in the record itself must be shifted when the record
is shifted.
Sepherosa Ziehau [Tue, 18 Mar 2008 14:12:45 +0000 (14:12 +0000)]
Nuke stack variable which is only used by INVARIANTS
Reminded-by: swildner@
Hasso Tepper [Tue, 18 Mar 2008 13:41:42 +0000 (13:41 +0000)]
Sync Bluetooth stack with NetBSD.
Obtained-from: NetBSD via OpenBSD
Sascha Wildner [Tue, 18 Mar 2008 12:28:53 +0000 (12:28 +0000)]
Remove unneeded argument.
Hasso Tepper [Tue, 18 Mar 2008 08:29:16 +0000 (08:29 +0000)]
Protect macros with "do { } while(0)" where needed.