dragonfly.git
10 years agokernel/usb4bsd: Silence an 'unused variable' warning in run(4).
Sascha Wildner [Thu, 19 Sep 2013 20:38:52 +0000 (22:38 +0200)]
kernel/usb4bsd: Silence an 'unused variable' warning in run(4).

10 years agodrm/ttm: Fix a crash in vm_page_unwire()
François Tigeot [Tue, 17 Sep 2013 17:35:08 +0000 (19:35 +0200)]
drm/ttm: Fix a crash in vm_page_unwire()

10 years agokernel/x86_64: Add a 64-bit atomic function
François Tigeot [Sun, 15 Sep 2013 18:31:31 +0000 (20:31 +0200)]
kernel/x86_64: Add a 64-bit atomic function

* atomic_swap_long()

* also define atomic_store_rel_64() and atomic_swap_64() aliases

10 years agosleep.9: Adjust prototypes.
Sascha Wildner [Thu, 19 Sep 2013 16:15:24 +0000 (18:15 +0200)]
sleep.9: Adjust prototypes.

10 years agohammer2 - GSOC cleanup pass
Matthew Dillon [Thu, 19 Sep 2013 04:01:45 +0000 (21:01 -0700)]
hammer2 - GSOC cleanup pass

* Cleanup some syntax and convert // comments in core source files.
  Remove _t suffix on static compression type procedures, make a
  few variable names shorter, etc.

* Used in-memory hammer2_inode->comp_heuristic instead of the on-media
  ipdata->reserved85 field for the compression heuristic.  It doesn't
  need to be recorded on-media.

* If the write thread encounters an I/O error, flag the original logical
  bp with the error and continue rather than breaking out and killing
  the write thread.

10 years agohammer2 - Merge Daniel Flores's HAMMER2 GSOC project into the main tree
Matthew Dillon [Thu, 19 Sep 2013 02:56:07 +0000 (19:56 -0700)]
hammer2 - Merge Daniel Flores's HAMMER2 GSOC project into the main tree

* This merge contains work primarily by Daniel Flores, and also by
  Matthew Dillon.  Daniel's work is focused around adding the compression
  infrastructure while my work was focused around changing HAMMER2's
  I/O infrastructure to work with the compression code.

  Daniel's work involved adding the compression functions and heuristics,
  modifying mainly vnops and vfsops to use them, adding the new buffer
  cache write thread, and adding the new hammer2 utility directives and
  related ioctls.

  My work involved changing the H2 I/O infrastructure to always double-buffer
  (i.e. logical buffers vs device buffers) because device buffers can now
  wind up being a different size than the related logical buffers.  I also
  had to make changes to the hammer2_mount and hammer2_pfsmount mechanics
  and other things to prevent deadlocks.

    Daniel's Work

* Add the hammer2 setcomp directive which sets the compression mode on a
  directory or file.  If applie to a directory, the compression mode is
  inherited by any new files or directories created under the directory.
  Pre-existing subdirectories and files are not affected.

  The directive has a recursive option to recurse down and set the mode on
  everything underneath.

* Add wthread_bioq and related fields to hammer2_mount to support a
  buffer cache buffer writing thread.  This thread is responsible for
  calculating compression sizes, allocating device buffer blocks, and
  compressing logical buffers into the device buffers.

* Implement HAMMER2_COMP_AUTOZERO, HAMMER2_COMP_LZ4, and HAMMER2_COMP_ZLIB
  compression modes.  AUTOZERO is the zero-block detection code.  LZ4 will
  do zero-block-detection and LZ4 otherwise, and ZLIB will do
  zero-block-detection and gzip otherwise.

  This work entails a ton of new files imported from the LZ4 and ZLIB
  projects plus lots of wiring.

  The new files had to be cleaned up considerably, as well, since they
  were originally intended for userland.

* Move synchronous device buffer handling out of hammer2_vop_write() and
  into the support thread.  Numerous procedures were moved out of
  hammer2_vnops.c and into hammer2_vfsops.c as well.

  This greatly simplifies hammer2_vop_write() as well as the truncate and
  extend code, and improves the critical-path performance for write()
  (at least until the buffer cache fills up or gets too far behind).

* Implement semi-synchronous decompression callbacks for read I/O and
  read-ahead I/O.

* Add HAMMER2IOC_INODE_COMP_REC_SET and HAMMER2IOC_INODE_COMP_REC_SET2
  ioctls to support the setcomp directive.

  Matthew's Work

* The hammer2_inode copies additional fields from the inode data, allowing
  the inode data to be deallocated after use.

* Due to the way the buffer cache now operates, multiple deletions of the
  same chain key can occur within the same transaction.  Adjust the RBTREE
  compare code to handle the case.

* Track chain structure use on a pfsmount-by-pfsmount basis for current
  and future management of the kmalloc pools used by hammer2.

* Rework the way inodes are locked to track chain modifications.

* Rewrite hammer2_chain_delete_duplicate().

* Rewrite hammer2_trans_init() and the flush code primarily to fix
  deadlocks in the flush synchronization mechanics.

* Interlock very low level chain operations with a spin lock instead
  of the full-blown chain lock to deal with potential deadlocks and
  fix a few SMP races.

* For the moment make all logical buffers 64KB.  Not efficient for small
  files and will be changed back at some point but necessary for efficient
  compression at the moment.

* Implement an asynchronous buffer cache callback feature.

* Use a localized in-hammer2_inode-structure size field for frontend
  operations, including extend and truncate, to remove confusion against
  backend flushes.  This way the inode data can be modified only during
  the flush and not before where it might cause confusion with previously
  staged flushes.

10 years agoinet6: Add missing ifioctl credential checks
François Tigeot [Wed, 18 Sep 2013 19:48:58 +0000 (21:48 +0200)]
inet6: Add missing ifioctl credential checks

This fixes issue #2581 (again), but with SIOCSIFBRDADDR and
SIOCSIFNETMASK ioctls this time.

Security: CVE-2013-5691
Patch-from: Loganaden Velvindron, inspired by FreeBSD changes

10 years agodsched.9: Fix dsched_new_policy_thread_io()'s prototype (see 5374d04f).
Sascha Wildner [Wed, 18 Sep 2013 20:46:59 +0000 (22:46 +0200)]
dsched.9: Fix dsched_new_policy_thread_io()'s prototype (see 5374d04f).

10 years agotoken.9: lwkt_token_init()'s desc argument is const.
Sascha Wildner [Wed, 18 Sep 2013 20:45:54 +0000 (22:45 +0200)]
token.9: lwkt_token_init()'s desc argument is const.

10 years agofortune - Add a fun tip
Matthew Dillon [Wed, 18 Sep 2013 19:18:06 +0000 (12:18 -0700)]
fortune - Add a fun tip

* Works best with cowsay.

10 years agolibhammer_stats.3: Fix typo.
Sascha Wildner [Wed, 18 Sep 2013 18:49:37 +0000 (20:49 +0200)]
libhammer_stats.3: Fix typo.

10 years agomandoc: upstream fix for missed clearing of MDOC_NEWLINE
Franco Fichtner [Sun, 15 Sep 2013 21:10:36 +0000 (23:10 +0200)]
mandoc: upstream fix for missed clearing of MDOC_NEWLINE

Provided-by: Ingo Schwarze <schwarze at mdocml dot bsd dot lv>
10 years agokernel/drm: Add missing vm_phys_fictitious_to_vm_page() prototype.
Sascha Wildner [Wed, 18 Sep 2013 16:39:54 +0000 (18:39 +0200)]
kernel/drm: Add missing vm_phys_fictitious_to_vm_page() prototype.

10 years agomxge: Cleanup watchdog reset path
Sepherosa Ziehau [Wed, 18 Sep 2013 04:56:14 +0000 (12:56 +0800)]
mxge: Cleanup watchdog reset path

Change device_printf on that code path to if_printf

10 years agomxge: Cleanup sysctl handlers
Sepherosa Ziehau [Wed, 18 Sep 2013 03:07:51 +0000 (11:07 +0800)]
mxge: Cleanup sysctl handlers

10 years agomxge: Cleanup ioctl path
Sepherosa Ziehau [Wed, 18 Sep 2013 01:33:16 +0000 (09:33 +0800)]
mxge: Cleanup ioctl path

Change device_printf on that code path to if_printf

10 years agovm: Implement and use vm_page_initfake()
François Tigeot [Tue, 17 Sep 2013 19:26:03 +0000 (21:26 +0200)]
vm: Implement and use vm_page_initfake()

Replacing a possibly buggy in some corner cases drm-specific function

Inspired-from: FreeBSD

10 years agomxge: Cleanup TX completion path
Sepherosa Ziehau [Tue, 17 Sep 2013 09:43:11 +0000 (17:43 +0800)]
mxge: Cleanup TX completion path

While im here, remove unused stats fields in softc

10 years agomxge: Fix if_start implementation
Sepherosa Ziehau [Tue, 17 Sep 2013 09:09:05 +0000 (17:09 +0800)]
mxge: Fix if_start implementation

- Don't transmit, if interface is not up or OACTIVE
- Merge mxge_start_locked into mxge_start; we won't need locked version
  of if_start

10 years agomxge: Remove several unused fields in softc
Sepherosa Ziehau [Tue, 17 Sep 2013 08:44:44 +0000 (16:44 +0800)]
mxge: Remove several unused fields in softc

10 years agomxge: Cleanup TX descriptor capsulation
Sepherosa Ziehau [Tue, 17 Sep 2013 08:25:44 +0000 (16:25 +0800)]
mxge: Cleanup TX descriptor capsulation

10 years agomxge: inline -> __inline
Sepherosa Ziehau [Tue, 17 Sep 2013 07:49:26 +0000 (15:49 +0800)]
mxge: inline -> __inline

10 years agomxge: Clean up RX path
Sepherosa Ziehau [Tue, 17 Sep 2013 07:33:13 +0000 (15:33 +0800)]
mxge: Clean up RX path

10 years agomxge: Constify various const strings
Sepherosa Ziehau [Tue, 17 Sep 2013 02:54:24 +0000 (10:54 +0800)]
mxge: Constify various const strings

10 years agoifpoll: Use tsc_invariant consistently
Sepherosa Ziehau [Tue, 17 Sep 2013 02:34:14 +0000 (10:34 +0800)]
ifpoll: Use tsc_invariant consistently

10 years agomxge: Cleanup probe code
Sepherosa Ziehau [Tue, 17 Sep 2013 02:34:04 +0000 (10:34 +0800)]
mxge: Cleanup probe code

10 years agohammer - Unbreak buildkernel
Antonio Huete Jimenez [Mon, 16 Sep 2013 22:22:19 +0000 (00:22 +0200)]
hammer - Unbreak buildkernel

10 years agoHAMMER - Fix VFS_STATFS() after volume-add.
Antonio Huete Jimenez [Mon, 16 Sep 2013 21:48:05 +0000 (23:48 +0200)]
HAMMER - Fix VFS_STATFS() after volume-add.

* Make sure the new free bigblocks count is accurate
  when a volume is added to a HAMMER filesystem.

10 years agomxge: Fix big buf allocation
Sepherosa Ziehau [Mon, 16 Sep 2013 14:19:31 +0000 (22:19 +0800)]
mxge: Fix big buf allocation

- MB_WAIT should be used to allocate mbuf.
- m_freem() instead of m_free() should be called if busdma error happens.
- During initialization, there is no mbuf to be recycled; just return
  error.

10 years agomxge: Limit MTU to ~4K
Sepherosa Ziehau [Mon, 16 Sep 2013 13:53:54 +0000 (21:53 +0800)]
mxge: Limit MTU to ~4K

Various code for "gather" jumbo frame is just broken; limiting MTU to 4K
(MJUMPAGESIZE) should workaround this.

10 years agomxge: Fix small buf allocation
Sepherosa Ziehau [Mon, 16 Sep 2013 12:34:00 +0000 (20:34 +0800)]
mxge: Fix small buf allocation

- MB_WAIT should be used to allocate mbuf.
- m_freem() instead of m_free() should be called if busdma error happens.
- During initialization, there is no mbuf to be recycled; just return
  error.

10 years agomxge: Cleanup slice open code
Sepherosa Ziehau [Mon, 16 Sep 2013 09:38:14 +0000 (17:38 +0800)]
mxge: Cleanup slice open code

10 years agomxge: Cleanup stop path
Sepherosa Ziehau [Mon, 16 Sep 2013 08:42:23 +0000 (16:42 +0800)]
mxge: Cleanup stop path

10 years agomxge: Cleanup if_init path
Sepherosa Ziehau [Mon, 16 Sep 2013 08:31:08 +0000 (16:31 +0800)]
mxge: Cleanup if_init path

10 years agomake.1: correct a few style issues
Franco Fichtner [Fri, 13 Sep 2013 22:29:33 +0000 (00:29 +0200)]
make.1: correct a few style issues

10 years ago<sys/cdefs.h>: Fix the _Static_assert compatiblity macros.
Sascha Wildner [Sun, 15 Sep 2013 19:32:24 +0000 (21:32 +0200)]
<sys/cdefs.h>: Fix the _Static_assert compatiblity macros.

Remove the typedef hack (which was like our CTASSERT()). Emacs was
choking on it because it is using _Static_assert like this (in verify.h):

#define _GL_VERIFY_TYPE(R, DIAGNOSTIC)  \
     struct {                           \
       _Static_assert (R, DIAGNOSTIC);  \
       int _gl_dummy;                   \
     }

GCC supports it since 4.6, so take that into account too.

10 years agomxge: Make detach suitable for error handling and fix attach error handling
Sepherosa Ziehau [Sun, 15 Sep 2013 13:37:39 +0000 (21:37 +0800)]
mxge: Make detach suitable for error handling and fix attach error handling

10 years agodrm.4: Fix some mandoc warnings which I introduced.
Sascha Wildner [Sun, 15 Sep 2013 13:45:02 +0000 (15:45 +0200)]
drm.4: Fix some mandoc warnings which I introduced.

10 years agoUpdate the pciconf(8) database.
Sascha Wildner [Sun, 15 Sep 2013 13:33:21 +0000 (15:33 +0200)]
Update the pciconf(8) database.

September 14, 2013 snapshot from http://pciids.sourceforge.net/

10 years agomxge: Cleanup attach path
Sepherosa Ziehau [Sun, 15 Sep 2013 05:37:43 +0000 (13:37 +0800)]
mxge: Cleanup attach path

Most of the changes are non-functional.  M_NOWAIT -> M_WAITOK is the most
important one.

10 years agodrm: Sync with FreeBSD
François Tigeot [Sat, 14 Sep 2013 17:47:40 +0000 (19:47 +0200)]
drm: Sync with FreeBSD

* As of commit r255045 (2013-08-30):
  'u_long' is consistently spelled 'unsigned long' in this file.  Fix it.

* Some of the changes are bug fixes, including a few memory leaks

* Others are necessary groundwork for the Radeon KMS driver

* Some new files were imported from Linux 3.8-rc3

* Support for E-DDC has been added

* Many atomic routines were revisited to make them more compatible with
  the Linux APIs and run-time behavior

10 years agokernel/i386: Implement ffsl()
François Tigeot [Sat, 14 Sep 2013 16:59:21 +0000 (18:59 +0200)]
kernel/i386: Implement ffsl()

It was only a builtin function on x86_64.

Obtained-from: FreeBSD

10 years agokernel: Import atomic_testandset_int() from FreeBSD
François Tigeot [Sat, 14 Sep 2013 15:17:12 +0000 (17:17 +0200)]
kernel: Import atomic_testandset_int() from FreeBSD

10 years agokernel - Fix issue revealed by new yield code
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.

10 years agokernel - Misc adjustments used by the vkernel and VMM, misc optimizations
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.

10 years agoDisable making i915kms compilable into the kernel.
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

10 years agodrm.4: Update a bit to reflect the current state of affairs.
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.

10 years agotcp: Use mbuf jcluster (4K) in sosendtcp(); improve 10Ge TSO performance
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.

10 years agombuf: Fix jcluster support
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.

10 years ago<sys/vnode.h>: Remove two unused externs.
Sascha Wildner [Thu, 12 Sep 2013 20:35:53 +0000 (22:35 +0200)]
<sys/vnode.h>: Remove two unused externs.

10 years agodirfs.5: Add missing .Ed
Sascha Wildner [Thu, 12 Sep 2013 16:57:12 +0000 (18:57 +0200)]
dirfs.5: Add missing .Ed

10 years agodrm: Replace the i915 driver by i915kms
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.

10 years agofortune - Add yet another prompt tip.
Antonio Huete Jimenez [Thu, 12 Sep 2013 12:13:53 +0000 (14:13 +0200)]
fortune - Add yet another prompt tip.

10 years agomxge: Adjust interrupt moderation and TSO burst parameters
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

10 years agoin6: Fix DoS on INET6 w/ SIOCSIFADDR or SIOCSIFDSTADDR
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

10 years agotools: Add TCP_SENDFILE test to tcp_stream
Sepherosa Ziehau [Thu, 12 Sep 2013 01:54:32 +0000 (09:54 +0800)]
tools: Add TCP_SENDFILE test to tcp_stream

10 years agoem.4: I217 and I218 are supported by emx
Sepherosa Ziehau [Thu, 12 Sep 2013 01:49:10 +0000 (09:49 +0800)]
em.4: I217 and I218 are supported by emx

10 years agobuild: mxge_lro.c is gone
Sepherosa Ziehau [Thu, 12 Sep 2013 01:45:16 +0000 (09:45 +0800)]
build: mxge_lro.c is gone

10 years agomxge: Sync w/ FreeBSD
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

10 years agovkernel64 - Add newline to the end of options files.
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

10 years agoacpi.4: Remove some unneeded commas, too.
Sascha Wildner [Wed, 11 Sep 2013 19:27:45 +0000 (21:27 +0200)]
acpi.4: Remove some unneeded commas, too.

10 years agoacpi.4: Fix typo, Diabling -> Disabling
Sascha Wildner [Wed, 11 Sep 2013 19:24:20 +0000 (21:24 +0200)]
acpi.4: Fix typo, Diabling -> Disabling

10 years agoifnet - Compute iface statistics for NET_RT_IFLIST
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

10 years agosystat - Fix memory leak in -netbw
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
10 years agokernel - Fix process blocking forever if ^Z'd at the wrong time
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.

10 years agohammer(8) - Migration to libhammer (step 2/many)
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

10 years agohammer(8) - Adapt help output to latest changes.
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.

10 years agolibhammer_get_volinfo.3 - Use commas to separate functions names.
Antonio Huete Jimenez [Mon, 9 Sep 2013 11:44:08 +0000 (13:44 +0200)]
libhammer_get_volinfo.3 - Use commas to separate functions names.

10 years agolibhammer - Add functions to help gather HAMMER statistics.
Antonio Huete Jimenez [Mon, 9 Sep 2013 11:32:41 +0000 (13:32 +0200)]
libhammer - Add functions to help gather HAMMER statistics.

10 years agoem.4: Remove trailing whitespace.
Sascha Wildner [Sun, 8 Sep 2013 17:08:05 +0000 (19:08 +0200)]
em.4: Remove trailing whitespace.

10 years agonrelease: Remove xorg.conf from non-gui images
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

10 years agolibhammer - Fix another memory leak.
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
10 years agolibhammer - Use source directory header instead of the system one.
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.

10 years agohammer(8) - Allow specifying paths to 'info' directive.
Antonio Huete Jimenez [Sat, 7 Sep 2013 18:06:48 +0000 (20:06 +0200)]
hammer(8) - Allow specifying paths to 'info' directive.

10 years agolibhammer - Few fixes to libhammer_get_volinfo()
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.

10 years agohammer(8) - Remove 'status' directive.
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.

10 years agorconfig - CCD mirror script
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)

10 years agomxge: Rearrange building
Sepherosa Ziehau [Fri, 6 Sep 2013 06:19:10 +0000 (14:19 +0800)]
mxge: Rearrange building

10 years agoecc: Use __SHIFTOUT macro; add missing line break in error logging
Sepherosa Ziehau [Fri, 6 Sep 2013 05:13:42 +0000 (13:13 +0800)]
ecc: Use __SHIFTOUT macro; add missing line break in error logging

10 years agokernel - Fix minor reporting bug in ecc update
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.

10 years agoecc: Add E3-1200 v2 and E3-1200 V3 support
Sepherosa Ziehau [Fri, 6 Sep 2013 04:29:27 +0000 (12:29 +0800)]
ecc: Add E3-1200 v2 and E3-1200 V3 support

10 years agokernel/ddb: Fix formatting when printing command tables.
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

10 years agokernel - Change time_second to time_uptime for all expiration calculations (2)
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.

10 years agokernel - Change time_second to time_uptime for all expiration calculations
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.

10 years agokernel - ipv6 - Fix broken 'invalid mtu expiration time' message
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
10 years agotest/vkernel - Fix build.
Antonio Huete Jimenez [Thu, 5 Sep 2013 13:58:27 +0000 (06:58 -0700)]
test/vkernel - Fix build.

10 years agoBring in DIRFS: A filesystem for VKERNELS
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?

10 years agokernel - ipv6 - correct route table callout timer calculation
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.

10 years agode.4: Mention that Microsoft Virtual PC and Hyper-V have de(4) adapters.
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.

10 years agokernel - IPV6 subnet routing / proxy ND6 (bridge support)
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.

10 years agolibsmb: Allow libsmb to detect if smbfs.ko is loaded.
Sascha Wildner [Wed, 4 Sep 2013 20:13:04 +0000 (22:13 +0200)]
libsmb: Allow libsmb to detect if smbfs.ko is loaded.

10 years agokernel - Implement IPV6 subnet routing / proxy ND6 (equiv to proxy ARP)
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.

10 years agokernel/drm: Fix AGP detection for Matrox cards.
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.

10 years agoem.4: I217 and I218 are taken by emx
Sepherosa Ziehau [Wed, 4 Sep 2013 13:33:18 +0000 (21:33 +0800)]
em.4: I217 and I218 are taken by emx

10 years agoemx: Add I217/I218
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.

10 years agotmpfs - Remove duplicated checks in tmpfs_chflags()
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.

10 years agovkernel32 - Change VM_MAX_USER_ADDRESS to match the real kernel.
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
10 years agoem.4: TSO is supported on all PCI-E chips; properly mention I217/I218
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

10 years agore: Add 8401/8402/8106 support
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

10 years agoem: Move max_frame_size from softc to HAL data struct
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