dragonfly.git
15 years agoBuild objc support.
Hasso Tepper [Mon, 30 Jun 2008 12:16:03 +0000 (12:16 +0000)]
Build objc support.

15 years agoMerge from vendor branch GCC:
Hasso Tepper [Mon, 30 Jun 2008 11:22:39 +0000 (11:22 +0000)]
Merge from vendor branch GCC:
Add objc to the gcc-4.1.2.

15 years agoAdd objc to the gcc-4.1.2.
Hasso Tepper [Mon, 30 Jun 2008 11:22:39 +0000 (11:22 +0000)]
Add objc to the gcc-4.1.2.

15 years agoHAMMER 59F/Many: Stabilization pass
Matthew Dillon [Mon, 30 Jun 2008 04:18:30 +0000 (04:18 +0000)]
HAMMER 59F/Many: Stabilization pass

* Use kmalloc_limit() to calculate a better record limit.  This fixes an
  issue on machines with limited system memory where HAMMER could blow
  out its kmalloc pool by allocating too many records.

15 years agoFix a low-memory deadlock in the VM system which can occur on systems
Matthew Dillon [Mon, 30 Jun 2008 03:57:41 +0000 (03:57 +0000)]
Fix a low-memory deadlock in the VM system which can occur on systems
with small amounts of system memory.  The pageout daemon uses LK_TIMELOCK
to avoid deadlocking on a vnode so it can continue operation.  This only
works if lk_timo is non-zero, but all filesystems initialize their vnodes
with a timeout of zero so the feature is defeated.  Adjust allocvnode()
to guarantee that lk_timo is never zero.

15 years agoAdd a new helper function, kmalloc_limit(). This function returns
Matthew Dillon [Mon, 30 Jun 2008 03:00:36 +0000 (03:00 +0000)]
Add a new helper function, kmalloc_limit().  This function returns
the number of bytes that can be held in a M_XXX kernel memory pool.

15 years agoHAMMER 59E/Many: Stabilization pass
Matthew Dillon [Mon, 30 Jun 2008 02:45:30 +0000 (02:45 +0000)]
HAMMER 59E/Many: Stabilization pass

* Sprinkle around calls to hammer_flusher_clean_loose_ios() to clean up
  hammer buffers with no buffer cache buffer associations, so they can't
  build up and blow out kernel memory.

* Fix a bug when deleting large files where not all records were being
  properly moved to the new flush group.

* Fix a bug when truncating large files where a trunction followed by
  write()s followed by another truncation would incorrectly reorder the
  writes() in the middle to occur after the second truncation.

15 years agoFix a buf_daemon performance issue when running on machines with small
Matthew Dillon [Mon, 30 Jun 2008 02:11:53 +0000 (02:11 +0000)]
Fix a buf_daemon performance issue when running on machines with small
amounts of ram.  The daemon was hitting a 1/2 sleep case that it should
not have been hitting.

15 years agoHAMMER 59D/Many: Stabilization pass
Matthew Dillon [Mon, 30 Jun 2008 00:03:55 +0000 (00:03 +0000)]
HAMMER 59D/Many: Stabilization pass

* Fix a panic that occurs when the crash recovery undo space is larger
  then conveniently fits in the buffer cache.

* Fix a bug in the truncation code (detected by fsx).  The bug was related
  to moving an inode from one flush group to another (which itself was done
  to fix a bug related to blowing out the buffer cache).

15 years agoClarify comment.
Simon Schubert [Sun, 29 Jun 2008 22:22:17 +0000 (22:22 +0000)]
Clarify comment.

15 years agoFix a NULL pointer dereference when a DDB 'ps' attempts to
Matthew Dillon [Sun, 29 Jun 2008 21:38:21 +0000 (21:38 +0000)]
Fix a NULL pointer dereference when a DDB 'ps' attempts to
list a process which has no LWPs associated with it.

15 years agoFix typo in sln(4) PCI ID.
Sascha Wildner [Sun, 29 Jun 2008 20:45:44 +0000 (20:45 +0000)]
Fix typo in sln(4) PCI ID.

15 years agoRegenerate
Sascha Wildner [Sun, 29 Jun 2008 20:43:49 +0000 (20:43 +0000)]
Regenerate

15 years agoFix typo in sln(4) PCI ID.
Sascha Wildner [Sun, 29 Jun 2008 20:33:57 +0000 (20:33 +0000)]
Fix typo in sln(4) PCI ID.

15 years agoFix an issue where CAM would attempt to illegally get a lockmgr() lock
Matthew Dillon [Sun, 29 Jun 2008 19:15:34 +0000 (19:15 +0000)]
Fix an issue where CAM would attempt to illegally get a lockmgr() lock
from an interrupt via xpt_done().  Use a spin lock instead.

Fix an issue where camisr_runqueue() was not protecting sim->sim_doneq
which could then race against an interrupt via xpt_done() and corrupt
the list.

15 years agoAdjust comments.
Matthew Dillon [Sun, 29 Jun 2008 19:04:02 +0000 (19:04 +0000)]
Adjust comments.

Reported-by: Jordan Gordeev <jgordeev@dir.bg>
15 years agoClean up stale comment and unused umount.
Simon Schubert [Sun, 29 Jun 2008 10:34:04 +0000 (10:34 +0000)]
Clean up stale comment and unused umount.

Noticed-by: swildner@
15 years agoDon't run binaries in the new built root, but use host binaries instead.
Simon Schubert [Sun, 29 Jun 2008 10:23:23 +0000 (10:23 +0000)]
Don't run binaries in the new built root, but use host binaries instead.

This allows us to do cross-builds (older host kernel) again, which was
broken for some time now.

The mkfontdir command was not changed yet, but this is no regression.

15 years agoHAMMER 59E/Many: Stabilization pass - fixes for large file issues
Matthew Dillon [Sun, 29 Jun 2008 07:50:40 +0000 (07:50 +0000)]
HAMMER 59E/Many: Stabilization pass - fixes for large file issues

* Correct a bug related to inodes moving between flush groups (when
  truncating a large file).  Some records were not being moved and
  cause an assertion later on.

* Fix a leak of B_LOCKED buffers which could occur under heavy loads.
  Eventually enough build up to deadlock the buffer cache.

15 years agoHAMMER 59D/Many: Sync with buffer cache changes in HEAD.
Matthew Dillon [Sat, 28 Jun 2008 23:50:37 +0000 (23:50 +0000)]
HAMMER 59D/Many: Sync with buffer cache changes in HEAD.

* Adjust hammer to limit dirty meta-data buffers based on total bytes
  rather then total buffers.

* Limit to 1/4 the buffer cache limit (for now)... a better solution
  is needed.

15 years agoFix hopefully all possible deadlocks that can occur when mixed block sizes
Matthew Dillon [Sat, 28 Jun 2008 23:45:20 +0000 (23:45 +0000)]
Fix hopefully all possible deadlocks that can occur when mixed block sizes
are used with the buffer cache.  The fix is simply to base the limiting
and flushing code on a byte count rather then a buffer count.

This will allow UFS to utilizes a greater number of dirty buffers and
will cause HAMMER to use fewer.  This also makes tuning the buffer cache
a whole lot easier.

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