dragonfly.git
20 months ago<stdlib.h>: Adjust the visibility of our C11 functions.
Sascha Wildner [Thu, 9 Aug 2012 07:53:03 +0000 (09:53 +0200)]
<stdlib.h>: Adjust the visibility of our C11 functions.

20 months agoAdd at_quick_exit(3) and quick_exit(3) manual pages.
Sascha Wildner [Thu, 9 Aug 2012 07:50:14 +0000 (09:50 +0200)]
Add at_quick_exit(3) and quick_exit(3) manual pages.

Taken-from: FreeBSD

20 months agomdoc: Let us refer to C11 in manual pages with ".St -isoC-2011".
Sascha Wildner [Thu, 9 Aug 2012 07:40:10 +0000 (09:40 +0200)]
mdoc: Let us refer to C11 in manual pages with ".St -isoC-2011".

20 months agoxterm: Remove ability to restore console after man, less, etc.
John Marino [Wed, 8 Aug 2012 23:00:33 +0000 (01:00 +0200)]
xterm: Remove ability to restore console after man, less, etc.

Having a man page disappear before the read the end (if it indeed appears
at all) is pretty annoying.  Equally annoying is using the "more" command
on a file with few lines only to see nothing.  The default behavior of
xterm console had few fans.

This removes the smcup and rmcup codes from xterm-basic, the basis for
the xterm console definitions.  Now man pages are left on the screen
after viewing, and the pagers work as expected.

20 months agoemx: Status change is protected by main serializer
Sepherosa Ziehau [Thu, 9 Aug 2012 06:56:45 +0000 (14:56 +0800)]
emx: Status change is protected by main serializer

No need to hold all of the serializers during a status poll

20 months agocut(1): Add back -w (split on whitespace functionality).
Sascha Wildner [Thu, 9 Aug 2012 00:56:25 +0000 (02:56 +0200)]
cut(1): Add back -w (split on whitespace functionality).

Reported-by: Tim Darby <t+dfbsd@timdarby.net>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2385>

20 months agocut: Sync with FreeBSD
John Marino [Wed, 8 Aug 2012 21:22:08 +0000 (23:22 +0200)]
cut: Sync with FreeBSD

Addresses:
http://bugs.dragonflybsd.org/issues/2385
reported-by: Tim Darby

20 months agohpt27xx(4): Use NULL for pointers.
Sascha Wildner [Wed, 8 Aug 2012 13:42:58 +0000 (15:42 +0200)]
hpt27xx(4): Use NULL for pointers.

20 months agoAdd the hpt27xx(4) driver for HighPoint RocketRAID 27xx SAS controllers.
Sascha Wildner [Wed, 8 Aug 2012 12:18:22 +0000 (14:18 +0200)]
Add the hpt27xx(4) driver for HighPoint RocketRAID 27xx SAS controllers.

The manual page mentions the following adapters to be supported:

* RocketRAID 271x
* RocketRAID 272x
* RocketRAID 274x
* RocketRAID 276x
* RocketRAID 278x

I have tested it with a RocketRAID 2720.

Taken-from: FreeBSD

20 months agobnx: Disable RX max BDs based interrupt moderation
Sepherosa Ziehau [Wed, 8 Aug 2012 13:11:11 +0000 (21:11 +0800)]
bnx: Disable RX max BDs based interrupt moderation

The RX max coalesce BDs is limited to 255, which means that the chip will
generate ~5800 interrupts/s when it sinks 1.48Mpps tiny packets.  However,
interrupt rate at 4000Hz is already enough for the chip to sink 1.48Mpps
tiny packets, so ticks based RX interrupt moderation should be prefered.

20 months agobnx: Allow TX/RX max coalesce BDs to be 0; mainly for debugging
Sepherosa Ziehau [Wed, 8 Aug 2012 11:11:03 +0000 (19:11 +0800)]
bnx: Allow TX/RX max coalesce BDs to be 0; mainly for debugging

20 months agobnx: Correct debug messages
Sepherosa Ziehau [Wed, 8 Aug 2012 08:35:53 +0000 (16:35 +0800)]
bnx: Correct debug messages

20 months agobnx: Rearrange the code to check the spare TX descripors first
Sepherosa Ziehau [Wed, 8 Aug 2012 08:11:11 +0000 (16:11 +0800)]
bnx: Rearrange the code to check the spare TX descripors first

While im here, remove the useless fragmentation checksum code, which
is never supported by this driver

20 months agobnx: Increase spare TX descriptors to 33 to incorporate TSO segment
Sepherosa Ziehau [Wed, 8 Aug 2012 07:53:30 +0000 (15:53 +0800)]
bnx: Increase spare TX descriptors to 33 to incorporate TSO segment

20 months agoemx: emx_timer() only requires main serializer
Sepherosa Ziehau [Wed, 8 Aug 2012 05:31:56 +0000 (13:31 +0800)]
emx: emx_timer() only requires main serializer

20 months agoem/emx: Fix up detach path
Sepherosa Ziehau [Wed, 8 Aug 2012 05:21:20 +0000 (13:21 +0800)]
em/emx: Fix up detach path

- We could release management control only if PCI BAR is mapped
- Release multicase array memory

20 months agoemx: Increase spare TX descriprors to 33 incorporate TSO segment
Sepherosa Ziehau [Wed, 8 Aug 2012 04:18:26 +0000 (12:18 +0800)]
emx: Increase spare TX descriprors to 33 incorporate TSO segment

20 months agoemx: Make sure that mbuf is changed before busdma sync
Sepherosa Ziehau [Wed, 8 Aug 2012 04:09:51 +0000 (12:09 +0800)]
emx: Make sure that mbuf is changed before busdma sync

This should not be problem for emx, since it does not have any
busdma constraint thus no effective busdma sync will happen.

20 months agoigb: Make sure that mbuf is changed before busdma sync
Sepherosa Ziehau [Wed, 8 Aug 2012 03:49:41 +0000 (11:49 +0800)]
igb: Make sure that mbuf is changed before busdma sync

This should not be problem for igb, since it does not have any
busdma constraint thus no effective busdma sync will happen.

20 months agoalc: Stablize this driver and fix various porting overlooks
Sepherosa Ziehau [Mon, 6 Aug 2012 12:15:15 +0000 (20:15 +0800)]
alc: Stablize this driver and fix various porting overlooks

- Use ifnet serializer to protect driver data.  This should fix the
  various panics that were observed on the network output path.
- Fix busdma setup.
- Always allocate the descriptor rings and status blocks at the lower
  4GB.  The original way will require the RX/TX bufs to be located at
  the lower 4GB, which is a great waste of bounce buffers, cpu cycles
  and memory bandwidth.
- Don't mess up M_PKTHDR on RX path.
- Allocate mbuf w/ MB_WAIT on initialization path.
- Enable MSI by default.

20 months agoncurses: Fix pkgsrc check and use of ncurses
John Marino [Tue, 7 Aug 2012 11:35:26 +0000 (13:35 +0200)]
ncurses: Fix pkgsrc check and use of ncurses

Without the macro SET_NEED_WCHAR_H defined, the ncurses header will not
include wchar.h which is where the wint_t type is defined.  This breaks
any program loading ncurses.h without defining this macro because several
functions use the wint_t type.

Define wint_t as int if wchar.h isn't included.  This fixes the ncurses
check on several pkgsrc configuration checks and allows the package to
build with the system ncurses.

20 months agoarcmsr(4): Use cam_calc_geometry().
Sascha Wildner [Tue, 7 Aug 2012 07:19:35 +0000 (09:19 +0200)]
arcmsr(4): Use cam_calc_geometry().

20 months agompt(4): Fix a porting mistake I did in 6d259fc1.
Sascha Wildner [Tue, 7 Aug 2012 07:16:38 +0000 (09:16 +0200)]
mpt(4): Fix a porting mistake I did in 6d259fc1.

I left in both the code of the "#if __FreeBSD_version" as well as that of
its "#else". This caused the geometry to be calculated twice.

20 months agokernel/dsched: Add a version parameter to the DSCHED_POLICY_MODULE macro.
Sascha Wildner [Tue, 7 Aug 2012 01:31:59 +0000 (03:31 +0200)]
kernel/dsched: Add a version parameter to the DSCHED_POLICY_MODULE macro.

20 months agohptmv(4): Use cam_calc_geometry().
Sascha Wildner [Tue, 7 Aug 2012 01:25:51 +0000 (03:25 +0200)]
hptmv(4): Use cam_calc_geometry().

Also add a dependency on cam(4).

Taken-from: FreeBSD

20 months agohptiop(4): Add some more PCI IDs.
Sascha Wildner [Tue, 7 Aug 2012 01:03:31 +0000 (03:03 +0200)]
hptiop(4): Add some more PCI IDs.

The following adapters were added:

RocketRAID 4210
RocketRAID 4211
RocketRAID 4310
RocketRAID 4311
RocketRAID 3530
RocketRAID 3560

This commit also adds a cam(4) dependency.

Taken-from: FreeBSD

20 months agolibc/rpc: Remove redundant check.
Sascha Wildner [Mon, 6 Aug 2012 13:56:12 +0000 (15:56 +0200)]
libc/rpc: Remove redundant check.

20 months agokernel/x86_64: Fix kernel build without DDB.
Sascha Wildner [Mon, 6 Aug 2012 13:53:41 +0000 (15:53 +0200)]
kernel/x86_64: Fix kernel build without DDB.

Reported-by: nant
20 months agoAnsify some function definitions that were previously overlooked.
Sascha Wildner [Sat, 4 Aug 2012 10:29:28 +0000 (12:29 +0200)]
Ansify some function definitions that were previously overlooked.

20 months agohptrr(4): Add a __printflike().
Sascha Wildner [Sat, 4 Aug 2012 09:11:21 +0000 (11:11 +0200)]
hptrr(4): Add a __printflike().

20 months agoopen.2: Fix .Dv and combine lines.
Sascha Wildner [Fri, 3 Aug 2012 21:27:39 +0000 (23:27 +0200)]
open.2: Fix .Dv and combine lines.

20 months agomdoc.local: Add FreeBSD 7.3 and 8.1 which we are referencing.
Sascha Wildner [Fri, 3 Aug 2012 20:51:27 +0000 (22:51 +0200)]
mdoc.local: Add FreeBSD 7.3 and 8.1 which we are referencing.

20 months agohptrr.4: Move the tunable info into its own section and improve wording.
Sascha Wildner [Fri, 3 Aug 2012 20:29:02 +0000 (22:29 +0200)]
hptrr.4: Move the tunable info into its own section and improve wording.

20 months agoamr.4: Add missing .Bd
Sascha Wildner [Fri, 3 Aug 2012 20:28:24 +0000 (22:28 +0200)]
amr.4: Add missing .Bd

20 months agodisklabel32/64: Add support for 'T' size specifier.
Sascha Wildner [Fri, 3 Aug 2012 19:45:49 +0000 (21:45 +0200)]
disklabel32/64: Add support for 'T' size specifier.

20 months agoSync zoneinfo database with tzdata2012e from ftp://ftp.iana.org/tz/releases
Sascha Wildner [Fri, 3 Aug 2012 10:20:15 +0000 (12:20 +0200)]
Sync zoneinfo database with tzdata2012e from ftp://ftp.iana.org/tz/releases

* australasia (Pacific/Fakaofo): Tokelau is UTC+13, not UTC+14.
    (Thanks to Steffen Thorsen.)

20 months agokernel: add a flags argument to LOCK_SYSINIT
François Tigeot [Fri, 3 Aug 2012 09:23:11 +0000 (11:23 +0200)]
kernel: add a flags argument to LOCK_SYSINIT

We may not want to use LK_CAN_RECURSE in all situations

20 months agobnx: Remove unused code
Sepherosa Ziehau [Fri, 3 Aug 2012 07:57:43 +0000 (15:57 +0800)]
bnx: Remove unused code

20 months agokernel: add a LOCK_SYSINIT helper macro
François Tigeot [Fri, 22 Jun 2012 13:55:49 +0000 (15:55 +0200)]
kernel: add a LOCK_SYSINIT helper macro

* Inspired from FreeBSD's MTX_SYSINIT

* This will help with driver porting

20 months agokernel: Fix kernel build when compiled without INVARIANTS.
Nuno Antunes [Fri, 3 Aug 2012 06:27:52 +0000 (07:27 +0100)]
kernel: Fix kernel build when compiled without INVARIANTS.

20 months agoAdd the hptrr(4) driver for HighPoint RocketRAID 17xx, 22xx, 23xx and 25xx.
Sascha Wildner [Fri, 3 Aug 2012 00:18:34 +0000 (02:18 +0200)]
Add the hptrr(4) driver for HighPoint RocketRAID 17xx, 22xx, 23xx and 25xx.

The manual page mentions the following adapters to be supported:

* RocketRAID 172x series
* RocketRAID 174x series
* RocketRAID 2210
* RocketRAID 222x series
* RocketRAID 2240
* RocketRAID 230x series
* RocketRAID 231x series
* RocketRAID 232x series
* RocketRAID 2340
* RocketRAID 2522

I have tested it with a RocketRAID 2300.

Taken-from: FreeBSD

20 months agohptmv(4): Reduce si_iosize_max to 64KB.
Sascha Wildner [Thu, 2 Aug 2012 22:42:39 +0000 (00:42 +0200)]
hptmv(4): Reduce si_iosize_max to 64KB.

This fixes busdma panics we were getting with it.

busdma-clue-by: sephe

20 months agokernel/cam: Make si_iosize_max overridable by drivers.
Sascha Wildner [Thu, 2 Aug 2012 22:14:28 +0000 (00:14 +0200)]
kernel/cam: Make si_iosize_max overridable by drivers.

20 months agohptmv.4: Improve wording and s/amd64/x86_64/
Sascha Wildner [Fri, 3 Aug 2012 00:28:19 +0000 (02:28 +0200)]
hptmv.4: Improve wording and s/amd64/x86_64/

20 months agocustomcc: Fix the setup of the /usr/include path to use.
Sascha Wildner [Thu, 2 Aug 2012 17:16:08 +0000 (19:16 +0200)]
customcc: Fix the setup of the /usr/include path to use.

With the recent O_DIRECTORY addition, this apparent bug in the script was
exposed. Using -isysroot/-isystem doesn't seem to cut it for what we want
here (which is to completely override the /usr/include path).

I didn't verify in 100% detail, but all evidence looks like the reason is
that when -I is present on the command line, the paths of the headers
which are included by headers from this directory are not prefixed with
-isysroot's argument.

So for now, use -iprefix and -iwithbeforeprefix for /usr/include, which
seem to do what we want.

While here, add our copyright.

Reported-by: marino
20 months agoigb: Add TSO support
Sepherosa Ziehau [Thu, 2 Aug 2012 13:38:51 +0000 (21:38 +0800)]
igb: Add TSO support

20 months agoigb: Change TXCSUM does not require reinitialize hardware
Sepherosa Ziehau [Thu, 2 Aug 2012 11:59:27 +0000 (19:59 +0800)]
igb: Change TXCSUM does not require reinitialize hardware

20 months agoigb: Utilize mbuf's header length to setup TX context
Sepherosa Ziehau [Thu, 2 Aug 2012 11:53:07 +0000 (19:53 +0800)]
igb: Utilize mbuf's header length to setup TX context

While im here, also fix the case that VLAN hardware tagging is enabled
but IP checksum offloading is not enable.

20 months agostatclock: Fix intr% counting on heavily interrupted systems
Sepherosa Ziehau [Thu, 2 Aug 2012 09:26:30 +0000 (17:26 +0800)]
statclock: Fix intr% counting on heavily interrupted systems

statclock() has high probability to run from crit_exit() on heavily
interrupted systems and 'frame' is NULL in this case, so intr% is
mis-counted as sys%.

To fix this, TDF_INTTHREAD is used to determine whether intr% should
be counted or not, in addition to testing gd_intr_nest_level and
'frame'

20 months agoem/emx: Reduce the default interrupt rate to 6000Hz
Sepherosa Ziehau [Thu, 2 Aug 2012 01:43:38 +0000 (09:43 +0800)]
em/emx: Reduce the default interrupt rate to 6000Hz

20 months agotools/pktgen: Setup link header length properly
Sepherosa Ziehau [Thu, 2 Aug 2012 01:27:09 +0000 (09:27 +0800)]
tools/pktgen: Setup link header length properly

20 months agoemx: Add EMX_TSO_DEBUG
Sepherosa Ziehau [Wed, 1 Aug 2012 09:09:58 +0000 (17:09 +0800)]
emx: Add EMX_TSO_DEBUG

It is used to measure TSO context reuse rate.  Setting up TX context
interferes TX data fetching pipelining, thus reduces performance, so
TX context setting up should be avoided as much as possible.

According to limited measurement:
- 1 one direction TX stream, reuse rate is ~40%
- 16 one direction TX streams, reuse rate is ~20%
- 16 bi-direction streams (total 32), reuse rate is ~10%

20 months agoemx: Remove dependency on opt_rss.h; RSS is always enabled
Sepherosa Ziehau [Wed, 1 Aug 2012 08:52:44 +0000 (16:52 +0800)]
emx: Remove dependency on opt_rss.h; RSS is always enabled

20 months agoemx: Add TSO support
Sepherosa Ziehau [Wed, 1 Aug 2012 08:51:02 +0000 (16:51 +0800)]
emx: Add TSO support

20 months agoemx: Remove unused macros
Sepherosa Ziehau [Wed, 1 Aug 2012 04:21:53 +0000 (12:21 +0800)]
emx: Remove unused macros

20 months agotools/pktgen: Setup header length properly
Sepherosa Ziehau [Wed, 1 Aug 2012 03:24:53 +0000 (11:24 +0800)]
tools/pktgen: Setup header length properly

20 months agoemx: Utilize mbuf's header lengthes
Sepherosa Ziehau [Wed, 1 Aug 2012 03:20:49 +0000 (11:20 +0800)]
emx: Utilize mbuf's header lengthes

20 months agombuf: segsz -> tso_segsz, which is more expressive
Sepherosa Ziehau [Wed, 1 Aug 2012 02:54:12 +0000 (10:54 +0800)]
mbuf: segsz -> tso_segsz, which is more expressive

20 months agobnx: Utilize header lengthes in mbuf to setup TSO
Sepherosa Ziehau [Wed, 1 Aug 2012 02:50:00 +0000 (10:50 +0800)]
bnx: Utilize header lengthes in mbuf to setup TSO

20 months agombuf: Regroup fields, mainly to improve cache utilization
Sepherosa Ziehau [Wed, 1 Aug 2012 02:47:53 +0000 (10:47 +0800)]
mbuf: Regroup fields, mainly to improve cache utilization

20 months agombuf: Save linker layer, IP and TCP/UDP header length
Sepherosa Ziehau [Wed, 1 Aug 2012 02:35:06 +0000 (10:35 +0800)]
mbuf: Save linker layer, IP and TCP/UDP header length

This could ease most drivers's TSO operation and avoid extra data
area accessing during TSO setting up.

This could also help Intel's 1000M/10G drivers' hardware checksum
offloading, which requires protocol header length.

20 months agoixgbe: remove some FreeBSD version checks
François Tigeot [Tue, 31 Jul 2012 13:19:57 +0000 (15:19 +0200)]
ixgbe: remove some FreeBSD version checks

20 months agoLINT/LINT64: Add BNX_TSO_DEBUG.
Sascha Wildner [Tue, 31 Jul 2012 11:39:05 +0000 (13:39 +0200)]
LINT/LINT64: Add BNX_TSO_DEBUG.

20 months agoopendir(3): use O_CLOEXEC
François Tigeot [Tue, 31 Jul 2012 08:32:24 +0000 (10:32 +0200)]
opendir(3): use O_CLOEXEC

20 months agokernel: Implement O_CLOEXEC
François Tigeot [Mon, 30 Jul 2012 20:39:46 +0000 (22:39 +0200)]
kernel: Implement O_CLOEXEC

* Using fcntl(2) just after open(2) is not enough to avoid race conditions
  in programs doing fork+exec sequences. Child processes may be created
  before fcntl() is run and inherit the parent's file descriptors.

* In some circonstances this behavior may even create security issues.

* O_CLOEXEC can be used to atomically set the close-on-exec flag for new
  file descriptors, avoiding the whole mess in the first place.

* Fixes issue #2356

Inspired-from: NetBSD

20 months agokdump(1)/truss(1): Fix occasional quickworld breakage.
Sascha Wildner [Mon, 30 Jul 2012 17:51:07 +0000 (19:51 +0200)]
kdump(1)/truss(1): Fix occasional quickworld breakage.

Whenever we messed with our ioctls or certain definitions
(like fcntl(2)'s O_* flags), kdump and truss could break
quickworld because their generated ioctl.c and kdump_subr.c
files in /usr/obj would still have removed stuff.

Fix this by regenerating them every time, no matter what.

20 months ago<sys/fcntl.h>: Mark O_DIRECTORY as being new in POSIX.1-2008.
Sascha Wildner [Mon, 30 Jul 2012 16:28:00 +0000 (18:28 +0200)]
<sys/fcntl.h>: Mark O_DIRECTORY as being new in POSIX.1-2008.

It is also visible in our default environment, just not if the code
explicitly requests an older POSIX version.

20 months agoopendir(3) - use O_DIRECTORY
Alex Hornung [Mon, 30 Jul 2012 15:58:05 +0000 (15:58 +0000)]
opendir(3) - use O_DIRECTORY

20 months agolinkat(2) man page
Alex Hornung [Mon, 30 Jul 2012 11:37:09 +0000 (11:37 +0000)]
linkat(2) man page

20 months agoimplement linkat
Alex Hornung [Mon, 30 Jul 2012 11:21:53 +0000 (11:21 +0000)]
implement linkat

20 months agoopen.2 - document O_DIRECTORY
Alex Hornung [Mon, 30 Jul 2012 14:02:26 +0000 (14:02 +0000)]
open.2 - document O_DIRECTORY

20 months agoopen - implement O_DIRECTORY
Alex Hornung [Mon, 30 Jul 2012 11:20:00 +0000 (11:20 +0000)]
open - implement O_DIRECTORY

20 months agokernel: remove O_FRNONBLOCKING
François Tigeot [Sun, 29 Jul 2012 17:26:02 +0000 (19:26 +0200)]
kernel: remove O_FRNONBLOCKING

* Like O_ROOTCRED it was effectively unused and removing it frees up
  a precious bit among the various O_xxx flags

* Partially fixes issue #2357

20 months agokernel: remove O_ROOTCRED
François Tigeot [Sun, 29 Jul 2012 16:23:31 +0000 (18:23 +0200)]
kernel: remove O_ROOTCRED

* This flag was DragonFly-specific and effectively unused

* Removing it frees up flag space for interacting with the rest of the world

* Partially fixes issue #2357

20 months agotcp: Increase tcp_sosend_agglim from 2 to 3
Sepherosa Ziehau [Mon, 30 Jul 2012 06:36:52 +0000 (14:36 +0800)]
tcp: Increase tcp_sosend_agglim from 2 to 3

This change makes better use of TSO.

When 2 is used, most of the large TCP segments' size are 2*MSS or 3*MSS.
When 3 is used, most of the large TCP segments' size are 4*MSS or 5*MSS.

The math is quite simple, given 1448B segment size:
2 == 4096B == 2 segments
3 == 6144B == 4 segments

Increasing it to a higher value improves single full speed stream's CPU
utilization, but does not have much effect on multiple streams'.

20 months agotools: Add toeplitz, which calculate toeplitz on given addresses/ports
Sepherosa Ziehau [Mon, 30 Jul 2012 04:29:31 +0000 (12:29 +0800)]
tools: Add toeplitz, which calculate toeplitz on given addresses/ports

20 months agobnx: Add TSO support
Sepherosa Ziehau [Sun, 29 Jul 2012 05:29:49 +0000 (13:29 +0800)]
bnx: Add TSO support

Obtained-from: FreeBSD if_bge.c

For TSO header information, ether_tso_pullup() is used instead of
making our own wheel.

BNX_TSO_DEBUG is added to help testing various TCP parameters tuning

20 months agoixgbe: Unbreak compile
Sepherosa Ziehau [Mon, 30 Jul 2012 05:58:57 +0000 (13:58 +0800)]
ixgbe: Unbreak compile

20 months agotcp: Add TSO support for IPv4
Sepherosa Ziehau [Fri, 27 Jul 2012 06:07:27 +0000 (14:07 +0800)]
tcp: Add TSO support for IPv4

It is implemented mainly according to NetBSD's TSO implementation.

Following stuffs are only in DragonFly
- Add comment about devices' expected behaviour upon PUSH and FIN flags
  Obtained-from: Microsoft's LSO online document
- Don't use TSO, if there are SACK or DSACK blocks to report
- Don't use TSO, if congestion window needs validation
- Don't use TSO, if URG flag is to be set
- Take IP and TCP header sizes into consideration when calculate the
  large TCP segment size
- Pseudo checksum for the large TCP segment is calculated using only
  source address, destination address and IPPROTO_TCP according to
  Microsoft's LSO online document.  This fashion of pseudo checksum
  calculation seems to be adopted by several NIC chips.

Several driver helper functions are added:
- tcp_tso_pullup(), which extracts IPv4 and TCP header's location and
  length.  And make sure that IPv4 and TCP headers are in contiguous
  memory.
- ether_tso_pullup(), in addition to what tcp_tso_pullup() does, it
  also extracts ethernet header's length and make sure that ethernet,
  IPv4 and TCP headers are in contiguous memory.

Sysctl node net.inet.tcp.tso could be used to globally disable TSO.
TSO is by default on.

tso/-tso are added to ifconfig(8), which could be used to enable or
disable TSO on the specific interface.

20 months agociss.4: Document some tunables.
Sascha Wildner [Sun, 29 Jul 2012 19:06:30 +0000 (21:06 +0200)]
ciss.4: Document some tunables.

20 months agociss(4): Sync with FreeBSD.
Sascha Wildner [Sun, 29 Jul 2012 18:49:26 +0000 (20:49 +0200)]
ciss(4): Sync with FreeBSD.

Tons of good stuff. MPSAFEness, MSI interrupts, better performance,
and a lot more (I'm too lazy to go through FreeBSD's logs :P).

Support for a number of adapters has been added, too:

* HP Smart Array P220i
* HP Smart Array P222
* HP Smart Array P420
* HP Smart Array P420i
* HP Smart Array P421
* HP Smart Array P700m
* HP Smart Array P712m
* HP Smart Array P721m
* HP Smart Array P822

I've tested it with a HP Smart Array P212.

Many thanks to FreeBSD.

20 months agomptable - use the table's cpu_flags
Alex Hornung [Sun, 29 Jul 2012 15:28:00 +0000 (15:28 +0000)]
mptable - use the table's cpu_flags

 * Sometimes the CPUs are marked as disabled in the APIC table, and for
   good reason (e.g. a machine having only 24 cores, but 32 appearing in
   the APIC table, 8 of them disabled).

 * Just in case, provide an override that falls back to the old
   behaviour. This is the tunable hw.lapic_force_enable. It will force
   all lapic entries to be marked as enabled. It is however not the
   default.

 * When parsing, don't error out when a lapic id is invalid (255) but it
   is disabled.

Reported-by: Mihai Carabas, Francois Tigeot
20 months agoacpidump - be a bit more lenient and don't assert
Alex Hornung [Sun, 29 Jul 2012 15:23:47 +0000 (15:23 +0000)]
acpidump - be a bit more lenient and don't assert

 * Asserting in this case causes the dump not to continue, although it
   is safe to do so.

Reported-by: Mihai Carabas
20 months agox86_64 mptable - maximum lapic id is 64
Alex Hornung [Sun, 29 Jul 2012 12:00:53 +0000 (12:00 +0000)]
x86_64 mptable - maximum lapic id is 64

 * In x86_64, lapic ids with HT can be up to 64, not 32 as in i386.

Reported-by: Mihai Carabas, Francois Tigeot
20 months agoRemove some more unused headers.
Sascha Wildner [Sun, 29 Jul 2012 00:27:27 +0000 (02:27 +0200)]
Remove some more unused headers.

20 months agoRemove unused header.
Sascha Wildner [Sat, 28 Jul 2012 23:40:18 +0000 (01:40 +0200)]
Remove unused header.

20 months agogcore(1): Make it work again.
Sascha Wildner [Sat, 28 Jul 2012 20:29:43 +0000 (22:29 +0200)]
gcore(1): Make it work again.

Two commits broke things:

64fce751acfda11e21846e900fc774e88f32f52e which changed us to no longer
claiming that we're FreeBSD in core files.

0b684e3f9af3abc5ded676c43a1a5a478b45325c which added another field to
/proc/<pid>/map (the vnode path for vn-backed vm objects).

Both changes need adjustments in gcore(1).

20 months agobsd-family-tree: Sync with FreeBSD.
Sascha Wildner [Fri, 27 Jul 2012 16:11:45 +0000 (18:11 +0200)]
bsd-family-tree: Sync with FreeBSD.

20 months agobnx: Utilize BNX_IS_5717_PLUS
Sepherosa Ziehau [Thu, 26 Jul 2012 09:56:05 +0000 (17:56 +0800)]
bnx: Utilize BNX_IS_5717_PLUS

20 months agobnx: Enable software workaround for possiblely hosed interrupt
Sepherosa Ziehau [Thu, 26 Jul 2012 09:19:09 +0000 (17:19 +0800)]
bnx: Enable software workaround for possiblely hosed interrupt

It is only needed for BCM57765 family chips and BCM5717/BCM5718 chips

According-to: tg3

20 months agobnx: Dispatch state timer to the same CPU as MSI/legacy interrupt CPU
Sepherosa Ziehau [Tue, 24 Jul 2012 12:47:22 +0000 (20:47 +0800)]
bnx: Dispatch state timer to the same CPU as MSI/legacy interrupt CPU

Mainly avoid possible serializer contention

20 months agocallout: Add callout_reset_bycpu, which dispatches callout to the specified CPU
Sepherosa Ziehau [Tue, 24 Jul 2012 10:59:31 +0000 (18:59 +0800)]
callout: Add callout_reset_bycpu, which dispatches callout to the specified CPU

20 months agobnx: Use MPSAFE callout
Sepherosa Ziehau [Tue, 24 Jul 2012 09:21:26 +0000 (17:21 +0800)]
bnx: Use MPSAFE callout

20 months agobnx: Add support for BCM57766 chips
Sepherosa Ziehau [Tue, 24 Jul 2012 08:57:41 +0000 (16:57 +0800)]
bnx: Add support for BCM57766 chips

According-to: tg3

20 months agopcidevs: regen
Sepherosa Ziehau [Tue, 24 Jul 2012 08:52:41 +0000 (16:52 +0800)]
pcidevs: regen

20 months agopcidevs: Add more PCI ids for BCM57785 family chips
Sepherosa Ziehau [Tue, 24 Jul 2012 08:52:11 +0000 (16:52 +0800)]
pcidevs: Add more PCI ids for BCM57785 family chips

20 months agobnx: BCM57791 and BCM57795 are 10/100 only
Sepherosa Ziehau [Tue, 24 Jul 2012 06:09:28 +0000 (14:09 +0800)]
bnx: BCM57791 and BCM57795 are 10/100 only

While im here, remove some unused code

20 months agobnx: Reconfigure DMA read/write control register
Sepherosa Ziehau [Tue, 24 Jul 2012 04:53:52 +0000 (12:53 +0800)]
bnx: Reconfigure DMA read/write control register

- Use default DMA write watermark (256bytes by default, was 128bytes)
- Don't touch reserved bits
- Disable 32bytes cache align; 64bytes cache align is left enabled

According-to: tg3

20 months agobnx: Enable MBUF low attention on buffer manager
Sepherosa Ziehau [Mon, 23 Jul 2012 09:17:58 +0000 (17:17 +0800)]
bnx: Enable MBUF low attention on buffer manager

According-to: tg3

20 months agobnx: Using 57765_FAMILY to conf Low Watermark Maximum Receive Frame Register
Sepherosa Ziehau [Sun, 22 Jul 2012 13:23:39 +0000 (21:23 +0800)]
bnx: Using 57765_FAMILY to conf Low Watermark Maximum Receive Frame Register