dragonfly.git
19 months agortld: Delay DF_1_NODELETE process until object DAG loaded
John Marino [Mon, 20 Aug 2012 18:26:43 +0000 (20:26 +0200)]
rtld: Delay DF_1_NODELETE process until object DAG loaded

The current code can miss searching dependencies that haven't been loaded
yet.  Delay DF_1_NODELETE processing until object DAG is fully loaded.

Taken-from: FreeBSD SVN 239253 (14 Aug 2012)

19 months agokernel: Set kern.ipc.shm_use_phys to 1 by default
François Tigeot [Mon, 20 Aug 2012 06:17:29 +0000 (08:17 +0200)]
kernel: Set kern.ipc.shm_use_phys to 1 by default

* The only known user of SYSV shared memory is PostgreSQL

* It really needs physical allocation to perform well with high
  numbers of clients

* Physical allocation is now used by default

19 months agojme: Cache align RX/TX data structure
Sepherosa Ziehau [Sun, 19 Aug 2012 23:53:11 +0000 (07:53 +0800)]
jme: Cache align RX/TX data structure

19 months agojme: Only main serializer is needed for timeout callback
Sepherosa Ziehau [Sun, 19 Aug 2012 23:43:11 +0000 (07:43 +0800)]
jme: Only main serializer is needed for timeout callback

This reduces periodic contention against TX/RX path.

19 months agodhclient - Assume link is up when IFM_AVALID isn't set.
Antonio Huete Jimenez [Wed, 15 Aug 2012 01:19:51 +0000 (03:19 +0200)]
dhclient - Assume link is up when IFM_AVALID isn't set.

- This is what the late interface_link_status() did.
- Allows drivers who cannot tell what the link state is to get
  dhcp leases.

Taken-from: OpenBSD

19 months agodhclient - Have only one timeout at once.
Antonio Huete Jimenez [Wed, 15 Aug 2012 01:15:12 +0000 (03:15 +0200)]
dhclient - Have only one timeout at once.

- Terminate with extreme prejudice the multiple timeout queuing
  mechanism that was a holdover from when dhclient handled multiple
  interfaces at once.

- Also move calculation of current time to just before check to see
  if the timeout has expired.

Taken-from: OpenBSD

19 months agodhclient - Add some more paranoia and make code clearer.
Antonio Huete Jimenez [Tue, 14 Aug 2012 23:06:26 +0000 (01:06 +0200)]
dhclient - Add some more paranoia and make code clearer.

- Check that the required length field for the option
  is present before using it. Reject lease if no length
  field is present.

Taken-from: OpenBSD

19 months agodhclient - Delete trailing NUL's when parsing NVT ASCII options.
Antonio Huete Jimenez [Tue, 14 Aug 2012 22:54:02 +0000 (00:54 +0200)]
dhclient - Delete trailing NUL's when parsing NVT ASCII options.

- RFC 2132 says "Options containing NVT ASCII data SHOULD NOT include
  a trailing NULL; however, the receiver of such options MUST be
  prepared to delete trailing nulls if they exist."
- Should fix odd results when 'append'ing info to such options via
  dhclient.conf.

Taken-from: OpenBSD

19 months agodhclient - Nuke interface_link_status().
Antonio Huete Jimenez [Tue, 14 Aug 2012 22:44:47 +0000 (00:44 +0200)]
dhclient - Nuke interface_link_status().

- Make use of interface_status() (check IFF_UP|IFF_RUNNING
  and media status). The interface is forced up when dhclient
  starts so the flags should be correct.

Taken-from: OpenBSD

19 months agodhclient - Change return code test logic.
Antonio Huete Jimenez [Sat, 4 Aug 2012 19:08:44 +0000 (21:08 +0200)]
dhclient - Change return code test logic.

Taken from: OpenBSD

19 months agodhclient - Set state to S_REBOOTING when calling state_reboot().
Antonio Huete Jimenez [Sat, 4 Aug 2012 19:05:11 +0000 (21:05 +0200)]
dhclient - Set state to S_REBOOTING when calling state_reboot().

- Also set state inside state_reboot() to S_INIT when calling
  state_init(). Rather than the other way around.
  Makes for more consistant idiom and might reduce state confusion.

Taken-from: OpenBSD

19 months agodhclient - Cancel all timeouts in state_reboot().
Antonio Huete Jimenez [Sat, 4 Aug 2012 18:59:03 +0000 (20:59 +0200)]
dhclient - Cancel all timeouts in state_reboot().

- We can get there from any state if a link state change happens.
  Fixes a problem where we'd continue to send (corrupted) discover
  packets after binding.

Taken-from: OpenBSD

19 months agodhclient - Try harder to re-initialize parsing state.
Antonio Huete Jimenez [Sat, 4 Aug 2012 18:55:19 +0000 (20:55 +0200)]
dhclient - Try harder to re-initialize parsing state.

- Attempt that nothing accidentally carries over when
  a new file (i.e. leases after config) is parsed.
  May help with mysterious "Corrupt lease file" messages.

Taken-from: OpenBSD

19 months agodhclient - Tweak parsing.
Antonio Huete Jimenez [Sat, 4 Aug 2012 18:47:39 +0000 (20:47 +0200)]
dhclient - Tweak parsing.

- No need to declare, assign and then ignore the token
  value when only the token id is required.

Taken-from: OpenBSD

19 months agodhclient - Tweak leases file handling.
Antonio Huete Jimenez [Sat, 4 Aug 2012 18:36:23 +0000 (20:36 +0200)]
dhclient - Tweak leases file handling.

- Write out new leases file every time a lease is obtained. i.e. don't
  append 20 leases before cleaning it up.
- Write new leases file after calling dhclient-script to implement
  new info. Gets interface configured first, and makes it more likely
  the leases file reflects most current configuration.

Taken-from: OpenBSD

19 months agodhclient - Sequential options processing more friendly.
Antonio Huete Jimenez [Sat, 4 Aug 2012 18:23:47 +0000 (20:23 +0200)]
dhclient - Sequential options processing more friendly.

- Starting DHCP packet options with DHO_DHCP_MESSAGE_TYPE. Now
  DHCP-specific options always come after the option identifying
  the packet as DHCP rather than BOOTP. Makes at least Nortel NetIP
  DHCP server happier. Clean up some code and parameter passing.

Taken-from: OpenBSD

19 months agodhclient - Only warn on unknown options when appropiate.
Antonio Huete Jimenez [Fri, 3 Aug 2012 23:26:33 +0000 (01:26 +0200)]
dhclient - Only warn on unknown options when appropiate.

- By default we ignore unknown dhcp server options, so don't bother
  warning unless we ask dhclient to reject leases with unknown options.

Taken-from: OpenBSD

19 months agodhclient - Properly handle zero-length option hints.
Antonio Huete Jimenez [Fri, 3 Aug 2012 23:07:20 +0000 (01:07 +0200)]
dhclient - Properly handle zero-length option hints.

- There was a possible division by zero if a server
  sends us a broken option hints for the proper fix.

Taken-from: OpenBSD

19 months agodhclient - Remove wrong processing of option 33 (static routes).
Antonio Huete Jimenez [Fri, 3 Aug 2012 22:55:50 +0000 (00:55 +0200)]
dhclient - Remove wrong processing of option 33 (static routes).

- We are incorrectly processing option 33 (static route), treating
  is as a host route rather than a classful network route. Too much
  trouble to fix such an obsolete feature, so ignore option 33 info.

Taken-from: OpenBSD

19 months agodhclient-script(8) - Align man page with current reality.
Antonio Huete Jimenez [Fri, 3 Aug 2012 22:46:34 +0000 (00:46 +0200)]
dhclient-script(8) - Align man page with current reality.

Taken-from: OpenBSD

19 months agodhclient - Stray '$medium' missed in last commit.
Antonio Huete Jimenez [Fri, 3 Aug 2012 22:31:40 +0000 (00:31 +0200)]
dhclient - Stray '$medium' missed in last commit.

Taken-from: OpenBSD

19 months agodhclient - Drop medium/alias useless utilization.
Antonio Huete Jimenez [Fri, 3 Aug 2012 22:26:45 +0000 (00:26 +0200)]
dhclient - Drop medium/alias useless utilization.

- Dump some useless calls to dhclient-script. i.e. MEDIUM, PREINIT,
  ARPSEND, ARPCHECK. Drop support for 'media', 'medium' and 'alias'
  specifications in dhclient.conf.
- Old leases still parse but these options now have no effect.
- Be more polite and decline all offers we don't accept.
- Fix a IMSG length check.
- Many expressions of support at various bars.

Taken-from: OpenBSD

19 months agodhclient - Fix interval handling.
Antonio Huete Jimenez [Thu, 2 Aug 2012 19:26:34 +0000 (21:26 +0200)]
dhclient - Fix interval handling.

- Start at initial_interval instead of exponentially backed
  off initial_interval.
- Don't hallucinate that we can send ARP packets without waiting.
- Don't claim to be waiting for ARP packets when not doing so.
- Correctly detect expiry of selecting period.
- Speeds up negotiations.

Taken-from: OpenBSD

19 months agodhclient.conf(5) - New sentence, new line.
Antonio Huete Jimenez [Thu, 2 Aug 2012 19:17:32 +0000 (21:17 +0200)]
dhclient.conf(5) - New sentence, new line.

Taken-from: OpenBSD

19 months agodhclient.conf(5) - Few fixes. Reword a sentence.
Antonio Huete Jimenez [Thu, 2 Aug 2012 19:15:43 +0000 (21:15 +0200)]
dhclient.conf(5) - Few fixes. Reword a sentence.

Taken-from: OpenBSD

19 months agodhclient - Make sure an interface is registered before we start using it.
Antonio Huete Jimenez [Thu, 2 Aug 2012 18:15:28 +0000 (20:15 +0200)]
dhclient - Make sure an interface is registered before we start using it.

Taken-from: OpenBSD

19 months agodhclient - Add and ignore DHCP option 66/0x42 TFTP server name.
Antonio Huete Jimenez [Thu, 2 Aug 2012 18:13:02 +0000 (20:13 +0200)]
dhclient - Add and ignore DHCP option 66/0x42 TFTP server name.

Taken-from: OpenBSD

19 months agodhclient(8) - Remove NOTES section.
Antonio Huete Jimenez [Thu, 2 Aug 2012 17:55:19 +0000 (19:55 +0200)]
dhclient(8) - Remove NOTES section.

Taken from: OpenBSD

19 months agodhclient - Add 'egress' command-line option.
Antonio Huete Jimenez [Thu, 2 Aug 2012 17:39:08 +0000 (19:39 +0200)]
dhclient - Add 'egress' command-line option.

- It can be used to refetch a lease without remembering
which interface dhclient was actually active on.

Taken-from: OpenBSD

19 months agodhclient - Remove unused function.
Antonio Huete Jimenez [Thu, 2 Aug 2012 09:50:39 +0000 (11:50 +0200)]
dhclient - Remove unused function.

Taken-from: OpenBSD

19 months agodhclient - Use strdup() instead of malloc/strlcpy.
Antonio Huete Jimenez [Thu, 2 Aug 2012 09:46:36 +0000 (11:46 +0200)]
dhclient - Use strdup() instead of malloc/strlcpy.

Taken-from: OpenBSD

19 months agodhclient - Be more strict in check_option().
Antonio Huete Jimenez [Wed, 1 Aug 2012 19:43:24 +0000 (21:43 +0200)]
dhclient - Be more strict in check_option().

ISC dhclient had a buffer overflow: http://www.kb.cert.org/vuls/id/410676 and
while our dhclient is not vulnerable to that, it got us looking at how the
subnet mask option is handled.
This limits specific ip address options to length 4 in conformance with RFC 2132.

Taken-from: OpenBSD

19 months agodhclient - Silence dhclient by immediately exiting if the interface doesn't exist.
Antonio Huete Jimenez [Wed, 1 Aug 2012 19:25:29 +0000 (21:25 +0200)]
dhclient - Silence dhclient by immediately exiting if the interface doesn't exist.

Taken-from: OpenBSD

19 months agodhclient - Make room for trailing \0 on prepend/append for dhcp options.
Antonio Huete Jimenez [Wed, 1 Aug 2012 19:12:15 +0000 (21:12 +0200)]
dhclient - Make room for trailing \0 on prepend/append for dhcp options.

Taken-from: OpenBSD

19 months agodhclient - Use addr_eq() when possible.
Antonio Huete Jimenez [Wed, 1 Aug 2012 19:07:59 +0000 (21:07 +0200)]
dhclient - Use addr_eq() when possible.

Taken-from: OpenBSD

19 months agodhclient - Lets state_panic() check the rest of valid leases.
Antonio Huete Jimenez [Wed, 1 Aug 2012 19:06:34 +0000 (21:06 +0200)]
dhclient - Lets state_panic() check the rest of valid leases.

Taken-from: OpenBSD

19 months agodhclient - Print out debug messages only when DEBUG is defined.
Antonio Huete Jimenez [Wed, 1 Aug 2012 18:36:59 +0000 (20:36 +0200)]
dhclient - Print out debug messages only when DEBUG is defined.

Taken-from: OpenBSD

19 months agodhclient - Remove unneeded ARGSUSED
Antonio Huete Jimenez [Wed, 1 Aug 2012 18:10:47 +0000 (20:10 +0200)]
dhclient - Remove unneeded ARGSUSED

Taken-from: OpenBSD

19 months agodhclient - Fix old bug that could cause lease mangling.
Antonio Huete Jimenez [Wed, 1 Aug 2012 18:06:32 +0000 (20:06 +0200)]
dhclient - Fix old bug that could cause lease mangling.

Taken-from: OpenBSD

19 months agodhclient - Error out if _dhcp user is missing.
Antonio Huete Jimenez [Wed, 1 Aug 2012 17:51:25 +0000 (19:51 +0200)]
dhclient - Error out if _dhcp user is missing.

Taken-from: OpenBSD

19 months agodhclient - Add 6-byte MAC address to the log entries for DHCP ACK/NAK/OFFER.
Antonio Huete Jimenez [Tue, 31 Jul 2012 20:29:29 +0000 (22:29 +0200)]
dhclient - Add 6-byte MAC address to the log entries for DHCP ACK/NAK/OFFER.

- Log the packets before checking the client state. Makes it easy to find
  MACs for 'surprise' DHCP servers.
- Swap ifi status check logic to be the first one.

19 months agodhclient - Improve comment about resolv.conf creation.
Antonio Huete Jimenez [Tue, 31 Jul 2012 20:05:41 +0000 (22:05 +0200)]
dhclient - Improve comment about resolv.conf creation.

Taken-from: OpenBSD

19 months agodhclient - Term consistency about the config script.
Antonio Huete Jimenez [Tue, 31 Jul 2012 19:59:00 +0000 (21:59 +0200)]
dhclient - Term consistency about the config script.

- Also fix manpage section for dhclient-scripts.

Taken-from: OpenBSD

19 months agodhclient - Fix typo.
Antonio Huete Jimenez [Tue, 31 Jul 2012 19:53:54 +0000 (21:53 +0200)]
dhclient - Fix typo.

Taken-from: OpenBSD

19 months agodhclient - Clarify discussion of option modifiers.
Antonio Huete Jimenez [Tue, 31 Jul 2012 19:53:05 +0000 (21:53 +0200)]
dhclient - Clarify discussion of option modifiers.

They only affect values passed to dhclient-script. Our default script
only uses a few options so others are unaffected by option modifiers.

Taken-from: OpenBSD

19 months agodhclient - Fix spurious 'got link'
Antonio Huete Jimenez [Tue, 31 Jul 2012 19:44:12 +0000 (21:44 +0200)]
dhclient - Fix spurious 'got link'

Taken-from: OpenBSD

19 months agodhclient - Fix OpenBSD CVS ids to match current version.
Antonio Huete Jimenez [Tue, 31 Jul 2012 19:28:36 +0000 (21:28 +0200)]
dhclient - Fix OpenBSD CVS ids to match current version.

Also remove DFly ones.

19 months agoposix_memalign.3: Uncomment conformance sentence for aligned_alloc().
Sascha Wildner [Sun, 19 Aug 2012 11:53:39 +0000 (13:53 +0200)]
posix_memalign.3: Uncomment conformance sentence for aligned_alloc().

19 months agojme: Don't immediately recycle the TX descriptor even if it is owned by us.
Sepherosa Ziehau [Sun, 19 Aug 2012 07:56:21 +0000 (15:56 +0800)]
jme: Don't immediately recycle the TX descriptor even if it is owned by us.

This chip will always update the TX descriptor's 32bits fields in order,
so even if the status field has been updated, i.e. OWN is cleared, it still
does not mean that the buflen field has been updated.  To avoid this race
we don't immediately recycle the currently checking TX descriptor.  Instead,
next TX descriptor's OWN bit is checked, if it is cleared, then the updating
of the currently checked TX descrptor is really done.

This is intended to fix the seldom watchdog timeout that was observed on this
chip.

Thank devinchiu@jmicron.com very much for providing necessary information.

19 months agounlock_return.cocci: Add vm_object_{hold,drop}().
Sascha Wildner [Thu, 16 Aug 2012 17:53:40 +0000 (19:53 +0200)]
unlock_return.cocci: Add vm_object_{hold,drop}().

19 months agoAdd running 'mandoc -Tlint' to the manlint target.
Sascha Wildner [Sat, 18 Aug 2012 22:26:20 +0000 (00:26 +0200)]
Add running 'mandoc -Tlint' to the manlint target.

Also ignore the exit status here.

Suggested-by: nant
19 months agoSuppress printing of the commands for the manlint target.
Sascha Wildner [Sat, 18 Aug 2012 22:23:14 +0000 (00:23 +0200)]
Suppress printing of the commands for the manlint target.

19 months agolibc: Comment out documentation of svc_control() which we don't have.
Sascha Wildner [Sat, 18 Aug 2012 22:10:48 +0000 (00:10 +0200)]
libc: Comment out documentation of svc_control() which we don't have.

19 months agobce: Dispatch callouts to interrupt's target CPU
Sepherosa Ziehau [Sat, 18 Aug 2012 07:17:50 +0000 (15:17 +0800)]
bce: Dispatch callouts to interrupt's target CPU

19 months agobce: Rework MSI checkout for 5706 and 5708
Sepherosa Ziehau [Sat, 18 Aug 2012 06:49:37 +0000 (14:49 +0800)]
bce: Rework MSI checkout for 5706 and 5708

19 months agobge: Use MPSAFE callout
Sepherosa Ziehau [Sat, 18 Aug 2012 03:16:47 +0000 (11:16 +0800)]
bge: Use MPSAFE callout

19 months agobge: Always configure MII mode register
Sepherosa Ziehau [Sat, 18 Aug 2012 03:15:44 +0000 (11:15 +0800)]
bge: Always configure MII mode register

19 months agobnx: Enable 500Khz MII management interface frequency
Sepherosa Ziehau [Sat, 18 Aug 2012 02:29:18 +0000 (10:29 +0800)]
bnx: Enable 500Khz MII management interface frequency

This stablizes MII read/write, thus avoid MII probing failure

Reported-by: jaydg on #dragonflybsd
Tested-by: jaydg on #dragonflybsd
19 months agokernel - Fix condvar races
Matthew Dillon [Fri, 17 Aug 2012 19:40:09 +0000 (12:40 -0700)]
kernel - Fix condvar races

* Interlocked sleep was not using the PINTERLOCKED flag.

* Misc other adjustments.

19 months agopuffs - Comment out namecache purge for now
Matthew Dillon [Fri, 17 Aug 2012 19:39:14 +0000 (12:39 -0700)]
puffs - Comment out namecache purge for now

* Comment out a namecache purge that deadlocks for now.

19 months agopci: Enable PCIe memory mapped configuration again
Sepherosa Ziehau [Fri, 17 Aug 2012 15:13:33 +0000 (23:13 +0800)]
pci: Enable PCIe memory mapped configuration again

bd7ad9e91e71693907a00c74ab8dfc457cd655c9 should have fixed the
system hanging seen by y0netan1@

19 months agopci: Disable memory address decoding before writing 0xffffffff to BAR
Sepherosa Ziehau [Fri, 17 Aug 2012 15:10:46 +0000 (23:10 +0800)]
pci: Disable memory address decoding before writing 0xffffffff to BAR

This makes PCIe memory mapped configuration works.

Submitted-by: Romick Romick
Tested-by: y0netan1@
19 months agonewfs_hammer.8: Mdoc fix
Sascha Wildner [Fri, 17 Aug 2012 13:26:29 +0000 (15:26 +0200)]
newfs_hammer.8: Mdoc fix

19 months agoixgbe: remove unneeded lockuninit call
François Tigeot [Wed, 15 Aug 2012 14:05:20 +0000 (16:05 +0200)]
ixgbe: remove unneeded lockuninit call

20 months agokernel - Adjust UFS and HAMMER to use uiomovebp()
Matthew Dillon [Fri, 17 Aug 2012 00:54:16 +0000 (17:54 -0700)]
kernel - Adjust UFS and HAMMER to use uiomovebp()

* Add uiomovebp(), a version of uiomove() which is aware of a locked bp
  representing the to or from buffer and can work-around issues related
  to VM faults causing recursions and deadlocks on the user buffer.

  uiomovebp() does not yet detect or handle deadlocks.  Implementing
  deadlock handling will require a certain degree of finess related to
  the vnode and bp locks and we don't want to have to do it unless we
  actually deadlock.  TODO.

* Adjust UFS, HAMMER, TMPFS, MSDOSFS, NFS, NTFS to use uiomovebp().

20 months agokernel - Change lockmgr LK_SHARED behavior to fix improper recursion return
Matthew Dillon [Fri, 17 Aug 2012 00:40:38 +0000 (17:40 -0700)]
kernel - Change lockmgr LK_SHARED behavior to fix improper recursion return

* When obtaining a LK_SHARED lock in a situation where you already own the
  lock LK_EXCLUSIVE, lockmgr would downgrade the lock to shared.

  This creates a very serious problem when large procedural recursions get
  a lock that is already being held exclusively but request a shared lock.
  When these recursions return the original top level will find its lock is
  no longer exclusive.

* This problem occured with vnode locks when a VOP_WRITE operation on a mmap'd
  space causes a VM fault which then turns around and issues a read().
  When the fault returns the vnode wound up locked shared instead of
  exclusive.

* Fix the problem by NOT downgrading an exclusive lock to shared when
  recursing on LK_SHARED.  Simply add another count to the exclusive
  lock.

20 months agokernel - Fix incorrect dirty/reprotect code in pageout
Matthew Dillon [Thu, 16 Aug 2012 18:42:25 +0000 (11:42 -0700)]
kernel - Fix incorrect dirty/reprotect code in pageout

* vm_object_page_collect_flush() was trying to re-protect VM pages that
  were still marked dirty after pageout I/O was initiated without owning
  the BUSY bit on the page.  This operation could race whatever I/O was
  going on and multiple issues.  Remove the re-protect.

  Just don't do it.  It's an unnecessary operation.  We still re-set
  PG_CLEANCHK on the page and that should be fine insofar as the pageout
  daemon goes.

* Note that the pageout_flush code protects the VM pages properly (to
  read-only) prior to initiating I/O .

* Should fix bug #2350

* Might be related to the wire-count bug considering that we were messing
  with the page's pmap without owning the BUSY bit.  Small chance.

20 months agokernel - Fix long-standing vm_map token panic
Matthew Dillon [Thu, 16 Aug 2012 17:46:33 +0000 (10:46 -0700)]
kernel - Fix long-standing vm_map token panic

* Bug turned out to be an error path in vm_map_find().

* This bug ate a lot of hours from several people, but Antonio was able
  to instrument the token path in a way that allowed us to narrow down
  and locate the problem.

Submitted-by: tuxillo, vsrinivas
Debugging-by: tuxillo
20 months agokernel - Stop KTR logging during panic
Matthew Dillon [Thu, 16 Aug 2012 16:11:07 +0000 (09:11 -0700)]
kernel - Stop KTR logging during panic

* Stop all KTR logging when a panic occurs so the KTR buffer doesn't
  get wiped out by events during the panic & core dump.  This gives
  us a KTR buf snapshot as of the panic entry.

20 months agokernel/linprocfs: Add a missing header for spin_{,un}lock().
Sascha Wildner [Thu, 16 Aug 2012 14:05:38 +0000 (16:05 +0200)]
kernel/linprocfs: Add a missing header for spin_{,un}lock().

20 months agokernel/linprocfs: Remove useless .PATH in the Makefile.
Sascha Wildner [Thu, 16 Aug 2012 14:04:10 +0000 (16:04 +0200)]
kernel/linprocfs: Remove useless .PATH in the Makefile.

20 months agotcp: Stringent TSO segment length assertion.
Sepherosa Ziehau [Thu, 16 Aug 2012 02:31:31 +0000 (10:31 +0800)]
tcp: Stringent TSO segment length assertion.

20 months agokernel - Fix numerous procfs/ptrace issues (3)
Matthew Dillon [Thu, 16 Aug 2012 01:17:43 +0000 (18:17 -0700)]
kernel - Fix numerous procfs/ptrace issues (3)

* Add a safety spin-lock around adjustments to p_stops so it hopefully
  interacts better with the event processing side of things.

20 months agokernel - Fix two UFS+softupdates bugs
Matthew Dillon [Thu, 16 Aug 2012 01:14:27 +0000 (18:14 -0700)]
kernel - Fix two UFS+softupdates bugs

* The softdep sema_*() functions (the ones in ffs_softdep.c, not the sysv
  functions) were not MPSAFE for the case where the passed interlock is
  NULL.  Use a spinlock for that case.

* getdirtybuf()'s semantics were broken and could return success even
  after having released &lk with the bp still unlocked.

  Fixing this should fix most of the reported softdep panics.

20 months agokernel - Fix exit races which can lead to a corrupt p_children list
Matthew Dillon [Thu, 16 Aug 2012 01:11:11 +0000 (18:11 -0700)]
kernel - Fix exit races which can lead to a corrupt p_children list

* There are a few races when getting multiple tokens where a threaded
  process is wait*()ing for exiting children from multiple threads
  at once.

  Fix the problem by serializing the operation on a per-child basis,
  and by using PHOLD/PRELE prior to acquiring the child's p_token.
  Then re-check the conditions before accepting the child.

* There is a small chance this will also reduce or fix VM on-exit races
  in i386, as this bug could result in an already-destroyed process
  being pulled off by the racing wait*().  Maybe 25% chance.

20 months agoKernel - Fix numerous procfs/ptrace issues (2)
Matthew Dillon [Thu, 16 Aug 2012 00:49:47 +0000 (17:49 -0700)]
Kernel - Fix numerous procfs/ptrace issues (2)

* The last fix wasn't quite right.  Fix it for real.

20 months agoKernel - Fix numerous procfs/ptrace issues
Matthew Dillon [Thu, 16 Aug 2012 00:18:31 +0000 (17:18 -0700)]
Kernel - Fix numerous procfs/ptrace issues

* Fix interactions during exec and exit.  This should fix truss
  (bug 2313).

* Reset p_* fields related to tracing on last procfs close for the
  process.

20 months agotuxload - Enhace tuxload a bit.
Antonio Huete Jimenez [Wed, 15 Aug 2012 19:00:01 +0000 (21:00 +0200)]
tuxload - Enhace tuxload a bit.

- Support several options (file size, number of files,
  multiple tests)
- It can run forever via option -c

20 months agohammer - Add tunable vfs.hammer.skip_redo
Antonio Huete Jimenez [Tue, 14 Aug 2012 19:55:36 +0000 (21:55 +0200)]
hammer - Add tunable vfs.hammer.skip_redo

This tunable can be used to change the behaviour of the redo
recovery in the case a HAMMER filesystem is not able to mount.

Following values are accepted:

0 - Run redo recovery normally and fail to mount if
    the operation fails (default).
1 - Run redo recovery, but don't fail to mount if the
    operation fails.
2 - Completely skip redo recovery (only for severe error
    conditions and/or debugging).

Pointed-out-by: dillon
20 months agoixgbe: Use callout_init_mp()
François Tigeot [Wed, 15 Aug 2012 07:44:20 +0000 (09:44 +0200)]
ixgbe: Use callout_init_mp()

* The timer callout function is mpsafe and callout_init() assumes it isn't

* Replace callout_init() by callout_init_mp() and avoid grabbing the mplock

20 months agoem: Add TSO support for certain PCIe chips
Sepherosa Ziehau [Wed, 15 Aug 2012 04:38:29 +0000 (12:38 +0800)]
em: Add TSO support for certain PCIe chips

20 months agoem: Utilize mbuf's header length to setup TX csum context
Sepherosa Ziehau [Wed, 15 Aug 2012 03:04:09 +0000 (11:04 +0800)]
em: Utilize mbuf's header length to setup TX csum context

20 months agoem: Change TXCSUM does not require reinitialize hardware
Sepherosa Ziehau [Wed, 15 Aug 2012 02:37:44 +0000 (10:37 +0800)]
em: Change TXCSUM does not require reinitialize hardware

20 months agoem: Pack boolean fields into flags
Sepherosa Ziehau [Wed, 15 Aug 2012 02:27:07 +0000 (10:27 +0800)]
em: Pack boolean fields into flags

20 months agoem: Increase RX/TX descriptor count to 512
Sepherosa Ziehau [Wed, 15 Aug 2012 02:01:21 +0000 (10:01 +0800)]
em: Increase RX/TX descriptor count to 512

20 months agobge: Allow max BDs based coalesce to be disabled
Sepherosa Ziehau [Tue, 14 Aug 2012 23:40:38 +0000 (07:40 +0800)]
bge: Allow max BDs based coalesce to be disabled

20 months agobge: Don't peek at the TX descriptor in txeof()
Sepherosa Ziehau [Tue, 14 Aug 2012 23:16:27 +0000 (07:16 +0800)]
bge: Don't peek at the TX descriptor in txeof()

20 months agoixgbe: Remove the multicast spinlock
François Tigeot [Tue, 14 Aug 2012 09:25:19 +0000 (11:25 +0200)]
ixgbe: Remove the multicast spinlock

Multicast read/write is serialized by netisr0, there is no need to
add another protection layer.

Advised-by: Sepherosa Ziehau
20 months agortld: Parse notes later (bug# 2376)
John Marino [Tue, 14 Aug 2012 14:38:31 +0000 (16:38 +0200)]
rtld: Parse notes later (bug# 2376)

Parse notes only after object structure has been allocated.

Taken-from: FreeBSD svn 239019
DragonFly-bug: <http://bugs.dragonflybsd.org/issue/2376>

20 months agobnx: Don't peek at the TX descriptor in txeof()
Sepherosa Ziehau [Tue, 14 Aug 2012 09:27:24 +0000 (17:27 +0800)]
bnx: Don't peek at the TX descriptor in txeof()

Which is completely unnecessary and pollute cache badly.

20 months agoemx: Pack boolean fields into flags
Sepherosa Ziehau [Tue, 14 Aug 2012 08:48:41 +0000 (16:48 +0800)]
emx: Pack boolean fields into flags

20 months agoigb: Remove no longer referenced code
Sepherosa Ziehau [Tue, 14 Aug 2012 08:21:49 +0000 (16:21 +0800)]
igb: Remove no longer referenced code

20 months agoigb: Remove unused code; adjust and add comment
Sepherosa Ziehau [Tue, 14 Aug 2012 08:17:24 +0000 (16:17 +0800)]
igb: Remove unused code; adjust and add comment

20 months agoigb: Remove unused field
Sepherosa Ziehau [Tue, 14 Aug 2012 08:10:26 +0000 (16:10 +0800)]
igb: Remove unused field

20 months agoixgbe: Remove a useless assertion
François Tigeot [Tue, 14 Aug 2012 05:49:31 +0000 (07:49 +0200)]
ixgbe: Remove a useless assertion

Found-by: Sascha Wildner
20 months agoinstaller: When setting the slice type for >2TB, ignore fdisk warnings.
Sascha Wildner [Mon, 13 Aug 2012 18:42:13 +0000 (20:42 +0200)]
installer: When setting the slice type for >2TB, ignore fdisk warnings.

With disks >2TB this step will lead to some whining from fdisk(8), but
since we'll boot anyway (with 34ea800d, we resort to the media size
when a maxed out slice size is detected), just ignore any issues which
fdisk(8) reports in this case.

After this commit, installing and booting from that installation on a
disk which is >2TB will work (tested with a 3TB ahci attached drive as
well as with a 4.5TB hptrr(4) RAID).

Dragonfly-bug: <https://bugs.dragonflybsd.org/issues/2264>
Reported-by: ftigeot
20 months agobce: Unbreak LINT building
Sepherosa Ziehau [Mon, 13 Aug 2012 01:20:52 +0000 (09:20 +0800)]
bce: Unbreak LINT building

Reminded-by: swildner@
20 months agoahci(4)/sili(4): Fix for drives >2TB.
Sascha Wildner [Mon, 13 Aug 2012 00:33:30 +0000 (02:33 +0200)]
ahci(4)/sili(4): Fix for drives >2TB.

CAM will issue the 16 byte version of the READ CAPACITY command when
maxsector is 0xffffffff:

----- scsi_da.c -----
if (maxsector == 0xffffffff) {
softc->state = DA_STATE_PROBE2;
kfree(rdcap, M_SCSIDA);
xpt_release_ccb(done_ccb);
xpt_schedule(periph, /*priority*/5);
return;
}
---------------------

However, we are subtracting 1 from it (presumably because it's a "last
sector on the device" value starting at 0) so in CAM, it ended up being
0xfffffffe, resulting in disks attached via ahci(4) and sili(4) to be
limited to 2TB.

To fix, set the local var to 0 in this case, so that after subtracting 1
from the value (cast to 32 bit) CAM gets 0xffffffff.

Fix-by: dillon
20 months agoixgbe: replace direct lockmgr calls by macros
François Tigeot [Sun, 12 Aug 2012 16:57:10 +0000 (18:57 +0200)]
ixgbe: replace direct lockmgr calls by macros

Only 3 lines didn't use the IXGBE_CORE_LOCK/UNLOCK() abstractions

20 months agobge: Add TSO support for BCM5755 family chips
Sepherosa Ziehau [Sun, 12 Aug 2012 10:44:28 +0000 (18:44 +0800)]
bge: Add TSO support for BCM5755 family chips

Obtained-from: FreeBSD