dragonfly.git
2 years agotcp: Reimplement TCP_FASTKEEP socket option using per-pcb keepidle
Sepherosa Ziehau [Thu, 19 Apr 2012 07:16:39 +0000 (15:16 +0800)]
tcp: Reimplement TCP_FASTKEEP socket option using per-pcb keepidle

Retired now used TF_FASTKEEP

2 years agotcp: Reset keepalive timer, if TCP_KEEPIDLE is changed
Sepherosa Ziehau [Thu, 19 Apr 2012 06:57:36 +0000 (14:57 +0800)]
tcp: Reset keepalive timer, if TCP_KEEPIDLE is changed

This would cause side effect, if the keepalive probing was underway.
Correcting this side effect could become overkill, so it is suggested
that TCP_KEEPIDLE is set before connect(2) or listen(2).

2 years agojme: Unbreak buildkernel w/ KASSERT
Sepherosa Ziehau [Thu, 19 Apr 2012 03:13:37 +0000 (11:13 +0800)]
jme: Unbreak buildkernel w/ KASSERT

2 years agojme: Move TX descriptor count into chain_data
Sepherosa Ziehau [Thu, 19 Apr 2012 03:08:33 +0000 (11:08 +0800)]
jme: Move TX descriptor count into chain_data

Improve CPU cache utilization

2 years agojme: Option file adjustment
Sepherosa Ziehau [Thu, 19 Apr 2012 03:02:06 +0000 (11:02 +0800)]
jme: Option file adjustment

- RSS is now globally enabled; opt_rss.h is no longer needed here
- Always enable JME_RSS_DEBUG if module is not built w/ buildkernel

2 years agojme: Move RX ring count and RX descriptor count into rxdata
Sepherosa Ziehau [Thu, 19 Apr 2012 03:00:05 +0000 (11:00 +0800)]
jme: Move RX ring count and RX descriptor count into rxdata

Improve CPU cache utilization

2 years agojme: Use RX data's interrupt mask to test interrupt status
Sepherosa Ziehau [Thu, 19 Apr 2012 02:39:41 +0000 (10:39 +0800)]
jme: Use RX data's interrupt mask to test interrupt status

Functionally same, semantically better

2 years agojme: Pass rxdata to RX functions
Sepherosa Ziehau [Thu, 19 Apr 2012 02:34:09 +0000 (10:34 +0800)]
jme: Pass rxdata to RX functions

2 years agoRename vfs_accounting_enabled to vfs_quota_enabled
François Tigeot [Tue, 17 Apr 2012 20:27:36 +0000 (22:27 +0200)]
Rename vfs_accounting_enabled to vfs_quota_enabled

2 years agoef(4): Bring in some small fixes from FreeBSD.
Sascha Wildner [Wed, 18 Apr 2012 20:49:04 +0000 (22:49 +0200)]
ef(4): Bring in some small fixes from FreeBSD.

Gets rid of a superfluous extra opt_ef.h file in /usr/obj hierarchy.

2 years agoRemove a deleted mpt(4) related header file with 'make upgrade'.
Sascha Wildner [Wed, 18 Apr 2012 19:49:38 +0000 (21:49 +0200)]
Remove a deleted mpt(4) related header file with 'make upgrade'.

2 years agojme: Don't enable RSS by default
Sepherosa Ziehau [Wed, 18 Apr 2012 12:43:45 +0000 (20:43 +0800)]
jme: Don't enable RSS by default

It does not seem to be stable enough to be used.

2 years agojme: MSI-X interrupt handler bug fixes
Sepherosa Ziehau [Wed, 18 Apr 2012 12:42:05 +0000 (20:42 +0800)]
jme: MSI-X interrupt handler bug fixes

- Always write INTR_STATUS in RX interrupt handler
- Always enable/disable related interrupts in cooresponding interrupt handler

2 years agotcp: Correct sending idle detection and implement part of RFC2861
Sepherosa Ziehau [Wed, 18 Apr 2012 07:31:26 +0000 (15:31 +0800)]
tcp: Correct sending idle detection and implement part of RFC2861

This commit mainly changes how cwnd is shinked after idle period on
the send side.

- Properly detect sending idle period according to RFC5681.  The problem
  of using reception time to detect sending idle period is described in
  RFC5681 as:

  "...
   Using the last time a segment was received to determine whether or
   not to decrease cwnd can fail to deflate cwnd in the common case of
   persistent HTTP connections [HTH98].  In this case, a Web server
   receives a request before transmitting data to the Web client.  The
   reception of the request makes the test for an idle connection fail,
   and allows the TCP to begin transmission with a possibly
   inappropriately large cwnd.
   ..."

  This mainly affects HTTP/1.1 persistent connection performance after
  the connection is idled for a long time.  The impact probably should not
  be drastic, since 80% HTTP/1.1 persistent connection delay between two
  requests are less then minimum RTO (1 second) as discovered by:
  "Overclocking the Yahoo! CDN for Faster Web Page Loads"
    http://conferences.sigcomm.org/imc/2011/docs/p569.pdf

  Sysctl node net.inet.tcp.idle_restart is added to disable the cwnd
  shinking after idle period.  It is on by default.  And you can set it
  to 0 to restore old behaviour against HTTP/1.1 persistent connection.

- Implement part of RFC2861, which decays cwnd after idle period according
  to the length of sending idle period.  The main difference between our
  implementation and the RFC2861 is that we don't let cwnd go below the
  value allowed by RFC5861.

  Sysctl node net.inet.tcp.idle_cwv is added to disable CWV after sending
  idle period.  It is on by default.  Disable net.inet.tcp.idle_restart
  will also indirectly disable CWV after sending idle period.

  The CWV during the application-limited period is not implemented by this
  commit.  It is just too conservative, as discovered by:
  "Analysing TCP for Bursty Traffic, Int'l J. of Communications,
   Network and System Sciences, 7(3), July 2010."

- Add statistics about how much sending idle happened

2 years agosocket: Change sysctl names sosnd -> sosend, no functional changes
Sepherosa Ziehau [Tue, 17 Apr 2012 10:26:43 +0000 (18:26 +0800)]
socket: Change sysctl names sosnd -> sosend, no functional changes

2 years agovquota(8): document a limit of 0 means no check
François Tigeot [Tue, 17 Apr 2012 20:54:27 +0000 (22:54 +0200)]
vquota(8): document a limit of 0 means no check

2 years agoVFS quota: enforce user and group limits
Francois Tigeot [Wed, 4 Apr 2012 08:37:38 +0000 (10:37 +0200)]
VFS quota: enforce user and group limits

2 years agoVFS quota: add a command to set a group quota
Francois Tigeot [Fri, 30 Mar 2012 18:47:36 +0000 (20:47 +0200)]
VFS quota: add a command to set a group quota

2 years agoVFS quota: add a command to set a user's quota
Francois Tigeot [Fri, 23 Mar 2012 22:19:12 +0000 (23:19 +0100)]
VFS quota: add a command to set a user's quota

2 years agompt(4): Sync with FreeBSD.
Sascha Wildner [Tue, 17 Apr 2012 16:13:57 +0000 (18:13 +0200)]
mpt(4): Sync with FreeBSD.

Bug fixes and cleanups.

2 years agompt(4): Pass INTR_MPSAFE when setting up the interrupt.
Sascha Wildner [Tue, 17 Apr 2012 16:03:15 +0000 (18:03 +0200)]
mpt(4): Pass INTR_MPSAFE when setting up the interrupt.

It's a porting mistake I did back then.

2 years agoVFS quota: start enforcing limits
Francois Tigeot [Thu, 22 Mar 2012 13:33:43 +0000 (14:33 +0100)]
VFS quota: start enforcing limits

* Add a function vq_write_ok() to check if writing a specified amount
  of data to a mounted filesystem is allowed.

* It only checks a global per mount-point limit for now.

* Enforce this limit check in vop_write().

2 years agoVFS quota: add a function to set a per mount-point global space limit
Francois Tigeot [Sat, 17 Mar 2012 21:15:09 +0000 (22:15 +0100)]
VFS quota: add a function to set a per mount-point global space limit

2 years agoVFS accounting: have syscalls fail if not enabled
Francois Tigeot [Mon, 16 Apr 2012 17:50:55 +0000 (19:50 +0200)]
VFS accounting: have syscalls fail if not enabled

2 years agoVFS quota: report per mount-point space limits
Francois Tigeot [Sat, 17 Mar 2012 18:30:55 +0000 (19:30 +0100)]
VFS quota: report per mount-point space limits

2 years agojme: Change how IFCAP_RSS is handled
Sepherosa Ziehau [Mon, 16 Apr 2012 12:00:36 +0000 (20:00 +0800)]
jme: Change how IFCAP_RSS is handled

- Number of RX rings being used is not changed.
- Hardware is always setup w/ RSS support.
- If IFCAP_RSS is not enabled, we simply don't use the RSS hash provided
  by the hardware.

2 years agojme: Per-device tunable knobs
Sepherosa Ziehau [Mon, 16 Apr 2012 11:51:31 +0000 (19:51 +0800)]
jme: Per-device tunable knobs

2 years agoifnet: Factor out if_ring_count2()
Sepherosa Ziehau [Mon, 16 Apr 2012 11:41:20 +0000 (19:41 +0800)]
ifnet: Factor out if_ring_count2()

This function calculates maximum allowed power-of-2 ring count based on
user specified value (cnt) and the maximum number of rings supported by
the hardware (cnt_max).  The power-of-2 cpu count is also take into
consideration.

2 years agoemx: Change how IFCAP_RSS is handled
Sepherosa Ziehau [Mon, 16 Apr 2012 10:43:00 +0000 (18:43 +0800)]
emx: Change how IFCAP_RSS is handled

- Number of RX rings being used is not changed.
- Hardware is always setup w/ RSS support.
- If IFCAP_RSS is not enabled, we simply don't use the RSS hash provided
  by the hardware.

2 years agoemx: Allow user to specify the number of RX ring to use
Sepherosa Ziehau [Mon, 16 Apr 2012 10:19:19 +0000 (18:19 +0800)]
emx: Allow user to specify the number of RX ring to use

Default value is 0, which means auto (based on # of cpus in the system)

2 years agoemx: Per-device tunable knobs
Sepherosa Ziehau [Mon, 16 Apr 2012 10:07:28 +0000 (18:07 +0800)]
emx: Per-device tunable knobs

- Max TX/RX descriptor count
- Interrupt thrrotle ceiling

2 years agobus: Change device_getenv_int interface a little bit
Sepherosa Ziehau [Mon, 16 Apr 2012 09:51:14 +0000 (17:51 +0800)]
bus: Change device_getenv_int interface a little bit

- Pass in the fallback value
- If the kgetenv fails, fallback value will be returned

2 years agopci: Utilize device_getenv_int
Sepherosa Ziehau [Mon, 16 Apr 2012 09:16:08 +0000 (17:16 +0800)]
pci: Utilize device_getenv_int

2 years agobus: Add device_getenv_int helper function
Sepherosa Ziehau [Mon, 16 Apr 2012 09:15:16 +0000 (17:15 +0800)]
bus: Add device_getenv_int helper function

To get device specific int tunable knobs.

2 years agoroute: Turn on route_assert_owner_access by default
Sepherosa Ziehau [Mon, 16 Apr 2012 02:10:52 +0000 (10:10 +0800)]
route: Turn on route_assert_owner_access by default

No reports about the invalid CPU local routing information accessing
since 2009.  Time to use assertion instead of printing backtrace.

2 years agokernel: Use ${.TARGET} in module Makefiles.
Sascha Wildner [Sun, 15 Apr 2012 20:23:33 +0000 (22:23 +0200)]
kernel: Use ${.TARGET} in module Makefiles.

2 years agoVFS accounting: remove unneeded code
François Tigeot [Sun, 15 Apr 2012 20:09:45 +0000 (22:09 +0200)]
VFS accounting: remove unneeded code

2 years agoVFS accounting: do not call initialization functions directly
Francois Tigeot [Sun, 15 Apr 2012 19:31:39 +0000 (21:31 +0200)]
VFS accounting: do not call initialization functions directly

* Use a macro to check if VFS accounting is enabled and they have been
  properly enabled for this mount point first

* Change the return type of vfs_acdone() to void. This function does
  not return errors and should not make a filesystem unmount fail.

2 years agokernel/netgraph7: Remove some atalk remains.
Sascha Wildner [Sun, 15 Apr 2012 19:17:04 +0000 (21:17 +0200)]
kernel/netgraph7: Remove some atalk remains.

2 years agoVFS accounting: fix vfs_register()
Francois Tigeot [Sun, 15 Apr 2012 18:41:10 +0000 (20:41 +0200)]
VFS accounting: fix vfs_register()

* Do not register per mount-point initialization and destruction
  functions if VFS accounting is not globally enabled.

2 years agoVFS quota: add per mount-point global, uid and gid limit fields.
Francois Tigeot [Sat, 17 Mar 2012 17:17:49 +0000 (18:17 +0100)]
VFS quota: add per mount-point global, uid and gid limit fields.

2 years agoif: Remove experimental ifnet.if_start related sysctls
Sepherosa Ziehau [Sun, 15 Apr 2012 12:39:46 +0000 (20:39 +0800)]
if: Remove experimental ifnet.if_start related sysctls

2 years agomake.conf: Remove the unused LOADER_TFTP_SUPPORT variable.
Sascha Wildner [Sun, 15 Apr 2012 10:26:45 +0000 (12:26 +0200)]
make.conf: Remove the unused LOADER_TFTP_SUPPORT variable.

We offer both the NFS and TFTP versions of pxeboot and loader since
2005 (see 423d6aa030d43ea1d66b0572688d0964c641c1b5) and since this
commit, the LOADER_TFTP_SUPPORT make.conf variable has been without
any effect.

2 years agoRemove some unnecessary inclusions of <sys/cdefs.h> across the tree.
Sascha Wildner [Sat, 14 Apr 2012 15:34:00 +0000 (17:34 +0200)]
Remove some unnecessary inclusions of <sys/cdefs.h> across the tree.

2 years agokernel -- Enable threaded syncer for NFS mounts.
Venkatesh Srinivas [Sat, 14 Apr 2012 01:10:58 +0000 (18:10 -0700)]
kernel -- Enable threaded syncer for NFS mounts.

NFS mounts will now use a per-mount thread to complete periodic syncs on its
vnodes rather than using the system's syncer0.

Also remove a change that snuck in mistakenly to unmark syncer threads
as verbose.

2 years agokernel -- Per-mount threaded syncer infrastructure.
Venkatesh Srinivas [Sat, 14 Apr 2012 00:46:42 +0000 (17:46 -0700)]
kernel -- Per-mount threaded syncer infrastructure.

Do not shut down syncer thread when unmount fails.

Reminded-by: dillon@
2 years agokernel: Clean up some module Makefiles.
Sascha Wildner [Fri, 13 Apr 2012 17:40:11 +0000 (19:40 +0200)]
kernel: Clean up some module Makefiles.

Remove unneeded .PATHs and variables. Use ${.TARGET}.

2 years agocxm(4): Remove an unused file (opt_cxm.h) from the Makefile.
Sascha Wildner [Fri, 13 Apr 2012 17:20:25 +0000 (19:20 +0200)]
cxm(4): Remove an unused file (opt_cxm.h) from the Makefile.

2 years agoem/emx: Add a note about why MSI-X should be not enable on 82574
Sepherosa Ziehau [Fri, 13 Apr 2012 10:40:16 +0000 (18:40 +0800)]
em/emx: Add a note about why MSI-X should be not enable on 82574

2 years agoem/emx: Update to Intel em-7.2.4
Sepherosa Ziehau [Fri, 13 Apr 2012 09:09:10 +0000 (17:09 +0800)]
em/emx: Update to Intel em-7.2.4

- Fix the max frame length settings for 82583 chips
- Workaround 82574 specification update errata #20.

Local changes:
- For 82574 specification update errata #20 workaround, we don't
  disable ASPM L1.  Disabling ASPM L1 is said to be unnecessary
  in the specification update.

2 years agopci: Add definition for PCI express Link capabilities/control
Sepherosa Ziehau [Fri, 13 Apr 2012 10:31:32 +0000 (18:31 +0800)]
pci: Add definition for PCI express Link capabilities/control

2 years agotcp/sack: Further optimize scoreboard block allocation
Sepherosa Ziehau [Fri, 13 Apr 2012 08:34:51 +0000 (16:34 +0800)]
tcp/sack: Further optimize scoreboard block allocation

Use one slot freed SACK scoreboard cache.

30minutes tests are conducted on a heavy congested real-life network path;
the new statistics:

  31254 SACK scoreboard updates
      2 overflows
      0 failures
      13392 records reused
      12703 records fast allocated

Before this commit, ~42% allocations are avoided (reused); after this commit,
~83% allocations are avoided (reused + fast allocated).

2 years agotcp/sack: Optimize scoreboard block allocation
Sepherosa Ziehau [Fri, 13 Apr 2012 07:30:26 +0000 (15:30 +0800)]
tcp/sack: Optimize scoreboard block allocation

Allocate SACK scoreboard block only if we can't extend the existing
one's right edge (end).

This commit could avoid ~70% SACK scoreboard block allocation on
leaf.dragonflybsd.org (11528032 updating, 8353353 reused) according
to the "netstat -s -f inet -p tcp" output as of today.  On my testing
sites, this commit could avoid 30%~50% SACK scoreboard block allocation.

2 years agotcp/sack: Move scoreboard block start/end setup into alloc function
Sepherosa Ziehau [Fri, 13 Apr 2012 06:31:55 +0000 (14:31 +0800)]
tcp/sack: Move scoreboard block start/end setup into alloc function

This paves way for further SACK scoreboard block allocation optimization

2 years agotcp/sack: Move empty scoreboard updating into insert_block()
Sepherosa Ziehau [Fri, 13 Apr 2012 06:25:52 +0000 (14:25 +0800)]
tcp/sack: Move empty scoreboard updating into insert_block()

2 years agoether: Don't manually packing up input mbufs
Sepherosa Ziehau [Fri, 13 Apr 2012 03:58:58 +0000 (11:58 +0800)]
ether: Don't manually packing up input mbufs

Since we use spin ports for netisrs now, we no longer need to explicitly
avoid IPI storm on input path.

2 years agokernel/tmpfs: Make compiling tmpfs into the kernel optional.
Sascha Wildner [Thu, 12 Apr 2012 21:04:33 +0000 (23:04 +0200)]
kernel/tmpfs: Make compiling tmpfs into the kernel optional.

If the user wants to build a kernel without tmpfs built in,
allow it to him.

Our GENERIC configs have 'options TMPFS', but even if it
isn't loaded or built into the kernel, it will be kldloaded
upon mount_tmpfs(8) via vfsload(3).

This behavior is the same with our other file systems: the
module will be autoloaded at the first mount -t <type> if
it isn't either in-kernel or already loaded.

2 years agotcp: Prefer IW parameters in routing entries
Sepherosa Ziehau [Thu, 12 Apr 2012 09:17:11 +0000 (17:17 +0800)]
tcp: Prefer IW parameters in routing entries

2 years agort_metrics: Add rmx_iw* to record user-set IW parameters
Sepherosa Ziehau [Thu, 12 Apr 2012 08:55:25 +0000 (16:55 +0800)]
rt_metrics: Add rmx_iw* to record user-set IW parameters

2 years agotcp: Support settable IW parameters
Sepherosa Ziehau [Thu, 12 Apr 2012 07:25:31 +0000 (15:25 +0800)]
tcp: Support settable IW parameters

As suggested in:
  http://tools.ietf.org/html/draft-ietf-tcpm-initcwnd-03

To be RFC3390 conforming, these parameters should be left as the default:
net.inet.tcp.iwcapsegs -> 3
net.inet.tcp.iwmaxsegs -> 4

2 years agotcp: Staticize tcp_do_rfc3390
Sepherosa Ziehau [Thu, 12 Apr 2012 07:04:52 +0000 (15:04 +0800)]
tcp: Staticize tcp_do_rfc3390

2 years agotcp: "Reasonably" reduce IW after SYN retransmition timeout
Sepherosa Ziehau [Thu, 12 Apr 2012 06:48:56 +0000 (14:48 +0800)]
tcp: "Reasonably" reduce IW after SYN retransmition timeout

2 years agokernel/nwfs: The NCP check only applies if it is not the module build.
Sascha Wildner [Wed, 11 Apr 2012 18:06:52 +0000 (20:06 +0200)]
kernel/nwfs: The NCP check only applies if it is not the module build.

Add some dependency stuff that will cause nwfs to load ncp if it is
not loaded or in the kernel.

However ncp ultimately depends on IPX which is not available as a
module, so that's the minimum that needs compiling into the kernel
in order to use nwfs.

This should really fix the kernel build.

2 years agokernel/smbfs: The netsmb check only applies if it is not the module build.
Sascha Wildner [Wed, 11 Apr 2012 17:38:12 +0000 (19:38 +0200)]
kernel/smbfs: The netsmb check only applies if it is not the module build.

The necessary files from netsmb are built into the module. In the kernel
it is two separate options.

This fixes buildkernel.

Reported-by: Francois Tigeot <ftigeot@wolfpond.org>
2 years agodntpd - Update pool servers to be of the newly-created dragonfly ntp.org zone
Samuel J. Greear [Wed, 11 Apr 2012 16:26:02 +0000 (10:26 -0600)]
dntpd - Update pool servers to be of the newly-created dragonfly ntp.org zone

2 years agotcp/syncache: Use the calculated RTO instead of calculate again
Sepherosa Ziehau [Wed, 11 Apr 2012 14:15:08 +0000 (22:15 +0800)]
tcp/syncache: Use the calculated RTO instead of calculate again

The recalculation actually uses wrong backoff, grrr

2 years agotcp/syncache: Increase SYN|ACK max retransmit attempts from 3 to 4
Sepherosa Ziehau [Wed, 11 Apr 2012 14:07:24 +0000 (22:07 +0800)]
tcp/syncache: Increase SYN|ACK max retransmit attempts from 3 to 4

- It matches what the comment says: 15 seconds timeout, if RFC6298 is
  not enabled.
- Add comment about the timeout if RFC6298 is enabled.

2 years agocarp: Get rid of the null serializer function stubs
Sepherosa Ziehau [Wed, 11 Apr 2012 13:54:52 +0000 (21:54 +0800)]
carp: Get rid of the null serializer function stubs

They are used in the early carp development stage; no longer useful now

2 years agotcp/syncache: Use tcp_syn_backoff|low RTO multipler
Sepherosa Ziehau [Wed, 11 Apr 2012 10:24:53 +0000 (18:24 +0800)]
tcp/syncache: Use tcp_syn_backoff|low RTO multipler

2 years agotcp: Adjust SYN retransmit backoff a little bit.
Sepherosa Ziehau [Wed, 11 Apr 2012 10:09:43 +0000 (18:09 +0800)]
tcp: Adjust SYN retransmit backoff a little bit.

This pattern is proposed by:
  Chu, J., "Tuning TCP Parameters for the 21st Century",
  http://www.ietf.org/proceedings/75/slides/tcpm-1.pdf

2 years agotcp: RW=min(IW,cwnd) is standardized in RFC5681
Sepherosa Ziehau [Wed, 11 Apr 2012 10:05:04 +0000 (18:05 +0800)]
tcp: RW=min(IW,cwnd) is standardized in RFC5681

2 years agotcp: Increase IW to 2 segments, if RFC3390 is not enabled.
Sepherosa Ziehau [Wed, 11 Apr 2012 09:57:43 +0000 (17:57 +0800)]
tcp: Increase IW to 2 segments, if RFC3390 is not enabled.

First of all, RFC2581 allows this.  Additionally, it is intended to
fix sender and receiver deadlock before delayed ACK timer expires.
Add comment about these.

2 years agotcp: Factor out tcp_initial_window; ease further IW adjustment
Sepherosa Ziehau [Wed, 11 Apr 2012 09:51:04 +0000 (17:51 +0800)]
tcp: Factor out tcp_initial_window; ease further IW adjustment

2 years agosys/conf/options: Clean up and sort the file system related options.
Sascha Wildner [Wed, 11 Apr 2012 09:37:30 +0000 (11:37 +0200)]
sys/conf/options: Clean up and sort the file system related options.

2 years agonwfs/smbfs: Fix and cleanup the Makefiles a bit.
Sascha Wildner [Wed, 11 Apr 2012 09:36:43 +0000 (11:36 +0200)]
nwfs/smbfs: Fix and cleanup the Makefiles a bit.

2 years agocarp: Add comment about how lockless MPSAFE is done
Sepherosa Ziehau [Wed, 11 Apr 2012 08:45:12 +0000 (16:45 +0800)]
carp: Add comment about how lockless MPSAFE is done

2 years agovlan: Wording in comment
Sepherosa Ziehau [Wed, 11 Apr 2012 07:54:39 +0000 (15:54 +0800)]
vlan: Wording in comment

2 years agocarp: Change 1/0 usage of int into boolean_t, which is more expressive
Sepherosa Ziehau [Wed, 11 Apr 2012 07:44:11 +0000 (15:44 +0800)]
carp: Change 1/0 usage of int into boolean_t, which is more expressive

2 years agoRemove one more old OpenSSL file via 'make upgrade'.
Sascha Wildner [Wed, 11 Apr 2012 08:41:36 +0000 (10:41 +0200)]
Remove one more old OpenSSL file via 'make upgrade'.

2 years agotcp_input: Partly revert 98cb2337e1000153d84b64a5e9aabbecda8e8dbf
Sepherosa Ziehau [Wed, 11 Apr 2012 03:23:39 +0000 (11:23 +0800)]
tcp_input: Partly revert 98cb2337e1000153d84b64a5e9aabbecda8e8dbf

Since all TCP operations are carried in its own netisr thread, the
workaround/comment is no longer needed/applied; change it into
assertion instead.

The "snd_nxt < snd_una" should (hopefully) have been fixed by:
1ff9b7d322dc5a26f7173aa8c38ecb79da80e419

2 years agotcp_input: Use acceptable_window_update when applicable
Sepherosa Ziehau [Wed, 11 Apr 2012 03:09:33 +0000 (11:09 +0800)]
tcp_input: Use acceptable_window_update when applicable

While I'm here, adjust comment (ACK is always on when we reach that code)

2 years agotcp/sack: Cleanup the SACK related bits when return from tcp_input slow path
Sepherosa Ziehau [Fri, 6 Apr 2012 01:47:36 +0000 (09:47 +0800)]
tcp/sack: Cleanup the SACK related bits when return from tcp_input slow path

When the code path that could generate the invalid SACK block on out-of-order
FIN segment was walked through, it turned out that some SACK related bits
could be leftover from the previous input segment, e.g. SACKLEFT.

Since the observed invalid SACK option contains only one SACK block and the
block's right edge is same as its left edge, the code which can generate that
SACK block could be run only if SACKLEFT is turned on and reportblk's start
and end are same.
- If SACKLEFT is on then reportblk's start and end must not be same, so the
  SACKLEFT is leftover from the previous input segment.
- If KASSERTs about the clearance of the SACK bits are added immediately
  before returning from the tcp_input slow path, the KASSERTs could fail due
  to SACKLEFT are still on.

Obviously the SACK related bits are never intended to be inheritted from one
input segment to another input segment, so we just clear them before returning
from the tcp_input slow path.

2 years agotcp/sack: Take FIN bit into consideration when setup report SACK block end
Sepherosa Ziehau [Wed, 28 Mar 2012 08:17:32 +0000 (16:17 +0800)]
tcp/sack: Take FIN bit into consideration when setup report SACK block end

The invalid SACK option observed on the heavily segment reordering network
path (50% segments out of order) contains only one SACK block which tries
to cover the FIN segment but sets the right edge incorrectly, i.e. the right
edge is same as the left edge; mainly because the FIN bit is not counted.

2 years agoacpi_hp.4: List the HP Compaq nc6320 as tested with the acpi_hp(4) driver.
Sascha Wildner [Tue, 10 Apr 2012 19:46:27 +0000 (21:46 +0200)]
acpi_hp.4: List the HP Compaq nc6320 as tested with the acpi_hp(4) driver.

The reported values looked sane.

Tested-by: Andrea Magliano <masterblaster@tiscali.it>
2 years agoMerge branch 'vendor/OPENSSL'
Peter Avalos [Tue, 10 Apr 2012 17:28:26 +0000 (10:28 -0700)]
Merge branch 'vendor/OPENSSL'

2 years agoBring in the krb5 module in OpenSSL.
Peter Avalos [Tue, 10 Apr 2012 16:57:21 +0000 (09:57 -0700)]
Bring in the krb5 module in OpenSSL.

Even though we don't have Kerberos5 in base, we should still be
installing the krb5_asn.h header.

2 years agoMerge remote-tracking branch 'origin/master'
Peter Avalos [Tue, 10 Apr 2012 16:51:20 +0000 (09:51 -0700)]
Merge remote-tracking branch 'origin/master'

2 years agocarp: Lockless MPSAFE, step 11 of 11
Sepherosa Ziehau [Tue, 10 Apr 2012 13:26:53 +0000 (21:26 +0800)]
carp: Lockless MPSAFE, step 11 of 11

Remove big giant carp token.

2 years agocarp: Lock MPSAFE, step 10 of 11
Sepherosa Ziehau [Mon, 9 Apr 2012 13:06:57 +0000 (21:06 +0800)]
carp: Lock MPSAFE, step 10 of 11

Make carp_softc.sc_carpdev and ifnet.if_carp accessing and updating
lockless MPSAFE.

carp_softc.sc_carpdev:
- Reader of the sc_carpdev will cache the value in temporary variable
  and use the cached value instead of always accessing sc_carpdev,
  which may be inconsistent due to change of sc_carpdev.

ifnet.if_carp
- if_carp is a pointer to the carp_softc container list, while the list
  only contains pointer to carp_softc
- Reader of if_carp will cache the value in temporary variable and use
  the cached value instead of always accessing if_carp, which may be
  inconsistent due to if_carp updating.
- Updating of the if_carp is done in the following way:
    ocif = ifp->if_carp;
    ncif = cif_copy(ocif);
    cif_modify(ncif);
    ifp->if_carp = ncif;
    netmsg_service_sync();
    /* when we reach here all users of old if_carp (ocif) are done */
    cif_free(ocif)

2 years agopst(4): Add a missing contigfree().
Sascha Wildner [Mon, 9 Apr 2012 02:37:14 +0000 (04:37 +0200)]
pst(4): Add a missing contigfree().

2 years agomps(4): Add a missing kfree().
Sascha Wildner [Mon, 9 Apr 2012 01:31:45 +0000 (03:31 +0200)]
mps(4): Add a missing kfree().

2 years agokernel: Remove NULL checks after kmalloc() with M_WAITOK.
Sascha Wildner [Sun, 8 Apr 2012 23:28:51 +0000 (01:28 +0200)]
kernel: Remove NULL checks after kmalloc() with M_WAITOK.

2 years agoacpi_hp(4): Fix some previously overlooked issues.
Sascha Wildner [Sun, 8 Apr 2012 22:29:44 +0000 (00:29 +0200)]
acpi_hp(4): Fix some previously overlooked issues.

2 years agoIPXrouted(8): Re-indent some code to make the outer for() better visible.
Sascha Wildner [Sun, 8 Apr 2012 19:19:02 +0000 (21:19 +0200)]
IPXrouted(8): Re-indent some code to make the outer for() better visible.

2 years agocarp: Lockless MPSAFE step 9 of many
Sepherosa Ziehau [Sat, 7 Apr 2012 14:17:44 +0000 (22:17 +0800)]
carp: Lockless MPSAFE step 9 of many

Carry out timeout processing in netisr0

2 years agoDocument which drivers are using MSI and how it can be disabled.
Sascha Wildner [Sat, 7 Apr 2012 13:18:59 +0000 (15:18 +0200)]
Document which drivers are using MSI and how it can be disabled.

2 years agokernel/pci: Adjust MSI allocation verbose message a bit.
Sascha Wildner [Sat, 7 Apr 2012 12:36:54 +0000 (14:36 +0200)]
kernel/pci: Adjust MSI allocation verbose message a bit.

2 years agoarcmsr(4): Use the available dev variable (like bus_release_resource()).
Sascha Wildner [Sat, 7 Apr 2012 11:59:15 +0000 (13:59 +0200)]
arcmsr(4): Use the available dev variable (like bus_release_resource()).

2 years agoarcmsr(4): Add MODULE_VERSION.
Sascha Wildner [Sat, 7 Apr 2012 10:51:27 +0000 (12:51 +0200)]
arcmsr(4): Add MODULE_VERSION.

2 years agoarcmsr(4): Use MSI if it is supported by the device.
Sascha Wildner [Sat, 7 Apr 2012 10:50:02 +0000 (12:50 +0200)]
arcmsr(4): Use MSI if it is supported by the device.