dragonfly.git
10 years agokernel: Remove some no longer used options.
Sascha Wildner [Fri, 19 Jul 2013 15:54:27 +0000 (17:54 +0200)]
kernel: Remove some no longer used options.

10 years agosocket: Avoid possible race between netmsg_so_notify() and sowakeup()
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@
10 years agokernel/pat: Improve kmem_alloc_attr()
Johannes Hofmann [Thu, 18 Jul 2013 21:29:11 +0000 (23:29 +0200)]
kernel/pat: Improve kmem_alloc_attr()

With-input-from: Matthew Dillon

10 years agopat: Add pmap_invalidate_cache_pages()
François Tigeot [Thu, 18 Jul 2013 21:28:47 +0000 (23:28 +0200)]
pat: Add pmap_invalidate_cache_pages()

Obtained-from: FreeBSD

10 years agopmap: Add pmap_mapbios()
François Tigeot [Thu, 18 Jul 2013 21:28:12 +0000 (23:28 +0200)]
pmap: Add pmap_mapbios()

Obtained-from: FreeBSD

10 years agopat: Make the API more compatible with FreeBSD
François Tigeot [Thu, 18 Jul 2013 21:27:03 +0000 (23:27 +0200)]
pat: Make the API more compatible with FreeBSD

10 years agopat: Add BUS_DMA_NOCACHE, VM_MEMATTR definitions
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

10 years agokernel: Optimize pmap_invalidate_range()
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

10 years agokernel: Use pmap_invalidate functions
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"

10 years agokernel: Improve pmap_invalidate_cache_range()
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

10 years agopmap: Add change_attr() stubs for non-amd64 architectures
François Tigeot [Thu, 18 Jul 2013 21:21:01 +0000 (23:21 +0200)]
pmap: Add change_attr() stubs for non-amd64 architectures

10 years agoPAT work, mapdev_attr, kmem_alloc_attr
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>

10 years agopmap: add dummy implementation for pmap_invalidate*
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.

10 years agokernel: Remove 3 unused kmalloc types: M_80211_DFS, M_ACPICMBAT, M_ATAPCI.
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.

10 years agokernel/raid: CAM_NEW_TRAN_CODE is default for over 5 years.
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.

10 years agoi386: Make the system boot again
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.

10 years agoi386: Unbreak building if the kern config only contains I686_CPU
Sepherosa Ziehau [Thu, 18 Jul 2013 14:57:05 +0000 (22:57 +0800)]
i386: Unbreak building if the kern config only contains I686_CPU

10 years agombuf: revert part of b4e5a1079d852748f03f32aae87ecdda27a538d2
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
10 years agokernel: Remove Cyrix CPUs specific handling
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

10 years agoso_pru_send_async: Use M_NOWAIT to allocate address
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.

10 years agovkernel: Remove #if 0 code in vkernel headers.
Sascha Wildner [Wed, 17 Jul 2013 20:42:46 +0000 (22:42 +0200)]
vkernel: Remove #if 0 code in vkernel headers.

10 years agokernel: Remove unneeded #include.
Sascha Wildner [Wed, 17 Jul 2013 20:35:42 +0000 (22:35 +0200)]
kernel: Remove unneeded #include.

10 years agokernel: Remove unused kmalloc types: M_AMRCAM, M_DEVT, M_ZOMBIE.
Sascha Wildner [Wed, 17 Jul 2013 20:35:13 +0000 (22:35 +0200)]
kernel: Remove unused kmalloc types: M_AMRCAM, M_DEVT, M_ZOMBIE.

10 years agoarp: Perform ARP pending output during ARP updating
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.

10 years agoroute: Prioritize routing table change messages
Sepherosa Ziehau [Wed, 17 Jul 2013 13:47:39 +0000 (21:47 +0800)]
route: Prioritize routing table change messages

10 years agokernel: Remov unused kmalloc type M_VMPGDATA.
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.

10 years agokernel: Remove some orphaned extern declarations in sys/platform.
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.

10 years agosystat(8): Remove some orphaned extern declarations.
Sascha Wildner [Tue, 16 Jul 2013 18:49:27 +0000 (20:49 +0200)]
systat(8): Remove some orphaned extern declarations.

10 years ago<sys/device.h>: Fix a typo in an extern declaration.
Sascha Wildner [Tue, 16 Jul 2013 17:32:46 +0000 (19:32 +0200)]
<sys/device.h>: Fix a typo in an extern declaration.

10 years agokernel - Attempt to fix shared/excl namecache deadlock
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.

10 years agoee(1): Remove two unused files.
Sascha Wildner [Tue, 16 Jul 2013 17:07:24 +0000 (19:07 +0200)]
ee(1): Remove two unused files.

10 years agokernel/oce: Sync oce(4) driver with FreeBSD.
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

10 years agoiir: Prevent namespace collision with INTEL_VENDOR_ID
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

10 years agoRemove some orphaned extern declarations.
Sascha Wildner [Mon, 15 Jul 2013 17:07:22 +0000 (19:07 +0200)]
Remove some orphaned extern declarations.

10 years agoUpdate the pciconf(8) database.
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/

10 years agobnx.4: Remove trailing whitespace.
Sascha Wildner [Sun, 14 Jul 2013 18:26:11 +0000 (20:26 +0200)]
bnx.4: Remove trailing whitespace.

10 years agoRemove fpsetsticky(3) remains. It was removed with the recent libm update.
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.

10 years agokernel - Fix excessively deferred wakeups
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
10 years agokernel - Do not try to apply certain hw errata fixes if in a VM guest
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
10 years agortsock: Add genmask after credit checking
Sepherosa Ziehau [Thu, 11 Jul 2013 09:55:36 +0000 (17:55 +0800)]
rtsock: Add genmask after credit checking

10 years agolibm: Add some parentheses to clarify operator precedence.
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

10 years agostrerror(3): Provide an error message for ENOMEDIUM.
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

10 years agokernel: Clean up some module Makefiles.
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.

10 years agoInstall pcf(4) manual page on all platforms (just like the module).
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).

10 years agokernel/joy: Remove an unneeded .PATH in the Makefile.
Sascha Wildner [Wed, 10 Jul 2013 18:59:04 +0000 (20:59 +0200)]
kernel/joy: Remove an unneeded .PATH in the Makefile.

10 years agomptutil(8): Fix i386 build.
Sascha Wildner [Wed, 10 Jul 2013 10:44:46 +0000 (12:44 +0200)]
mptutil(8): Fix i386 build.

10 years agoroute: Prioritize rtchange messages
Sepherosa Ziehau [Wed, 10 Jul 2013 05:53:20 +0000 (13:53 +0800)]
route: Prioritize rtchange messages

10 years agoroute: Prioritize routing messages during iface down
Sepherosa Ziehau [Wed, 10 Jul 2013 05:49:11 +0000 (13:49 +0800)]
route: Prioritize routing messages during iface down

10 years agoroute: Prioritize routing messages during iface detach
Sepherosa Ziehau [Wed, 10 Jul 2013 05:47:29 +0000 (13:47 +0800)]
route: Prioritize routing messages during iface detach

10 years agoroute: Factor out rt_domsg_global()
Sepherosa Ziehau [Wed, 10 Jul 2013 05:25:40 +0000 (13:25 +0800)]
route: Factor out rt_domsg_global()

10 years agoroute6: Only delete dynamic routes on the current CPU if they are losing
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

10 years agoroute: 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.

10 years agonetstat.1: Mention routes' MSL and initial window size
Sepherosa Ziehau [Wed, 10 Jul 2013 04:20:58 +0000 (12:20 +0800)]
netstat.1: Mention routes' MSL and initial window size

10 years agosyncache: Only explicitly delete unreferenced protocol-cloned routes
Sepherosa Ziehau [Wed, 10 Jul 2013 04:07:53 +0000 (12:07 +0800)]
syncache: Only explicitly delete unreferenced protocol-cloned routes

10 years agoinstaller: Cast to int64_t for i386.
Sascha Wildner [Tue, 9 Jul 2013 20:55:16 +0000 (22:55 +0200)]
installer: Cast to int64_t for i386.

10 years agoinstaller: Divide and multiply instead of shifting.
Sascha Wildner [Tue, 9 Jul 2013 20:48:26 +0000 (22:48 +0200)]
installer: Divide and multiply instead of shifting.

10 years agoinstaller: Use humanize_number() and dehumanize_number().
Sascha Wildner [Tue, 9 Jul 2013 20:30:40 +0000 (22:30 +0200)]
installer: Use humanize_number() and dehumanize_number().

10 years agomptutil(8): Use dehumanize_number().
Sascha Wildner [Tue, 9 Jul 2013 16:33:15 +0000 (18:33 +0200)]
mptutil(8): Use dehumanize_number().

10 years agoroute: Remove per-cpu routing threads; use netisr instead
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.

10 years agoroute: Make sure the parent route belong to the current CPU
Sepherosa Ziehau [Tue, 9 Jul 2013 08:41:55 +0000 (16:41 +0800)]
route: Make sure the parent route belong to the current CPU

10 years agoradix: Unshare radix mask tree resources
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

10 years agoSync zoneinfo database with tzdata2013d from ftp://ftp.iana.org/tz/releases
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).

10 years agokernel/mps: Fix a panic after the recent upgrade.
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.

10 years agokernel/net*: Remove some #include duplicates.
Sascha Wildner [Sun, 7 Jul 2013 19:57:22 +0000 (21:57 +0200)]
kernel/net*: Remove some #include duplicates.

10 years agokernel/sppp: Clean up #ifdef jungle a bit.
Sascha Wildner [Sun, 7 Jul 2013 19:42:19 +0000 (21:42 +0200)]
kernel/sppp: Clean up #ifdef jungle a bit.

10 years agokernel/usb4bsd: Fix ukbd's polled mode (for ddb etc.).
Sascha Wildner [Sun, 7 Jul 2013 11:04:00 +0000 (13:04 +0200)]
kernel/usb4bsd: Fix ukbd's polled mode (for ddb etc.).

10 years agoiicbus/iic.h: Sync with FreeBSD
François Tigeot [Sun, 7 Jul 2013 06:40:22 +0000 (08:40 +0200)]
iicbus/iic.h: Sync with FreeBSD

10 years agokernel: Stop building 3 i386 specific modules (ar, glxsb, sbni) on x86_64.
Sascha Wildner [Sat, 6 Jul 2013 18:35:42 +0000 (20:35 +0200)]
kernel: Stop building 3 i386 specific modules (ar, glxsb, sbni) on x86_64.

10 years agokernel: Remove two unused header files (we use dev/netif/ic_layer's copy).
Sascha Wildner [Sat, 6 Jul 2013 06:46:55 +0000 (08:46 +0200)]
kernel: Remove two unused header files (we use dev/netif/ic_layer's copy).

10 years agokernel: Remove some #include duplicates in vfs/ and vm/
Sascha Wildner [Fri, 5 Jul 2013 20:32:32 +0000 (22:32 +0200)]
kernel: Remove some #include duplicates in vfs/ and vm/

10 years agokernel/dev: Remove some #include duplicates.
Sascha Wildner [Thu, 4 Jul 2013 20:01:31 +0000 (22:01 +0200)]
kernel/dev: Remove some #include duplicates.

10 years agokernel/asr: Clean up the include jungle a bit.
Sascha Wildner [Thu, 4 Jul 2013 19:56:47 +0000 (21:56 +0200)]
kernel/asr: Clean up the include jungle a bit.

10 years agokernel/aic: Remove redundant #ifdefs.
Sascha Wildner [Thu, 4 Jul 2013 19:33:15 +0000 (21:33 +0200)]
kernel/aic: Remove redundant #ifdefs.

10 years agokernel - Flesh out AHCI 1.3 regs / detection (FBSS not yet supported)
Matthew Dillon [Thu, 4 Jul 2013 04:39:57 +0000 (21:39 -0700)]
kernel - Flesh out AHCI 1.3 regs / detection (FBSS not yet supported)

* Detect the CAP2 register.  Add definitions for new CAP and CAP2 bits.

* Detect and report FBSS support when a PM is attached.  Note that
  the driver does not yet support FBSS (I'm still tring to find a
  mobo whos AHCI has it).

10 years agofirmware.9: Adjust ARM specific example to one from our tree.
Sascha Wildner [Thu, 4 Jul 2013 00:43:14 +0000 (02:43 +0200)]
firmware.9: Adjust ARM specific example to one from our tree.

10 years agosys/conf/files: Adjust some excessive tabs.
Sascha Wildner [Thu, 4 Jul 2013 00:40:16 +0000 (02:40 +0200)]
sys/conf/files: Adjust some excessive tabs.

10 years agokernel: Remove unused invlpg() function
François Tigeot [Wed, 3 Jul 2013 06:36:49 +0000 (08:36 +0200)]
kernel: Remove unused invlpg() function

10 years agokernel - Remove Warning: busy page %p found in cache
Matthew Dillon [Wed, 3 Jul 2013 00:56:23 +0000 (17:56 -0700)]
kernel - Remove Warning: busy page %p found in cache

* Remove the "Warning: busy page %p found in cache" kprintf.  DragonFly
  now allows VM pages to be busied regardless of what queue they are or
  are not on.

10 years agokernel/platform: Remove some #include duplicates.
Sascha Wildner [Tue, 2 Jul 2013 20:14:13 +0000 (22:14 +0200)]
kernel/platform: Remove some #include duplicates.

10 years agokernel/oce: Fix sysctl names and firmware updating instructions.
Sascha Wildner [Tue, 2 Jul 2013 18:35:42 +0000 (20:35 +0200)]
kernel/oce: Fix sysctl names and firmware updating instructions.

10 years agovkernel - Fix frustrating VKE mac address bug
Matthew Dillon [Tue, 2 Jul 2013 00:24:26 +0000 (17:24 -0700)]
vkernel - Fix frustrating VKE mac address bug

* Fix a very frustrating bug where VKE would sometimes ignore packets.
  It turns out that the default randomly-generated ether mac address
  was not being properly zero'd, leaving uninitialized locations in
  bytes 0 and 1 which would sometimes make the MAC look like a multicast
  address.

Reported-by: Frustrated tuxilo
10 years agokernel/oce: Fix wrong maxsegs argument for bus_dmamap_load_mbuf_segment().
Sascha Wildner [Mon, 1 Jul 2013 21:14:09 +0000 (23:14 +0200)]
kernel/oce: Fix wrong maxsegs argument for bus_dmamap_load_mbuf_segment().

Mindlessly introduced by me after it was tested by Mihai and led to a
panic.

I had misunderstood a comment by sephe. OCE_MAX_TX_ELEMENTS is (as the
name implies) just for the tx path.

Reported-by: Mihai Carabas <mihai.carabas@gmail.com>
10 years agolibc/getdevpath: Remove unneeded strlen().
Sascha Wildner [Mon, 1 Jul 2013 21:05:23 +0000 (23:05 +0200)]
libc/getdevpath: Remove unneeded strlen().

10 years agooce.4: Add ifmedia(4) reference.
Sascha Wildner [Mon, 1 Jul 2013 19:06:35 +0000 (21:06 +0200)]
oce.4: Add ifmedia(4) reference.

10 years agokernel/netif: Bring in the oce(4) driver for Emulex OneConnect 10Gb NICs.
Sascha Wildner [Mon, 1 Jul 2013 16:23:05 +0000 (18:23 +0200)]
kernel/netif: Bring in the oce(4) driver for Emulex OneConnect 10Gb NICs.

According to the manual page, it supports:

* Emulex BladeEngine 2
* Emulex BladeEngine 3
* Emulex Lancer

It seems to be in solid shape, but some features remain yet unported
(such as MSI-X support). Also, the module is named 'if_oce.ko' in
DragonFly (like it is with all other network drivers) instead of
'oce.ko' like in FreeBSD.

The driver was tested by Mihai Carabas with a BladeEngine 3 adapter.

Taken-from:         FreeBSD
Additional-clue-by: sephe
10 years agocomplex.3: Use %O for URLs.
Sascha Wildner [Sun, 30 Jun 2013 20:18:14 +0000 (22:18 +0200)]
complex.3: Use %O for URLs.

10 years agokernel/802.11: Use the proper enum for ic_vap_create()'s opmode parameter.
Sascha Wildner [Sun, 30 Jun 2013 02:47:18 +0000 (04:47 +0200)]
kernel/802.11: Use the proper enum for ic_vap_create()'s opmode parameter.

10 years agokernel - Fix #2570 - Missing assignment in recent pageout commit
Matthew Dillon [Sat, 29 Jun 2013 02:41:47 +0000 (19:41 -0700)]
kernel - Fix #2570 - Missing assignment in recent pageout commit

* Don't forget to assign ma[page_base] to p;

Reported-by: David Shao
10 years agokernel - Change lwkt_wait_ipiq() to use the TSC
Matthew Dillon [Thu, 27 Jun 2013 21:10:48 +0000 (14:10 -0700)]
kernel - Change lwkt_wait_ipiq() to use the TSC

* lwkt_wait_ipiq() was using a static counter/constant for its failsafe
  panic, which can vary immensly over time and might not be long enough
  for systems running under VMs.

* Change the code to use the TSC api to properly time the failsafe.  It
  will generate warnings each second and panic at 10 seconds if the IPIQ
  fails to drain.

Reported-by: marino
10 years agokernel: Fix compiling tmpfs into the kernel.
Sascha Wildner [Thu, 27 Jun 2013 16:28:33 +0000 (18:28 +0200)]
kernel: Fix compiling tmpfs into the kernel.

10 years agokernel - Wakeup threads blocked in the VM page allocator more quickly
Matthew Dillon [Thu, 27 Jun 2013 06:40:29 +0000 (23:40 -0700)]
kernel - Wakeup threads blocked in the VM page allocator more quickly

Additional tuning to changes in the way the pageout daemon and VM system
wakes up threads blocked allocating normal VM pages.  Previously the VM
system would wait for the vm_paging_target() to be reached before waking
up all waiters, and had code to try to wakeup individual threads past
the minimum.

This just didn't work very well on machines with lots of memory because
it could take quite a long time for the pageout daemon to actually reach
the vm_paging_target() (and VM load could prevent it from being reached at
all!).  Many threads could wind up being blocked indefinitely waiting for
cache and/or free page counts to reach reasonable levels.

The solution is to give the kernel time to build up a smaller number
of free+cache pages beyond the minimum, enough to give all waiting threads
a fair shot at allocating at least one page, and then simply wakeup all
the waiters.  This hysteresis is set smallish on purpose, defaulting to
a value of 16 in order to avoid holding threads blocked for excessive
periods of time.

Under heavy VM loads this creates an overlap between memory consumers and
the pageout daemon, allowing the pageout daemon to run continuously in
these situations.

* Add the vm.page_free_hysteresis sysctl, initialized to 16.  This field
  specifies a small number of pages past the minimum required for normal
  system operation before the VM system will wakeup threads blocked in the
  VM page allocator.

* Adjust tmpfs to force-free pages through the hysteresis value to reduce
  degenerate block/wakeup situations under heavy VM loads.

10 years agokernel - Sync numerous commits from FreeBSD
Matthew Dillon [Thu, 27 Jun 2013 05:42:56 +0000 (22:42 -0700)]
kernel - Sync numerous commits from FreeBSD

Synchronize a bunch of commits from the FreeBSD tree.  Commit
ids shown below are from the github FreeBSD repo.

Several commits were not synchronized, the main one being 3c7b39f7b5a4...
(Bring in LSI's latest mps(4) 6Gb SAS and WarpDrive driver, version).
This one needs to be brought in.

One other note, not yet fixed is an issue where the driver configures
many more tags than the disk drive can actually support.  In my test
case, 255 tags for a Seagate SAS disk that really only seems to support
63.  When large numbers of commands are queued, and even sometimes when
not, the drive becomes severely inefficient for reads and writes.  Write
bandwidth that is usually in the ~30-50 MB/s range drops to ~5 MB/s.

Doing a camcontrol to reduce tags to ~16 or so seems to fix the issue.
(camcontrol tags da0 -N 16), but we need a permanent solution for this
problem.

56527fa077227f78a92c9ebc6f4f35d1bc3e1c21

  Bring in a number of mps(4) driver fixes from LSI:

    1.  Fixed timeout specification for the msleep in mps_wait_command().
        Added 30 second timeout for mps_wait_command() calls in mps_user.c.

    2.  Make sure we call mps_detach_user() from the kldunload path.

    3.  Raid Hotplug behavior change.

        The driver now removes a volume when it goes to a failed state,
        so we also need to add volume back to the OS when it goes to
        opitimal/degraded/online from failed/missing.

        Handle raid volume add and remove from the IR_Volume event.
    4.  Added some more debugging information.

    5.  Replace xpt_async(AC_LOST_DEVICE, path, NULL) with
        mpssas_rescan_target().

        This is to work around a panic in CAM that shows up when adding a
        drive with a rescan and removing another device from the driver thread
        with an AC_LOST_DEVICE async notification.

        This problem was encountered in testing with the LSI sas2ircu utility,
        which was used to create a RAID volume from physical disks.  The driver
        has to create the RAID volume target and remove the physical disk
        targets, and triggered a panic in the process.

        The CAM issue needs to be fully diagnosed and fixed, but this works
        around the issue for now.

    6.  Fix some memory initialization issues in mps_free_command().

    7.  Resolve the "devq freeze forever" issue.  This was caused by the
        internal read capacity command issued in the non-head version of the
        driver.  When the command completed with an error, the driver wasn't
        unfreezing thd device queue.

        The version in head uses the CAM infrastructure for getting the read
        capacity information, and therefore doesn't have the same issue.

    8.  Bump the version to 13.00.00.00-fbsd. (this is very close to LSI's
        internal stable driver 13.00.00.00)

ebc4133dca40744e7e5a2037e613bf403a16cc65

    Return BUS_PROBE_DEFAULT instead of BUS_PROBE_VENDOR from the mps driver
    probe routine.

    This will allow LSI to ship drivers that return BUS_PROBE_VENDOR to
    override the in-tree version of the driver.

dce65ce6be9088b0a0444b5f603e5f110a76e249

    Set the max_lun field of the path inquiry CCB to 8.

    This allows LUNs greater than 0 to be probed.  It can be increased later if
    need be.

    This brings back SVN rev 224973, which was inadvertently removed with the
    import of the LSI driver.

4b86692e31efa1f09f72ff85635a3fdfe28368c5 (not synchronized)

    (Make the mps(4) module depend on the cam module)

8473fac9559e9e3560fcd37c558101cd1718ba01 (originated from DragonFly)

    (Correct sizeof usage)

3c7b39f7b5a4dac525c1cf3896051741096de47a (not synchronized - TODO!)

    (Bring in LSI's latest mps(4) 6Gb SAS and WarpDrive driver, version)

0069682926e482627d3f64225ad0ad6018023ce6 (not synchronized)

    Change the mps(4) driver to only scan a target if that is what is
    needed instead of scanning the full bus every time.

5f97d83a2bb253e5fadfc217cb66c65542557a91

    Fix a small memory leak in mpssas_get_sata_identify().  The change has been
    submitted upstream as well.

e5c6ca6783da2418a0046f43f47977f4534925d3

    Fix kernel panic on `camcontrol reset` for specific target, caused by
    uninitialized cm_targ in mpssas_action_resetdev().

d35997f97e5bca6ac7e1dffebc4f7bc0bf4a168e

    Several fixes to allow firmware/BIOS flash access from user-level:
    Set max DMA segment size to 24bit, as MPI SGE supports it.
    Use mps_add_dmaseg() to add empty SGE instead of custom code.
    Tune endianness safety.

8600cbb5b6ebb06db859c9e2c76d07be50b8ff6a

    Correct double "the the"

5277f913de0e34474af844aed711a14c28c20d2b (not synchronized)

    (Add casts to unbreak the i386 PAE build for the mps(4) driver.)

f124bf985f4786c8ddd24f5127e7bf200d0396ad

    Don't lose the 255'th disk behind the initiator.

3f7a414911a892c8c84206394eb643cbde706d20 (already synchronized)

    remove duplicate semicolons where possible.

bd7f0fa0bb4b7b0f87227e0c4d49a4bd9b113cf0 (not synchronized)

    (Reform the busdma API so that new types may be added without modifying...)

8857575b13cf118cc89efb1b462dd314df09c180 (not applicable)

    (Replace the TDP_NOSLEEPING flag with a counter so that the)

674a0b97f5232c5275bfd0394620e7809315c694 (not applicable)

    (Except one case mps(4) driver does not touch the data and works well...)

3d32e6b10c85bbbaea953937412778787bba3629

    MFprojects/camlock r248982:
    Stop abusing xpt_periph in random plases that really have no periph related

bf0ecb667034d07b6288c04623d895a0919377c0

    Fix uninitialized warning in mps

0389554b1afa82981e507befda68b56631251990

    Fix NULL-dereference kernel panic in case of mps_attach() failure.

9a638117821b8de32c1f05d7244562702b4155b6

    Fix uninitialized memory reference in mps_read_config_page.  It was
    ...

10 years agotmpfs - Handle low memory situations a little better (2)
Matthew Dillon [Thu, 27 Jun 2013 01:41:19 +0000 (18:41 -0700)]
tmpfs - Handle low memory situations a little better (2)

* When handling pageout daemon requests we want to try to free pages
  directly to the VM page cache or the freeq and not necessarily cycle
  them through active or inactive.

  Shortcutting to the cache/free queues will allow the machine to
  unstick much more quickly which is particularly important on boxes
  with a lot of memory because the pageout hysteresis runs in such a
  large range.

* Greatly improves monster's performance under extreme tmpfs write loads.

10 years agokernel - Improve pageout daemon for tmpfs write load
Matthew Dillon [Thu, 27 Jun 2013 01:07:50 +0000 (18:07 -0700)]
kernel - Improve pageout daemon for tmpfs write load

* Rewrite vm_object_page_collect() and vm_pageout_clean() to align the
  set of pages being flushed to a swap cache stripe (~16-32 pages).

* Do a better job tracking how many pages have been cleaned by the pageout
  daemon.

* Setup an iterator and allow the inactive scan and the active scan to
  break out of their respective loops if they meet their quota early.

* Disable the swap iterator for now, it has not been shown to improve
  matters (yet).

10 years agotmpfs - Handle low memory situations a little better
Matthew Dillon [Thu, 27 Jun 2013 00:34:58 +0000 (17:34 -0700)]
tmpfs - Handle low memory situations a little better

* When memory starts to get low start bdwrite()ing buffers on file
  write instead of buwrite()ing them to force the data to start staging
  through the buffer cache.

* Rename some generic defines BSIZE / BMASK -< TMPFS_BLKSIZE / TMPFS_BLKMASK

* Set b_act_count to 0 and B_RELBUF in the pageout case to force the
  underlying VM pages to recycle to the inactive queue after the I/O is
  complete.

10 years agocpdup - native linux compile
Matthew Dillon [Wed, 26 Jun 2013 17:07:42 +0000 (10:07 -0700)]
cpdup - native linux compile

* Add an #ifdef to define away __ specials so a straight build under
  linux works on unmodified sources.

10 years agolibthread_xu - Remove unconditional debugging, slight code flow adjustment
Matthew Dillon [Wed, 26 Jun 2013 17:04:35 +0000 (10:04 -0700)]
libthread_xu - Remove unconditional debugging, slight code flow adjustment

* Remove an unconditional fprintf to stderr that is no longer needed

* Ensure that __thr_umtx_timedlock() doesn't break out on EINTR.  Note
  however that the functions it calls shouldn't be able to return EINTR
  so this change is really just to make things look more correct.

10 years agombuf: Cache align mbuf statistics
Sepherosa Ziehau [Wed, 26 Jun 2013 03:07:31 +0000 (11:07 +0800)]
mbuf: Cache align mbuf statistics

10 years agombuf: Cache align mbuf type statistics
Sepherosa Ziehau [Wed, 26 Jun 2013 02:19:12 +0000 (10:19 +0800)]
mbuf: Cache align mbuf type statistics

10 years agoroute.8: Mention -msl, -iw and -iwmax
Sepherosa Ziehau [Tue, 25 Jun 2013 13:00:26 +0000 (21:00 +0800)]
route.8: Mention -msl, -iw and -iwmax