dragonfly.git
2 years agoem/emx: Update comment concerning errata number
Sepherosa Ziehau [Sat, 7 Jul 2012 06:11:24 +0000 (14:11 +0800)]
em/emx: Update comment concerning errata number

2 years agoem: Fix "Missing Interrupt Following ICR read" errata
Sepherosa Ziehau [Sat, 7 Jul 2012 05:47:43 +0000 (13:47 +0800)]
em: Fix "Missing Interrupt Following ICR read" errata

IMS should be set to 0 before reading ICR.  It should be noted that
once IMS is 0, ICR.INT_ASSERTED will not be set, which is not mentioned
in the datasheet.

This errata exists on 82571, 82572, 82573, 82574 and 82583.  And the fix
is needed only if the legacy interrupt is used and the interrupt line is
shared with other devices.

hw.emX.irq.unshared tunable is added to give a hint to the driver that
the legacy interrupt is not shared with other devices.

2 years agoemx: Fix "Missing Interrupt Following ICR read" errata
Sepherosa Ziehau [Sat, 7 Jul 2012 05:24:52 +0000 (13:24 +0800)]
emx: Fix "Missing Interrupt Following ICR read" errata

IMS should be set to 0 before reading ICR.  It should be noted that
once IMS is 0, ICR.INT_ASSERTED will not be set, which is not mentioned
in the datasheet.

This errata exists on 82571, 82572, 82573, 82574 and 82583, while 82583
is not covered by emx(4).  And the fix is needed only if the legacy
interrupt is used and the interrupt line is shared with other devices.

hw.emxX.irq.unshared tunable is added to give a hint to the driver that
the legacy interrupt is not shared with other devices.

2 years agoigb: Move shared interrupt configure to igb_alloc_intr()
Sepherosa Ziehau [Fri, 6 Jul 2012 07:10:55 +0000 (15:10 +0800)]
igb: Move shared interrupt configure to igb_alloc_intr()

So resource allocation flags could be setup properly

2 years agokernel/vm: Remove some unused variables.
Sascha Wildner [Fri, 6 Jul 2012 23:14:11 +0000 (01:14 +0200)]
kernel/vm: Remove some unused variables.

2 years agokernel/gpio: Return EINVAL for GPIOPINUNSET and simplify a bit.
Sascha Wildner [Fri, 6 Jul 2012 17:43:50 +0000 (19:43 +0200)]
kernel/gpio: Return EINVAL for GPIOPINUNSET and simplify a bit.

2 years agopst(4): Remove a bogus (commented out) debug option from the Makefile.
Sascha Wildner [Fri, 6 Jul 2012 12:37:20 +0000 (14:37 +0200)]
pst(4): Remove a bogus (commented out) debug option from the Makefile.

2 years agosdpd(8): Fix a wrong sizeof.
Sascha Wildner [Fri, 6 Jul 2012 12:09:49 +0000 (14:09 +0200)]
sdpd(8): Fix a wrong sizeof.

2 years agomake upgrade: Remove a netgraph7 header that was moved.
Sascha Wildner [Fri, 6 Jul 2012 09:25:19 +0000 (11:25 +0200)]
make upgrade: Remove a netgraph7 header that was moved.

2 years agokernel - remove dead code in busdma
Markus Pfeiffer [Fri, 6 Jul 2012 08:40:17 +0000 (08:40 +0000)]
kernel - remove dead code in busdma

Remove some superflous code inserted in previous commit to
add BUS_DMA_KEEP_PG_OFFSET (x86_64)

2 years agokernel/sbuf: Add back a lost newline.
Sascha Wildner [Thu, 5 Jul 2012 19:16:18 +0000 (21:16 +0200)]
kernel/sbuf: Add back a lost newline.

2 years agoRemove tools/tools/mid (Message-ID/In-Reply-To db thingy we don't need).
Sascha Wildner [Thu, 5 Jul 2012 18:48:41 +0000 (20:48 +0200)]
Remove tools/tools/mid (Message-ID/In-Reply-To db thingy we don't need).

2 years agoCreate if_*(4) MLINKS for all network interface manual pages.
Sascha Wildner [Thu, 5 Jul 2012 15:48:54 +0000 (17:48 +0200)]
Create if_*(4) MLINKS for all network interface manual pages.

The modules are called if_*.ko for those, so follow the principle that
the user generally should be able to do 'man foo' for any 'foo.ko'.

Inspired-by: FreeBSD
2 years agoman4.i386/Makefile: Break lines.
Sascha Wildner [Thu, 5 Jul 2012 15:10:57 +0000 (17:10 +0200)]
man4.i386/Makefile: Break lines.

2 years agoAdd an MLINKS for ic(4) (it is documented in iicbus(4)).
Sascha Wildner [Thu, 5 Jul 2012 15:25:06 +0000 (17:25 +0200)]
Add an MLINKS for ic(4) (it is documented in iicbus(4)).

2 years agomdoc: Reorder manpage sections to keep them consistent.
Nuno Antunes [Thu, 5 Jul 2012 13:28:36 +0000 (14:28 +0100)]
mdoc: Reorder manpage sections to keep them consistent.

* Keep CAVEATS and BUGS sections at the end of the pages.
* EXIT STATUS section should come after ENVIRONMENT.

Found-with: mandoc -Tlint
Reviewed-by: Sacha Wildner <swildner@>
2 years agokernel - busdma.h correct whitespace and add description
Markus Pfeiffer [Thu, 5 Jul 2012 13:14:01 +0000 (13:14 +0000)]
kernel - busdma.h correct whitespace and add description

2 years agodpt(4): Remove some old #if 0'd code from a header file.
Sascha Wildner [Thu, 5 Jul 2012 12:46:30 +0000 (14:46 +0200)]
dpt(4): Remove some old #if 0'd code from a header file.

2 years agomdoc: Silence a few mdocml (mandoc) warnings and errors.
Nuno Antunes [Thu, 5 Jul 2012 07:00:14 +0000 (08:00 +0100)]
mdoc: Silence a few mdocml (mandoc) warnings and errors.

* Move CAVEATS section to the end of the page.
* Miscelaneous other fixes (taken from FreeBSD).
* Bump dates.

Found-with: mandoc -Tlint

2 years agonetgraph7/ng_tty: Remove two unused #define's.
Nuno Antunes [Wed, 4 Jul 2012 18:31:37 +0000 (19:31 +0100)]
netgraph7/ng_tty: Remove two unused #define's.

2 years agonetgraph7: Cleanup the Makefile.
Nuno Antunes [Wed, 4 Jul 2012 11:59:54 +0000 (12:59 +0100)]
netgraph7: Cleanup the Makefile.

* netgraph base and ng_socket node are already ported and listed
  in the Makefile. Remove the redundant commented lines.

2 years agoppp(8): Use netgraph7 tty node when WANT_NETGRAPH7 make variable is defined.
Nuno Antunes [Wed, 4 Jul 2012 11:46:06 +0000 (12:46 +0100)]
ppp(8): Use netgraph7 tty node when WANT_NETGRAPH7 make variable is defined.

* Now that netgraph7's ng_tty node is ported we can use it instead of
  legacy netgraph's node. This fixes the hack introduced in commit
  f0f93f7f2d479e18fe43625ce59583ba7a773bf2.

2 years agonetgraph7: Welcome ng_tty.
Nuno Antunes [Wed, 4 Jul 2012 08:48:55 +0000 (09:48 +0100)]
netgraph7: Welcome ng_tty.

2 years agoem/emx: Correct ASPM settings for 82571/82572/82573
Sepherosa Ziehau [Thu, 5 Jul 2012 07:22:42 +0000 (15:22 +0800)]
em/emx: Correct ASPM settings for 82571/82572/82573

2 years agoemx: Don't enable MSI on 82571/82572
Sepherosa Ziehau [Thu, 5 Jul 2012 06:48:40 +0000 (14:48 +0800)]
emx: Don't enable MSI on 82571/82572

You could still forcefully enable MSI by using hw.emX.msi.enable;
useful certain systems

Obtained-from: OpenBSD

2 years agoem: Don't enable MSI on non-PCIe chips and 82571/82572
Sepherosa Ziehau [Thu, 5 Jul 2012 06:40:46 +0000 (14:40 +0800)]
em: Don't enable MSI on non-PCIe chips and 82571/82572

You could still forcefully enable MSI by using hw.emX.msi.enable;
useful for 82571/82572 on certain systems

Obtained-from: OpenBSD

2 years agobge: Add commented out code to set "clear ticks upon TX"
Sepherosa Ziehau [Thu, 5 Jul 2012 02:37:40 +0000 (10:37 +0800)]
bge: Add commented out code to set "clear ticks upon TX"

As far as I have tested, this coalesce mode does not have visiable
effect on both TX performance and interrupt rate.

To ease further tuning, the current TX performance and interrupt
rate that I have gathered on BCM5750 B1:
1472B UDP datagram   perf: 957Mbps, intr rate: ~1200Hz
18B   UDP datagram   perf: 565Kpps, intr rate: ~4400Hz

2 years agobge: Define clear ticks upon RX/TX for host coalesce mode register
Sepherosa Ziehau [Thu, 5 Jul 2012 02:35:28 +0000 (10:35 +0800)]
bge: Define clear ticks upon RX/TX for host coalesce mode register

2 years agobge: Add BGE_IS_CRIPPLED to test BCM5788 and BCM5700
Sepherosa Ziehau [Wed, 4 Jul 2012 12:19:41 +0000 (20:19 +0800)]
bge: Add BGE_IS_CRIPPLED to test BCM5788 and BCM5700

2 years agobge: Make sure coalesce parameters are in sane range
Sepherosa Ziehau [Wed, 4 Jul 2012 10:56:33 +0000 (18:56 +0800)]
bge: Make sure coalesce parameters are in sane range

2 years agobge: Increase default RX coalesce to 160us (~6000Hz)
Sepherosa Ziehau [Wed, 4 Jul 2012 09:55:45 +0000 (17:55 +0800)]
bge: Increase default RX coalesce to 160us (~6000Hz)

2 years agobge: Correct comment
Sepherosa Ziehau [Wed, 4 Jul 2012 09:32:09 +0000 (17:32 +0800)]
bge: Correct comment

2 years agobge: Factor our bge_link_poll()
Sepherosa Ziehau [Wed, 4 Jul 2012 09:23:26 +0000 (17:23 +0800)]
bge: Factor our bge_link_poll()

2 years agobge: Add comment about coalesce parameters during interrupt
Sepherosa Ziehau [Wed, 4 Jul 2012 09:15:24 +0000 (17:15 +0800)]
bge: Add comment about coalesce parameters during interrupt

2 years agokernel - Correct whitespace in BUS_DMA_KEEP_PG_OFFSET (x86_64)
Markus Pfeiffer [Wed, 4 Jul 2012 21:27:17 +0000 (21:27 +0000)]
kernel - Correct whitespace in BUS_DMA_KEEP_PG_OFFSET (x86_64)

2 years agomii: add AGERE ET1011 phy
Markus Pfeiffer [Wed, 4 Jul 2012 20:54:55 +0000 (20:54 +0000)]
mii: add AGERE ET1011 phy

2 years agokernel - Add BUS_DMA_KEEP_PG_OFFSET (i386)
Markus Pfeiffer [Wed, 4 Jul 2012 13:31:38 +0000 (13:31 +0000)]
kernel - Add BUS_DMA_KEEP_PG_OFFSET (i386)

Add BUS_DMA_KEEP_PG_OFFSET from FreeBSD in preparation of import of
FreeBSD's USB stack

2 years agokernel - Add BUS_DMA_KEEP_PG_OFFSET (x86_64)
Markus Pfeiffer [Wed, 4 Jul 2012 13:21:25 +0000 (13:21 +0000)]
kernel - Add BUS_DMA_KEEP_PG_OFFSET (x86_64)

Add BUS_DMA_KEEP_PG_OFFSET from FreeBSD in preparation of import of
FreeBSD's USB stack

2 years agokernel: add handling for ENODEV in poll_copyout and select_copyout
Markus Pfeiffer [Wed, 4 Jul 2012 13:12:46 +0000 (13:12 +0000)]
kernel: add handling for ENODEV in poll_copyout and select_copyout

2 years agoMerge branch 'vendor/FILE'
Peter Avalos [Wed, 4 Jul 2012 07:55:58 +0000 (00:55 -0700)]
Merge branch 'vendor/FILE'

2 years agoImport file-5.11.
Peter Avalos [Wed, 4 Jul 2012 07:49:04 +0000 (00:49 -0700)]
Import file-5.11.

* Fix CDF parsing issues.

2 years agobge: Enable "tagged status" on non-BCM5788 and non-BCM5700 chips
Sepherosa Ziehau [Tue, 3 Jul 2012 09:39:58 +0000 (17:39 +0800)]
bge: Enable "tagged status" on non-BCM5788 and non-BCM5700 chips

By using "tagged status", we could:
- Detect whether the interrupt is for us or not.
- Avoid MAC_STS register read upon every interrupt.

Some implementation note:
- Interrupt must be disabled during interrupt handing, if "tagged status"
  is used, else the interrupt will be kept asserted.  This is the case at
  least on BCM5750 AX/BX.
- Coalesce parameters during interrupt must be properly configured; when
  "tagged status" is used we have "in interrupt" state.

Tunable hw.bgeX.status_tag is added to prevent driver from using "tagged
status".  hw.bgeX.{rx,tx}_coal_bds_int and hw.bgeX.{rx,tx}_coal_ticks_int
sysctls are added to tune "in interrupt" coalesce parameters.

2 years agokernel - reduce kernel stack use (2)
Matthew Dillon [Tue, 3 Jul 2012 17:42:03 +0000 (10:42 -0700)]
kernel - reduce kernel stack use (2)

* Correct hanging allocation on kldunload from previous commit.

* Rearrange the flow of the code a little for the exit case.

2 years agokernel - reduce kernel stack use
Matthew Dillon [Tue, 3 Jul 2012 17:22:09 +0000 (10:22 -0700)]
kernel - reduce kernel stack use

* fq_dispatcher() was eating 8K+ of kernel stack on x86-64 with a
  (512 x sizeof(pointer) * 2) sized array.  This is way too much kernel
  stack.

* Add a safety to the hz calculation in the lksleep() for hz values < 15.
  vkernels already use low hz values of ~20-ish.

Reported-by: swildner
2 years agomii: Wrong sizeof
Sepherosa Ziehau [Tue, 3 Jul 2012 08:18:21 +0000 (16:18 +0800)]
mii: Wrong sizeof

Pointed-by: swildner@
2 years agobge: BGE_PCI_MISC_CTL resides in PCI configuration space
Sepherosa Ziehau [Tue, 3 Jul 2012 06:27:19 +0000 (14:27 +0800)]
bge: BGE_PCI_MISC_CTL resides in PCI configuration space

2 years agobge: Regroup code, no functional changes
Sepherosa Ziehau [Tue, 3 Jul 2012 05:34:33 +0000 (13:34 +0800)]
bge: Regroup code, no functional changes

- Regroup chip information and bugs setup code
- Regroup MII information setup code

2 years agosbuf_vprintf: ap is not consistent at second call of kvsnprintf. Use a copy
Mihai Carabas [Sun, 1 Jul 2012 19:18:25 +0000 (22:18 +0300)]
sbuf_vprintf: ap is not consistent at second call of kvsnprintf. Use a copy

2 years agobge: Don't force PCI Express TLP to be 128 bytes
Sepherosa Ziehau [Mon, 2 Jul 2012 08:43:41 +0000 (16:43 +0800)]
bge: Don't force PCI Express TLP to be 128 bytes

Instead, status errors are cleared and "no snoop" and "relaxed ordering"
are disabled.

Obtained-from: FreeBSD 235821

2 years agopci: Add more definition for PCI Express device {control,status} registers
Sepherosa Ziehau [Mon, 2 Jul 2012 08:42:59 +0000 (16:42 +0800)]
pci: Add more definition for PCI Express device {control,status} registers

2 years agobge: Workaround mbox write reordering for PCI-X devices
Sepherosa Ziehau [Mon, 2 Jul 2012 08:20:05 +0000 (16:20 +0800)]
bge: Workaround mbox write reordering for PCI-X devices

Add per device tunable hw.bgeX.mbox_reorder to control this; it is
off by default.

Based-on: FreeBSD 232848

2 years agobge: If chip has CPMU, let it handle GPHY power down
Sepherosa Ziehau [Mon, 2 Jul 2012 08:14:35 +0000 (16:14 +0800)]
bge: If chip has CPMU, let it handle GPHY power down

Obtained-from: FreeBSD 226804

2 years agobge: Always enable buffer manager
Sepherosa Ziehau [Mon, 2 Jul 2012 08:11:44 +0000 (16:11 +0800)]
bge: Always enable buffer manager

Also make sure various blocks are stopped in bge_stop()

Obtained-from: NetBSD via FreeBSD 221712

2 years agobge: Workaround BCM5906 chip bug
Sepherosa Ziehau [Mon, 2 Jul 2012 07:56:59 +0000 (15:56 +0800)]
bge: Workaround BCM5906 chip bug

When auto-negotiation results in half-duplex operation, excess collision
on the ethernet link may cause internal chip delays that may result in
subsequent valid frames being dropped due to insufficient receive buffer
resources.  The workaround is to choose de-pipeline method as a flow
control decision for SDI.  De-pipeline method allows only 1 data in TxMbuf
at a time such that a request to RDMA from SDI is made only when TxMbuf
is empty.

Obtained-from: FreeBSD 214219

2 years agobge: Enable hardware patch for TX MAC lockup on BCM5755+ and BCM5906
Sepherosa Ziehau [Mon, 2 Jul 2012 07:49:22 +0000 (15:49 +0800)]
bge: Enable hardware patch for TX MAC lockup on BCM5755+ and BCM5906

Obtained-from: FreeBSD 214216

2 years agobge: Workaround "short DMA" bug on certain chips
Sepherosa Ziehau [Mon, 2 Jul 2012 07:45:30 +0000 (15:45 +0800)]
bge: Workaround "short DMA" bug on certain chips

If controllers receive two back-to-back send BDs with less than or equal
to 8 total bytes then the device may hang.  The two back-to-back send
BDs must be in the same frame for this failure to occur.

Obtained-from: FreeBSD 214087

2 years agobge: Avoid accessing invalid internal memory region on BCM5906
Sepherosa Ziehau [Mon, 2 Jul 2012 07:12:20 +0000 (15:12 +0800)]
bge: Avoid accessing invalid internal memory region on BCM5906

Obtained-from: FreeBSD 213747

2 years agobge: Properly configure receive and send RCBs
Sepherosa Ziehau [Mon, 2 Jul 2012 06:59:48 +0000 (14:59 +0800)]
bge: Properly configure receive and send RCBs

- More comment
- Limit receive and RCBs accessing according to chip type
- Always configure send RCB
- Move producer RX ring index resetting to the proper place

Obtained-from: FreeBSD 213495

2 years agobge: Force interrupt if link status changes
Sepherosa Ziehau [Mon, 2 Jul 2012 06:19:20 +0000 (14:19 +0800)]
bge: Force interrupt if link status changes

Obtained-from: FreeBSD 178785

2 years agobge: Rework MII register accessing and auto-polling support
Sepherosa Ziehau [Mon, 2 Jul 2012 05:30:04 +0000 (13:30 +0800)]
bge: Rework MII register accessing and auto-polling support

Obtained-from: FreeBSD 213485 213710 213808 213812

2 years agoixgbe.4: Remove trailing whitespace.
Sascha Wildner [Mon, 2 Jul 2012 08:13:02 +0000 (10:13 +0200)]
ixgbe.4: Remove trailing whitespace.

2 years agobge: Adjust PHY workaround settings
Sepherosa Ziehau [Mon, 2 Jul 2012 02:56:27 +0000 (10:56 +0800)]
bge: Adjust PHY workaround settings

Obtained-from: OpenBSD if_bge.c 1.309

2 years agomii: Define MII_PROBEMASK_DEFAULT and MII_CAPMASK_DEFAULT
Sepherosa Ziehau [Mon, 2 Jul 2012 02:33:54 +0000 (10:33 +0800)]
mii: Define MII_PROBEMASK_DEFAULT and MII_CAPMASK_DEFAULT

Avoid using magic number

2 years agobge/brgphy: Split PHY flags out of main flags
Sepherosa Ziehau [Mon, 2 Jul 2012 02:10:36 +0000 (10:10 +0800)]
bge/brgphy: Split PHY flags out of main flags

2 years ago<net/if_media.h>: Add 10Gb ethernet baudrate descriptions.
Sascha Wildner [Mon, 2 Jul 2012 02:02:46 +0000 (04:02 +0200)]
<net/if_media.h>: Add 10Gb ethernet baudrate descriptions.

2 years agokernel/net: On i386, make the interface baudrate 64 bits in a few places.
Sascha Wildner [Mon, 2 Jul 2012 02:02:31 +0000 (04:02 +0200)]
kernel/net: On i386, make the interface baudrate 64 bits in a few places.

For 10Gb ethernet.

For ifi_baudrate in struct if_data (which is public), NetBSD uses
uint64_t too, so no pkgsrc breakage is expected. However, a few
i386 binary packages we offer might be broken now on master.

Discussed-with: sephe

2 years agobge: Enable fix for read DMA FIFO overruns on certain controllers
Sepherosa Ziehau [Mon, 2 Jul 2012 01:49:15 +0000 (09:49 +0800)]
bge: Enable fix for read DMA FIFO overruns on certain controllers

Obtained-from: FreeBSD 213411

2 years agobge: NetExtreme/NetLink controllers require memory not across 4G boundary
Sepherosa Ziehau [Mon, 2 Jul 2012 01:28:13 +0000 (09:28 +0800)]
bge: NetExtreme/NetLink controllers require memory not across 4G boundary

Obtained-from: FreeBSD 226805

2 years agobge: Utilize new mii_probe()
Sepherosa Ziehau [Sun, 1 Jul 2012 23:26:11 +0000 (07:26 +0800)]
bge: Utilize new mii_probe()

Thus avoid local hacking about fixed PHY in miibus_{read,write}reg().

2 years agomii: Allow NIC drivers to pass more information to MII probe
Sepherosa Ziehau [Sun, 1 Jul 2012 23:17:30 +0000 (07:17 +0800)]
mii: Allow NIC drivers to pass more information to MII probe

- mii_capmask, which is used to mask out uninstended BMSR bits.
- At which PHYs that MII should perform probing and attching
  (mii_probe_args.mii_probemask).
- mii_flags, which will be used for future mii flow control support.

Th he above information could only be passed using new mii_probe(),
it should be used in the following way:

struct mii_probe_args mii_args;

mii_probe_args_init(&mii_args, ifmedia_upd, ifmedia_sts);
/*
 * Adjust mii_args if necessary
 */
error = mii_probe(dev, &mii_dev, &mii_args);

Inspired-by: FreeBSD 213878
2 years agomii: M_WAITOK should be enough
Sepherosa Ziehau [Sun, 1 Jul 2012 12:11:53 +0000 (20:11 +0800)]
mii: M_WAITOK should be enough

2 years agokernel/ddb: Remove an unused file.
Sascha Wildner [Sun, 1 Jul 2012 20:45:42 +0000 (22:45 +0200)]
kernel/ddb: Remove an unused file.

2 years agoAdd a DB_COMMAND(9) manual page (adapted from FreeBSD).
Sascha Wildner [Sun, 1 Jul 2012 20:41:44 +0000 (22:41 +0200)]
Add a DB_COMMAND(9) manual page (adapted from FreeBSD).

2 years agomakeobjops.awk: Fix comment, it's actually doxygen comments we skip here.
Sascha Wildner [Sun, 1 Jul 2012 12:03:55 +0000 (14:03 +0200)]
makeobjops.awk: Fix comment, it's actually doxygen comments we skip here.

2 years agomakeobjops.awk: Skip C comments (it helps us deal with newer .m files).
Sascha Wildner [Sun, 1 Jul 2012 11:54:19 +0000 (13:54 +0200)]
makeobjops.awk: Skip C comments (it helps us deal with newer .m files).

Reported-by: ftigeot
2 years agomii: Cleanup "return", no functional changes
Sepherosa Ziehau [Sun, 1 Jul 2012 11:27:10 +0000 (19:27 +0800)]
mii: Cleanup "return", no functional changes

2 years agomii: Hide miibus_{probe,attach,detach}
Sepherosa Ziehau [Sun, 1 Jul 2012 11:23:42 +0000 (19:23 +0800)]
mii: Hide miibus_{probe,attach,detach}

While im here, cleanup white space

2 years agoifmedia.4: Adjust for the last 802.11 upgrade.
Sascha Wildner [Sat, 30 Jun 2012 20:00:19 +0000 (22:00 +0200)]
ifmedia.4: Adjust for the last 802.11 upgrade.

2 years agoixgbe.4: Add a reference to ifmedia(4).
Sascha Wildner [Sat, 30 Jun 2012 19:42:02 +0000 (21:42 +0200)]
ixgbe.4: Add a reference to ifmedia(4).

2 years agoifmedia.4: Add some documentation about 10G settings (adapted from OpenBSD).
Sascha Wildner [Sat, 30 Jun 2012 19:41:04 +0000 (21:41 +0200)]
ifmedia.4: Add some documentation about 10G settings (adapted from OpenBSD).

2 years ago<net/if_media.h>: Add 10G descriptions (taken from FreeBSD).
Sascha Wildner [Sat, 30 Jun 2012 21:38:10 +0000 (23:38 +0200)]
<net/if_media.h>: Add 10G descriptions (taken from FreeBSD).

2 years agoifmedia.4: Sync with NetBSD.
Sascha Wildner [Sat, 30 Jun 2012 18:25:49 +0000 (20:25 +0200)]
ifmedia.4: Sync with NetBSD.

2 years agoixgbe: Import Intel PRO/10GbE driver from FreeBSD
Fran├žois Tigeot [Sat, 30 Jun 2012 14:50:07 +0000 (16:50 +0200)]
ixgbe: Import Intel PRO/10GbE driver from FreeBSD

Local changes:

* Disable LRO and TSO hardware optimizations, commenting out the code
  with #if 0 directives

* Disable VLAN hardware acceleration code as well

* Disable MSI-X code, only use one queue per port for now

* Use code from Sascha Wildner to create a per-port sysctl tree

Tested-with: 82599EB

2 years agoFix more wrong sizeof() usages, part 4/x
Sascha Wildner [Sat, 30 Jun 2012 08:44:33 +0000 (10:44 +0200)]
Fix more wrong sizeof() usages, part 4/x

We want struct sizes here, not pointer sizes.

Found-with: Coccinelle (http://coccinelle.lip6.fr/)

2 years agoigb: Reduce MSI/legacy interrupt rate limit to 6000
Sepherosa Ziehau [Sat, 30 Jun 2012 03:25:54 +0000 (11:25 +0800)]
igb: Reduce MSI/legacy interrupt rate limit to 6000

Should work well enough as far as I have tested.

2 years agoigb: Make sure EITR interval is within range
Sepherosa Ziehau [Sat, 30 Jun 2012 03:24:10 +0000 (11:24 +0800)]
igb: Make sure EITR interval is within range

Suggested-by: dillon@
2 years agoigb: Add MSI-X support
Sepherosa Ziehau [Sun, 17 Jun 2012 08:03:11 +0000 (16:03 +0800)]
igb: Add MSI-X support

- As many RX rings will be enabled, if they are allowed by the number of
  available MSI-X vectors and number of CPUs.
- RX MSI-X vectors could be grouped to specific CPU set.  However, the
  first CPU of the CPU set must be aligned on RX MSI-X vector count; by
  default RX MSI-X vectors are grouped according to the device's software
  unit number.  Tunable hw.igbX.msix.rxoff could be used to regroup RX
  MSI-X vector to a specific set of CPUs.
- TX ring uses seperate MSI-X if possible.  TX MSI-X vector could be bound
  to a specific CPU; bydefault TX MSI-X vectors is bound to the CPU based
  on the device's software unit number.  Tunable hw.igbX.msix.txoff could
  be used to bind TX MSI-X to a specific CPU.
- Per MSI-X vector interrupt moderation sysctl hw.igbX.msiY_rate is added.
  The default interrupt rate for TX is 4000, which is enough to generate
  1.48Mpps small packets.  The default interrupt rate for RX is 6000.
- MSI-X must not be enabled on 82575 according to the specification update
  from Intel.

2 years agobge: Don't prevent bge_init if IFF_RUNNING is set
Sepherosa Ziehau [Fri, 29 Jun 2012 10:56:20 +0000 (18:56 +0800)]
bge: Don't prevent bge_init if IFF_RUNNING is set

This probably was old code which intended to guard against if_init()
triggered by SIOCSIFADDR in ether_ioctl().  It no longer makes sense.

Also don't call bge_init() if MTU is changed but device is not running
yet (FreeBSD 213587).

2 years agobge: Improve 5785 performance
Sepherosa Ziehau [Fri, 29 Jun 2012 10:36:30 +0000 (18:36 +0800)]
bge: Improve 5785 performance

By allowing write DMA to request larger DMA burst size

Obtained-from: OpenBSD via FreeBSD 213333

2 years agobge: Reduce the number of dropped frames when flow-control is enabled
Sepherosa Ziehau [Fri, 29 Jun 2012 10:31:10 +0000 (18:31 +0800)]
bge: Reduce the number of dropped frames when flow-control is enabled

Set the number of RX frames to receive after RX MBUF low watermark
has reached.  Previously it dropped incoming frames once
RX MBUF low watermark has reached.  The value used in MAC RX MBUF
low watermark is greater than or equal to 4 so receiving two more
RX frames should not be a problem.

Obtained-from: OpenBSD via FreeBSD 213255

2 years agobge: Disable UDP hardware checksum
Sepherosa Ziehau [Fri, 29 Jun 2012 10:26:36 +0000 (18:26 +0800)]
bge: Disable UDP hardware checksum

Broadcom NetExtreme controllers always generate 0 UDP checksum.

Obtained-from: FreeBSD 211596

2 years agobge: Avoid using magic number
Sepherosa Ziehau [Fri, 29 Jun 2012 10:22:44 +0000 (18:22 +0800)]
bge: Avoid using magic number

Obtained-from: FreeBSD 210152

2 years agobge: Properly enable Data Fifo Protection for certain chips
Sepherosa Ziehau [Fri, 29 Jun 2012 10:19:50 +0000 (18:19 +0800)]
bge: Properly enable Data Fifo Protection for certain chips

Obtained-from: FreeBSD 210083

2 years agobge: Zero out the status block during initialization
Sepherosa Ziehau [Fri, 29 Jun 2012 08:26:35 +0000 (16:26 +0800)]
bge: Zero out the status block during initialization

Obtained-from: FreeBSD 209741

2 years agobge: For dual mode PHY controllers, make sure to enable GMII
Sepherosa Ziehau [Fri, 29 Jun 2012 08:16:54 +0000 (16:16 +0800)]
bge: For dual mode PHY controllers, make sure to enable GMII

Obtained-from: OpenBSD via FreeBSD 202293

2 years agobge: Don't touch jumbo frame registers on chips which do not support them
Sepherosa Ziehau [Fri, 29 Jun 2012 08:00:09 +0000 (16:00 +0800)]
bge: Don't touch jumbo frame registers on chips which do not support them

Obtained-from: FreeBSD 200228

Unlike above FreeBSD commit, we don't change mini ring handling

2 years agobge: Improve TX performance on certain low end chips
Sepherosa Ziehau [Fri, 29 Jun 2012 07:39:10 +0000 (15:39 +0800)]
bge: Improve TX performance on certain low end chips

These chips, e.g. BCM5761, only allow one outstanding DMA read operation,
so on TX path, mbuf chain should be packed to reduce number of DMA reads
from chip to improve performance.

hw.bgeX.force_defrag is added for PCI-E chips to enable this mbuf chain
packing.  It is not enabled by default.

Obtained-from: FreeBSD 200088

2 years agobge: Reduce status block device update size
Sepherosa Ziehau [Fri, 29 Jun 2012 07:06:54 +0000 (15:06 +0800)]
bge: Reduce status block device update size

This reduced the amount of data that device needs to DMAed into
host mmeory update status updating.

Obtained-from: FreeBSD 199679

Changes made to the above FreeBSD commit:
- We don't reduce the amount of host memory allocated for status block
- Properly comment why BCM5700 AX/BX need to have full status block
  update setting according to the Broadcom datasheet

2 years agobge: x86_64 does not have alignment constraint either
Sepherosa Ziehau [Fri, 29 Jun 2012 01:48:30 +0000 (09:48 +0800)]
bge: x86_64 does not have alignment constraint either

2 years agotop - Display threads when asked to
Alex Hornung [Thu, 28 Jun 2012 11:11:09 +0000 (12:11 +0100)]
top - Display threads when asked to