Sepherosa Ziehau [Sun, 14 Apr 2013 10:51:56 +0000 (18:51 +0800)]
bnx: Use pre-configured array to setup TX ring's mailbox register
Sepherosa Ziehau [Sun, 14 Apr 2013 08:29:06 +0000 (16:29 +0800)]
bnx: Create dedicated thread for RX standard ring refilling
The RX standard ring descriptors and RX standard producer index register
are updated only in the dedicated thread. The RX standard ring software
ring data are shared between RX return rings' processing threads and the
dedicated thread. The RX standard ring software ring data are updated in
lockless fashion, since only one RX return ring could be the owner of the
entry of RX standard ring software ring data.
The RX standard ring refilling thread scheduling is optimized that only
when certain amount of packets are received by the RX return ring, the
RX standard ring refiling thread will be scheduled.
This prepares for the multiple RX rings support.
Eitan Adler [Sat, 13 Apr 2013 20:37:10 +0000 (16:37 -0400)]
touch(1): Constify where appropriate
Reported-by: emaste@FreeBSD.org
Sascha Wildner [Sat, 13 Apr 2013 07:31:42 +0000 (09:31 +0200)]
pathconf.2: Mention lpathconf() in the ERRORS section.
Sascha Wildner [Sat, 13 Apr 2013 07:09:58 +0000 (09:09 +0200)]
kernel/rmdir: Return EBUSY if the dir is a mount point for a mounted fs.
See: http://pubs.opengroup.org/onlinepubs/
009695399/functions/rmdir.html
It was already documented like that in the manual page.
While here, also document that we return EINVAL if the last component of
the path is "." or ".." (taken from FreeBSD).
Reported-by: Joris Giovannangeli <joris@giovannangeli.fr>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2543>
Sascha Wildner [Sat, 13 Apr 2013 06:58:19 +0000 (08:58 +0200)]
kernel: Add lpathconf(2) syscall.
It's like pathconf(2) but doesn't follow symlinks.
Manual page changes taken from FreeBSD.
Sascha Wildner [Fri, 12 Apr 2013 15:43:26 +0000 (17:43 +0200)]
touch(1): Move ids back to the comments (as per
1de703daf6).
Sepherosa Ziehau [Fri, 12 Apr 2013 05:21:15 +0000 (13:21 +0800)]
bnx: Fix up CPUID for tick callout
Sepherosa Ziehau [Fri, 12 Apr 2013 03:13:40 +0000 (11:13 +0800)]
bnx: Reimplement polling in non-compat mode
Take advantage of the independent TX/RX serializers.
Additionally, save the status tag's location in RX return ring struct.
François Tigeot [Thu, 11 Apr 2013 12:06:34 +0000 (14:06 +0200)]
touch(1): Reintroduce local changes
Major changes introduced by the update from FreeBSD:
* Add the 'h' flag to operate on symlinks rather than what they point to.
* Add -A flag to adjust existing time stamps.
* Add the -d option from POSIX.1-2008.
This is much like -t but with a different format which is ISO8601-like
and allows fractions of a second.
* Remove the advertising clause from UCB copyrighted files. This
is in accordance with the information provided at
ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
* Remove useless and potentially dangerous rw() function which tries to
update access and modification times by reading and writing the file.
François Tigeot [Thu, 11 Apr 2013 07:02:56 +0000 (09:02 +0200)]
touch(1): Sync with FreeBSD
Sepherosa Ziehau [Thu, 11 Apr 2013 08:54:08 +0000 (16:54 +0800)]
bnx: Add read-only sysctl node for RX/TX queue count
Sepherosa Ziehau [Thu, 11 Apr 2013 08:15:28 +0000 (16:15 +0800)]
bnx: Switch to IFQ subqueue functions and use per-TX queue watchdog
Sepherosa Ziehau [Thu, 11 Apr 2013 07:33:24 +0000 (15:33 +0800)]
bnx: Split RX/TX serializers
Sascha Wildner [Wed, 10 Apr 2013 17:10:53 +0000 (19:10 +0200)]
Add EXIT STATUS messages in some manual pages.
Sascha Wildner [Wed, 10 Apr 2013 16:57:21 +0000 (18:57 +0200)]
rmdir.1: Add EXIT STATUS section and fix a typo.
Sascha Wildner [Wed, 10 Apr 2013 16:12:08 +0000 (18:12 +0200)]
Makefile_upgrade.inc: Fix typo.
Sepherosa Ziehau [Wed, 10 Apr 2013 09:05:56 +0000 (17:05 +0800)]
bnx: Group interrupt related fields together
Sepherosa Ziehau [Wed, 10 Apr 2013 03:10:33 +0000 (11:10 +0800)]
ioapic: Relocate IRQ if it hits SYSCALL entry
The system hitting the "unused IRQ assertion" has 5x24 pin IOAPICs
Reported-by: ruse39
Sepherosa Ziehau [Wed, 10 Apr 2013 02:13:56 +0000 (10:13 +0800)]
bnx: Save RX return ring and TX ring status block indices' location
Sepherosa Ziehau [Tue, 9 Apr 2013 12:52:24 +0000 (20:52 +0800)]
bnx: Field renaming; no functional changes
Sepherosa Ziehau [Tue, 9 Apr 2013 09:41:37 +0000 (17:41 +0800)]
bnx: Factor out bnx_{alloc,setup,free}_intr()
Sepherosa Ziehau [Tue, 9 Apr 2013 09:18:31 +0000 (17:18 +0800)]
bce: BCM5716's MSI does not have bug either
Sepherosa Ziehau [Tue, 9 Apr 2013 09:03:40 +0000 (17:03 +0800)]
bnx: Don't commit coalesce param changes in interrupt/polling handler
This is only intended for old chips. Just commit the coalesce param
changes in sysctl handlers.
Sepherosa Ziehau [Sat, 6 Apr 2013 11:47:59 +0000 (19:47 +0800)]
bnx: Regroup RX std and return rings into their own structs
Sepherosa Ziehau [Tue, 9 Apr 2013 03:06:39 +0000 (11:06 +0800)]
ip/udp: Fix IP source address setting for multicast address bound socket
It is a common practice to bind UDP socket to multicast address to enjoy
kernel level destination multicast address and port filtering. However,
if data are sent on this kind of socket, source address of the IP packet
will be the bound multicast address?!
Two fixes are added to address this bug:
1) Don't set IP source address in udp_output(), if the inpcb's laddr is
multicast address. Instead the IP source address is set to INADDR_ANY,
so ip_output() could pick up a proper IP source address.
2) With 1) in place, it is possible that IP source address is INADDR_ANY
before the ifnet.if_output() using following steps:
- If the IP_MULTICAST_IF socket option is set to iface0
- The iface0's last IP address is unset, before the ip_output()
This condition could easily be reproduced by using test/mcast:
mcast -m 224.2.2.2 -p 3000 -i iface0_ip -D 10
During the 10sec delay, wipe out all IP addresses from iface0
Well, even without 1), raw IP still could generate IP packet using
INADDR_ANY as source address.
Two checks on the source IP address are added to ip_output() before
ifnet.if_output()
- IP source address should not be INADDR_ANY
- IP source address should not be multicast address
And for multicast IP packets, if the IP source address could be
determined, they will not be looped back and forwarded.
Reported-by: zeroxia
Sepherosa Ziehau [Tue, 9 Apr 2013 03:05:46 +0000 (11:05 +0800)]
test/mcast: Add test for send(2) on multicast address bound socket
Sepherosa Ziehau [Tue, 9 Apr 2013 02:32:22 +0000 (10:32 +0800)]
ip_output: Record the "src was INADDR_ANY" for multicast packets
While I'm here, fix the comment on the unicast packet output path.
Sascha Wildner [Sun, 7 Apr 2013 21:59:44 +0000 (23:59 +0200)]
mined(1): Fix alignment issue on strict alignment architectures.
Reported-by: Eitan Adler <eadler@freebsd.org>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2541>
Sascha Wildner [Sun, 7 Apr 2013 21:04:53 +0000 (23:04 +0200)]
mined.1: Move some info from CAVEATS to DESCRIPTION.
mandoc(1) warns about CAVEATS not being in conventional order and
silencing it by moving the section would have caused it to be behind
HISTORY even.
However, the info is more important than the editor's history, so
instead add it to the DESCRIPTION, which is short in this case, anyway.
Reported-by: Eitan Adler <eadler@freebsd.org>
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2540>
Peter Avalos [Sun, 7 Apr 2013 04:55:23 +0000 (21:55 -0700)]
ftp: Update files for tnftp-
20121224 import.
Peter Avalos [Sun, 7 Apr 2013 05:00:55 +0000 (22:00 -0700)]
Merge branch 'vendor/TNFTP'
Sepherosa Ziehau [Sun, 7 Apr 2013 04:57:49 +0000 (12:57 +0800)]
de: Reset chip after calling ether_ifattach()
Else the ifnet is not completely initialized
Reported-by: swildner@
Peter Avalos [Sun, 7 Apr 2013 04:34:01 +0000 (21:34 -0700)]
Import tnftp-
20121224.
* Add https support.
* When using the response to SYST to decide whether to default to
'binary' be a lot less specific.
Obtained-from: NetBSD
Sascha Wildner [Fri, 5 Apr 2013 03:50:55 +0000 (05:50 +0200)]
kernel/if_ndis: Grab the serializer around if_devstart().
Submitted-by: sephe
Sascha Wildner [Tue, 2 Apr 2013 19:23:19 +0000 (21:23 +0200)]
development.7: Mention dragonfly.vim.
Sascha Wildner [Tue, 2 Apr 2013 18:04:08 +0000 (20:04 +0200)]
kernel: Fix build without DDB.
Sascha Wildner [Tue, 2 Apr 2013 17:35:18 +0000 (19:35 +0200)]
<sys/param.h>: Adjust comment indent.
Sepherosa Ziehau [Tue, 2 Apr 2013 03:14:02 +0000 (11:14 +0800)]
re: Don't enable MSI by default even for PCI-e chips
It causes more troubles than the benefits it brings for us; it causes
watchdog, due to loosing interrupt, on certain PCI-e chips.
DragonFly-bug: http://bugs.dragonflybsd.org/issues/2533
Justin C. Sherrill [Tue, 2 Apr 2013 02:11:01 +0000 (22:11 -0400)]
Change to DragonFly 3.5.
Sascha Wildner [Mon, 1 Apr 2013 21:43:09 +0000 (23:43 +0200)]
kernel: Fix buildkernel without INVARIANTS.
Reported-by: Filippo Moretti <filippomore@yahoo.com>
Sascha Wildner [Mon, 1 Apr 2013 21:26:47 +0000 (23:26 +0200)]
mfi(4)/mfiutil(8): Add support for foreign configurations and drives.
For this, the following commands are added to mfiutil(8):
foreign scan - lists the number of foreign configs
foreign drives - lists the drives which are flagged as foreign
foreign display - displays the specified foreign configuration
foreign preview - previews the specified foreign configuration after import
foreign clear - clears the foreign configuration
foreign import - imports the foreign configuration
Foreign drive support has been added to 'show drives' too.
Tested-by: ftigeot
Taken-from: http://www.freebsd.org/cgi/query-pr.cgi?pr=172091
Sascha Wildner [Mon, 1 Apr 2013 15:41:51 +0000 (17:41 +0200)]
kernel/mfi: Add a tunable/sysctl to modify the command timeout.
Sascha Wildner [Mon, 1 Apr 2013 20:14:06 +0000 (22:14 +0200)]
kernel: Make tty_compat.c optional in 'files' instead of in the source.
Sascha Wildner [Mon, 1 Apr 2013 13:47:21 +0000 (15:47 +0200)]
bsd.sys.mk: Add -Wmissing-include-dirs to WARNS >= 1.
It ensures that all directories passed with -I<dir> actually exist.
Sascha Wildner [Mon, 1 Apr 2013 13:45:00 +0000 (15:45 +0200)]
libc: Fix -Wmissing-include-dirs.
Sepherosa Ziehau [Mon, 1 Apr 2013 09:55:27 +0000 (17:55 +0800)]
bnx: Pack TX mbuf and dmamap together; improve cache utilization
Sepherosa Ziehau [Mon, 1 Apr 2013 07:48:49 +0000 (15:48 +0800)]
Merge remote-tracking branch 'hofmann/wlan_serialize'
Sascha Wildner [Sun, 31 Mar 2013 19:45:49 +0000 (21:45 +0200)]
ciss(4): Fix build with CISS_DEBUG.
Sepherosa Ziehau [Sun, 31 Mar 2013 12:29:46 +0000 (20:29 +0800)]
bnx: Properly setup TX ring prod index position
Sepherosa Ziehau [Sun, 31 Mar 2013 10:26:40 +0000 (18:26 +0800)]
bge: Limit STD RX ring prod index increment to 8 for 5750, 5752 and 5755
This works around hardware errata.
NOTE:
For 5750, 5752 and 5755, the STD RX ring replesh threshold has already
been set to 8.
Obtained-from: tg3
Sascha Wildner [Sat, 30 Mar 2013 12:20:58 +0000 (13:20 +0100)]
lock(1): Use %jd for printing intmax_t.
Sascha Wildner [Fri, 29 Mar 2013 19:24:42 +0000 (20:24 +0100)]
libc: Fix -Wunused-parameter.
Sascha Wildner [Fri, 29 Mar 2013 14:09:02 +0000 (15:09 +0100)]
libc: Fix -Wpointer-arith.
Sascha Wildner [Fri, 29 Mar 2013 13:51:55 +0000 (14:51 +0100)]
libc: Fix -Wmissing-field-initializers.
Sascha Wildner [Thu, 28 Mar 2013 22:44:27 +0000 (23:44 +0100)]
libc: Fix -Wempty-body.
Sascha Wildner [Thu, 28 Mar 2013 22:32:39 +0000 (23:32 +0100)]
libc: Fix -Wreturn-type.
Sascha Wildner [Thu, 28 Mar 2013 22:28:33 +0000 (23:28 +0100)]
libc: Fix -Wunused-label.
Sascha Wildner [Thu, 28 Mar 2013 22:13:44 +0000 (23:13 +0100)]
libc: Fix -Wformat.
Sascha Wildner [Thu, 28 Mar 2013 22:07:56 +0000 (23:07 +0100)]
libc: Fix -Wunused-variable.
Sascha Wildner [Thu, 28 Mar 2013 18:29:19 +0000 (19:29 +0100)]
libc: Fix -Wold-style-definition.
Sascha Wildner [Fri, 29 Mar 2013 13:11:13 +0000 (14:11 +0100)]
libc: Bring back warnings to libc.
To disable warnings for the gdtoa sources only, the tweaking of the
CWARNFLAGS has to come _after_ <bsd.lib.mk> is included.
Therefore, it has to be done in libc's Makefile instead of its
Makefile.inc.
Before this commit warnings were completely disabled for libc due
to '-w' passed to every command line.
Also reset WARNS back to 0 since right now, libc doesn't even pass
WARNS=1.
Sascha Wildner [Fri, 29 Mar 2013 14:58:56 +0000 (15:58 +0100)]
libc/libc_r: Remove some obsolete comments.
Sascha Wildner [Fri, 29 Mar 2013 11:58:40 +0000 (12:58 +0100)]
kernel: Remove 'options COMPAT_SUNOS'.
It was supposed to provide binary compatibility with SunOS 4.x for the
sparc32 port of 4.4BSD.
Sascha Wildner [Fri, 29 Mar 2013 11:57:19 +0000 (12:57 +0100)]
kernel: Unbreak building kernels that have 'options BNX_TSO_DEBUG'.
Sascha Wildner [Fri, 29 Mar 2013 10:02:49 +0000 (11:02 +0100)]
lock(1): Do not require 'options COMPAT_43' in the kernel config.
We commented out COMPAT_43 in our configs some time ago, which broke
lock(1) that needed TIOCGETP and TIOCSETP ioctls which are only
available with COMPAT_43.
This commit converts lock(1) to use tcgetattr(3) and tcsetattr(3),
along with some minor cleanups.
Reported-by: noway on #dragonflybsd
Submitted-by: Joris Giovannangeli <joris@giovannangeli.fr>
Taken-from: FreeBSD
Sepherosa Ziehau [Fri, 29 Mar 2013 09:40:21 +0000 (17:40 +0800)]
bnx: Make sure that all of the TX rings receive tx_wreg update
Sepherosa Ziehau [Fri, 29 Mar 2013 09:23:19 +0000 (17:23 +0800)]
bnx: Make "force defrag" as TX ring flag
Sepherosa Ziehau [Fri, 29 Mar 2013 09:04:39 +0000 (17:04 +0800)]
bnx: Turn softc SHORTDMA flag into per TX ring flag
Avoid extra softc accessing during transmission.
Sepherosa Ziehau [Fri, 29 Mar 2013 02:22:16 +0000 (10:22 +0800)]
re: Disable IP header checksum offloading on 8168C/8168CP
These chips will generate wrong IP header checksum if IP options exist.
Obtained-from: FreeBSD
François Tigeot [Thu, 28 Mar 2013 07:42:23 +0000 (08:42 +0100)]
libc: Add a few missing xdr functions
Obtained-from: FreeBSD
Sepherosa Ziehau [Thu, 28 Mar 2013 09:53:32 +0000 (17:53 +0800)]
bnx: NIC based TX rings are only applicable to chips before 5705
Sepherosa Ziehau [Thu, 28 Mar 2013 09:26:37 +0000 (17:26 +0800)]
bnx: Regroup TX related fields into TX ring struct
Sepherosa Ziehau [Thu, 28 Mar 2013 07:35:19 +0000 (15:35 +0800)]
bnx: It does not make sense to have ret-ring size larger than prod-ring
Sepherosa Ziehau [Thu, 28 Mar 2013 06:44:19 +0000 (14:44 +0800)]
bnx: Defer interrupt allocation until chip reset is done
Sepherosa Ziehau [Thu, 28 Mar 2013 03:10:34 +0000 (11:10 +0800)]
bnx: Remove remainder of BCM5906
Matthew Dillon [Thu, 28 Mar 2013 00:03:12 +0000 (17:03 -0700)]
kernel - Cleanup SWB_NPAGES
* Remove the conditional for the SWB_NPAGES #define so the swblock
structure remains consistent. Remove the override in swap_pager.c.
* Previous code was confusing, but harmless.
Reported-by: Enjolras
Matthew Dillon [Wed, 27 Mar 2013 23:36:27 +0000 (16:36 -0700)]
vkernel - Add debugging
* Provide more information when interrupting to the db> prompt.
Sepherosa Ziehau [Wed, 27 Mar 2013 09:03:10 +0000 (17:03 +0800)]
jme: Enable PHY calibration to fix compat issue w/ certain switches
EA settings are obtained from JMicron Linux driver.
See-also: FreeBSD PR kern/177400
Sepherosa Ziehau [Wed, 27 Mar 2013 07:04:29 +0000 (15:04 +0800)]
jme: Fix comment
Matthew Dillon [Wed, 27 Mar 2013 01:09:15 +0000 (18:09 -0700)]
vkernel - Fix copyin/copyout to return the correct error code
* These functions must return EFAULT on error, not a KERN_* error code.
Matthew Dillon [Wed, 27 Mar 2013 01:07:52 +0000 (18:07 -0700)]
kernel - Fix bug in uiomove() error handling (2)
* Quickly fix bug in last commit related to setting the error
code in vm_fault_page()
Matthew Dillon [Tue, 26 Mar 2013 23:45:25 +0000 (16:45 -0700)]
kernel - mps driver - Adjust M_NOWAIT -> M_INTWAIT.
* This (and many other drivers) really should not be using M_NOWAIT,
which can fail trivially even when memory is available. Use
M_INTWAIT instead.
Matthew Dillon [Tue, 26 Mar 2013 23:35:56 +0000 (16:35 -0700)]
kernel - Fix bug in uiomove() error handling, fix deadlock in read_shortcut
* Fix a recently introduced bug in uiomove() related to error handling
when iovcnt is greater than 1.
* Fix a deadlock in the vm.read_shortcut code, rare triggerable except
by vkernels.
The deadlock is due to a busied VM page being held across a uiomove().
To fix a new function uiomove_nofault() was added which causes EFAULT
to be returned for any non-trivial VM fault (any fault related to nested
objects or vnode objects).
The vop_helper_read_shortcut() procedure uses this new uiomove function
and breaks out when the case occurs, returning and falling through to
the filesystem's normal buffer-cache-based read() code.
* As an added bonus, we no longer have to unlock the VM object across
the new uiomove_nofault() call in the read shorcut code, since it is
no longer possible to deadlock against the VM object.
Reported-by: tuxillo
Sascha Wildner [Tue, 26 Mar 2013 20:26:05 +0000 (21:26 +0100)]
nrelease: Use variables.
Sepherosa Ziehau [Tue, 26 Mar 2013 08:15:17 +0000 (16:15 +0800)]
ipiq: Use cached mycpu to access per-cpu ipiq stats
Reminded-by: sjg@
Sepherosa Ziehau [Tue, 26 Mar 2013 07:53:08 +0000 (15:53 +0800)]
bce: Don't use MSI-X, if the effective RX ring count is 1
Sepherosa Ziehau [Tue, 26 Mar 2013 07:23:00 +0000 (15:23 +0800)]
bce: Try enabling MSI-X on 5716 too
Well, to be frank, I never saw any real "5716" in the field.
Sepherosa Ziehau [Tue, 26 Mar 2013 07:21:34 +0000 (15:21 +0800)]
ipiq: Make stats per-cpu
Sepherosa Ziehau [Tue, 26 Mar 2013 06:16:29 +0000 (14:16 +0800)]
udp: Make stats per-cpu
Sepherosa Ziehau [Tue, 26 Mar 2013 04:41:51 +0000 (12:41 +0800)]
lnc: Call ether_ifattach() before lance_stop()
So ifnet is properly setup.
While I'm here, remove no longer needed lance_attach() and don't return
error code from lance_config(), which returned no error at all.
DragonFly-bug: http://bugs.dragonflybsd.org/issues/2528
Sascha Wildner [Mon, 25 Mar 2013 18:27:44 +0000 (19:27 +0100)]
kernel/cpu_topology: They are just bits, not BITS.
Sepherosa Ziehau [Mon, 25 Mar 2013 09:49:52 +0000 (17:49 +0800)]
ip: Cache align ip_stats
- ip_stats is padded to multiple cache line size; add comment about it
- Cache align the per-cpu ip_stats array
Sascha Wildner [Sat, 23 Mar 2013 19:21:29 +0000 (20:21 +0100)]
natacontrol(8): Add commands to tweak power/acoustic management features.
Sometimes disks designed to operate in low power mode by default
constantly spin up/down during operation which leads to reduced
performance.
This commit adds the 'feature' command to natacontrol(8) which
can be used to tweak the 'advanced power management' and 'automatic
acoustic management' features. Their current setting could already
be viewed before this commit using the 'natacontrol cap' command.
I'd like this to be possible with camcontrol(8) too for CAM attached
disks, but afaict these are ATA specific features so I guess we'd
have to integrate ATA into CAM too before that is possible.
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2531>
Reported-by: Maurizio Lombardi <m.lombardi85@gmail.com>
Taken-from: FreeBSD PR 81692
Tested-by: Maurizio Lombardi <m.lombardi85@gmail.com>
Sascha Wildner [Sat, 23 Mar 2013 18:12:11 +0000 (19:12 +0100)]
natacontrol(8): s/atacontrol/natacontrol/
Sascha Wildner [Sat, 23 Mar 2013 11:48:33 +0000 (12:48 +0100)]
bsd.kern.mk: -Wno-unused-but-set-variable is gcc47 specific.
Sascha Wildner [Sat, 23 Mar 2013 00:38:00 +0000 (01:38 +0100)]
kernel/em/emx: Fix -Wundef.
Sascha Wildner [Sat, 23 Mar 2013 00:37:09 +0000 (01:37 +0100)]
kernel/ed: Fix -Wundef.
Sascha Wildner [Fri, 22 Mar 2013 21:54:08 +0000 (22:54 +0100)]
kernel/mfi: Move the dereference of 'sc' below the NULL check.
Sascha Wildner [Fri, 22 Mar 2013 21:47:25 +0000 (22:47 +0100)]
kernel/virtio: Fix -Wundef.