François Tigeot [Mon, 22 Jul 2013 20:11:20 +0000 (22:11 +0200)]
drm: move gpu driver headers to subdirectories
Sascha Wildner [Mon, 22 Jul 2013 20:06:42 +0000 (22:06 +0200)]
dma.8: Adjust corecode's email address.
Franco Fichtner [Mon, 22 Jul 2013 19:09:05 +0000 (21:09 +0200)]
add .Mt to man pages in usr.sbin/
Sascha Wildner [Mon, 22 Jul 2013 19:43:07 +0000 (21:43 +0200)]
kernel/isa: Remove some no longer used externs declarations.
Franco Fichtner [Mon, 22 Jul 2013 17:27:28 +0000 (19:27 +0200)]
add .Mt to man pages in lib/
Franco Fichtner [Mon, 22 Jul 2013 14:15:16 +0000 (16:15 +0200)]
add .Mt to man pages in libexec/
Franco Fichtner [Mon, 22 Jul 2013 14:02:50 +0000 (16:02 +0200)]
add .Mt to man pages in sbin/
François Tigeot [Mon, 22 Jul 2013 16:02:17 +0000 (18:02 +0200)]
Document copyin_nofault and copyout_nofault(9)
François Tigeot [Mon, 22 Jul 2013 15:47:50 +0000 (17:47 +0200)]
Document DRIVER_MODULE_ORDERED(9)
François Tigeot [Mon, 22 Jul 2013 11:46:05 +0000 (13:46 +0200)]
kernel: Remove global PROC_LOCK and PROC_UNLOCK definitions
Locking in this area varies so much between FreeBSD and DragonFly
that it's best to determine what to do with these macros on a
case-by-case basis
Sascha Wildner [Mon, 22 Jul 2013 10:06:33 +0000 (12:06 +0200)]
Remove <sys/bitstring.h> via 'make upgrade'.
Sepherosa Ziehau [Mon, 22 Jul 2013 06:21:08 +0000 (14:21 +0800)]
tools: Add bench tools for accept(2) and connect(2)
The main reasons behind making these tools instead of using netperf TCP_CC
test are:
- Netperf TCP_CC creates new server for each testing client
- Netperf TCP_CC creates new listen socket on different TCP port for each
testing client
- Netperf TCP_CC created listen socket is in blocking mode
- Netperf TCP_CC closes accepted sockets immediately
All of the above listed items make netperf TCP_CC do not reflect real life
TCP server usage.
Tools in accept_connect:
- "connect_client"
Fork certain amount of processes to perform blocking connect(2)/close(2)
for the certain amount of time.
- "accpet_server"
Fork certain amount of processes to perform blocking accept(2) on the same
addr/port bound socket. close(2) on the accepted socket is called
immediately. If -r is specified, each processes will create their own
listen socket on the same port/addr w/ SO_REUSEPORT sockopt.
- "kq_accept_server"
Fork certain amount of processes to perform non-blocking accept(2) on the
same addr/port bound socket w/ help of kqueue(2). close(2) on the accepted
socket is called after the other side closed the connection. If -r is
specified, each processes will create their own listen socket on the same
port/addr w/ SO_REUSEPORT sockopt.
kq_accept_server closely mimics the real life TCP server.
François Tigeot [Mon, 22 Jul 2013 05:25:49 +0000 (07:25 +0200)]
Remove duplicated bitstring.h file
Noticed-by: vsrinivas
Sepherosa Ziehau [Mon, 22 Jul 2013 05:15:50 +0000 (13:15 +0800)]
socket: Use modulo-N for SO_REUSEPORT socket locating
This greatly reduces TCP listen socket completion queue pool token
contention thus saves more cpu time.
When the testing box (i7-2600, broadcom 5719) is doing 335Kconns/s,
TCP listen socket completion queue token contention is reduced from
20K/s to 500/s and the idle time on each hyperthread is increased by
~5%.
Sepherosa Ziehau [Mon, 22 Jul 2013 03:05:12 +0000 (11:05 +0800)]
socket: Avoid possible race between netmsg_so_notify() and sowakeup() (2)
If predict ever blocks, 'tok' will be released, so SSB_MEVENT set
beforehand could have been cleared when we reach here. In case
that happens, we set SSB_MEVENT again, after the notify has been
queued.
Sepherosa Ziehau [Mon, 22 Jul 2013 02:17:59 +0000 (10:17 +0800)]
oce: Don't clear M_PKTHDR when create mbuf chain
François Tigeot [Sun, 21 Jul 2013 19:22:41 +0000 (21:22 +0200)]
kernel: Add PROC_LOCK and PROC_UNLOCK
Inspired-from: FreeBSD
François Tigeot [Sun, 7 Jul 2013 17:24:55 +0000 (19:24 +0200)]
kernel: Implement copyin_nofault and copyout_nofault
Inspired-from: FreeBSD
François Tigeot [Sun, 21 Jul 2013 19:41:28 +0000 (21:41 +0200)]
kernel: add vm_page_unhold_pages()
Johannes Hofmann [Sun, 21 Jul 2013 19:40:31 +0000 (21:40 +0200)]
kernel: Add DRIVER_MODULE_ORDERED macro
François Tigeot [Sat, 20 Jul 2013 16:59:55 +0000 (18:59 +0200)]
kernel: Import bitcount16() from FreeBSD
François Tigeot [Sun, 21 Jul 2013 19:37:03 +0000 (21:37 +0200)]
kernel: Import unrhdr function family from FreeBSD
Sascha Wildner [Sun, 21 Jul 2013 19:38:40 +0000 (21:38 +0200)]
Remove some more unused externs.
Franco Fichtner [Thu, 18 Jul 2013 20:25:28 +0000 (22:25 +0200)]
add .Mt to man pages in bin/ games/ sys/ tools/
Franco Fichtner [Thu, 18 Jul 2013 20:04:49 +0000 (22:04 +0200)]
add .Mt to man pages in usr.bin/
Franco Fichtner [Thu, 18 Jul 2013 18:37:34 +0000 (20:37 +0200)]
start adding .Mt to email addresses in man pages
This covers share/man/man[1579]. It also consolidates multiple lines
into one, removes spurious double quotes in names or emails,
and changes punctuation where appropriate. The target style is:
.An Name Aq Mt name@somewhere.tdl
Sascha Wildner [Sun, 21 Jul 2013 18:29:53 +0000 (20:29 +0200)]
kernel: Remove a no longer used extern declaration.
Sascha Wildner [Sun, 21 Jul 2013 18:27:52 +0000 (20:27 +0200)]
kernel: Remove some HW_WDOG remains.
François Tigeot [Sun, 21 Jul 2013 16:39:02 +0000 (18:39 +0200)]
kernel: Import vm_mmap_to_errno() from FreeBSD
François Tigeot [Sat, 20 Jul 2013 21:06:12 +0000 (23:06 +0200)]
kernel: import pci_find_class() from FreeBSD
François Tigeot [Sat, 20 Jul 2013 07:22:56 +0000 (09:22 +0200)]
kernel: Add kqsort_r()
Obtained-from: FreeBSD
Matthew Dillon [Fri, 19 Jul 2013 22:05:53 +0000 (15:05 -0700)]
Makefile.usr - Move fetch locations
* Move the bootstrap fetch from leaf:~marino to mirror-master
* Move the dports git fetch from ~marino's github to mirror-master
(which currently clones it)
Matthew Dillon [Fri, 19 Jul 2013 22:05:17 +0000 (15:05 -0700)]
uname - Add -P and -PP for dports support
* Add options to generate dports-compatible ABI strings to stdout.
Used by Makefile.usr.
Sascha Wildner [Fri, 19 Jul 2013 18:43:48 +0000 (20:43 +0200)]
kernel: Remove some more unused kmalloc types.
M_MPSSAS
M_MPTUSER
M_NETGRAPH_ITEM
M_NWFSMNT
M_PDU
M_RDRAND
M_SMBDATA
M_SMBFSMNT
Sascha Wildner [Fri, 19 Jul 2013 15:54:27 +0000 (17:54 +0200)]
kernel: Remove some no longer used options.
Sepherosa Ziehau [Fri, 19 Jul 2013 08:40:07 +0000 (16:40 +0800)]
socket: Avoid possible race between netmsg_so_notify() and sowakeup()
The race is concerning SSB_MEVENT setup and testing. Originally:
CPU X CPU Y
get token :
if (predict cond false) { :
: set predict cond true
: if (SSB_MEVENT) {
: get token
: wake up notifies
: rel token
: }
queue notify :
set SSB_MEVENT :
} :
rel token
This commit always set SSB_MEVENT before predict testing, after getting
the socket token, so the race could be avoided.
Reviewed-by: dillon@
Johannes Hofmann [Thu, 18 Jul 2013 21:29:11 +0000 (23:29 +0200)]
kernel/pat: Improve kmem_alloc_attr()
With-input-from: Matthew Dillon
François Tigeot [Thu, 18 Jul 2013 21:28:47 +0000 (23:28 +0200)]
pat: Add pmap_invalidate_cache_pages()
Obtained-from: FreeBSD
François Tigeot [Thu, 18 Jul 2013 21:28:12 +0000 (23:28 +0200)]
pmap: Add pmap_mapbios()
Obtained-from: FreeBSD
François Tigeot [Thu, 18 Jul 2013 21:27:03 +0000 (23:27 +0200)]
pat: Make the API more compatible with FreeBSD
François Tigeot [Thu, 18 Jul 2013 21:26:40 +0000 (23:26 +0200)]
pat: Add BUS_DMA_NOCACHE, VM_MEMATTR definitions
Inspired-from: FreeBSD
François Tigeot [Thu, 18 Jul 2013 21:25:01 +0000 (23:25 +0200)]
kernel: Optimize pmap_invalidate_range()
* No need to use wbinvd here, we only have to invalidate TLB entries
and not regular CPU caches
* There is no need to drop all TLB caches either, only invalidate a few
page mappings on all cpus
* Use pmap->pm_active to only signal the CPUs where the pmap is in use
François Tigeot [Thu, 18 Jul 2013 21:23:36 +0000 (23:23 +0200)]
kernel: Use pmap_invalidate functions
* Matt's commit brutally used invltlb and wbinvd instructions
everywhere
* These are now contained in pmap_invalidate_range(), which will be
optimized later
* As a rule of thumb, functions where cache and tlb handling cause
avoidable performance degradation are tagged with "XXX not optimal"
François Tigeot [Thu, 18 Jul 2013 21:22:32 +0000 (23:22 +0200)]
kernel: Improve pmap_invalidate_cache_range()
* There is no need to do anything on CPUs having the self-snoop feature
* Add some consistency checks
Inspired-from: FreeBSD
François Tigeot [Thu, 18 Jul 2013 21:21:01 +0000 (23:21 +0200)]
pmap: Add change_attr() stubs for non-amd64 architectures
Matthew Dillon [Thu, 18 Jul 2013 21:04:21 +0000 (23:04 +0200)]
PAT work, mapdev_attr, kmem_alloc_attr
Partially based on work by
Aggelos Economopoulos <aoiko@cc.ece.ntua.gr>
Johannes Hofmann [Thu, 18 Jul 2013 20:37:22 +0000 (22:37 +0200)]
pmap: add dummy implementation for pmap_invalidate*
Simply call cpu_wbinvd_on_all_cpus() which is not optimal
but seems to make drm2 work.
Sascha Wildner [Thu, 18 Jul 2013 17:14:04 +0000 (19:14 +0200)]
kernel: Remove 3 unused kmalloc types: M_80211_DFS, M_ACPICMBAT, M_ATAPCI.
Sascha Wildner [Thu, 18 Jul 2013 16:56:25 +0000 (18:56 +0200)]
kernel/raid: CAM_NEW_TRAN_CODE is default for over 5 years.
Sepherosa Ziehau [Thu, 18 Jul 2013 14:58:36 +0000 (22:58 +0800)]
i386: Make the system boot again
The CPU_468 etc macros also serve as the indices into i386_cpus[]
make sure that they are interleaved only by 1.
Sepherosa Ziehau [Thu, 18 Jul 2013 14:57:05 +0000 (22:57 +0800)]
i386: Unbreak building if the kern config only contains I686_CPU
Sepherosa Ziehau [Thu, 18 Jul 2013 13:24:16 +0000 (21:24 +0800)]
mbuf: revert part of
b4e5a1079d852748f03f32aae87ecdda27a538d2
Restore wlan_seqno, since ether_vlantag has been used by WME. Fill the
implicit padding on x86_64 and add comment for their possible use.
Reported-by: Johannes Hofmann
François Tigeot [Wed, 17 Jul 2013 21:18:26 +0000 (23:18 +0200)]
kernel: Remove Cyrix CPUs specific handling
* Remove kernel options, constants, detection code and special
initialization routines for Cyrix CPUs
* Part of this code prevents the i386 vkernel from beeing compiled
from a source tree with PAT support
* Recent versions of DragonFly cannot possibly run on machines using
these processors anyway
Sepherosa Ziehau [Thu, 18 Jul 2013 00:52:22 +0000 (08:52 +0800)]
so_pru_send_async: Use M_NOWAIT to allocate address
If the allocation failed, we just fall back to the synchronized pru_send.
Using M_WAITOK defeats the purpose of asynchronized pru_send, which tries
to prevent the current thread from being scheduled.
Sascha Wildner [Wed, 17 Jul 2013 20:42:46 +0000 (22:42 +0200)]
vkernel: Remove #if 0 code in vkernel headers.
Sascha Wildner [Wed, 17 Jul 2013 20:35:42 +0000 (22:35 +0200)]
kernel: Remove unneeded #include.
Sascha Wildner [Wed, 17 Jul 2013 20:35:13 +0000 (22:35 +0200)]
kernel: Remove unused kmalloc types: M_AMRCAM, M_DEVT, M_ZOMBIE.
Sepherosa Ziehau [Wed, 17 Jul 2013 15:51:37 +0000 (23:51 +0800)]
arp: Perform ARP pending output during ARP updating
Since we now use netisrs to update ARP, pending output no longer
needs to be dispatched to netisr.
Sepherosa Ziehau [Wed, 17 Jul 2013 13:47:39 +0000 (21:47 +0800)]
route: Prioritize routing table change messages
Sascha Wildner [Wed, 17 Jul 2013 05:10:48 +0000 (07:10 +0200)]
kernel: Remov unused kmalloc type M_VMPGDATA.
Last usage was removed in
96adc7538c33c47d4e6fce31d06ccf00f5aac3fa over
3 years ago.
Sascha Wildner [Tue, 16 Jul 2013 18:50:23 +0000 (20:50 +0200)]
kernel: Remove some orphaned extern declarations in sys/platform.
Also a no longer used kmalloc type.
Sascha Wildner [Tue, 16 Jul 2013 18:49:27 +0000 (20:49 +0200)]
systat(8): Remove some orphaned extern declarations.
Sascha Wildner [Tue, 16 Jul 2013 17:32:46 +0000 (19:32 +0200)]
<sys/device.h>: Fix a typo in an extern declaration.
Matthew Dillon [Tue, 16 Jul 2013 17:17:34 +0000 (10:17 -0700)]
kernel - Attempt to fix shared/excl namecache deadlock
* Attempt to fix a shared/excl namecache deadlock where the shared lock
may block excessively waiting for other shared users to unlock when
an exclusive request is pending.
* Do a better job reporting the time delayed when blocked for an
excessive period of time.
Sascha Wildner [Tue, 16 Jul 2013 17:07:24 +0000 (19:07 +0200)]
ee(1): Remove two unused files.
Sascha Wildner [Sat, 13 Jul 2013 10:09:41 +0000 (12:09 +0200)]
kernel/oce: Sync oce(4) driver with FreeBSD.
An update by Emulex. Most notably, it adds support for Skyhawk adapters.
The port to DragonFly wasn't tested on a Skyhawk but looks like it should
just work[tm].
Thanks to Mihai Carabas for testing it on a BladeEngine 3 to see that I
didn't break anything which previously worked.
Taken-from: FreeBSD
François Tigeot [Sat, 6 Jul 2013 08:52:48 +0000 (10:52 +0200)]
iir: Prevent namespace collision with INTEL_VENDOR_ID
Use the existing PCI_VENDOR_INTEL #define instead of the local
INTEL_VENDOR_ID and avoid a conflict with the one in specialreg.h
Sascha Wildner [Mon, 15 Jul 2013 17:07:22 +0000 (19:07 +0200)]
Remove some orphaned extern declarations.
Sascha Wildner [Mon, 15 Jul 2013 16:38:00 +0000 (18:38 +0200)]
Update the pciconf(8) database.
July 14, 2013 snapshot from http://pciids.sourceforge.net/
Sascha Wildner [Sun, 14 Jul 2013 18:26:11 +0000 (20:26 +0200)]
bnx.4: Remove trailing whitespace.
Sascha Wildner [Sun, 14 Jul 2013 17:57:34 +0000 (19:57 +0200)]
Remove fpsetsticky(3) remains. It was removed with the recent libm update.
See FreeBSD's r143658 commit message for why it was removed.
This commit removes an orphaned extern declaration in x86_64's <ieeefp.h>,
syncs the fpgetround(3) manual page with FreeBSD and removes fpsetsticky's
MLINK.
Matthew Dillon [Thu, 11 Jul 2013 22:47:49 +0000 (15:47 -0700)]
kernel - Fix excessively deferred wakeups
* Fix the deferred wakeup facility to ensure that queued wakeups
do not get held up by other queued wakeups getting in front of
them.
Reported-by: vsrinivas
Matthew Dillon [Thu, 11 Jul 2013 22:44:41 +0000 (15:44 -0700)]
kernel - Do not try to apply certain hw errata fixes if in a VM guest
* Do not try to apply certain hw errata fixes (721) if in a VM guest.
Submitted-by: vsrinivas
Sepherosa Ziehau [Thu, 11 Jul 2013 09:55:36 +0000 (17:55 +0800)]
rtsock: Add genmask after credit checking
Sascha Wildner [Wed, 10 Jul 2013 21:36:40 +0000 (23:36 +0200)]
libm: Add some parentheses to clarify operator precedence.
This fixes two clang -Wparentheses warnings.
No functional change.
Taken-from: FreeBSD
Sascha Wildner [Wed, 10 Jul 2013 20:05:57 +0000 (22:05 +0200)]
strerror(3): Provide an error message for ENOMEDIUM.
Reported-by: Joris Giovannangeli <joris@giovannangeli.fr>
Taken-from: OpenBSD
Sascha Wildner [Wed, 10 Jul 2013 19:24:22 +0000 (21:24 +0200)]
kernel: Clean up some module Makefiles.
Adding missing opt_*.h and use_*.h mostly.
Sascha Wildner [Wed, 10 Jul 2013 19:22:50 +0000 (21:22 +0200)]
Install pcf(4) manual page on all platforms (just like the module).
Sascha Wildner [Wed, 10 Jul 2013 18:59:04 +0000 (20:59 +0200)]
kernel/joy: Remove an unneeded .PATH in the Makefile.
Sascha Wildner [Wed, 10 Jul 2013 10:44:46 +0000 (12:44 +0200)]
mptutil(8): Fix i386 build.
Sepherosa Ziehau [Wed, 10 Jul 2013 05:53:20 +0000 (13:53 +0800)]
route: Prioritize rtchange messages
Sepherosa Ziehau [Wed, 10 Jul 2013 05:49:11 +0000 (13:49 +0800)]
route: Prioritize routing messages during iface down
Sepherosa Ziehau [Wed, 10 Jul 2013 05:47:29 +0000 (13:47 +0800)]
route: Prioritize routing messages during iface detach
Sepherosa Ziehau [Wed, 10 Jul 2013 05:25:40 +0000 (13:25 +0800)]
route: Factor out rt_domsg_global()
Sepherosa Ziehau [Wed, 10 Jul 2013 04:56:12 +0000 (12:56 +0800)]
route6: Only delete dynamic routes on the current CPU if they are losing
Sepherosa Ziehau [Wed, 10 Jul 2013 04:45:36 +0000 (12:45 +0800)]
route: Only delete dynamic routes on the current CPU if they are losing
Going through all CPUs for losing dynamic routes is time consuming and
does not worth the trouble.
Sepherosa Ziehau [Wed, 10 Jul 2013 04:20:58 +0000 (12:20 +0800)]
netstat.1: Mention routes' MSL and initial window size
Sepherosa Ziehau [Wed, 10 Jul 2013 04:07:53 +0000 (12:07 +0800)]
syncache: Only explicitly delete unreferenced protocol-cloned routes
Sascha Wildner [Tue, 9 Jul 2013 20:55:16 +0000 (22:55 +0200)]
installer: Cast to int64_t for i386.
Sascha Wildner [Tue, 9 Jul 2013 20:48:26 +0000 (22:48 +0200)]
installer: Divide and multiply instead of shifting.
Sascha Wildner [Tue, 9 Jul 2013 20:30:40 +0000 (22:30 +0200)]
installer: Use humanize_number() and dehumanize_number().
Sascha Wildner [Tue, 9 Jul 2013 16:33:15 +0000 (18:33 +0200)]
mptutil(8): Use dehumanize_number().
Sepherosa Ziehau [Tue, 9 Jul 2013 09:20:36 +0000 (17:20 +0800)]
route: Remove per-cpu routing threads; use netisr instead
There are several problems w/ per-cpu route thread:
- Busy netisr could potentially delay routing changes
- Blocking R_Malloc() could leave rtentry in inconsistent state
between netisr and routing threads.
Sepherosa Ziehau [Tue, 9 Jul 2013 08:41:55 +0000 (16:41 +0800)]
route: Make sure the parent route belong to the current CPU
Sepherosa Ziehau [Tue, 9 Jul 2013 08:27:14 +0000 (16:27 +0800)]
radix: Unshare radix mask tree resources
- Make free mask list per-cpu
- Embed mask last zeroed position into mask radix tree head
Sascha Wildner [Mon, 8 Jul 2013 22:11:01 +0000 (00:11 +0200)]
Sync zoneinfo database with tzdata2013d from ftp://ftp.iana.org/tz/releases
* africa: Morocco's midsummer transitions this year are July 7 and
August 10, not July 9 and August 8. (Thanks to Andrew Paprocki.)
* asia: Israel now falls back on the last Sunday of October. (Thanks
to Ephraim Silverberg.)
* iso3166.tab: Fix typos in the entries for country codes BQ and SX.
* zone.tab: Specify Jerusalem's location more precisely; this changes
the pre-1880 times by 2 s.
* miscellaneous files: Deemphasize the significance of national borders.
Update several URLs. Spelling fixes (thanks to Kevin Lyda and
Jonathan Leffler).
Sascha Wildner [Mon, 8 Jul 2013 21:54:01 +0000 (23:54 +0200)]
kernel/mps: Fix a panic after the recent upgrade.
It was crashing in xpt_done() with a NULL ccb. Reverting FreeBSD's
r249468 fixes that.
Something seems to be missing or different in our CAM here.
Sascha Wildner [Sun, 7 Jul 2013 19:57:22 +0000 (21:57 +0200)]
kernel/net*: Remove some #include duplicates.
Sascha Wildner [Sun, 7 Jul 2013 19:42:19 +0000 (21:42 +0200)]
kernel/sppp: Clean up #ifdef jungle a bit.
Sascha Wildner [Sun, 7 Jul 2013 11:04:00 +0000 (13:04 +0200)]
kernel/usb4bsd: Fix ukbd's polled mode (for ddb etc.).