dragonfly.git
15 years agoHAMMER 59C/Many: Stabilization pass - fixes for large file issues
Matthew Dillon [Sat, 28 Jun 2008 18:10:55 +0000 (18:10 +0000)]
HAMMER 59C/Many: Stabilization pass - fixes for large file issues

* Rename hammer_delete_range_all() to hammer_delete_clean().  This function
  is no longer responsible for deleting data and db records when a file
  is removed.  The normal hammer_delete_range() function now does that for
  all cases.

* Adjust hammer_delete_range() to not restart at offset 0 when it hits a
  deadlock or must defer the remainder of the operation to another flush
  cycle.  When removing very large files (greater then 500GB) the constant
  restarts resulted in exponential delays.

  Instead the function restarts near where it had left off the previous try.

* Change ip->sync_trunc_off's dynamics so it can be used to cache the
  restart offset.  The truncation state can now be left intact on the
  backend and the frontend will merge new truncations into it instead
  of replacing the truncation.

  Add a new field, ip->save_trunc_off to handle the append overwrite
  check optimization (sync_trunc_off used to be used for that, no longer).

* Fix minor bugs, and use the new bwillwrite() API.

* Remove the #if 0'd out cluster_write() code entirely (it never worked
  anyway).  The new buffer cache subsystem in the kernel allows bdwrite()
  to be used with no real penalty.

15 years agoReplace the bwillwrite() subsystem to make it more fair to processes.
Matthew Dillon [Sat, 28 Jun 2008 17:59:51 +0000 (17:59 +0000)]
Replace the bwillwrite() subsystem to make it more fair to processes.

* Add new API functions, bwillread(), bwillwrite(), bwillinode() which
  the kernel calls when it intends to read, write, or make inode
  modifications.

* Redo the backend.  Add bd_heatup() and bd_wait().  bd_heatup() heats up
  the buf_daemon, starting it flushing before we hit any blocking conditions
  (similar to the previous algorith).

* The new bwill*() blocking functions no longer introduce escalating delays
  to keep the number of dirty buffers under control.  Instead it takes a page
  from HAMMER and estimates the load caused by the caller, then waits for a
  specific number of dirty buffers to complete their write I/O's before
  returning.  If the buffers can be retired quickly these functions will
  return more quickly.

15 years agoRemove extra '.'
Sascha Wildner [Sat, 28 Jun 2008 14:51:50 +0000 (14:51 +0000)]
Remove extra '.'

15 years ago* Use literal displays instead of .Li
Sascha Wildner [Sat, 28 Jun 2008 14:48:50 +0000 (14:48 +0000)]
* Use literal displays instead of .Li

* Comment out empty section

* Sync SYNOPSIS

* Use .Pa for paths, .Xr for manual page references and .Ex for exit status

15 years ago* Remove empty lines and trailing whitespace.
Sascha Wildner [Sat, 28 Jun 2008 14:23:59 +0000 (14:23 +0000)]
* Remove empty lines and trailing whitespace.

* Bump date for r1.26.

15 years agostyle(9)
Sascha Wildner [Sat, 28 Jun 2008 14:18:00 +0000 (14:18 +0000)]
style(9)

15 years agoBump the sortq_lost check from 8 to 128, letting the disk optimally read or
Matthew Dillon [Sat, 28 Jun 2008 01:41:32 +0000 (01:41 +0000)]
Bump the sortq_lost check from 8 to 128, letting the disk optimally read or
write a larger swath before forcing through long-delayed requests.

15 years agoFix a system performance issue created by ata_sort_queue(). This function
Matthew Dillon [Sat, 28 Jun 2008 01:06:40 +0000 (01:06 +0000)]
Fix a system performance issue created by ata_sort_queue().  This function
implements an elevator sort but it also allows requests to be delayed
indefinitely when other requests continually get inserted in front of them.
HAMMER's almost log-linear writing really exposes this issue.

The fix is to count how many times a request got delayed due to an insertion.
If the count exceeds 8, the new request is placed at the end of the queue and
set as the new freeze point.

15 years agoHAMMER 59B/Many: Stabilization pass - fixes for large file issues
Matthew Dillon [Fri, 27 Jun 2008 20:56:59 +0000 (20:56 +0000)]
HAMMER 59B/Many: Stabilization pass - fixes for large file issues

* The flusher was trying to flush whole inodes in one pass.  If a large
  (in the 100GB range) file is deleted or truncated this single pass could
  blow out the UNDO FIFO and cause a panic.

  Detect the case and only do a partial flush, then requeue the inode to
  the next flush group and reflush.  This continues until the file is
  completely eradicated or the truncation has completed.

* In addition, the same flusher issue could exhaust the kernel's buffer
  cache with unflushable dirty buffers.  The same fix applies.

* The UNDO FIFO code was calculating available space based on the next
  flush's start position instead of the last flush's start position,
  allowing areas of the UNDO FIFO still subject to a recovery pass
  (if a crash were to occur right then) to be overwritten too soon.

* The pruner and reblocker were doing insufficient UNDO FIFO space checks
  and could blow out the UNDO FIFO.  Fixed.

15 years agoRework stop path.
Sepherosa Ziehau [Fri, 27 Jun 2008 17:03:40 +0000 (17:03 +0000)]
Rework stop path.

Obtained-from: forcedeth

15 years ago- Rename NFE_RXTX_V[32]MAGIC to NFE_RXTX_DESC_V[32].
Sepherosa Ziehau [Fri, 27 Jun 2008 16:30:53 +0000 (16:30 +0000)]
- Rename NFE_RXTX_V[32]MAGIC to NFE_RXTX_DESC_V[32].
- Change NFE_RXTX_DESC_V3 from 0x2200 to 0xc02200; it is quite interesting
  the thing actually worked.
- Add rxtxctl_desc in softc, which stores the desc type of rxtxctl.  Set
  it up during attach.
- Add power control fixes on attach and init path.

Obtained-from: forcedeth

15 years agoFix a typo so that old netgraph builds again.
Sascha Wildner [Fri, 27 Jun 2008 14:02:14 +0000 (14:02 +0000)]
Fix a typo so that old netgraph builds again.

15 years ago- Disable WOL during attach, don't mess with it during init
Sepherosa Ziehau [Fri, 27 Jun 2008 13:47:36 +0000 (13:47 +0000)]
- Disable WOL during attach, don't mess with it during init
- NFE_WOL_MAGIC -> NFE_WOL_ENABLE

Obtained-from: forthdeth

15 years agoAdd flag to indicate that the NIC does not have power control capability.
Sepherosa Ziehau [Fri, 27 Jun 2008 13:30:56 +0000 (13:30 +0000)]
Add flag to indicate that the NIC does not have power control capability.
Model numbers from forcedeth.

15 years agoAdd nfe(4)
Sepherosa Ziehau [Fri, 27 Jun 2008 12:49:34 +0000 (12:49 +0000)]
Add nfe(4)

Suggested-by: Chris Turner <c.turner@199technologies.org>
15 years agoAdd man page entry for "hammer snapshot".
Michael Neumann [Fri, 27 Jun 2008 11:57:49 +0000 (11:57 +0000)]
Add man page entry for "hammer snapshot".

15 years agofxp_stop needs to be serialized
Sepherosa Ziehau [Fri, 27 Jun 2008 10:55:23 +0000 (10:55 +0000)]
fxp_stop needs to be serialized

15 years agoDrop out of place readline function declarations.
Simon Schubert [Fri, 27 Jun 2008 08:09:12 +0000 (08:09 +0000)]
Drop out of place readline function declarations.

15 years agoStop building libreadline.
Simon Schubert [Fri, 27 Jun 2008 08:08:25 +0000 (08:08 +0000)]
Stop building libreadline.

Libreadline has not been used for a while, only its headers.
Libedit now provides readline headers, so we can drop readline.

15 years agoInstall libedit's readline headers.
Simon Schubert [Fri, 27 Jun 2008 08:06:48 +0000 (08:06 +0000)]
Install libedit's readline headers.

Also install compat headers which are sometimes used.

15 years agoIncrease the default request timeout from 5 seconds to 10 seconds.
Matthew Dillon [Fri, 27 Jun 2008 01:24:46 +0000 (01:24 +0000)]
Increase the default request timeout from 5 seconds to 10 seconds.

Using advise from Volker Theile of the FreeNAS project via:
http://wiki.freebsd.org/JeremyChadwick/ATA_issues_and_troubleshooting

15 years agodummy_thr does not have to be committed and pthread_t might not even
Matthew Dillon [Fri, 27 Jun 2008 01:15:39 +0000 (01:15 +0000)]
dummy_thr does not have to be committed and pthread_t might not even
be a pointer on some systems.

15 years agoApply patch supplied in FreeBSD-PR to ata-raid code:
Matthew Dillon [Fri, 27 Jun 2008 00:03:56 +0000 (00:03 +0000)]
Apply patch supplied in FreeBSD-PR to ata-raid code:

"A drive that was once part of an ataraid device, when added back to the
machine that it was on, shows up as a new ataraid device. This new ataraid
device tries to use all the drives that were originally in the RAID.
Results can range from a confusion to a real mess."

Obtained-from: http://www.freebsd.org/cgi/query-pr.cgi?pr=121899&cat=kern
Author: Stef Walter <stef@memberwebs.com>

15 years agoAdd files and options lines for NETGRAPH7
Matthew Dillon [Thu, 26 Jun 2008 23:24:11 +0000 (23:24 +0000)]
Add files and options lines for NETGRAPH7

15 years agoAdd additional atomic ops from FreeBSD.
Matthew Dillon [Thu, 26 Jun 2008 23:06:52 +0000 (23:06 +0000)]
Add additional atomic ops from FreeBSD.

Obtained-from: FreeBSD

15 years agoNetgraph port from FreeBSD - initial porting work
Matthew Dillon [Thu, 26 Jun 2008 23:05:40 +0000 (23:05 +0000)]
Netgraph port from FreeBSD - initial porting work

* Use relative #include's as appropriate so the code doesn't
  dig into the original netgraph/ directory.

* Move FBSDID's and add DragonFly ids.

* Fix improper uses of M_NOWAIT.

* Fix uses of M_NOWAIT which should be MB_DONTWAIT and vise-versa
  (also forward to Julian).

* Add a dragonfly.h compatibility header.

* NOTE: m_tag_alloc() in DFly takes MB_ flags.

15 years agoFallback using a default snapshot name if just a directory is supplied
Michael Neumann [Thu, 26 Jun 2008 20:43:45 +0000 (20:43 +0000)]
Fallback using a default snapshot name if just a directory is supplied
(e.g. hammer snapshot /mysnapshots will use /mysnapshots/snap-%Y%m%d-%H%M).

15 years agoMerge from vendor branch NETGRAPH:
Matthew Dillon [Thu, 26 Jun 2008 19:34:33 +0000 (19:34 +0000)]
Merge from vendor branch NETGRAPH:
Vendor import of netgraph from FreeBSD-current 20080626

15 years agoVendor import of netgraph from FreeBSD-current 20080626 vendor/NETGRAPH
Matthew Dillon [Thu, 26 Jun 2008 19:34:33 +0000 (19:34 +0000)]
Vendor import of netgraph from FreeBSD-current 20080626

15 years agoAdd KTR_HAMMER
Matthew Dillon [Thu, 26 Jun 2008 18:54:50 +0000 (18:54 +0000)]
Add KTR_HAMMER

15 years agoMake sure UFS disallows mknod()'s with type VDIR.
Matthew Dillon [Thu, 26 Jun 2008 18:53:14 +0000 (18:53 +0000)]
Make sure UFS disallows mknod()'s with type VDIR.

15 years agoWe only need to determine the softlink_dir when no filesystem is
Michael Neumann [Thu, 26 Jun 2008 16:13:43 +0000 (16:13 +0000)]
We only need to determine the softlink_dir when no filesystem is
explicitly specified.

15 years agoUse strftime to produce the snapshot name, for example:
Michael Neumann [Thu, 26 Jun 2008 15:56:44 +0000 (15:56 +0000)]
Use strftime to produce the snapshot name, for example:

    hammer snapshot "/mysnapshots/snap-%Y-%m-%dT%H:%M:%S"

Usage is now:

    hammer snapshot <softlink-dir-fmt>
    hammer snapshot <filesystem> <softlink-dir-fmt>

15 years agoAdapt usage string from cmd_prune.c.
Michael Neumann [Thu, 26 Jun 2008 15:12:21 +0000 (15:12 +0000)]
Adapt usage string from cmd_prune.c.

15 years agoHAMMER Utilities: Add "slave" option to hammer_mount.
Matthew Dillon [Thu, 26 Jun 2008 15:03:47 +0000 (15:03 +0000)]
HAMMER Utilities: Add "slave" option to hammer_mount.

* Add the "slave" mount option for hammer mounts.  This option will allow
  a mounted hammer filesystem to be a mirroring and pruning target but
  disallow user-level modifications.

15 years agoMake msk(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2
Sepherosa Ziehau [Thu, 26 Jun 2008 13:08:55 +0000 (13:08 +0000)]
Make msk(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2

15 years agoMake bfe(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2
Sepherosa Ziehau [Thu, 26 Jun 2008 12:05:19 +0000 (12:05 +0000)]
Make bfe(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2

15 years agoHAMMER Utilities: Sync with 59A
Matthew Dillon [Thu, 26 Jun 2008 04:07:57 +0000 (04:07 +0000)]
HAMMER Utilities: Sync with 59A

* Add mirror-read, mirror-write, and status directives.

15 years agoHAMMER 59A/Many: Mirroring related work (and one bug fix).
Matthew Dillon [Thu, 26 Jun 2008 04:06:23 +0000 (04:06 +0000)]
HAMMER 59A/Many: Mirroring related work (and one bug fix).

* BUG FIX: Fix a bug in directory hashkey generation.  The iterator could
  sometimes conflict with a key already on-disk and interfere with a pending
  deletion.  The chance of this occuring was miniscule but not 0.  Now fixed.

  The fix also revamps the directory iterator code, moving it all to one
  place and removing it from two other places.

* PRUNING CHANGE: The pruning code no longer shifts the create_tid and
  delete_tid of adjacent records to fill gaps.  This means that historical
  queries must either use snapshot softlinks or use a fine-grained
  transaction id greater then the most recent snapshot softlink.

  fine-grained historical access still works up to the first snapshot
  softlink.

* Clean up the cursor code responsible for acquiring the parent node.

* Add the core mirror ioctl read/write infrastructure.  This work is still
  in progress.

  - ioctl commands
  - pseudofs enhancements, including st_dev munging.
  - mount options
  - transaction id and object id conflictless allocation
  - initial mirror_tid recursion up the B-Tree (not finished)
  - B-Tree mirror scan optimizations to skip sub-hierarchies that do not
    need to be scanned (requires mirror_tid recursion to be 100% working).

15 years agoRemove trailing space.
Sascha Wildner [Wed, 25 Jun 2008 17:51:16 +0000 (17:51 +0000)]
Remove trailing space.

15 years agoMissing TX_UNK -> TX_POLL conversion
Sepherosa Ziehau [Wed, 25 Jun 2008 16:25:58 +0000 (16:25 +0000)]
Missing TX_UNK -> TX_POLL conversion

15 years agoTX_UNK -> TX_POLL
Sepherosa Ziehau [Wed, 25 Jun 2008 16:02:35 +0000 (16:02 +0000)]
TX_UNK -> TX_POLL

According-to: Linux forcedeth

15 years agoAdd MCP73, MCP77 and MCP79 support.
Sepherosa Ziehau [Wed, 25 Jun 2008 15:50:27 +0000 (15:50 +0000)]
Add MCP73, MCP77 and MCP79 support.

Obtained-from: Linux forcedeth

15 years agoregen
Sepherosa Ziehau [Wed, 25 Jun 2008 15:33:04 +0000 (15:33 +0000)]
regen

15 years agoAdd PCI ids for nVidia MCP77 MCP73 and MCP79 NICs
Sepherosa Ziehau [Wed, 25 Jun 2008 15:28:59 +0000 (15:28 +0000)]
Add PCI ids for nVidia MCP77 MCP73 and MCP79 NICs

15 years agoMCP65 has no hardware csum offloading support.
Sepherosa Ziehau [Wed, 25 Jun 2008 14:39:35 +0000 (14:39 +0000)]
MCP65 has no hardware csum offloading support.

Obtained-from: OpenBSD

15 years agoMake bce(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2
Sepherosa Ziehau [Wed, 25 Jun 2008 13:36:52 +0000 (13:36 +0000)]
Make bce(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2

15 years agoRemove an else branch to flatten indentation. Also free up memory allocate
Michael Neumann [Wed, 25 Jun 2008 13:25:06 +0000 (13:25 +0000)]
Remove an else branch to flatten indentation. Also free up memory allocate
by asprintf.

15 years agoImplement: hammer snapshot <softlink-dir> [<filesystem>]
Michael Neumann [Wed, 25 Jun 2008 13:10:06 +0000 (13:10 +0000)]
Implement: hammer snapshot <softlink-dir> [<filesystem>]

15 years agoMake bge(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2
Sepherosa Ziehau [Wed, 25 Jun 2008 13:00:09 +0000 (13:00 +0000)]
Make bge(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2

15 years agoMake fxp(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2
Sepherosa Ziehau [Wed, 25 Jun 2008 11:56:13 +0000 (11:56 +0000)]
Make fxp(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2

15 years agoMake xl(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2
Sepherosa Ziehau [Wed, 25 Jun 2008 11:46:03 +0000 (11:46 +0000)]
Make xl(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2

15 years agoOn UP system, make sure that mbuf chain is not empty before accessing it.
Sepherosa Ziehau [Wed, 25 Jun 2008 11:45:07 +0000 (11:45 +0000)]
On UP system, make sure that mbuf chain is not empty before accessing it.

15 years agoMake re(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2
Sepherosa Ziehau [Wed, 25 Jun 2008 11:02:33 +0000 (11:02 +0000)]
Make re(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2

15 years agoOne more place where an inode is still printed as a 32 bit quantity.
YONETANI Tomokazu [Tue, 24 Jun 2008 21:55:48 +0000 (21:55 +0000)]
One more place where an inode is still printed as a 32 bit quantity.

15 years agoDescribe flags more verbose.
Thomas Nikolajsen [Tue, 24 Jun 2008 21:13:26 +0000 (21:13 +0000)]
Describe flags more verbose.

15 years agoports is gone: remove use of PORTSSUPFILE.
Thomas Nikolajsen [Tue, 24 Jun 2008 20:22:30 +0000 (20:22 +0000)]
ports is gone: remove use of PORTSSUPFILE.

15 years agoHAMMER Utilities: Sync to 58B
Matthew Dillon [Tue, 24 Jun 2008 17:40:24 +0000 (17:40 +0000)]
HAMMER Utilities: Sync to 58B

* Update all utilities to deal with the cleaned up ioctl structures and
  to augment history and undo output with the non-monotonic timestamps.

15 years agoHAMMER 58B/Many: Revamp ioctls, add non-monotonic timestamps, mirroring
Matthew Dillon [Tue, 24 Jun 2008 17:38:17 +0000 (17:38 +0000)]
HAMMER 58B/Many: Revamp ioctls, add non-monotonic timestamps, mirroring

* Revamp most of HAMMER's ioctl structures with an eye towards future
  enhancements.

* Adjust on-media structures to include a non-monotonic creation and
  deletion timestamps.  Since the transaction id no longer translates
  to a timestamp adding explicit timestamps allows the 'hammer history'
  and 'undo' utilities to still display timestamps for the change history.

* Start working on the mirroring support ioctls.

15 years agoMake nfe(4) aware ETHET_INPUT_CHAIN and ETHER_INPUT2
Sepherosa Ziehau [Tue, 24 Jun 2008 13:55:17 +0000 (13:55 +0000)]
Make nfe(4) aware ETHET_INPUT_CHAIN and ETHER_INPUT2

15 years agoMove mbuf chain initialization into common place.
Sepherosa Ziehau [Tue, 24 Jun 2008 13:32:27 +0000 (13:32 +0000)]
Move mbuf chain initialization into common place.

15 years agoAdd vlan(4) support for ETHER_INPUT2. It is not built by default.
Sepherosa Ziehau [Tue, 24 Jun 2008 11:40:56 +0000 (11:40 +0000)]
Add vlan(4) support for ETHER_INPUT2.  It is not built by default.

15 years agoVLAN_MTU works as expected on em(4)
Sepherosa Ziehau [Tue, 24 Jun 2008 11:17:16 +0000 (11:17 +0000)]
VLAN_MTU works as expected on em(4)

15 years agoFix typo.
Sascha Wildner [Tue, 24 Jun 2008 07:58:00 +0000 (07:58 +0000)]
Fix typo.

15 years agoAdd nohistory flag.
Thomas Nikolajsen [Tue, 24 Jun 2008 03:24:52 +0000 (03:24 +0000)]
Add nohistory flag.

15 years agoHAMMER Utilities: Remove time/transaction-id conversion directives.
Matthew Dillon [Tue, 24 Jun 2008 02:42:48 +0000 (02:42 +0000)]
HAMMER Utilities: Remove time/transaction-id conversion directives.

* Remove time/tid conversion directives that no longer apply.

* Clean up usage().

15 years agoHAMMER 58A/Many: Mirroring support part 1
Matthew Dillon [Mon, 23 Jun 2008 21:42:48 +0000 (21:42 +0000)]
HAMMER 58A/Many: Mirroring support part 1

* Implement mastership domains for transaction ids to support multi-master
  mirroring and implement mastership selection at mount time.

  Mastership domains work by having the low 4 bits of the transaction id
  specify the mastership id (0-15).  This allows the mirroring code to
  distinguish between changes originating on a particular node and changes
  mirrored from another node.

  This also ensures that filesystem objects can be created on the mirrors
  in parallel without resulting in conflicitng object ids.

* Eliminate time-based TID generation.  Just increment the TID as
  appropriate.

  NOTE: Portions of this change may be reverted at a later time depending
  on how the mirroring implementation proceeds.

* Minor code cleanups.

15 years agoHAMMER Utilities: Sync with 58A
Matthew Dillon [Mon, 23 Jun 2008 21:31:58 +0000 (21:31 +0000)]
HAMMER Utilities: Sync with 58A

* Add the master=<number> mount option, a unique id (0-15) which uniquely
  identifies a master in a multi-master cluster.  It will initially be
  used to support multi-master mirroring.

* Rename the hammer softprune command to prune and remove the original
  prune.

* Transaction ids are no longer based on the time at all.  They used to
  be loosely based on the time but could get knocked off by bad system
  time.  Now they aren't at all.

15 years agoSupport S_IFDIR mknod() calls for HAMMER. This is used by the Hammer
Matthew Dillon [Mon, 23 Jun 2008 17:21:58 +0000 (17:21 +0000)]
Support S_IFDIR mknod() calls for HAMMER.  This is used by the Hammer
utility program to create pseudo-filesystem directories inside HAMMER.

15 years agoExpose ether_input_oncpu()
Sepherosa Ziehau [Mon, 23 Jun 2008 14:40:12 +0000 (14:40 +0000)]
Expose ether_input_oncpu()

15 years agoWhite space
Sepherosa Ziehau [Mon, 23 Jun 2008 14:29:56 +0000 (14:29 +0000)]
White space

15 years agoDiscard packets which was lingering on msgport when receiving interface
Sepherosa Ziehau [Mon, 23 Jun 2008 14:24:48 +0000 (14:24 +0000)]
Discard packets which was lingering on msgport when receiving interface
was brought down or entered monitor mode.

15 years agoAdd ether_input_chain2() which could be called by ethernet NIC drivers to
Sepherosa Ziehau [Mon, 23 Jun 2008 11:57:19 +0000 (11:57 +0000)]
Add ether_input_chain2() which could be called by ethernet NIC drivers to
deliver packets into upper layer.  Unlike ether_input_chain(), this function
only locates the msgport for the input packets, rest of the functionalities
of ether_input_chain() are performed in the protocal threads, i.e. after
packets reaches target msgports.  This function and other related functions
are put under kernel option ETHER_INPUT2, which is _not_ enabled by default.
As of this commit, vlan(4) and ipflow don't work with ether_input_chain2().

em(4) is adapted to aware ETHER_INPUT2.

Reviewed-by: dillon@, aggelos@ (early version)
# Additional comments are added to the the reviewed patch.

15 years agoHAMMER Utilities: Add the 'pseudofs' directive for commit 57
Matthew Dillon [Mon, 23 Jun 2008 07:37:54 +0000 (07:37 +0000)]
HAMMER Utilities: Add the 'pseudofs' directive for commit 57

* The pseudofs directive may be used to create pseudo-filesystems within
  a HAMMER filesystem.  Each such filesystem maintains its own inode
  numbering space and can be used as a replication target.  Up to 65535
  pseudo-filesystems are supported.

15 years agoHAMMER 57/Many: Pseudofs support
Matthew Dillon [Mon, 23 Jun 2008 07:31:14 +0000 (07:31 +0000)]
HAMMER 57/Many: Pseudofs support

* Finish up implementation of the localization field which is used to
  split the B-Tree up into domains.  Use the upper 16 bits as a
  pseudo filesytem selector.

* Code hammer_vop_mknod() to be able to create pseudo-filesystems.

15 years agos/Fx/Dx/
Sascha Wildner [Mon, 23 Jun 2008 06:56:25 +0000 (06:56 +0000)]
s/Fx/Dx/

15 years agoUse standard section name: ACKNOWLEDGEMENTS -> AUTHORS
Sascha Wildner [Mon, 23 Jun 2008 06:22:15 +0000 (06:22 +0000)]
Use standard section name: ACKNOWLEDGEMENTS -> AUTHORS

15 years agoFix typo: Phenix -> Phoenix
Sascha Wildner [Sun, 22 Jun 2008 21:26:09 +0000 (21:26 +0000)]
Fix typo: Phenix -> Phoenix

15 years agoAdd an isa(4) manual page.
Sascha Wildner [Sun, 22 Jun 2008 20:57:39 +0000 (20:57 +0000)]
Add an isa(4) manual page.

Derived-from: OpenBSD

15 years agoUpdate cvs id.
Sascha Wildner [Sun, 22 Jun 2008 20:39:40 +0000 (20:39 +0000)]
Update cvs id.

15 years agoSync with FreeBSD.
Sascha Wildner [Sun, 22 Jun 2008 20:34:46 +0000 (20:34 +0000)]
Sync with FreeBSD.

15 years agoAdd a pnpbios(4) manpage.
Sascha Wildner [Sun, 22 Jun 2008 20:00:23 +0000 (20:00 +0000)]
Add a pnpbios(4) manpage.

Taken-from: FreeBSD

15 years agos/Fx/Dx/
Sascha Wildner [Sun, 22 Jun 2008 19:33:55 +0000 (19:33 +0000)]
s/Fx/Dx/

15 years agoSort alphabetically.
Sascha Wildner [Sun, 22 Jun 2008 16:14:44 +0000 (16:14 +0000)]
Sort alphabetically.

15 years agoMention aggelos' lwn.net article.
Sascha Wildner [Sun, 22 Jun 2008 11:11:09 +0000 (11:11 +0000)]
Mention aggelos' lwn.net article.

15 years agoHAMMER 56F/Many: Stabilization pass
Matthew Dillon [Sat, 21 Jun 2008 20:21:58 +0000 (20:21 +0000)]
HAMMER 56F/Many: Stabilization pass

* When data is reblocked any related direct-io offsets cached in front-end
  buffer cache buffers must be cleaned out.  This also requires running
  through any snapshotted inodes referencing the same object.

* The flusher must check that the cached B-Tree node has not been flagged
  as deleted (HAMMER_NODE_DELETED) before seeking to it.

* hammer_io_direct_read() now requires and asserts that the second-level
  cached offset in the BIO is a zone-2 offset.

* hammer_io_direct_write() no longer overwrites the second-level cached
  offset with the third level raw disk offset.  It pushes a third level
  to set the raw disk offset.

* When creating a directory entry, set the localization field for pseudo-fs
  support (which isn't quite working yet anyway so no biggy).

* Move the Red-Black tree generator for inodes from hammer_ondisk.c to
  hammer_inode.c.

15 years agoSilence -Wold-style-definition.
Sascha Wildner [Sat, 21 Jun 2008 20:05:04 +0000 (20:05 +0000)]
Silence -Wold-style-definition.

15 years agoSilence -Wold-style-definition.
Sascha Wildner [Sat, 21 Jun 2008 20:01:14 +0000 (20:01 +0000)]
Silence -Wold-style-definition.

15 years agoFix -Wold-style-definition warnings in the scanner skeleton.
Sascha Wildner [Sat, 21 Jun 2008 19:32:14 +0000 (19:32 +0000)]
Fix -Wold-style-definition warnings in the scanner skeleton.

15 years agoAnsify
Sascha Wildner [Sat, 21 Jun 2008 19:29:21 +0000 (19:29 +0000)]
Ansify

15 years agoFix paths.
Sascha Wildner [Sat, 21 Jun 2008 17:15:57 +0000 (17:15 +0000)]
Fix paths.

15 years agoUpdate FILES section.
Sascha Wildner [Sat, 21 Jun 2008 17:08:20 +0000 (17:08 +0000)]
Update FILES section.

15 years agoFix path in comment.
Sascha Wildner [Sat, 21 Jun 2008 16:05:06 +0000 (16:05 +0000)]
Fix path in comment.

15 years agoMore copy{in,out} removal for ctloutput routines
Aggelos Economopoulos [Sat, 21 Jun 2008 12:30:19 +0000 (12:30 +0000)]
More copy{in,out} removal for ctloutput routines

15 years agoSince either hardware or ether input code will strip packet's vlan tag,
Sepherosa Ziehau [Sat, 21 Jun 2008 06:47:29 +0000 (06:47 +0000)]
Since either hardware or ether input code will strip packet's vlan tag,
before the packet could reach ether level ipfw filtering, we will have
to change the packet's ether type to VLAN, if the packet was vlan tagged,
so ipfw could see the correct packet mac-type.

15 years agoUse __func__, instead of hardcode the function name.
Sepherosa Ziehau [Sat, 21 Jun 2008 05:55:46 +0000 (05:55 +0000)]
Use __func__, instead of hardcode the function name.

15 years agoWhite space
Sepherosa Ziehau [Sat, 21 Jun 2008 03:58:09 +0000 (03:58 +0000)]
White space

15 years agoMinor style change
Sepherosa Ziehau [Sat, 21 Jun 2008 03:39:20 +0000 (03:39 +0000)]
Minor style change

15 years agoHAMMER 56E/Many: Correct bug in 56D
Matthew Dillon [Sat, 21 Jun 2008 01:24:12 +0000 (01:24 +0000)]
HAMMER 56E/Many: Correct bug in 56D

* Fix a bug related to fsync that could result in an infinite loop.

15 years agoHAMMER 56D/Many: Media structure finalization, atime/mtime, etc.
Matthew Dillon [Fri, 20 Jun 2008 21:24:53 +0000 (21:24 +0000)]
HAMMER 56D/Many: Media structure finalization, atime/mtime, etc.

* Move the atime and mtime fields to the end of struct hammer_inode_data.
  CRCs on hammer_inode_data no longer include atime or mtime, allowing
  them to be updated without having to update the related B-Tree node.

* Change the time format for ctime, atime, and mtime.  These 64 bit fields
  now store microseconds in real time instead of transaction ids.

* atime is now updated asynchronously, and mtime is now updated with
  UNDO records only.  Split the ITIMES flag into ATIME and MTIME and
  no longer set the DDIRTY (inode_data generally dirty) flag when the
  mtime changes.

* Finish on-media structural components for pseudo-fs support inside a
  HAMMER filesystem.

* Finish on-media structural components for adding a serial number to
  the B-Tree element structures, for mirroring support.

* Make fsync() wait for the flush to complete, issue extra flushes as
  needed to take the UNDO FIFO's start position past the fsync'd data
  so a crash does not undo it.