dragonfly.git
16 years agoDecrease the number of reported stray interrupts from 100 to 10. Problems
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.

16 years agoClean it up a little bit
Sepherosa Ziehau [Sun, 30 Mar 2008 10:15:46 +0000 (10:15 +0000)]
Clean it up a little bit

16 years agoRemove old time zone files.
Sascha Wildner [Sun, 30 Mar 2008 00:32:33 +0000 (00:32 +0000)]
Remove old time zone files.

16 years ago* Update to Ficl 3.03:
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

16 years agoHAMMER 36/many: Stabilization pass.
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.

16 years agoAdd configuration to generate packets with different [sd]port and/or [sd]addr
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.

16 years agoAdd tunable for polling burst max, which is a significant tuning parameter
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

16 years agoAdd two tunables to run netisr and udp_thread without mplock, so experiment
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.

16 years agoifaddr threads does not need MP lock
Sepherosa Ziehau [Sat, 29 Mar 2008 03:38:53 +0000 (03:38 +0000)]
ifaddr threads does not need MP lock

16 years agoAdd MPSAFE version of netmsg_service_loop()
Sepherosa Ziehau [Sat, 29 Mar 2008 03:37:15 +0000 (03:37 +0000)]
Add MPSAFE version of netmsg_service_loop()

16 years agoPull back part of rev1.7
Sepherosa Ziehau [Fri, 28 Mar 2008 11:03:44 +0000 (11:03 +0000)]
Pull back part of rev1.7

16 years agoFix layout.
Simon Schubert [Thu, 27 Mar 2008 19:37:15 +0000 (19:37 +0000)]
Fix layout.

Submitted-by: Andreas Burghardt <a-burghardt@gmx.de>
16 years agoInstall into /usr/sbin
Sepherosa Ziehau [Thu, 27 Mar 2008 11:42:11 +0000 (11:42 +0000)]
Install into /usr/sbin

16 years agoMake sure there is no possibility of a cothread trying to access the
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.

16 years agoRemove debug prints
Sepherosa Ziehau [Wed, 26 Mar 2008 15:05:33 +0000 (15:05 +0000)]
Remove debug prints

16 years agoFix bugs concerning cached route entry in UDP inpcb.
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@
16 years agoAdd kernel module and a simple configure tool to generate packets at full speed
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

16 years agoHAMMER 35C/many: Stabilization pass.
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.

16 years ago* Allow nrelease/Makefile to build the local installer in usr.sbin
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. :)

16 years agoHAMMER 35B/many: Stabilization pass, cleanups.
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.

16 years agoHAMMER utilities: Add -lm for double arithmatic.
Matthew Dillon [Tue, 25 Mar 2008 03:58:21 +0000 (03:58 +0000)]
HAMMER utilities: Add -lm for double arithmatic.

16 years agoHAMMER utilities: automatic sync/sleep
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>
16 years agoHAMMER 35/many: Stabilization pass, cleanups
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.

16 years agogx(4) and ray(4) are gone
Sascha Wildner [Mon, 24 Mar 2008 23:45:29 +0000 (23:45 +0000)]
gx(4) and ray(4) are gone

16 years agoBring in some fixes from FreeBSD.
Sascha Wildner [Mon, 24 Mar 2008 23:04:19 +0000 (23:04 +0000)]
Bring in some fixes from FreeBSD.

16 years agoRename PCIP_STORAGE_SATA_AHCI to PCIP_STORAGE_SATA_AHCI_1_0
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

16 years agoSync zoneinfo database with tzdata2008b from elsie.
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".

16 years agoSynchronize various changes from FreeBSD. This is not exhaustive but gets
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.

16 years agoRemove ipw(4) remains.
Sascha Wildner [Sun, 23 Mar 2008 19:46:49 +0000 (19:46 +0000)]
Remove ipw(4) remains.

16 years agoNuke debug prints.
Sepherosa Ziehau [Sun, 23 Mar 2008 09:48:20 +0000 (09:48 +0000)]
Nuke debug prints.

Noticed-by: swildner@
16 years agoAdd Broadcom 4402 in bfe(4)
Sepherosa Ziehau [Sun, 23 Mar 2008 09:44:36 +0000 (09:44 +0000)]
Add Broadcom 4402 in bfe(4)

Obtained-from: Linux b44

16 years agoregen
Sepherosa Ziehau [Sun, 23 Mar 2008 09:40:07 +0000 (09:40 +0000)]
regen

16 years agoAdd PCI id for Broadcom 4402 10/100 ethernet controller
Sepherosa Ziehau [Sun, 23 Mar 2008 09:31:50 +0000 (09:31 +0000)]
Add PCI id for Broadcom 4402 10/100 ethernet controller

16 years agoHAMMER 34B/many: Stabilization pass.
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.

16 years agoAdd mount_hammer, newfs_hammer, and the hammer utility to the build.
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.

16 years agoBump .Dd for -V.
Sascha Wildner [Sat, 22 Mar 2008 21:34:23 +0000 (21:34 +0000)]
Bump .Dd for -V.

16 years agoFix collision in conf/files, add hammer_signal.c.
Matthew Dillon [Sat, 22 Mar 2008 21:24:44 +0000 (21:24 +0000)]
Fix collision in conf/files, add hammer_signal.c.

16 years agoAdd a FS_HAMMER id for disklabel.
Matthew Dillon [Sat, 22 Mar 2008 20:52:00 +0000 (20:52 +0000)]
Add a FS_HAMMER id for disklabel.

16 years agoBump cpdup's version to 1.08.
Matthew Dillon [Sat, 22 Mar 2008 18:09:42 +0000 (18:09 +0000)]
Bump cpdup's version to 1.08.

16 years agoMiscellanious features and adjustments to cpdup.
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.

16 years agoRemove ipw(4) module and manpage during upgrading
Sepherosa Ziehau [Sat, 22 Mar 2008 09:55:41 +0000 (09:55 +0000)]
Remove ipw(4) module and manpage during upgrading

16 years agoRemove ipw(4) manpage
Sepherosa Ziehau [Sat, 22 Mar 2008 09:51:46 +0000 (09:51 +0000)]
Remove ipw(4) manpage

16 years agoGC ipw(4)
Sepherosa Ziehau [Sat, 22 Mar 2008 09:49:11 +0000 (09:49 +0000)]
GC ipw(4)

16 years agoRemove ipw(4) from LINT building and module building
Sepherosa Ziehau [Sat, 22 Mar 2008 09:45:44 +0000 (09:45 +0000)]
Remove ipw(4) from LINT building and module building

16 years ago- Set number of TX descriptors to 512.
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.

16 years agoHAMMER 34/many: Stabilization pass
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)
16 years agoWe must hold the lwp we are trying to kill to prevent it from being
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.

16 years agoRemove old function (no longer used since r1.25).
Sascha Wildner [Fri, 21 Mar 2008 00:40:33 +0000 (00:40 +0000)]
Remove old function (no longer used since r1.25).

16 years agoRemove unused variables.
Sascha Wildner [Thu, 20 Mar 2008 21:25:30 +0000 (21:25 +0000)]
Remove unused variables.

16 years ago- Nuke last parameter of ether_ipfw_chk(), which is always FALSE
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

16 years agoChange ether_demux() interface to accept mbuf containing ether header.
Sepherosa Ziehau [Thu, 20 Mar 2008 12:55:32 +0000 (12:55 +0000)]
Change ether_demux() interface to accept mbuf containing ether header.

16 years agoTypo
Sepherosa Ziehau [Thu, 20 Mar 2008 10:42:15 +0000 (10:42 +0000)]
Typo

16 years agoHAMMER 33C/many: features and bug fixes.
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.

16 years agoRemove calls to pmap_clear_modify() in the swap_pager, fixing a kernel panic.
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.

16 years agoHAMMER utilities: feature add.
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.

16 years agoA threaded process going into SZOMB may still have active threads which are
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.

16 years agoImprove vkernel support.
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.

16 years agoUpdate our README for the 1.0.5 import.
Peter Avalos [Thu, 20 Mar 2008 02:12:19 +0000 (02:12 +0000)]
Update our README for the 1.0.5 import.

16 years agoMerge from vendor branch BZIP:
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.

16 years agoImport 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.

16 years agoHAMMER 33B/many: Further B-Tree fix.
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.

16 years agoHAMMER 33/many: Expand transaction processing, fix bug in B-Tree
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)
16 years agoTiny step to keep ether header in mbuf on ethernet input path:
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.

16 years ago- Factor out ether_restore_header() from ether_ipfw_chk() and
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

16 years agoHAMMER 32B/many: Reblocking work.
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.

16 years agoNuke stack variable which is only used by INVARIANTS
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@
16 years agoSync Bluetooth stack with NetBSD.
Hasso Tepper [Tue, 18 Mar 2008 13:41:42 +0000 (13:41 +0000)]
Sync Bluetooth stack with NetBSD.

Obtained-from: NetBSD via OpenBSD

16 years agoRemove unneeded argument.
Sascha Wildner [Tue, 18 Mar 2008 12:28:53 +0000 (12:28 +0000)]
Remove unneeded argument.

16 years agoProtect macros with "do { } while(0)" where needed.
Hasso Tepper [Tue, 18 Mar 2008 08:29:16 +0000 (08:29 +0000)]
Protect macros with "do { } while(0)" where needed.

16 years agoHAMMER utilities: Add the reblock command, adjust newfs_hammer.
Matthew Dillon [Tue, 18 Mar 2008 05:21:55 +0000 (05:21 +0000)]
HAMMER utilities:  Add the reblock command, adjust newfs_hammer.

* Implement 'hammer reblock'.  This calls the reblock ioctl to force
  a HAMMER filesystem to scan its B-Tree and reblock partially empty
  big blocks.

* newfs_hammer must create the undo FIFO blockmap.

16 years agoHAMMER 32/many: Record holes, initial undo API, initial reblocking code
Matthew Dillon [Tue, 18 Mar 2008 05:19:16 +0000 (05:19 +0000)]
HAMMER 32/many: Record holes, initial undo API, initial reblocking code

* Add code to record recent 'holes' created by the blockmap allocator
  due to the requirement that data blocks not cross a 16K hammer buffer
  boundary, in order to try to fill in the gaps with smaller chunks of data
  when possible.

  Currently a hole is not added for blockmap frees.  It is questionable
  whether it is a good idea to do it for frees or not, because it can
  interfere with the reblock code's attempt to completely free a big block.

* Add a reblocking ioctl which scans the B-Tree and reblocks leaf nodes,
  records, and data in partially empty big blocks to try to free up
  the entire big block.  Incomplete (needs to reblock internal B-Tree nodes
  and doesn't yet, needs a low-free-space mode which focuses on freeing
  a single large block).

* Add the API infrastructure required to implement the undo records,
  and implement the initial undo code (sans ordering requirements for
  writes).  Incomplete.

16 years agoMention recent added ioctls in bpf man page.
Matthias Schmidt [Mon, 17 Mar 2008 10:06:22 +0000 (10:06 +0000)]
Mention recent added ioctls in bpf man page.

Reminded-by: swildner@
16 years agoxref nfe(4) <-> vlan(4) (MCP55 supports hw vlan tagging)
Sascha Wildner [Sun, 16 Mar 2008 17:44:24 +0000 (17:44 +0000)]
xref nfe(4) <-> vlan(4) (MCP55 supports hw vlan tagging)

16 years agoAdd a bus_space(9) manual page.
Sascha Wildner [Sun, 16 Mar 2008 17:29:51 +0000 (17:29 +0000)]
Add a bus_space(9) manual page.

Taken-from: FreeBSD (with minor modification)

16 years agoRegenerate miidevs.h.
Hasso Tepper [Sun, 16 Mar 2008 15:54:31 +0000 (15:54 +0000)]
Regenerate miidevs.h.

16 years ago10Base-TX -> 10Base-T and 1000Base-TX -> 1000Base-T. Although 1000Base-TX
Hasso Tepper [Sun, 16 Mar 2008 15:50:22 +0000 (15:50 +0000)]
10Base-TX -> 10Base-T and 1000Base-TX -> 1000Base-T. Although 1000Base-TX
standard itself even exists, there is no commercial products AFAIK.

16 years agoRework vlan configuration processing:
Sepherosa Ziehau [Sun, 16 Mar 2008 15:30:20 +0000 (15:30 +0000)]
Rework vlan configuration processing:
- vlan config, unconfig and multicast filter programming is now serialized
  by netisr0, so that no one could sneak in when a vlan interface's
  serializer is released during configuration.
- vlan's serializer is released before reprogramming parent interface's
  multicast filter to avoid possible dead lock.
- Factor out vlan_clrmulti() from vlan_unconfig() and vlan_setmulti().
- Register vlan module for the ifnet_detach_event
- Create per-cpu vlan trunk on parent interface.  Creating and destroying
  of these trunks is serialized by netisr0.  Add a "staw man" vlan trunk
  implementation using linked list. (*)
- Turn on vlan's IFF_RUNNING only if we are asked to do so.
- White space and minor style changes.

# (*) is not used on input path yet

16 years agoAdd ASSERT_NOT_SERIALIZED
Sepherosa Ziehau [Sun, 16 Mar 2008 15:22:45 +0000 (15:22 +0000)]
Add ASSERT_NOT_SERIALIZED

16 years agoAdd some lines on how to MFC to specific branches.
Sascha Wildner [Sun, 16 Mar 2008 11:10:48 +0000 (11:10 +0000)]
Add some lines on how to MFC to specific branches.

Suggested-by: aggelos
16 years agoThe i386/amd64 abi specifies that the direction flag must be clear
Aggelos Economopoulos [Sat, 15 Mar 2008 16:21:30 +0000 (16:21 +0000)]
The i386/amd64 abi specifies that the direction flag must be clear
on function entry. Newer versions of gcc (>=4.3) depend on this
behavior (and reportedly so does icc), so make sure the flag is
clear when running a signal handler.

16 years agoMake sure lo0 is brought up before any other interfaces to avoid problems
Hasso Tepper [Sat, 15 Mar 2008 10:13:37 +0000 (10:13 +0000)]
Make sure lo0 is brought up before any other interfaces to avoid problems
if network startup script is interrupted by user.

16 years agoIntroduce two new ioctl(2) commands, BIOCLOCK and BIOCSETWF. These commands
Matthias Schmidt [Fri, 14 Mar 2008 09:52:10 +0000 (09:52 +0000)]
Introduce two new ioctl(2) commands, BIOCLOCK and BIOCSETWF. These commands
enhance the security of bpf(4) by further relinquishing the privilege of
the bpf(4) consumer (assuming the ioctl commands are being implemented).

This change is needed to properly support some programs from OpenBSD, such
as pflogd and dhclient.

Reviewed-by: sephe@
Obtained-from: OpenBSD via FreeBSD

16 years agoNuke unneded include.
Sascha Wildner [Thu, 13 Mar 2008 22:10:20 +0000 (22:10 +0000)]
Nuke unneded include.

Submitted-by: Robert Gauthier <321.robert@gmail.com>
16 years agoMerge from vendor branch BSDINSTALLER:
Dave Hayes [Wed, 12 Mar 2008 22:15:56 +0000 (22:15 +0000)]
Merge from vendor branch BSDINSTALLER:
Installer import into contrib (real import this time)

16 years agoInstaller import into contrib (real import this time) vendor/BSDINSTALLER
Dave Hayes [Wed, 12 Mar 2008 22:15:56 +0000 (22:15 +0000)]
Installer import into contrib (real import this time)

16 years agoAdd some substitutions to groff/Makefile.inc and fix pdfroff's Makefile
Sascha Wildner [Wed, 12 Mar 2008 18:25:12 +0000 (18:25 +0000)]
Add some substitutions to groff/Makefile.inc and fix pdfroff's Makefile
so that it's actually run through sed.

This makes pdfroff work as advertised.

16 years agoInstaller import
Dave Hayes [Wed, 12 Mar 2008 01:34:49 +0000 (01:34 +0000)]
Installer import

16 years agoFix buffer overflow in ppp command prompt parsing (OpenBSD errata 2008-009).
Hasso Tepper [Tue, 11 Mar 2008 10:53:07 +0000 (10:53 +0000)]
Fix buffer overflow in ppp command prompt parsing (OpenBSD errata 2008-009).

Obtained-from: OpenBSD

16 years agoAdd ETHER_BPF_MTAP() which will call vlan_ether_ptap() for packets whose vlan
Sepherosa Ziehau [Mon, 10 Mar 2008 12:59:52 +0000 (12:59 +0000)]
Add ETHER_BPF_MTAP() which will call vlan_ether_ptap() for packets whose vlan
tagging is offloaded to NIC.

Obtained-from: FreeBSD

16 years agoRemove #ifndef __cplusplus around wchar related stuff in include/wchar.h
Hasso Tepper [Mon, 10 Mar 2008 12:01:50 +0000 (12:01 +0000)]
Remove #ifndef __cplusplus around wchar related stuff in include/wchar.h
and sys/sys/stdint.h headers. It allows to build libstdc++ with std::w*
(wstring, wint_t etc) support.

Amongst others fixes building boost libraries with g++41.

Approved-by: corecode@
16 years agoFactor out vlan_ether_ptap() from vlan_input_tag()
Sepherosa Ziehau [Mon, 10 Mar 2008 11:44:57 +0000 (11:44 +0000)]
Factor out vlan_ether_ptap() from vlan_input_tag()

16 years ago- Embed ether vlan tag in mbuf packet header. Add an mbuf flag to mark that
Sepherosa Ziehau [Mon, 10 Mar 2008 10:47:57 +0000 (10:47 +0000)]
- Embed ether vlan tag in mbuf packet header.  Add an mbuf flag to mark that
  this field is valid.
- Hide ifvlan after the above change; drivers support hardware vlan tagging
  only need to check ether_vlantag in mbuf packet header.
- Convert all drivers that support hardware vlan tagging to use vlan tag field
  in mbug packet header.

Obtained-from: FreeBSD

Change the vlan/parent serializer releasing/holding sequences into mbuf
dispatching.  There are several reasons to do so:
- Avoid excessive vlan interface serializer releasing/holding
- Touching parent interface if_snd without holding parent's serializer is
  unsafe
- vlan's parent may disappear or be changed after vlan's serializer is released

# This dispatching could be further optimized by packing all mbufs into one
# netmsg using m_nextpkt to:
# - Amortize netmsg sending cost
# - Reduce the time that parent interface spends on serializer releasing/holding

16 years agoAdd 'volatile' qualifier
Sepherosa Ziehau [Mon, 10 Mar 2008 08:39:53 +0000 (08:39 +0000)]
Add 'volatile' qualifier

16 years agoSet framelen to 0; it might be used without being initialized
Sepherosa Ziehau [Mon, 10 Mar 2008 08:36:30 +0000 (08:36 +0000)]
Set framelen to 0; it might be used without being initialized

16 years agoBetter handle restarting a previously aborted build by adding a protective
Sascha Wildner [Sun, 9 Mar 2008 21:09:25 +0000 (21:09 +0000)]
Better handle restarting a previously aborted build by adding a protective
umount (ignoring the exit code).

This goes into the clean target because otherwise clean would choke on
${ISOROOT}/tmp/packages being read only.

Requested-by: dillon
16 years agoMove new sentence on a new line.
Sascha Wildner [Sun, 9 Mar 2008 16:06:08 +0000 (16:06 +0000)]
Move new sentence on a new line.

16 years agoForgot one.
Sascha Wildner [Sun, 9 Mar 2008 16:05:39 +0000 (16:05 +0000)]
Forgot one.

16 years agoAdd an initial iwl(4) manual page.
Sascha Wildner [Sun, 9 Mar 2008 11:04:35 +0000 (11:04 +0000)]
Add an initial iwl(4) manual page.

16 years agoAdd iwl
Sascha Wildner [Sun, 9 Mar 2008 10:55:14 +0000 (10:55 +0000)]
Add iwl

16 years ago- Nuke no longer needed .PATH
Sepherosa Ziehau [Sun, 9 Mar 2008 10:46:49 +0000 (10:46 +0000)]
- Nuke no longer needed .PATH
- Rearrange SRCS a bit