dragonfly.git
6 years agoFix some printf()s.
Sascha Wildner [Fri, 7 Jun 2013 16:50:40 +0000 (18:50 +0200)]
Fix some printf()s.

6 years agobsd-family-tree: Sync with FreeBSD (adds NetBSD 6.1 and FreeBSD 8.4).
Sascha Wildner [Sat, 8 Jun 2013 08:31:53 +0000 (10:31 +0200)]
bsd-family-tree: Sync with FreeBSD (adds NetBSD 6.1 and FreeBSD 8.4).

6 years agosocket: Prioritiries rcvd message
Sepherosa Ziehau [Sat, 8 Jun 2013 03:21:04 +0000 (11:21 +0800)]
socket: Prioritiries rcvd message

6 years agoaltq: Add byte based limit and counter
Sepherosa Ziehau [Fri, 7 Jun 2013 09:18:33 +0000 (17:18 +0800)]
altq: Add byte based limit and counter

- This avoids having too much mbufs sitting on the send queue for TSO
  capable devices.  Even by default, DragonFly has already limited TSO
  burst to at most 4 TCP segments, for TSO capable devices, there still
  could be 4 times mbufs sitting on the send queue compared with non-TSO
  capable devices.
- This paves way for the AQMs, which require send queue byte counter,
  e.g. CoDel.

For ethernet devices, the byte based limit is (1514 x max_packets).

For other devices, e.g. pseudo devices, the byte based limit is
(MCLBYTES x max_packets).

6 years agokernel - Enable ncp shared locks by default.
Matthew Dillon [Fri, 7 Jun 2013 23:00:02 +0000 (16:00 -0700)]
kernel - Enable ncp shared locks by default.

* Change debug.ncp_shared_lock_disable to 0, enabling ncp shared
  locks in master by default.

6 years agokernel - Fix a case in the path lookup that results in high latencies
Matthew Dillon [Fri, 7 Jun 2013 22:13:21 +0000 (15:13 -0700)]
kernel - Fix a case in the path lookup that results in high latencies

* When many cpu cores are looking up paths with matching components,
  so as when doing a parallel buildworld or a parallel build of
  /usr/src/lib/libc, the namecache's shared/exclusive lock mechanic
  can break-down and create a chain-reaction of exclusive locks which
  destroys performance.

* When attempting to get a shared lock we were previously backing-down to
  an exclusive lock if the shared lock could not be obtained non-blocking.
  The original code could cause a chain-reaction of unnecessary exclusive
  locks.

  Instead, we now only back-down to an exclusive lock only if the current
  thread already holds an exclusive lock on the same namecache entry
  or if we detect that another thread is trying to get an exclusive lock.
  Otherwise we fall-through and obtain the shared lock in a blocking manner.

Reported-by: ftigeot
6 years agowlan: 802.11 devices and vap is not ready for ALTQ packet schedulers
Sepherosa Ziehau [Fri, 7 Jun 2013 08:01:06 +0000 (16:01 +0800)]
wlan: 802.11 devices and vap is not ready for ALTQ packet schedulers

Current power saving queue inject and send queue flush code do not
work with ALTQ packet schedulers.

6 years agoaltq: Update comment
Sepherosa Ziehau [Fri, 7 Jun 2013 07:37:16 +0000 (15:37 +0800)]
altq: Update comment

6 years agoaltq: Make sure mbuf contains pkthdr in enqueue method
Sepherosa Ziehau [Fri, 7 Jun 2013 07:18:59 +0000 (15:18 +0800)]
altq: Make sure mbuf contains pkthdr in enqueue method

6 years agortchange: Don't migrate CPU when change routes ifaddr; use rt_threads
Sepherosa Ziehau [Fri, 7 Jun 2013 06:40:59 +0000 (14:40 +0800)]
rtchange: Don't migrate CPU when change routes ifaddr; use rt_threads

6 years agoin_ifadown: Don't migrate CPU when delete addr routes; use rt_threads
Sepherosa Ziehau [Fri, 7 Jun 2013 06:18:16 +0000 (14:18 +0800)]
in_ifadown: Don't migrate CPU when delete addr routes; use rt_threads

6 years agoif_detach: Don't migrate CPU when delete interface routes; use rt_threads
Sepherosa Ziehau [Fri, 7 Jun 2013 02:56:42 +0000 (10:56 +0800)]
if_detach: Don't migrate CPU when delete interface routes; use rt_threads

6 years ago<sys/cdefs.h>: Bring in a compatibility macro for C11's _Static_assert.
Sascha Wildner [Thu, 6 Jun 2013 18:45:04 +0000 (20:45 +0200)]
<sys/cdefs.h>: Bring in a compatibility macro for C11's _Static_assert.

Apparently gcc47 has support outside of C11, but for processing our
<complex.h> with gcc44, this is necessary.

Taken-from: FreeBSD

6 years agogcc44: Bring back an accidentally removed file.
Sascha Wildner [Thu, 6 Jun 2013 18:27:46 +0000 (20:27 +0200)]
gcc44: Bring back an accidentally removed file.

6 years agogcc: Stop installing GCC's tgmath.h to /usr/libdata/gcc{44,47}.
Sascha Wildner [Thu, 6 Jun 2013 18:20:10 +0000 (20:20 +0200)]
gcc: Stop installing GCC's tgmath.h to /usr/libdata/gcc{44,47}.

Before this commit, the recently imported <tgmath.h> (in
/usr/include when installed) wasn't taken because of GCC's
own copies in /usr/libdata/gcc{44,47}, which comes first
in the compiler's internal include search path.

Since it is a standard header, we want our version to be
taken, so stop installing GCC's version and remove it via
'make upgrade'.

There are no other standard headers in /usr/libdata/gcc{44,47}.

6 years ago<sys/cdefs.h>: Add some macros needed for our <tgmath.h>.
Sascha Wildner [Thu, 6 Jun 2013 18:11:04 +0000 (20:11 +0200)]
<sys/cdefs.h>: Add some macros needed for our <tgmath.h>.

Taken-from: FreeBSD

6 years agokernel - Fix several bugs in FAIRQ
Matthew Dillon [Thu, 6 Jun 2013 06:52:02 +0000 (23:52 -0700)]
kernel - Fix several bugs in FAIRQ

* Fix several possible overflows due to high-valued machclk_freq constants
  and uint's that should have been uint64's.  Among other things this fixes
  bandwidth calculations that could previously get into weird states.

* Refactor the fairq_selectq() routine to fix numerous cases where the
  head of the queue could get advanced multiple times without pulling a
  packet off the queue, causing packets in queues to be excessively
  delayed.

Both of these were rather serious issues.  Operation is far smoother with
the bugs fixed.

6 years agokernel - Increase IFQ_MAXLEN from 50 to 250
Matthew Dillon [Thu, 6 Jun 2013 04:02:18 +0000 (21:02 -0700)]
kernel - Increase IFQ_MAXLEN from 50 to 250

* IFQ_MAXLEN is used as the default for numerous pseudo-network drivers.
  The value 50 is just too low.  Increase to 250.

6 years ago/usr/Makefile: Add pkg-bootstrap target
John Marino [Wed, 5 Jun 2013 23:51:47 +0000 (01:51 +0200)]
/usr/Makefile: Add pkg-bootstrap target

New snapshots provide a pre-built "pkg" tool so pre-build dports
binaries can be installed easily.  However, upgrades from older releases
won't have "pkg" available, and for those systems they had to download
the entire dports repository just to build pkg in order to take advantage
of the available pre-built packages.

To fix this situation, and the situation where /usr/local/sbin/pkg is
lost for any reason, a new make target has been added to /usr/Makefile:
pkg-bootstrap

The pkg-bootstrap target will download a pre-built "pkg-static" program
along with pkg.conf and all the man pages.  In reality, pkg-static is
only used for one command, and that is to install a full "pkg" program
from the dragonfly repository.

If "pkg.conf" already exists, a message will instruct the user to move
it first.  If /usr/local/sbin/pkg already exists, the target won't work
and it won't even show as an option.

After pkg-static is installed, the user will be instructed to type
"rehash; pkg-static install -y pkg; rehash" which should result in the
system having the latest pkg on their system and thus can proceed to
install packages normally.

6 years agohammer2 - Adjust newfs_hammer2 for recent media changes
Matthew Dillon [Tue, 4 Jun 2013 21:42:52 +0000 (14:42 -0700)]
hammer2 - Adjust newfs_hammer2 for recent media changes

* Adjust newfs_hammer2 for recent media changes.  The freemap is now based
  in the volume header with a blockref set instead of a single blockref.

6 years agohammer2 - Add 'hammer2 freemap' directive
Matthew Dillon [Tue, 4 Jun 2013 21:41:50 +0000 (14:41 -0700)]
hammer2 - Add 'hammer2 freemap' directive

* Beef up 'show' and add the 'hammer2 freemap' directive to dump the
  freemap.

6 years agohammer2 - freemap part 3 - group by allocation size
Matthew Dillon [Tue, 4 Jun 2013 21:29:20 +0000 (14:29 -0700)]
hammer2 - freemap part 3 - group by allocation size

* Each freemap leaf represents ~2MB worth of storage.  Assign a radix to
  each leaf, limiting allocations from that leaf to that radix.

  This primarily results in inodes being grouped together, improving
  the performance for find, ls or other topological scans.  We could
  improve this but for now we'll stick with it as-is.

  This mechanic also allows us to use cluster_read().  This function is
  used for everything except volume-header and freemap elements.

* More formally handle logical sizes vs allocation sizes vs device I/O
  sizes.  For example, a 1KB inode allocates 1KB using 16KB device I/O's.

* Beef up the sysctl I/O counters.

6 years agorpc.statd(8): Fix warnings and bump WARNS to 6.
Sascha Wildner [Tue, 4 Jun 2013 17:27:16 +0000 (19:27 +0200)]
rpc.statd(8): Fix warnings and bump WARNS to 6.

6 years agoifsubque: Cut ties with ifqueue
Sepherosa Ziehau [Tue, 4 Jun 2013 09:36:44 +0000 (17:36 +0800)]
ifsubque: Cut ties with ifqueue

6 years agoifq: Add ifsq_poll_pktlen, which calculate the polled mbuf's length
Sepherosa Ziehau [Tue, 4 Jun 2013 09:09:07 +0000 (17:09 +0800)]
ifq: Add ifsq_poll_pktlen, which calculate the polled mbuf's length

Calculating the polled mbuf's length w/o ALTQ lock is not MPSAFE.

6 years agoifq/classic: Add pkthdr assertion
Sepherosa Ziehau [Tue, 4 Jun 2013 08:55:19 +0000 (16:55 +0800)]
ifq/classic: Add pkthdr assertion

6 years agoaltq: Remove the unused parameter 'mpolled' from dequeue method
Sepherosa Ziehau [Tue, 4 Jun 2013 08:24:48 +0000 (16:24 +0800)]
altq: Remove the unused parameter 'mpolled' from dequeue method

6 years agocam(3): Fix a wrong check and bump WARNS to 2.
Sascha Wildner [Sat, 1 Jun 2013 10:36:34 +0000 (12:36 +0200)]
cam(3): Fix a wrong check and bump WARNS to 2.

6 years agoifq: Remove the unused parameter 'mpolled' from ifq dequeue interface
Sepherosa Ziehau [Tue, 4 Jun 2013 02:00:27 +0000 (10:00 +0800)]
ifq: Remove the unused parameter 'mpolled' from ifq dequeue interface

The ifq_poll() -> ifq_dequeue() model is not MPSAFE, and mpolled has
not been used, i.e. set to NULL, for years; time to let it go.

6 years agomath.3/tgmath.3: Bump dates and fix minor mdoc issues.
Sascha Wildner [Mon, 3 Jun 2013 21:32:24 +0000 (23:32 +0200)]
math.3/tgmath.3: Bump dates and fix minor mdoc issues.

6 years agorconfig(8): Stop creating /usr/pkg/etc/mk.conf from the scripts.
Sascha Wildner [Mon, 20 May 2013 13:02:40 +0000 (15:02 +0200)]
rconfig(8): Stop creating /usr/pkg/etc/mk.conf from the scripts.

6 years agoAdd FreeBSD's <tgmath.h> tests.
Sascha Wildner [Mon, 3 Jun 2013 18:04:45 +0000 (20:04 +0200)]
Add FreeBSD's <tgmath.h> tests.

6 years agoAdd FreeBSD's libm tests.
Sascha Wildner [Sun, 2 Jun 2013 20:50:54 +0000 (22:50 +0200)]
Add FreeBSD's libm tests.

6 years agolibm: Fix an MLINKS typo.
Sascha Wildner [Mon, 3 Jun 2013 17:02:24 +0000 (19:02 +0200)]
libm: Fix an MLINKS typo.

6 years ago<complex.h>: Allow CMPLX CMPLXF CMPLXL in our default environment.
Sascha Wildner [Sun, 2 Jun 2013 20:49:18 +0000 (22:49 +0200)]
<complex.h>: Allow CMPLX CMPLXF CMPLXL in our default environment.

6 years agoBump library versions for libc and libm.
Peter Avalos [Sun, 2 Jun 2013 12:37:18 +0000 (05:37 -0700)]
Bump library versions for libc and libm.

I forgot to do this for the libm changes, and it's required since some
of the symbols moved around.

6 years agoStop overwriting /etc/services.
Peter Avalos [Sun, 2 Jun 2013 08:21:46 +0000 (01:21 -0700)]
Stop overwriting /etc/services.

Users should be able to configure their services database, so those
changes shouldn't be blown away when they do a make upgrade.

Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2564>

6 years agoAdd <tgmath.h>.
Peter Avalos [Sun, 2 Jun 2013 06:51:25 +0000 (23:51 -0700)]
Add <tgmath.h>.

Obtained-from:   FreeBSD

6 years agoBring in FreeBSD's msun code for our libm.
Peter Avalos [Mon, 8 Apr 2013 22:04:50 +0000 (15:04 -0700)]
Bring in FreeBSD's msun code for our libm.

Our current libm is a mix of NetBSD and FreeBSD.  To ease
maintainability, sync with FreeBSD as requested by John Marino.

Obtained-from:   FreeBSD

6 years ago<iso646.h>: Avoid conflicts w/ C++ keywords.
Peter Avalos [Fri, 31 May 2013 11:18:28 +0000 (04:18 -0700)]
<iso646.h>: Avoid conflicts w/ C++ keywords.

Fix whitespace too.

Obtained-from:   FreeBSD

6 years agompt.4: Uncomment reference to mps(4).
Sascha Wildner [Sun, 2 Jun 2013 03:12:12 +0000 (05:12 +0200)]
mpt.4: Uncomment reference to mps(4).

6 years agobce.4: Remove unnecessary .Pp and trailing whitespace.
Sascha Wildner [Sun, 2 Jun 2013 02:28:18 +0000 (04:28 +0200)]
bce.4: Remove unnecessary .Pp and trailing whitespace.

6 years agompt(4): Use cam_calc_geometry() directly.
Sascha Wildner [Sun, 2 Jun 2013 02:08:34 +0000 (04:08 +0200)]
mpt(4): Use cam_calc_geometry() directly.

6 years agosigaltstack(2): Bring it closer to POSIX.
Sascha Wildner [Sat, 1 Jun 2013 19:05:30 +0000 (21:05 +0200)]
sigaltstack(2): Bring it closer to POSIX.

POSIX says that sigaltstack() shall return EINVAL if the "ss argument
is not a null pointer, and the ss_flags member pointed to by ss contains
flags other than SS_DISABLE".

6 years agokernel/mpt: Remove empty macros.
Sascha Wildner [Fri, 31 May 2013 19:54:34 +0000 (21:54 +0200)]
kernel/mpt: Remove empty macros.

6 years agokernel/mpt: Fix two operator precedence mistakes.
Sascha Wildner [Sun, 26 May 2013 19:59:06 +0000 (21:59 +0200)]
kernel/mpt: Fix two operator precedence mistakes.

6 years agoGive /usr/local/... precedence over /usr/pkg/... in various paths.
Sascha Wildner [Mon, 20 May 2013 12:50:45 +0000 (14:50 +0200)]
Give /usr/local/... precedence over /usr/pkg/... in various paths.

6 years agoroute: Remove the unused rt_addrinfo parameter from ifa_rtrequest
Sepherosa Ziehau [Fri, 31 May 2013 09:36:42 +0000 (17:36 +0800)]
route: Remove the unused rt_addrinfo parameter from ifa_rtrequest

6 years agokernel - Fix TDF_NOFAULT issue related to vm.read_shortcut_enable.
Matthew Dillon [Fri, 31 May 2013 06:16:29 +0000 (23:16 -0700)]
kernel - Fix TDF_NOFAULT issue related to vm.read_shortcut_enable.

* TDF_NOFAULT was not preventing vm_fault() from calling vm_wait_pfault(),
  which could result in a deadlock in the read_shortcut path.  A combination
  of a low-memory situation plus the read_shortcut hitting the vm_fault
  sequence from uiomove_nofault().

6 years agoCorrect BSD License clause numbering from 1-2-4 to 1-2-3.
Justin C. Sherrill [Fri, 31 May 2013 00:27:15 +0000 (20:27 -0400)]
Correct BSD License clause numbering from 1-2-4 to 1-2-3.

Apparently everyone's doing it:
http://svnweb.freebsd.org/base?view=revision&revision=251069

Submitted-by: "Eitan Adler" <lists at eitanadler.com>
6 years agocpdup - roll 1.18 for ports consumers
Matthew Dillon [Thu, 30 May 2013 20:54:44 +0000 (13:54 -0700)]
cpdup - roll 1.18 for ports consumers

* Add the -n option.  This is the not-for-real option.  cpdup will go through
  the motions but not actually take any action.  Useful for validating a
  topology without modifying it, e.g. 'cpdup -n -v -VV source target'.

* Fix clang static/global and alignment warnings

* Bump rev to 1.18

* Porters please note that this release has added an __aligned(n)
  directive to two structures.  BSDs and linux's should be able to
  handle this no-problem but just like __printflike() it is a bit
  of a departure from standard.

* Ports URL: fetch http://apollo.backplane.com/FreeBSDPorts/cpdup-1.18.tar.gz

Submitted-by: (static/global fixes) "Eitan Adler" <lists@eitanadler.com>
Submitted-by: (n-option & alignment fixes) dillon
Testing-by: "Eitan Adler" <lists@eitanadler.com>
6 years agoem/emx: Unbreak vlan settings
Sepherosa Ziehau [Thu, 30 May 2013 12:33:21 +0000 (20:33 +0800)]
em/emx: Unbreak vlan settings

Obtained-from: FreeBSD

6 years agobce.4: Fix wording and typos in a number of places.
Sascha Wildner [Thu, 30 May 2013 09:55:55 +0000 (11:55 +0200)]
bce.4: Fix wording and typos in a number of places.

6 years agovmstat: Update man page for the -v
Sepherosa Ziehau [Thu, 30 May 2013 09:57:32 +0000 (17:57 +0800)]
vmstat: Update man page for the -v

6 years agobnx: Add comment about how the RSS redirect table is configured
Sepherosa Ziehau [Thu, 30 May 2013 09:52:10 +0000 (17:52 +0800)]
bnx: Add comment about how the RSS redirect table is configured

6 years agobce: Update man page
Sepherosa Ziehau [Thu, 30 May 2013 09:48:50 +0000 (17:48 +0800)]
bce: Update man page

6 years agoevtranalyze(1): Move it to using ploticus from dports.
Sascha Wildner [Mon, 20 May 2013 19:00:00 +0000 (21:00 +0200)]
evtranalyze(1): Move it to using ploticus from dports.

6 years agokernel/kern_time.c: Mark the hack to not settimeofday(0) with XXX.
Sascha Wildner [Mon, 20 May 2013 18:54:59 +0000 (20:54 +0200)]
kernel/kern_time.c: Mark the hack to not settimeofday(0) with XXX.

6 years agoSwitch to /usr/local/... paths in several files.
Sascha Wildner [Mon, 20 May 2013 18:53:17 +0000 (20:53 +0200)]
Switch to /usr/local/... paths in several files.

6 years agoPoint to more neutral, yet dports biased directories from manual pages.
Sascha Wildner [Thu, 30 May 2013 08:27:16 +0000 (10:27 +0200)]
Point to more neutral, yet dports biased directories from manual pages.

Most of them are identical in pkgsrc.

6 years agocarp: Fix routes reset issue
Sepherosa Ziehau [Wed, 29 May 2013 12:41:40 +0000 (20:41 +0800)]
carp: Fix routes reset issue

Before this commit, routes related to carp or carp backing device were
reset, i.e. only prefix route was left, when carp state changed, e.g.
carp is down.

This commit fixes this routes reset issue by replacing the carp or carp
device routes' rt_ifa and rt_ifp with proper ifaddr and ifnet, instead
of discarding the old routes and installing the new prefix route.

Reported-by: robgar
6 years agocarp: Take netmask into consideration when picking up backing address
Sepherosa Ziehau [Wed, 29 May 2013 09:36:08 +0000 (17:36 +0800)]
carp: Take netmask into consideration when picking up backing address

6 years agocarp: Perfer addresses with prefix route installed.
Sepherosa Ziehau [Mon, 27 May 2013 14:24:50 +0000 (22:24 +0800)]
carp: Perfer addresses with prefix route installed.

6 years agopkg_radd - update to also handle dports
Matthew Dillon [Thu, 30 May 2013 02:24:40 +0000 (19:24 -0700)]
pkg_radd - update to also handle dports

* Detect that dports has been installed.  dports takes priority over
  pkgsrc in this situation.

* For dports we just 'pkg install ...'.  The script also warns if the
  /usr/local/etc/pkg.conf file has not been installed.

6 years agonrelease - Set dports default, add dports defaults
Matthew Dillon [Wed, 29 May 2013 22:45:30 +0000 (15:45 -0700)]
nrelease - Set dports default, add dports defaults

* Default DPORTS_PATH to /usr/dports.

* Add dports defaults for the git build to match the git we intend to
  prepackage with the installation.

6 years agonrelease: Switch over to dports for all packages.
Sascha Wildner [Sun, 19 May 2013 12:12:42 +0000 (14:12 +0200)]
nrelease: Switch over to dports for all packages.

6 years agofix MXCSR default value
Markus Pfeiffer [Sat, 18 May 2013 14:56:47 +0000 (14:56 +0000)]
fix MXCSR default value

XEN fails to initialise its vcpus to behave like actual cpus. One
instance of this is that the MXCSR is not setup to the default
value documented in as documented in AMD64 Architecture
Programmer's Manual Volume 1: Application Programming, Section
Section 4.3.2

6 years agophantasia(6): Fix two operator precedence mistakes.
Sascha Wildner [Sun, 26 May 2013 19:59:37 +0000 (21:59 +0200)]
phantasia(6): Fix two operator precedence mistakes.

6 years agolibc/citrus: Remove unneeded check (n is never < 0).
Sascha Wildner [Sun, 26 May 2013 20:28:36 +0000 (22:28 +0200)]
libc/citrus: Remove unneeded check (n is never < 0).

6 years agolibc/citrus: Fix an assertion (& becomes &&).
Sascha Wildner [Sun, 26 May 2013 20:36:13 +0000 (22:36 +0200)]
libc/citrus: Fix an assertion (& becomes &&).

6 years agojme.4: Fix some wording and typos.
Sascha Wildner [Sun, 26 May 2013 12:27:41 +0000 (14:27 +0200)]
jme.4: Fix some wording and typos.

6 years agomrouted(8): Fix a wrong check that was always false.
Sascha Wildner [Sun, 26 May 2013 09:29:41 +0000 (11:29 +0200)]
mrouted(8): Fix a wrong check that was always false.

6 years agofetch(1): Fix a wrong check that was always false.
Sascha Wildner [Sun, 26 May 2013 09:29:02 +0000 (11:29 +0200)]
fetch(1): Fix a wrong check that was always false.

6 years agolibkvm: Remove a redundant check.
Sascha Wildner [Sun, 26 May 2013 09:27:16 +0000 (11:27 +0200)]
libkvm: Remove a redundant check.

6 years agosplit(1): Add -d which allows a numeric suffix instead of an alphabetic one.
Sascha Wildner [Sat, 25 May 2013 20:03:07 +0000 (22:03 +0200)]
split(1): Add -d which allows a numeric suffix instead of an alphabetic one.

Submitted-by: Eitan Adler <lists@eitanadler.com>
Taken-from:   FreeBSD (r250432, r250882)

6 years agosplit(1): Add missing static declarations.
Sascha Wildner [Sat, 25 May 2013 19:24:04 +0000 (21:24 +0200)]
split(1): Add missing static declarations.

Submitted-by: Eitan Adler <lists@eitanadler.com>
6 years agosplit(1): Retain previous error message.
Sascha Wildner [Sat, 25 May 2013 12:55:22 +0000 (14:55 +0200)]
split(1): Retain previous error message.

6 years agosplit(1): Use dehumanize_number(3) for -b.
Sascha Wildner [Sat, 25 May 2013 12:46:09 +0000 (14:46 +0200)]
split(1): Use dehumanize_number(3) for -b.

6 years agojme: Update manpage
Sepherosa Ziehau [Fri, 24 May 2013 09:38:43 +0000 (17:38 +0800)]
jme: Update manpage

6 years agoBring in a dports(7) manual page.
Sascha Wildner [Thu, 23 May 2013 19:18:03 +0000 (21:18 +0200)]
Bring in a dports(7) manual page.

It is based on FreeBSD's ports(7) manpage with some adjustments.

6 years agohier.7: Adjust date.
Sascha Wildner [Thu, 23 May 2013 19:11:18 +0000 (21:11 +0200)]
hier.7: Adjust date.

6 years agohier.7: Add some bits about /usr/dports and /usr/local.
Sascha Wildner [Thu, 23 May 2013 19:09:02 +0000 (21:09 +0200)]
hier.7: Add some bits about /usr/dports and /usr/local.

6 years agoAdd /usr/local/... to various paths.
Sascha Wildner [Mon, 20 May 2013 12:43:30 +0000 (14:43 +0200)]
Add /usr/local/... to various paths.

6 years agopolling: Update manpage
Sepherosa Ziehau [Thu, 23 May 2013 13:14:41 +0000 (21:14 +0800)]
polling: Update manpage

6 years agonetgraph7/iface: Second parameter to ifq_dequeue should be NULL
Sepherosa Ziehau [Thu, 23 May 2013 09:50:45 +0000 (17:50 +0800)]
netgraph7/iface: Second parameter to ifq_dequeue should be NULL

6 years ago802.11: vap's if_snd is _not_ ALTQ ready
Sepherosa Ziehau [Thu, 23 May 2013 09:37:42 +0000 (17:37 +0800)]
802.11: vap's if_snd is _not_ ALTQ ready

6 years agonetgraph7/source: ifnet.if_snd is not ifqueue
Sepherosa Ziehau [Thu, 23 May 2013 09:33:42 +0000 (17:33 +0800)]
netgraph7/source: ifnet.if_snd is not ifqueue

6 years agoifq: Expand IF queue operation macros
Sepherosa Ziehau [Thu, 23 May 2013 09:13:52 +0000 (17:13 +0800)]
ifq: Expand IF queue operation macros

This prepares for the byte based queue limit and "rough priority queues"

6 years agoip/udp: Make input source address and source port saving MPSAFE
Sepherosa Ziehau [Thu, 23 May 2013 07:29:24 +0000 (15:29 +0800)]
ip/udp: Make input source address and source port saving MPSAFE

Change the global variable udp_in, udp_in6 and udp_ip6 into stack variable
and passing them around.  This should unbreak applications which depend
on received datagrams' source address or source port.

6 years agoudp: Fix IP source address setting for multicast address bound socket (2)
Sepherosa Ziehau [Thu, 23 May 2013 05:35:07 +0000 (13:35 +0800)]
udp: Fix IP source address setting for multicast address bound socket (2)

Source address should _not_ be set to INADDR_ANY in udp_output(), which
will make udp_output() calculate wrong pseudo header checksum.  Instead
of letting IP to select the source address, we extend in_pcbladdr() to
always locate the laddr, and use this function to find the source address
in udp_output().

6 years ago<sys/cdefs.h>: Simplify the _Noreturn compatibility macro.
Sascha Wildner [Wed, 22 May 2013 18:15:23 +0000 (20:15 +0200)]
<sys/cdefs.h>: Simplify the _Noreturn compatibility macro.

Our g++ doesn't support [[noreturn]] yet. We might use [[gnu::noreturn]]
here for now, but thinking about it, simpler is better, so just make it
__dead2 for anything that doesn't claim to be C11.

Buildworld-breakage-originally-pointed-out-by: sephe
6 years agopf: Ask caller to recalculate packet hash, if nat/binat/rdr happens
Sepherosa Ziehau [Wed, 22 May 2013 13:27:41 +0000 (21:27 +0800)]
pf: Ask caller to recalculate packet hash, if nat/binat/rdr happens

This unbreaks redirect (rdr) to local address.

DragonFly-bug: http://bugs.dragonflybsd.org/issues/2133

6 years ago<sys/cdefs.h>: Fix buildworld until I understand it better.
Sascha Wildner [Wed, 22 May 2013 08:32:27 +0000 (10:32 +0200)]
<sys/cdefs.h>: Fix buildworld until I understand it better.

6 years agosocket: Extend SO_REUSEPORT to distribute workload to available sockets
Sepherosa Ziehau [Mon, 13 May 2013 13:48:10 +0000 (21:48 +0800)]
socket: Extend SO_REUSEPORT to distribute workload to available sockets

The idea is from Linux's recently added SO_REUSEPORT support from Google:
https://lwn.net/Articles/542629/
(thank aggelos@ for pointing it to me)

In DragonFly, SO_REUSEPORT is already supported.  However, the original
support only allows the first wildcard address bound socket or the last
non-wildcard address bound socket to receive input, e.g. accept(2) on TCP
socket or receive datagrams on UDP socket; the rest of the sockets bound
to the same port will _not_ get any input.

In this commit, we extend SO_REUSEPORT to allow all sockets bound to the
same address and same port to receive input based on the input packet's
hash, so the workload, e.g. accept(2) or datagram reception, could be
evenly distributed among different sockets (imagine each socket is
handled by one process/thread).  This extension could also reduce the
contention from user space on TCP listen socket's so_comp or UDP socket's
so_rcv, when it is compared with the traditinally and commonly used one
socket model.

The implementation details:
- Introduce inp_localgroup, which groups inpcbs bound to the same address
  and same port.
- Add inp_localgroup hash table to inpcbinfo.  This hash table is
  allocated only for protocols supporting SO_REUSEPORT extension.
  Currently only TCP and UDP support SO_REUSEPORT extension.
- When inpcb is inserted into inpcbinfo wildcard hash table, it is also
  inserted into the cooresponding inp_localgroup.
- Before locating inpcb from inpcbinfo wildcard hash table, we check
  inpcbinfo's inp_localgroup hash table first.  If there is a matching
  inp_localgroup, packet hash will be used to pick one of the inpcbs from
  the inp_localgroup, and this inpcb will be used for further processing
  on this packet.  Packet hash's bits (ncpus2_shift), which are used to
  dispatch packet to the proper netisr, are ignored, since they may
  introduce unfairness between inpcbs in the same inp_localgroup.
  Hash-threshold instead of modulo-N is used to pick the inpcb from the
  inpcbs in the same inp_localgroup (http://tools.ietf.org/html/rfc2992
  for hash-threshold and modulo-N).

 inp_localgroup
   hash table

  |    :     |
  +----------+      +--------------+      +--------------+
  |    79    |      |inp_localgroup|      |inp_localgroup|
  +----------+      +--------------+      +--------------+
  |    80    |----->|     *:80     |----->|192.168.2.1:80|
  +----------+      +--------------+      +--------------+
  |    81    |      |    inpcb1    |      |    inpcb4    |
  +----------+      +--------------+      +--------------+
  |    :     |      |    inpcb2    |<--+
                    +--------------+   |
                    |    inpcb3    |   |
                    +--------------+   |
                                       |  input SYN dst 10.0.0.1:80
                                       |
                                       |  15           3 2  0
                                       |  +-------------+---+
                                       |  |       hash      |
                                       |  +-------------+---+
                                       +--|<--  used -->| (ncpus == 8)

Limitation:
- Each inp_localgroup could hold at most 256 inpcbs, which probably
  should be enough.
- Jailed sockets will not be entered into inp_localgroup, since the
  original inpcb preference of in_pcblookup_hash() must be kept.
- Wildcard IPv4 mapped INET6 sockets will not be entered into
  inp_localgroup, since the original inpcb preference of
  in_pcblookup_hash() must be kept.
- If one of the sockets in the inp_localgroup is closed, e.g. the process
  handles the socket is crashed: For TCP, certain amount of TCP syncache
  may be dropped prematurely by syncache timeout and the sockets on the
  closed socket's so_comp are all closed.  For UDP, all of the datagrams
  on the closed socket's so_rcv are dropped.  However, these will happen
  even before this commit.

Sysctl nodes net.inet.tcp.reuseport_ext and net.inet.udp.reuseport_ext
are added to enable/disable this SO_REUSEPORT extension on TCP and UDP.
They are enabled by default.

6 years ago<stdlib.h>: Use _Noreturn for C11's quick_exit().
Sascha Wildner [Wed, 22 May 2013 04:53:17 +0000 (06:53 +0200)]
<stdlib.h>: Use _Noreturn for C11's quick_exit().

Taken-from: FreeBSD

6 years ago<sys/cdefs.h>: Add compatibility macros for C11's _Noreturn.
Sascha Wildner [Wed, 22 May 2013 04:52:08 +0000 (06:52 +0200)]
<sys/cdefs.h>: Add compatibility macros for C11's _Noreturn.

Taken-from: FreeBSD

6 years agotpm(4): Use __func__.
Sascha Wildner [Wed, 22 May 2013 03:07:01 +0000 (05:07 +0200)]
tpm(4): Use __func__.

6 years agotpm(4): Fix building with TPM_DEBUG.
Sascha Wildner [Wed, 22 May 2013 02:30:33 +0000 (04:30 +0200)]
tpm(4): Fix building with TPM_DEBUG.

6 years agointr: Fix comment
Sepherosa Ziehau [Wed, 22 May 2013 01:24:37 +0000 (09:24 +0800)]
intr: Fix comment

Reported-by: haesbaert@haesbaert.org
6 years agosili(4): Maximum I/O size is 256KB
Fran├žois Tigeot [Sat, 4 May 2013 09:00:55 +0000 (11:00 +0200)]
sili(4): Maximum I/O size is 256KB