Matthew Dillon [Sat, 14 Sep 2013 09:08:18 +0000 (02:08 -0700)]
kernel - Fix issue revealed by new yield code
* Make sure the current lwp is released from the scheduler in all cases.
There were a few race cases where it would not be released.
* Reorder the yield code a little.
Matthew Dillon [Sat, 14 Sep 2013 02:02:55 +0000 (19:02 -0700)]
kernel - Misc adjustments used by the vkernel and VMM, misc optimizations
* This section committed separately because it is basically independent
of VMM.
* Improve pfind(). Don't get proc_token if the process being looked up
is the current process.
* Improve kern_kill(). Do not obtain proc_token any more. p->p_token
is sufficient and the process group has its own lock now.
* Call pthread_yield() when spinning on various things.
x Spinlocks
x Tokens (spinning in lwkt_switch)
x cpusync (ipiq)
* Rewrite sched_yield() -> dfly_yield(). dfly_yield() will
unconditionally round-robin the LWP, ignoring estcpu. It isn't
perfect but it works fairly well.
The dfly scheduler will also no longer attempt to migrate threads
across cpus when handling yields. They migrate normally in all
other circumstances.
This fixes situations where the vkernel is spinning waiting for multiple
events from other cpus and in particular when it is doing a global IPI
for pmap synchronization of the kernel_pmap.
Sascha Wildner [Fri, 13 Sep 2013 21:58:26 +0000 (23:58 +0200)]
Disable making i915kms compilable into the kernel.
Right now, on systems with supported cards, it would cause the screen
go black before Xorg is started.
In-discussion-with: ftigeot
Sascha Wildner [Fri, 13 Sep 2013 21:54:32 +0000 (23:54 +0200)]
drm.4: Update a bit to reflect the current state of affairs.
While here, remove an obsolete MLINK, and add some more MLINKS to cover
module names too.
Based on a patch by ftigeot, with additional input by him.
Sepherosa Ziehau [Fri, 13 Sep 2013 09:26:22 +0000 (17:26 +0800)]
tcp: Use mbuf jcluster (4K) in sosendtcp(); improve 10Ge TSO performance
For the Myricom PCIE-8AL-C I have tested, this gives ~900Mbps performance
boost using 1500 MTU when TSO is enabled (from 7.7Gbps to 8.6Gbps).
Using mbuf jcluster could:
- Reduce the number of TX descriptors needed for one TSO packet.
- Let the NIC chip perform longer large data burst.
I believe this is the main reasons for the 10Ge performance boost.
Reduce sosend_agglim from 3 to 2, which means 8K aggregation (was 6K
aggregation) before user thread dispatches the sending buf to netisr.
net.inet.tcp.sosend_jcluster is added to enable this feature; it is
enabled by default.
Sepherosa Ziehau [Fri, 13 Sep 2013 09:14:39 +0000 (17:14 +0800)]
mbuf: Fix jcluster support
- Free the jcluster to the correct objcache, which solves "jcluster mbuf"
objcache exhaustion.
- By default, set the amount of the jclusters to half the amount of the
normal clusters. jcluster will be used on TCP sending path in the later
commit to improve TSO performance for 10Ge.
- Add mbuf stat for jcluster; adjust netstat(1) to show it.
- Add m_getlj(), which will be used on TCP sending path in the later
commit to improve TSO performnace for 10Ge.
Sascha Wildner [Thu, 12 Sep 2013 20:35:53 +0000 (22:35 +0200)]
<sys/vnode.h>: Remove two unused externs.
Sascha Wildner [Thu, 12 Sep 2013 16:57:12 +0000 (18:57 +0200)]
dirfs.5: Add missing .Ed
François Tigeot [Thu, 12 Sep 2013 07:05:08 +0000 (09:05 +0200)]
drm: Replace the i915 driver by i915kms
i915kms was already an updated version of i915, there's no need to
keep maintaining two separate instances of the same driver.
Antonio Huete Jimenez [Thu, 12 Sep 2013 12:13:53 +0000 (14:13 +0200)]
fortune - Add yet another prompt tip.
Sepherosa Ziehau [Thu, 12 Sep 2013 07:54:05 +0000 (15:54 +0800)]
mxge: Adjust interrupt moderation and TSO burst parameters
- Increase TSO burst to 48000 (32 x 1500B)
- Reduce interrupt rate from 30000Hz to 6000Hz
Sepherosa Ziehau [Thu, 12 Sep 2013 02:36:40 +0000 (10:36 +0800)]
in6: Fix DoS on INET6 w/ SIOCSIFADDR or SIOCSIFDSTADDR
For reference:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/netinet6/in6.c?rev=1.104&content-type=text/x-cvsweb-markup&only_with_tag=MAIN
DragonFly-bug: http://bugs.dragonflybsd.org/issues/2581
Sepherosa Ziehau [Thu, 12 Sep 2013 01:54:32 +0000 (09:54 +0800)]
tools: Add TCP_SENDFILE test to tcp_stream
Sepherosa Ziehau [Thu, 12 Sep 2013 01:49:10 +0000 (09:49 +0800)]
em.4: I217 and I218 are supported by emx
Sepherosa Ziehau [Thu, 12 Sep 2013 01:45:16 +0000 (09:45 +0800)]
build: mxge_lro.c is gone
Sepherosa Ziehau [Fri, 6 Sep 2013 06:50:24 +0000 (14:50 +0800)]
mxge: Sync w/ FreeBSD
- Update firmware
- Sync w/ FreeBSD if_mxge.c rev 254263
Local changes:
- Adjust output path a little bit:
o Utilize bus_dmamap_load_mbuf_defrag()
o Utilize the header length fields in mbuf pkthdr instead of
peeking at the packet data
- Change TSO mode to NDIS mode
- Minor white space changes
- Nuke mxge_lro.c; we won't need it
Antonio Huete Jimenez [Wed, 11 Sep 2013 20:55:03 +0000 (22:55 +0200)]
vkernel64 - Add newline to the end of options files.
Spotted by: swildner
Sascha Wildner [Wed, 11 Sep 2013 19:27:45 +0000 (21:27 +0200)]
acpi.4: Remove some unneeded commas, too.
Sascha Wildner [Wed, 11 Sep 2013 19:24:20 +0000 (21:24 +0200)]
acpi.4: Fix typo, Diabling -> Disabling
Antonio Huete Jimenez [Tue, 10 Sep 2013 11:11:32 +0000 (04:11 -0700)]
ifnet - Compute iface statistics for NET_RT_IFLIST
Before the ifnet statistics went per-cpu, they were being stored in
ifnet->if_data. Some functions, like getifaddrs(3), expect them to
be there so make sure they are available.
Reported by: Tim Bishop, Jens Rehsack
Matthew Dillon [Tue, 10 Sep 2013 05:26:02 +0000 (22:26 -0700)]
systat - Fix memory leak in -netbw
* Fix memory leak in -netbw. We weren't checking for deletable
entries once the display row hit its limit.
Reported-by: Peter Avalos
Matthew Dillon [Tue, 10 Sep 2013 04:46:55 +0000 (21:46 -0700)]
kernel - Fix process blocking forever if ^Z'd at the wrong time
* tsleep()s with timeouts were testing the wrong state field
when determining whether a stopped thread should be woken up or not.
* Generally occured under certain circumstances when a ^Z'd process
was then killed without first continuing it.
Antonio Huete Jimenez [Mon, 9 Sep 2013 14:18:42 +0000 (16:18 +0200)]
hammer(8) - Migration to libhammer (step 2/many)
* Migrate 'bstats' and 'iostats' directives.
* Adjust cmd_stats.c file width to 80 columns
Antonio Huete Jimenez [Mon, 9 Sep 2013 13:33:27 +0000 (15:33 +0200)]
hammer(8) - Adapt help output to latest changes.
* Also adapt hammer.8 manpage.
Antonio Huete Jimenez [Mon, 9 Sep 2013 11:44:08 +0000 (13:44 +0200)]
libhammer_get_volinfo.3 - Use commas to separate functions names.
Antonio Huete Jimenez [Mon, 9 Sep 2013 11:32:41 +0000 (13:32 +0200)]
libhammer - Add functions to help gather HAMMER statistics.
Sascha Wildner [Sun, 8 Sep 2013 17:08:05 +0000 (19:08 +0200)]
em.4: Remove trailing whitespace.
François Tigeot [Sat, 7 Sep 2013 21:16:00 +0000 (23:16 +0200)]
nrelease: Remove xorg.conf from non-gui images
* Left by itself, Xorg autodetects hardware drivers and other essential
parameters necessary for its operation
* The shipped xorg.conf file was forcing wrong defaults on many machines,
leading to broken Xorg installations
* This was a particularly acute problem with i915 hardware
Antonio Huete Jimenez [Sat, 7 Sep 2013 19:41:26 +0000 (21:41 +0200)]
libhammer - Fix another memory leak.
* Free a pointer when allocated by asprintf()
Spotted-by: swildner via cppcheck
Antonio Huete Jimenez [Sat, 7 Sep 2013 18:14:18 +0000 (20:14 +0200)]
libhammer - Use source directory header instead of the system one.
* Instead of using libhammer.h from /usr/include, use the one that's
in the source directory to build the library itself.
Antonio Huete Jimenez [Sat, 7 Sep 2013 18:06:48 +0000 (20:06 +0200)]
hammer(8) - Allow specifying paths to 'info' directive.
Antonio Huete Jimenez [Sat, 7 Sep 2013 17:49:47 +0000 (19:49 +0200)]
libhammer - Few fixes to libhammer_get_volinfo()
* Fix a couple memory leaks.
* Reword some comments.
* While here fix info.c file width to 80 columns.
Antonio Huete Jimenez [Sat, 7 Sep 2013 16:17:59 +0000 (18:17 +0200)]
hammer(8) - Remove 'status' directive.
It wasn't working, it was undocumented and directive 'pfs-status'
supersedes it.
Antonio Huete Jimenez [Sat, 7 Sep 2013 11:30:27 +0000 (04:30 -0700)]
rconfig - CCD mirror script
* Add a script to automate installations on a disk mirrored
setup using ccd(4)
Sepherosa Ziehau [Fri, 6 Sep 2013 06:19:10 +0000 (14:19 +0800)]
mxge: Rearrange building
Sepherosa Ziehau [Fri, 6 Sep 2013 05:13:42 +0000 (13:13 +0800)]
ecc: Use __SHIFTOUT macro; add missing line break in error logging
Charlie Root [Fri, 6 Sep 2013 05:04:47 +0000 (22:04 -0700)]
kernel - Fix minor reporting bug in ecc update
* Fix a minor constant comparison test when reporting invalid
ECC modes. The constants were normalized to bit 0 but the
register extraction had not been shifted over.
Sepherosa Ziehau [Fri, 6 Sep 2013 04:29:27 +0000 (12:29 +0800)]
ecc: Add E3-1200 v2 and E3-1200 V3 support
Sascha Wildner [Thu, 5 Sep 2013 20:38:10 +0000 (22:38 +0200)]
kernel/ddb: Fix formatting when printing command tables.
FreeBSD's r163134:
Fixed formatting of printing of command tables. With the default max
output width of 79, only 6 columns of width 12 each fit, but 7 columns
were printed.
The fix is to pass the width of the next output to db_end_line() and
not assume there that this width is always 1.
Related unfixed bugs:
- 1 character is wasted for a space after the last column
- suppression of trailing spaces used to limit the misformatting, but
seems to have been lost
- in db_examine(), the width of the next output is not known and is
still assumed to be 1.
Taken-from: FreeBSD
Matthew Dillon [Thu, 5 Sep 2013 19:19:25 +0000 (12:19 -0700)]
kernel - Change time_second to time_uptime for all expiration calculations (2)
* Fix userspace issues calculating rmx_expire for display due to
time_second -> time_uptime change.
The route, arp, ndp, and rarpd utilities are affected by this change.
Matthew Dillon [Thu, 5 Sep 2013 19:06:13 +0000 (12:06 -0700)]
kernel - Change time_second to time_uptime for all expiration calculations
* Vet the entire kernel and change use cases for expiration calculations
using time_second to use time_uptime instead.
* Protects these expiration calculations from step changes in the wall time,
particularly needed for route table entries.
* Probably requires further variable type adjustments but the use of
time_uptime instead if time_second is highly unlikely to ever overrun
any demotions to int still present.
Matthew Dillon [Thu, 5 Sep 2013 17:00:12 +0000 (10:00 -0700)]
kernel - ipv6 - Fix broken 'invalid mtu expiration time' message
* Fix broken 'invalid mtu expiration time' message on the console.
Reported-by: tuxillo
Antonio Huete Jimenez [Thu, 5 Sep 2013 13:58:27 +0000 (06:58 -0700)]
test/vkernel - Fix build.
Antonio Huete Jimenez [Wed, 22 Aug 2012 12:53:18 +0000 (14:53 +0200)]
Bring in DIRFS: A filesystem for VKERNELS
* What is DIRFS?
dirfs is a pseudo-filesystem specific for vkernel(7) which allows mounting
host's directories into the vkernel. It runs directly in the vkernel's VFS
code, as any other regular filesystem, but it does syscalls (vkernels are
userland programs) to retrieve or post the information needed on every
operation requested.
Needless to say that the operations that you can perform in the host
directories/files depend on the permissions the user that runs the vkernel.
For example, you will not be able to 'chflags schg' if you run the vkernel
with a regular user and not with root.
* How does it work?
It basically works like any other filesystem. It has its own mount_dirfs
command that will be called by the system's mount(8) command when needed.
vkernel64 # mount -t dirfs /usr/src2 /mnt
vkernel64 # df -h /mnt
Filesystem Size Used Avail Capacity Mounted on
dirfs@/usr/src2 47G 36G 12G 75% /mnt
Umounting is a normal operation too:
vkernel64 # mount | fgrep dirfs
dirfs@/usr/src2 on /mnt (dirfs)
vkernel64 # umount /mnt
* What's the current status
Currently it is in a *experimental* status, with (probably) many bugs and some
parts missing.
TODO
- Make dirfs mpsafe.
- Fix problems with multiple mount points.
- Implement VOP_NLINK so that hardlinks are possible.
- Add missing kqueue(2) support.
- dirfs root so that a vkernel can be booted from it.
- Locking mechanisms for opened fds between host <-> vkernel.
- Make sure dirfs is properly restored after vkernel checkpointing
(upcoming GSoC project).
- Bug hunting & bug fixing.
- Any ideas?
Matthew Dillon [Wed, 4 Sep 2013 23:27:56 +0000 (16:27 -0700)]
kernel - ipv6 - correct route table callout timer calculation
* Correct the route table callout timer calculation which geometrically
increases to the point where it isn't called any more.
Sascha Wildner [Wed, 4 Sep 2013 22:14:37 +0000 (00:14 +0200)]
de.4: Mention that Microsoft Virtual PC and Hyper-V have de(4) adapters.
Therefore, we'd like to keep this driver.
Hyper-V also comes with its specific virtual adapter, but we don't have
support for that yet.
Matthew Dillon [Wed, 4 Sep 2013 20:59:14 +0000 (13:59 -0700)]
kernel - IPV6 subnet routing / proxy ND6 (bridge support)
* Support IPV6 subnet routing and proxy ND6 through bridged interfaces.
Essentially all the members of the bridge have to be treated as the
bridge itself for comparison and MAC address handling.
* Prevents the nd6 proxy code from treating two interfaces which are part
of the same bridge as being different, which would trigger an improper
proxy ND6.
Sascha Wildner [Wed, 4 Sep 2013 20:13:04 +0000 (22:13 +0200)]
libsmb: Allow libsmb to detect if smbfs.ko is loaded.
Matthew Dillon [Wed, 4 Sep 2013 17:39:55 +0000 (10:39 -0700)]
kernel - Implement IPV6 subnet routing / proxy ND6 (equiv to proxy ARP)
* Do not require per-host RTF_ANNOUNCE/AF_LINK entries. They still
work but they aren't needed any more (and they are such a huge bitch
to set up anyway... best to avoid them).
* Machine must have net.inet6.ip6.forwarding mode enabled.
* Internet-facing interface must be promiscuous mode.
* Will automatically proxy ND6 any subnets if the interface
is different from the one receiving the multicast. So e.g.
you can route IPV6 which would otherwise have to be switched.
The subnet interface must currently be different because if it
were the same the solicitation would be directly received by the
target host anyway (being a multicast) and we would compete with
it. This is also a good safety.
Example:
ifconfig igb0 inet6 2999:499:1:555:1::72/80 For DNS
ifconfig igb0 inet6 2999:499:1:555:1::1/80 For subnet default route
ifconfig igb1 inet6 2999:499:1:555::2/80 For internet router
ifconfig igb1 promisc
route add -inet6 default 2999:499:1:555::1
The internet router is doing a terminal /64 block, e.g. it's address
is 2999:499:1:555::1/64, but we want to break the net up further and
route portions of it instead of switch.
Sascha Wildner [Wed, 4 Sep 2013 16:18:59 +0000 (18:18 +0200)]
kernel/drm: Fix AGP detection for Matrox cards.
Since DRM drivers attach to vgapci, we need to look at the grandparent.
Sepherosa Ziehau [Wed, 4 Sep 2013 13:33:18 +0000 (21:33 +0800)]
em.4: I217 and I218 are taken by emx
Sepherosa Ziehau [Wed, 4 Sep 2013 12:36:11 +0000 (20:36 +0800)]
emx: Add I217/I218
According to the datasheet, these two chips support 2 RX queues at least.
Antonio Huete Jimenez [Wed, 4 Sep 2013 10:22:27 +0000 (12:22 +0200)]
tmpfs - Remove duplicated checks in tmpfs_chflags()
* Do not duplicate the checks that vop_helper_setattr_flags() already performed.
* On tmpfs_mount(), root node already has set SF_NOCACHE on its vnode.
Antonio Huete Jimenez [Wed, 4 Sep 2013 10:13:45 +0000 (12:13 +0200)]
vkernel32 - Change VM_MAX_USER_ADDRESS to match the real kernel.
Pointed-out-by: dillon
Sepherosa Ziehau [Wed, 4 Sep 2013 09:39:10 +0000 (17:39 +0800)]
em.4: TSO is supported on all PCI-E chips; properly mention I217/I218
Sepherosa Ziehau [Wed, 4 Sep 2013 09:25:34 +0000 (17:25 +0800)]
re: Add 8401/8402/8106 support
- Fix setup for certain generation of 8105E
- 8101, 8102 and 8105 all need to extract ethernet address from EEPROM
Sepherosa Ziehau [Wed, 4 Sep 2013 08:30:29 +0000 (16:30 +0800)]
em: Move max_frame_size from softc to HAL data struct
It is needed to make I217 link status detection work
Sepherosa Ziehau [Wed, 4 Sep 2013 08:27:09 +0000 (16:27 +0800)]
re: Add 8411/8168G/8168EP/8168GU/8411B support
Sepherosa Ziehau [Wed, 4 Sep 2013 06:31:14 +0000 (14:31 +0800)]
re: Remove the macver, which only serves proper EEPROM address handling
Sepherosa Ziehau [Wed, 4 Sep 2013 06:02:41 +0000 (14:02 +0800)]
re: Add more hardware revision for 10/100 chips
Sepherosa Ziehau [Wed, 4 Sep 2013 05:47:35 +0000 (13:47 +0800)]
re: Add more hardware revision for 8411 and newer 8168
Sepherosa Ziehau [Wed, 4 Sep 2013 05:17:35 +0000 (13:17 +0800)]
re: Change the hardware revision mask
This keeps us align w/ Realtek's 8168/8101 Linux driver
Sepherosa Ziehau [Wed, 4 Sep 2013 01:40:43 +0000 (09:40 +0800)]
ig_hal: Move e1000_phy_i217 close to e1000_phy_82579
I217 belongs to the previous generation of Intel PRO/1000
Sepherosa Ziehau [Wed, 4 Sep 2013 01:30:07 +0000 (09:30 +0800)]
re: Always log unknown hardware revision
Sepherosa Ziehau [Wed, 4 Sep 2013 01:29:45 +0000 (09:29 +0800)]
em: Disable EEE by default
Sascha Wildner [Tue, 3 Sep 2013 17:38:30 +0000 (19:38 +0200)]
Remove old drmn.ko module via 'make upgrade'.
Sascha Wildner [Tue, 3 Sep 2013 17:33:49 +0000 (19:33 +0200)]
kernel: Remove drmn leftover.
Antonio Huete Jimenez [Tue, 3 Sep 2013 12:02:00 +0000 (14:02 +0200)]
disklabel64 - Increased verification of the partition format.
* Check whether the filesystem type is specified when
formatting partitions.
Specifying:
a: * 0
would cause a SEGFAULT due the filesystem field not being present.
Fix has been taken from disklabel32.
Antonio Huete Jimenez [Tue, 3 Sep 2013 11:54:10 +0000 (13:54 +0200)]
test/vkernel - Allow using HAMMER filesystem as vkernel root.
François Tigeot [Tue, 3 Sep 2013 13:11:02 +0000 (15:11 +0200)]
kernel/i386: Implement pmap_invalidate_cache_pages()
Sepherosa Ziehau [Tue, 3 Sep 2013 12:28:23 +0000 (20:28 +0800)]
igb.4: Mention I354
Sepherosa Ziehau [Tue, 3 Sep 2013 12:20:40 +0000 (20:20 +0800)]
em.4: Update date
Sepherosa Ziehau [Tue, 3 Sep 2013 12:05:07 +0000 (20:05 +0800)]
igb: Merge Intel igb-2.3.10
- More I210 chips are supported
- Add I354 support
- Fix multicast filtering settings if promisc mode exits
Sepherosa Ziehau [Tue, 3 Sep 2013 08:50:35 +0000 (16:50 +0800)]
em.4: Update
Sepherosa Ziehau [Tue, 3 Sep 2013 08:30:58 +0000 (16:30 +0800)]
em: Enable TSO on all PCI-E chips
Sepherosa Ziehau [Tue, 3 Sep 2013 08:23:58 +0000 (16:23 +0800)]
em: Merge Intel em-7.3.8; mainly add i217 and i218 support
Sascha Wildner [Tue, 3 Sep 2013 06:16:45 +0000 (08:16 +0200)]
kernel/x86_64: Unbreak kernel building with drm in the config.
Sepherosa Ziehau [Fri, 30 Aug 2013 08:12:22 +0000 (16:12 +0800)]
ig_hal: Merge Intel em-7.3.8 and igb-2.3.10 hardware abstraction layer
Sascha Wildner [Mon, 2 Sep 2013 18:25:24 +0000 (20:25 +0200)]
kernel/ahci: Add support for nvidia MCP79 AHCI.
Submitted-by: Ed Berger
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2583>
François Tigeot [Mon, 2 Sep 2013 07:35:59 +0000 (09:35 +0200)]
kernel: Fix compilation errors on i386
Sascha Wildner [Sun, 1 Sep 2013 21:34:31 +0000 (23:34 +0200)]
pppd.8: Fix two references.
François Tigeot [Sun, 1 Sep 2013 19:38:11 +0000 (21:38 +0200)]
drm: Merge the drm and drm2 implementations
* Move the drm2 i915 driver to sys/dev/drm/i915kms
* The legacy i915 driver remains untouched
* Only sys/dev/drm/ shall remain
jkim [Tue, 23 Apr 2013 18:30:33 +0000 (18:30 +0000)]
drm/mach_64: Fix white spaces.
This brings us on part with FreeBSD commit r249816 (2013-04-23 20:30:33 +0200)
François Tigeot [Sun, 1 Sep 2013 09:20:14 +0000 (11:20 +0200)]
kernel: Rewrite kmem_alloc_attr()
This prevents random kernel panics after Xorg exit with the new
drm scather-gather memory allocation code
François Tigeot [Fri, 30 Aug 2013 06:46:37 +0000 (08:46 +0200)]
drm: Partial sync with FreeBSD
Franco Fichtner [Sat, 31 Aug 2013 10:34:57 +0000 (12:34 +0200)]
pppd.8: conversion to mdoc(7)
Major overhaul of a well-written manual page. The content has
been shuffled around and subtly cleaned where appropriate.
Suggested-by: swildner
Sascha Wildner [Sat, 31 Aug 2013 07:56:00 +0000 (09:56 +0200)]
kernel: Fix some void functions returning the results of void functions.
It was found with -pedantic, since -Wreturn-type will not warn about this
as long as the calling function has a return type of void, too.
Matthew Dillon [Fri, 30 Aug 2013 23:34:40 +0000 (16:34 -0700)]
systat - cleanup netbw/pftop (2)
* Cleanup pass, fix a few bugs.
Matthew Dillon [Fri, 30 Aug 2013 23:22:57 +0000 (16:22 -0700)]
systat - cleanup netbw/pftop
* Cleanup pass, fix a few bugs.
Matthew Dillon [Fri, 30 Aug 2013 22:30:19 +0000 (15:30 -0700)]
systat - Add -pftop feature to display active PF state table traffic
* Add the -pftop (:pftop) feature. This feature displays all active
PF states. PF (packet filter) must be active for this feature to be
useful.
Only those states which are actively passing traffic are displayed,
which makes this a lot more useful than a raw 'pfctl -s state' dump.
* Display is sorted by highest aggregate receive+transmit bandwidth.
Franco Fichtner [Fri, 30 Aug 2013 08:22:32 +0000 (10:22 +0200)]
clog.8: break line after a sentence
Matthew Dillon [Fri, 30 Aug 2013 06:41:08 +0000 (23:41 -0700)]
syslog - add rexmit to -netbw
* Add aggregate byte retransmission rate
Matthew Dillon [Fri, 30 Aug 2013 06:36:21 +0000 (23:36 -0700)]
systat - further enhance -netbw
* Print IPs in a more readable fashion
* A better IP:port sort order
* Better alignment
* Add interesting state and TCP flags
Matthew Dillon [Fri, 30 Aug 2013 04:26:09 +0000 (21:26 -0700)]
systat - Add -netbw option
* Add a new option -netbw (or :netbw when running). This option displays
the aggregate and per-connection tcp receive and send data rate.
Only active connections are shown, making it easy to pick out which
connections are hogging the line.
Sascha Wildner [Fri, 30 Aug 2013 02:48:45 +0000 (04:48 +0200)]
kernel/ed: Fix typo in a variable name.
Antonio Huete Jimenez [Fri, 30 Aug 2013 00:06:38 +0000 (17:06 -0700)]
test/vkernel - Additions to leaf target
* Add nameservers to resolv.conf
Franco Fichtner [Tue, 27 Aug 2013 20:38:19 +0000 (22:38 +0200)]
fix mandoc(1) warnings in usr.sbin/
Sepherosa Ziehau [Thu, 29 Aug 2013 06:15:36 +0000 (14:15 +0800)]
tools/accept_connect: Remove unused .gitignore
Sepherosa Ziehau [Wed, 28 Aug 2013 07:11:43 +0000 (15:11 +0800)]
tcp: Implement random initial msgport
After
e368a6e95e2cd9556a3e0fc43167d2dcf3a8253f, it is found that the
left bottle neck of nonblocking TCP connect(2) performance is that all
socket(2) and initial TCP connect operation (bind laddr and lport) are
all carried out in netisr0; CPU0 is 100% busy during test.
The idea of random initial msgport for TCP is that instead of using
netisr0's msgport as initial msgport, we could use any of the available
netisr msgport to carry out socket(2) and initial TCP connect operation.
Most of parts of TCP are already ready for random initial msgport, only
TCP pru_listen requires trivial modification to fix the socket msgport
to netisr0's msgport (which is required to perform global wild hashtable
updating).
As of this commit, the current CPU's netisr msgport will be selected as
TCP socket's initial msgport, if random initial msgport is enabled.
Sysctl node kern.ipc.rand_initport is added to disable this optimization.
It is enabled by default.
This commit improves both nonblocking TCP connect(2) and blocking TCP
connect(2) performance.
Nonblocking connect(2) performance measurement (i7-2600 w/ bnx(4)), using
tools/tools/netrate/accept_connect/kq_connect_client:
kq_connect_client -4 SERVADDR -p SERVPORT -i 8 -c 32 -l 30
(8 processes, each creates 32 connections simultaniously)
16 run average:
random initial msgport netisr0 msgport
263915.17 conns/s 220979.89 conns/s
This commit gives ~19% performance improvement for nonblocking connect(2)
Blocking connect(2) performance measurement (i7-2600 w/ bnx(4)), using
tools/tools/netrate/accept_connect/connect_client:
connect_client -4 SERVADDR -p SERVPORT -i 256 -l 30
(256 processes)
16 run average:
random initial msgport netisr0 msgport
240235.23 conns/s 198312.87 conns/s
This commit gives ~21% performance improvement for blocking connect(2)
Sepherosa Ziehau [Wed, 28 Aug 2013 06:45:05 +0000 (14:45 +0800)]
inpcb: Make sure that inp_cpcbinfo always points to the correct pcbinfo