dragonfly.git
10 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.

10 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.

10 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.

10 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.

10 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.

10 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.

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

10 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.

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

10 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

10 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.

10 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.

10 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.

10 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.

10 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.

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

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

10 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.

10 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.

10 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>

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

Obtained-from:   FreeBSD

10 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

10 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

10 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).

10 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.

10 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.

10 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".

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

10 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.

10 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.

10 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

10 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().

10 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>
10 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>
10 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

10 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.

10 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

10 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

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

10 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.

10 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.

10 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.

10 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.

10 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
10 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

10 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.

10 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.

10 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.

10 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.

10 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

10 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.

10 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).

10 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 &&).

10 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.

10 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.

10 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.

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

10 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)

10 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>
10 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.

10 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.

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

10 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.

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

10 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.

10 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.

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

10 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

10 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

10 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

10 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"

10 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.

10 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().

10 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
10 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

10 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.

10 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.

10 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

10 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

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

10 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.

10 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
10 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

10 years agokernel: Add CLOCK_PROCESS_CPUTIME_ID (part 2)
François Tigeot [Tue, 21 May 2013 09:38:45 +0000 (11:38 +0200)]
kernel: Add CLOCK_PROCESS_CPUTIME_ID (part 2)

10 years agokernel: Add CLOCK_PROCESS_CPUTIME_ID
François Tigeot [Tue, 21 May 2013 08:45:13 +0000 (10:45 +0200)]
kernel: Add CLOCK_PROCESS_CPUTIME_ID

10 years agoixgbe: On transmit path, prepend the unconsumed mbuf to the if_snd
Sepherosa Ziehau [Tue, 21 May 2013 08:53:29 +0000 (16:53 +0800)]
ixgbe: On transmit path, prepend the unconsumed mbuf to the if_snd

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

10 years agowhereis(1): Search /usr/dports too.
Sascha Wildner [Mon, 20 May 2013 12:17:10 +0000 (14:17 +0200)]
whereis(1): Search /usr/dports too.

10 years agokernel -- x86_64: Do not set reserved bits in CR3.
Aggelos Economopoulos [Mon, 20 May 2013 18:56:07 +0000 (20:56 +0200)]
kernel -- x86_64: Do not set reserved bits in CR3.

The x86-64 platform code was setting PG_V, PG_U, and PG_RW bits in the
CR3 register. While the bits were supposed to cleared, Intel and AMD
hardware were ignoring them. Other x86-64 implementations, in
particular the software emulator in Linux's KVM, do check that these
reserved bits are zero.

Fixes issue running DragonFly x86_64 on KVM hosts without
two-dimensional (nested) paging.

Tested on a variety of real hardware (AMD FX(tm)-8150, c2q 6600, others)
and VM configurations (KVM on Intel/AMD hosts, Xen).

Committing-on-behalf-of: Venkatesh Srinivas <vsrinivas@ops101.org>
Reported-by: aggelos@, c.turner1, others.
Testing-by: aggelos@, swildner@, mneumann@, ftigeot@, profmakx@, Enjolras
Bug: 2561

10 years agosyncache: Avoid unnecessary tcpcb checking during syncache dropping
Sepherosa Ziehau [Mon, 20 May 2013 13:55:41 +0000 (21:55 +0800)]
syncache: Avoid unnecessary tcpcb checking during syncache dropping

10 years agosyncache: Avoid NULL accessing to tcpcb of the to-be-dropped syncache
Sepherosa Ziehau [Mon, 20 May 2013 13:44:32 +0000 (21:44 +0800)]
syncache: Avoid NULL accessing to tcpcb of the to-be-dropped syncache

It is possible that the syncache tcpcb is NULL when overflow happens,
e.g. the corresponding listen socket was closed but the timeout has
not recollected the staled syncache yet.

10 years agosetkey(8): Use '#!/usr/bin/env' to find perl in a script.
Sascha Wildner [Mon, 20 May 2013 09:40:14 +0000 (11:40 +0200)]
setkey(8): Use '#!/usr/bin/env' to find perl in a script.

10 years agoinstaller: Remove pnpinfo configuration option.
Sascha Wildner [Sun, 19 May 2013 14:05:10 +0000 (16:05 +0200)]
installer: Remove pnpinfo configuration option.

pnpinfo(8) is i386 only. Also, it's easy enough to review it by logging
in as root.

Suggested-by: ftigeot
10 years agoRemove /usr/pkg/xorg/... and /usr/X11R6/... from various paths/manpages.
Sascha Wildner [Mon, 20 May 2013 06:40:57 +0000 (08:40 +0200)]
Remove /usr/pkg/xorg/... and /usr/X11R6/... from various paths/manpages.

10 years agomsk: Disable MSI by default.
Sepherosa Ziehau [Mon, 20 May 2013 08:43:39 +0000 (16:43 +0800)]
msk: Disable MSI by default.

For certain chips, enabling it will cause watchdog timeout and the chip
may not be able to work again w/o rebooting.

Reported-by: ferz
10 years agoUse '#!/usr/bin/env' to find perl in some scripts.
Sascha Wildner [Sun, 19 May 2013 16:18:58 +0000 (18:18 +0200)]
Use '#!/usr/bin/env' to find perl in some scripts.

10 years agobsd-family-tree: Sync with FreeBSD.
Sascha Wildner [Sat, 18 May 2013 10:48:47 +0000 (12:48 +0200)]
bsd-family-tree: Sync with FreeBSD.

10 years agobmake: Fix wildcard srcs for phony targets
John Marino [Sat, 18 May 2013 20:48:24 +0000 (22:48 +0200)]
bmake: Fix wildcard srcs for phony targets

Bug fix created by Simon G. at BSDcan 2013 when Baptiste mentioned the
incompatiblity with legacy make seen during adding support to ports for
bmake.  There is no impaet for world/kernel builds.

Taken-from: FreeBSD SVN 250773 (18 May 2013)

10 years agohammer2 - freemap part 2 - cleanup & performance pass
Matthew Dillon [Sat, 18 May 2013 01:17:47 +0000 (18:17 -0700)]
hammer2 - freemap part 2 - cleanup & performance pass

* Increase minimum I/O from 1K to 16K (HAMMER2_LBUFSIZE).

* Adjust some use cases, increasing the smallest indirect block to the
  minimum IO size 4K->16K.

* The BREF_TYPE_FREEMAP_LEAF bitmap is now embedded in the chain, allowing
  us to use the 256 byte bitmaps more safely.  As with inodes, a read-in
  involves using a larger buffer-cache buffer and then copying the data
  into the chain.

* Avoid unnecessary reads from disk when allocating blocks that are less
  than the minimum IO size.  If it is determined that the bitmap bits
  covering the minimum IO size are 0 (unallocated), we pre-validate the
  larger buffer cache buffer so the later bread() does not have to issue
  any actual reads.

  Pre-validation for allocations larger than or equal to the minimum IO
  size is already handled in the chain locking code.

  With this change, a cpdup into H2 will issue mostly writes and is able
  to avoid nearly all reads.

* Make some progress formalizing chain-embedded data.

10 years agolvm: Fix two wrong array indexes.
Sascha Wildner [Sat, 18 May 2013 01:16:29 +0000 (03:16 +0200)]
lvm: Fix two wrong array indexes.

Both files are not used by us. Just in case someone wants to play with
them.

10 years agohammer2 - freemap part 1 - initial block allocator and media support
Matthew Dillon [Fri, 17 May 2013 21:48:59 +0000 (14:48 -0700)]
hammer2 - freemap part 1 - initial block allocator and media support

* Freemap document (FREEMAP in this directory)

* temporarily turn off clustering until the freemap gets that capability
  (mixed buffer sizes can be adjacent atm).

* Remove the freemap_blockref[1] from the volume header and replace it
  with a blockset array (8 blockrefs).

* Implement dynamic creation of freemap nodes and leafs on an as-needed
  basis using the normal indirect block creation code.  Most of the standard
  file handling code is reused for the freemap support.

* Major cleanup of hammer2_chain.c, the duplication code, the indirect
  block creation and handling, and the chain->flag handling.