dragonfly.git
8 years agopowerd: Linger a little bit if battery life is low
Sepherosa Ziehau [Wed, 17 Jun 2015 12:39:34 +0000 (20:39 +0800)]
powerd: Linger a little bit if battery life is low

So that we could have time to plugin AC line.

And in addition to logging messages on console, alarming audio
alert, since most laptop users will use X; they will not notice
the console messages.  Audio alert is enabled by default and
could be disabled by -Q.

While I'm here, fix powerd.8 and allow disabling battery life
monitoring if 0 is passed to -P.

Suggested-by: seallyhs
8 years agoipfw3: support bpf filter in layer4 module
Bill Yuan [Wed, 17 Jun 2015 01:35:05 +0000 (09:35 +0800)]
ipfw3: support bpf filter in layer4 module

syntax:
bpf "<bpf string>"
e.g.
ipfw3 add allow all bpf "icmp and src 8.8.8.8"

bpf can be used to filter the packet payload.

pcap_compile_nocap was used to compile the bpf string
and bpf_filter for the filtering.

8 years agoipfw3: misc - fix MACRO name
Bill Yuan [Tue, 16 Jun 2015 15:00:06 +0000 (23:00 +0800)]
ipfw3: misc - fix MACRO name

8 years agoipfw3: filter 'established' in layer4 module
Bill Yuan [Tue, 16 Jun 2015 14:55:51 +0000 (22:55 +0800)]
ipfw3: filter 'established' in layer4 module

matches TCP packets that has the RST or ACK bits set.

8 years agoipfw3: stop deleting in-use NAT conf
Bill Yuan [Tue, 16 Jun 2015 14:43:42 +0000 (22:43 +0800)]
ipfw3: stop deleting in-use NAT conf

8 years agosbin/newfs_hammer: Fail with "less than 10GB" without formatting half way through
Tomohiro Kusumi [Mon, 15 Jun 2015 19:55:01 +0000 (04:55 +0900)]
sbin/newfs_hammer: Fail with "less than 10GB" without formatting half way through

- This commit enables newfs_hammer to fail with "less than 10GB"
  error without formatting half way through, by using a new function
  count_freemap() which only counts potentially available bigblocks
  with no ondisk modification to layer1/2 bigblocks.

- It's simply better to fail with a sanity check without messing
  up disks whenever users have invalid inputs (which in this case
  is users specifying not large enough volumes). The formatting
  should start only after all sanity checks are done.

- Example1 - using existing /sbin/newfs_hammer
  # dd if=/dev/zero of=/dev/da9 bs=8M count=10 >/dev/null 2>&1; sync
  *** unplug /dev/da9 -> plug /dev/da9
  # dd if=/dev/da9 of=/tmp/out1 bs=8M count=10 >/dev/null 2>&1; sync
  # /sbin/newfs_hammer -L TEST /dev/da9; sync
  Volume 0 DEVICE /dev/da9        size   7.22GB
  initialize freemap volume 0
  newfs_hammer: Cannot create a HAMMER filesystem less than 10GB unless you use -f
  (for the size of Volume 0).  HAMMER filesystems less than 50GB are not recommended.

  *** unplug /dev/da9 -> plug /dev/da9
  # dd if=/dev/da9 of=/tmp/out2 bs=8M count=10 >/dev/null 2>&1; sync
  # cmp /tmp/out1 /tmp/out2
  /tmp/out1 /tmp/out2 differ: char 35913737, line 1
  # od -tx1 -Ad -N 838860800 /tmp/out1
  0000000    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
  *
  83886080
  # od -tx1 -Ad -N 838860800 /tmp/out2 | head -10
  0000000    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
  *
  35913728    00  00  00  00  00  00  00  00  ff  ff  ff  ff  ff  ff  ff  ff
  35913744    00  00  00  00  00  00  00  00  00  00  00  00  31  a7  1e  63
  35913760    00  00  00  00  00  00  00  00  ff  ff  ff  ff  ff  ff  ff  ff
  35913776    00  00  00  00  00  00  00  00  00  00  00  00  31  a7  1e  63
  35913792    00  00  00  00  00  00  00  00  ff  ff  ff  ff  ff  ff  ff  ff
  35913808    00  00  00  00  00  00  00  00  00  00  00  00  31  a7  1e  63
  35913824    00  00  00  00  00  00  00  00  ff  ff  ff  ff  ff  ff  ff  ff
              -----layer1.blocks_free=0-----  --layer1.phys_offset=UNAVAIL--
  35913840    00  00  00  00  00  00  00  00  00  00  00  00  31  a7  1e  63
              -----layer1.reserved----------  --layer2.crc--  --layer1.crc--
              (see sbin/hammer/ondisk.c:format_freemap())
  # /sbin/mount_hammer /dev/da9 /mnt
  /dev/da9: Not a valid HAMMER filesystem
  mount_hammer: mount /dev/da9 on /mnt: Inappropriate file type or format
  (it's only half way through done, so the device isn't mountable yet,
  but the layer1/2 structure still does overwrite the original content)

- Example2 - using this commit
  # dd if=/dev/zero of=/dev/da9 bs=8M count=10 >/dev/null 2>&1; sync
  *** unplug /dev/da9 -> plug /dev/da9
  # dd if=/dev/da9 of=/tmp/out1 bs=8M count=10 >/dev/null 2>&1; sync
  # /sbin/newfs_hammer -L TEST /dev/da9; sync
  Volume 0 DEVICE /dev/da9        size   7.22GB
  newfs_hammer: Cannot create a HAMMER filesystem less than 10GB unless you use -f
  (for the size of Volume 0).  HAMMER filesystems less than 50GB are not recommended.

  *** unplug /dev/da9 -> plug /dev/da9
  # dd if=/dev/da9 of=/tmp/out2 bs=8M count=10 >/dev/null 2>&1; sync
  # cmp /tmp/out1 /tmp/out2
  #

8 years agoacpi/cpu/coretemp: Move sensor device from coretemp to acpi/cpu
Sepherosa Ziehau [Mon, 15 Jun 2015 15:17:32 +0000 (23:17 +0800)]
acpi/cpu/coretemp: Move sensor device from coretemp to acpi/cpu

So that more sensors from different drivers could attach to it.

8 years agokernel/ext2fs: Fix building ext2fs into the kernel.
Sascha Wildner [Tue, 16 Jun 2015 11:27:36 +0000 (13:27 +0200)]
kernel/ext2fs: Fix building ext2fs into the kernel.

8 years agosys/gnu/vfs/ext2fs: Isolate Linux kernel code (just like other files do)
Tomohiro Kusumi [Sun, 14 Jun 2015 19:12:09 +0000 (04:12 +0900)]
sys/gnu/vfs/ext2fs: Isolate Linux kernel code (just like other files do)

- dfly ext2 isolates code directly from Linux to separate files.
  This commit isolates two functions that are not isolated.

- Isolate functions ext2_check_descriptors() and ext2_statfs()
  to ext2fs/ext2_linux_super.c as these two are directly from
  fs/ext2/super.c (and comments say so).

- grep "Remy Card" to find out which files are from Linux kernel.
  # grep "Remy Card" sys/gnu/vfs/ext2fs -rIl
  sys/gnu/vfs/ext2fs/ext2_fs_sb.h
  sys/gnu/vfs/ext2fs/ext2_fs.h
  sys/gnu/vfs/ext2fs/ext2_linux_ialloc.c
  sys/gnu/vfs/ext2fs/ext2_linux_balloc.c
  sys/gnu/vfs/ext2fs/ext2_linux_super.c

8 years agoUpdate the pciconf(8) database.
Sascha Wildner [Mon, 15 Jun 2015 12:16:01 +0000 (14:16 +0200)]
Update the pciconf(8) database.

May 13, 2015 snapshot from http://pciids.sourceforge.net/

8 years ago<sys/cdefs.h>: Fix a typo introduced (in 2005) with 3d28a5332f9b5.
Sascha Wildner [Sun, 14 Jun 2015 20:39:56 +0000 (22:39 +0200)]
<sys/cdefs.h>: Fix a typo introduced (in 2005) with 3d28a5332f9b5.

8 years agosbin/hammer: Abort if a device is used for more than one volumes
Tomohiro Kusumi [Sun, 14 Jun 2015 04:22:56 +0000 (13:22 +0900)]
sbin/hammer: Abort if a device is used for more than one volumes

- setup_volume() needs to check if the device has already been
  registered, in addition to checking the volume id. If it's been
  registered already, abort the process before writes to volumes
  start. Otherwise using a single device for more than one volumes
  hits assertion at some point on blockmap lookup of layer1/2
  bigblocks with possible core dump. It should abort before any
  ondisk change (when the function is used by newfs_hammer) occurs.

  # /sbin/newfs_hammer -L TEST /dev/da3 /dev/da3 /dev/da3
  Volume 0 DEVICE /dev/da3        size 465.76GB
  newfs_hammer: setup_volume: /dev/da3: Specified more than once

8 years agosbin/hammer: Cleanups
Tomohiro Kusumi [Sun, 14 Jun 2015 03:58:17 +0000 (12:58 +0900)]
sbin/hammer: Cleanups

- Add missing ':'.

- Use either 'filename' or 'vol->name'.

8 years agovgapci: Allow children of vgapci to use MSI interrupts and query VPD strings
Imre Vadász [Sat, 13 Jun 2015 20:45:40 +0000 (22:45 +0200)]
vgapci: Allow children of vgapci to use MSI interrupts and query VPD strings

* vgapci now setups as the interrupt owner, rather than the child device.

* For MSI interrupts, we only allow 1 child device to use MSI at a time.

Taken-from: FreeBSD

8 years agoopenssl: Adjust manual pages for 1.0.1o.
Sascha Wildner [Sat, 13 Jun 2015 16:30:32 +0000 (18:30 +0200)]
openssl: Adjust manual pages for 1.0.1o.

8 years agoMerge branch 'vendor/OPENSSL'
Sascha Wildner [Sat, 13 Jun 2015 16:29:49 +0000 (18:29 +0200)]
Merge branch 'vendor/OPENSSL'

8 years agoImport OpenSSL 1.0.1o.
Sascha Wildner [Sat, 13 Jun 2015 16:29:32 +0000 (18:29 +0200)]
Import OpenSSL 1.0.1o.

Fixes an HMAC ABI incompatibility which was introduced in 1.0.1n.

8 years agoRestore ability for master to build release 4.2
John Marino [Sat, 13 Jun 2015 08:48:40 +0000 (10:48 +0200)]
Restore ability for master to build release 4.2

It turns out that setting values on /etc/defaults/make.conf is a bad
idea.  In this case, the two SENDMAIL values that were set prevent
a master branch from building previous releases.

The fix is to comment out those two definitions and move the default
values to the makefile that uses them, using the "?=" operator.

8 years agousb4bsd: Remove FreeBSD's config file. We use usb_dragonfly.h.
Sascha Wildner [Fri, 12 Jun 2015 21:18:15 +0000 (23:18 +0200)]
usb4bsd: Remove FreeBSD's config file. We use usb_dragonfly.h.

8 years agolibusb: Use the right include file.
Sascha Wildner [Fri, 12 Jun 2015 21:16:15 +0000 (23:16 +0200)]
libusb: Use the right include file.

8 years agodrm/radeon: Use fb->pitches[0] for the correctly aligned stride
Imre Vadász [Fri, 12 Jun 2015 18:01:06 +0000 (20:01 +0200)]
drm/radeon: Use fb->pitches[0] for the correctly aligned stride

8 years agosbin/newfs_hammer: Fix "less than 10GB" error message on newfs
Tomohiro Kusumi [Thu, 11 Jun 2015 16:20:37 +0000 (01:20 +0900)]
sbin/newfs_hammer: Fix "less than 10GB" error message on newfs

- Add "(for the size of Volume 0)". Trying to make >10GB hammer
  with multiple less-than-10GB-disks results the same error.

- This message appears whenever the root volume (the volume #0
  where layer1/2 are stored by newfs) has less than 10GB space
  in zone2/volume0 address space. It doesn't matter if the total
  size of physical disks are large enough or not.

  # /sbin/newfs_hammer -L TEST /dev/da8 /dev/da9 /dev/da10 /dev/da11
  Volume 0 DEVICE /dev/da8        size   7.22GB
  Volume 1 DEVICE /dev/da9        size  28.88GB
  Volume 2 DEVICE /dev/da10       size   7.20GB
  Volume 3 DEVICE /dev/da11       size   1.86GB
  initialize freemap volume 0
  newfs_hammer: Cannot create a HAMMER filesystem less than 10GB unless you use -f
  (for the size of Volume 0).  HAMMER filesystems less than 50GB are not recommended.

- It's probably better if newfs_hammer could fail with this
  error message without writing (write(2)) to ondisk layer1/2
  structure. The layer1/2 have already been written to the root
  volume by the time the process is aborted. Also note that this
  is the only newfs_hammer sanity check failure that affect ondisk.
  All the other checks abort before ondisk formatting starts.

8 years agoStop removing i915drm.4.gz via 'make upgrade'.
Sascha Wildner [Thu, 11 Jun 2015 19:50:51 +0000 (21:50 +0200)]
Stop removing i915drm.4.gz via 'make upgrade'.

8 years agoopenssl: Adjust manual pages for 1.0.1n.
Sascha Wildner [Thu, 11 Jun 2015 19:06:39 +0000 (21:06 +0200)]
openssl: Adjust manual pages for 1.0.1n.

8 years agoMerge branch 'vendor/OPENSSL'
Sascha Wildner [Thu, 11 Jun 2015 19:04:28 +0000 (21:04 +0200)]
Merge branch 'vendor/OPENSSL'

8 years agoImport OpenSSL 1.0.1n.
Sascha Wildner [Thu, 11 Jun 2015 19:03:27 +0000 (21:03 +0200)]
Import OpenSSL 1.0.1n.

Fixes CVE-2015-1788, CVE-2015-1789, CVE-2015-1790, CVE-2015-1791,
and CVE-2015-1792.

Rejects DH handshakes with parameters shorter than 768 bits.

8 years agokernel/syscons: Allow to turn off scaling by setting kern.kms_columns <0.
Sascha Wildner [Thu, 11 Jun 2015 18:23:53 +0000 (20:23 +0200)]
kernel/syscons: Allow to turn off scaling by setting kern.kms_columns <0.

Submitted-by: Rimvydas Jasinskas <rimvydas.jasinskas@gmail.com>
8 years agokernel/syscons: Temporarily disable a6aa39351756c.
Sascha Wildner [Thu, 11 Jun 2015 17:30:41 +0000 (19:30 +0200)]
kernel/syscons: Temporarily disable a6aa39351756c.

It was causing issues and panics on at least one box, and needs further
investigation.

Reported-by: Rimvydas Jasinskas <rimvydas.jasinskas@gmail.com>
8 years agokernel - Reduce interrupt latency during large framebuffer updates
Matthew Dillon [Thu, 11 Jun 2015 05:30:02 +0000 (22:30 -0700)]
kernel - Reduce interrupt latency during large framebuffer updates

* When syscons scrolls the entire framebuffer is updated.  On large
  (e.g. 4K) displays this can take excessively long and delay interrupts
  on the cpu for too long.

* Causes the hard sound interrupt to have high latencies and not operate
  properly.

* Solved by releasing the syscons_lock() temporarily and issuing a splz()
  during long copy operations.

Reported-by: swildner, others
8 years agoVersion number changes for 4.3-DEVELOPMENT.
Justin C. Sherrill [Thu, 11 Jun 2015 01:05:14 +0000 (21:05 -0400)]
Version number changes for 4.3-DEVELOPMENT.

8 years agopowerd: Fix usage for cpu usage polling interval
Sepherosa Ziehau [Wed, 10 Jun 2015 14:03:05 +0000 (22:03 +0800)]
powerd: Fix usage for cpu usage polling interval

8 years agopowerd: Fix cputime calculation for non-1.0 polling interval
Sepherosa Ziehau [Wed, 10 Jun 2015 14:01:39 +0000 (22:01 +0800)]
powerd: Fix cputime calculation for non-1.0 polling interval

8 years agodrm - Attempt to fix radeon stride
Matthew Dillon [Thu, 11 Jun 2015 00:43:25 +0000 (17:43 -0700)]
drm - Attempt to fix radeon stride

* This is a bad hack which assumes that the stride must be 256-byte aligned
  for radeon GPUs.  This is apparently the case for odd monitor resolutions
  such as 1680x1050.  Most primary resolutions such as 1920x1080 are already
  naturally 256-byte aligned.

* Fixes the system console when used with odd resolutions.

8 years agokernel/syscons: Fix a comment.
Sascha Wildner [Wed, 10 Jun 2015 21:20:44 +0000 (23:20 +0200)]
kernel/syscons: Fix a comment.

Noticed-by: ivadasz
8 years agokernel/syscons: Add simple font scaling when using KMS drivers.
Sascha Wildner [Wed, 10 Jun 2015 21:04:40 +0000 (23:04 +0200)]
kernel/syscons: Add simple font scaling when using KMS drivers.

This commit lets the user choose the number of columns for KMS syscons
with a new tunable, kern.kms_columns. If it is not set, the default is
to scale as close as possible to 80x25 using natural numbers as scaling
factors (e.g., on 1680x1050 the default would be a 105x32 char console
using a 16x32 font).

The commit also separates (scaled) character drawing into a new
function, blit_blk(), and does some cleanups.

Submitted-by: dillon
8 years agopowerd: Add emergency poweroff support if laptop battery life is low.
Sepherosa Ziehau [Tue, 9 Jun 2015 15:46:17 +0000 (23:46 +0800)]
powerd: Add emergency poweroff support if laptop battery life is low.

And by default linger 60 seconds if battery life is low and powerd just
started; mainly to avoid poweroff immediately after a low battery life
laptop just booted.

8 years agodrm.4: Update the drm.4 manpage and start i915kms.4 and radeonkms.4
Imre Vadász [Tue, 9 Jun 2015 19:42:20 +0000 (21:42 +0200)]
drm.4: Update the drm.4 manpage and start i915kms.4 and radeonkms.4

8 years agodrm/radeon: Add backlight sysctls for cards with atombios.
Imre Vadász [Tue, 9 Jun 2015 19:53:02 +0000 (21:53 +0200)]
drm/radeon: Add backlight sysctls for cards with atombios.

* Add sysctl hw.backlight_level and hw.backlight_max for radeon cards
  that use atombios.

8 years agodrm - Fix valid NULL address returned from i915 mmap ioctl
Matthew Dillon [Tue, 9 Jun 2015 18:35:19 +0000 (11:35 -0700)]
drm - Fix valid NULL address returned from i915 mmap ioctl

* Do not allow the ioctl to mmap at address 0.  This fixes assertions
  in mpv and probably de-confuses other programs too.

* Calling vm_map_hint() is sufficient to ensure that a reasonable start
  address is used.

Reported-by: zrj, joris.
8 years agokernel - Increase DMA reserve from 16M to 128M by default
Matthew Dillon [Tue, 9 Jun 2015 15:36:15 +0000 (08:36 -0700)]
kernel - Increase DMA reserve from 16M to 128M by default

* People running DragonFly on workstations were having to specify
  more than the default 16M for vm.dma_reserved in /boot/loader.conf
  or their X sessions would not be stable.

* To reduce confusion, the dma_reserved default is being increased
  to 128M which should be sufficient for most display setups.

  People with headless servers will have to explicitly reduce the
  reservation in /boot/loader.conf (back to 16m is my suggestions) if
  they wish to recover the memory.

* This is the best compromise I could think of.  We can't just return
  the memory to the pool after boot because X might be started far later
  on, or even potentially killed and restarted.  Other drivers might also
  depend on large swaths of contiguous physical memory being available.

  The reserve is the best way to do it and I would rather things work out
  of the box rather than forcing regular users to set something in
  /boot/loader.conf.

8 years agox86_64/madt: Enhance bootverbose logging
Sepherosa Ziehau [Mon, 8 Jun 2015 13:48:52 +0000 (21:48 +0800)]
x86_64/madt: Enhance bootverbose logging

8 years agox86_64: Fix gd_acpi_id setting
Sepherosa Ziehau [Mon, 8 Jun 2015 13:32:03 +0000 (21:32 +0800)]
x86_64: Fix gd_acpi_id setting

8 years agoRemove ext2mount.h via 'make upgrade'.
Sascha Wildner [Tue, 9 Jun 2015 04:17:24 +0000 (06:17 +0200)]
Remove ext2mount.h via 'make upgrade'.

8 years agobuild - Parallelize kernel module build
Matthew Dillon [Tue, 9 Jun 2015 00:19:18 +0000 (17:19 -0700)]
build - Parallelize kernel module build

* Parallelize the module build portion of a full buildkernel.

* Decreases full kernel build times significantly.  The build
  is up to 3 times faster now.

* On monster full kernel build time goes from 10:48 to 3:04.

8 years agoetc/remote: add ucom1 to ucom4
Markus Pfeiffer [Mon, 8 Jun 2015 19:42:51 +0000 (19:42 +0000)]
etc/remote: add ucom1 to ucom4

8 years agousb4bsd: Make the serial driver create all devices
Markus Pfeiffer [Mon, 8 Jun 2015 19:22:32 +0000 (19:22 +0000)]
usb4bsd: Make the serial driver create all devices

* This patch adds creation of ttyUx, ttyiUx, ttylUx, cuaUx, cuaiUx,
  and cualUx, where x is the unit number for usb serial devices.
* The actual functionality for .init and .lock is not completelyl
  implemented yet

8 years agokernel/radeon: Regen register check tables (only removes FreeBSD SVN ID).
Sascha Wildner [Mon, 8 Jun 2015 17:13:37 +0000 (19:13 +0200)]
kernel/radeon: Regen register check tables (only removes FreeBSD SVN ID).

8 years agoAdd some tools to update various DRM related files, firmwares, etc.
Sascha Wildner [Mon, 8 Jun 2015 17:10:39 +0000 (19:10 +0200)]
Add some tools to update various DRM related files, firmwares, etc.

Taken-from: FreeBSD

8 years agokernel/drm: Sync radeonkms' PCI ID list with Linux 3.11's.
Sascha Wildner [Mon, 8 Jun 2015 16:42:23 +0000 (18:42 +0200)]
kernel/drm: Sync radeonkms' PCI ID list with Linux 3.11's.

8 years agokernel/radeonfw: Update two firmwares.
Sascha Wildner [Mon, 8 Jun 2015 15:35:24 +0000 (17:35 +0200)]
kernel/radeonfw: Update two firmwares.

8 years agotail - Add -q option
Matthew Dillon [Sun, 7 Jun 2015 18:41:51 +0000 (11:41 -0700)]
tail - Add -q option

* Bring in the -q option from FreeBSD.  This option masks the printing
  of filename headers when tailing multiple files.

Taken-from: FreeBSD

8 years agosys/gnu/vfs/ext2fs: Fix indentation
Tomohiro Kusumi [Sun, 7 Jun 2015 14:21:11 +0000 (23:21 +0900)]
sys/gnu/vfs/ext2fs: Fix indentation

- (Note that dfly's ext2 seems to be broken currently)

8 years agosys/gnu/vfs/ext2fs: Fix comments
Tomohiro Kusumi [Sun, 7 Jun 2015 13:23:56 +0000 (22:23 +0900)]
sys/gnu/vfs/ext2fs: Fix comments

- Have a full Linux kernel path.

- (Note that dfly's ext2 seems to be broken currently)

8 years agosys/gnu/vfs/ext2fs: Rename struct ext2mount -> struct ext2_mount
Tomohiro Kusumi [Sun, 7 Jun 2015 12:30:48 +0000 (21:30 +0900)]
sys/gnu/vfs/ext2fs: Rename struct ext2mount -> struct ext2_mount

- Not sure why but this is the only struct without _ after ext2.

- This struct is _KERNEL struct.

- (Note that dfly's ext2 seems to be broken currently)

8 years agosys/gnu/vfs/ext2fs: Rename ext2mount.h -> ext2_mount.h
Tomohiro Kusumi [Sun, 7 Jun 2015 12:22:27 +0000 (21:22 +0900)]
sys/gnu/vfs/ext2fs: Rename ext2mount.h -> ext2_mount.h

- Not sure why but this is the only file without _ after ext2.

- Renaming should not affect external userspace programs since
  userspace should never need this header (only kernel stuff).

- (Note that dfly's ext2 seems to be broken currently)

8 years agolibc - Attribute setcontext() and getcontext()
Matthew Dillon [Sun, 7 Jun 2015 04:06:55 +0000 (21:06 -0700)]
libc - Attribute setcontext() and getcontext()

* Give getcontext() the __returns_twice attribute and
  give setcontext() the __dead2 attribute.

Suggested-by: swildner
8 years agocolldef/mklocale: Remove some workarounds from "locale megapatch" times.
Sascha Wildner [Sun, 7 Jun 2015 03:26:54 +0000 (05:26 +0200)]
colldef/mklocale: Remove some workarounds from "locale megapatch" times.

This basically made it impossible to extend <sys/cdefs.h> without having
to add more gunk to the Makefiles.

8 years agostdc - add __returns_twice
Matthew Dillon [Sun, 7 Jun 2015 02:54:42 +0000 (19:54 -0700)]
stdc - add __returns_twice

* Add __returns_twice attribute support.

* Use for longjmp() and vfork() plus any variants.

Taken-From: FreeBSD

8 years agosh - Sync to FreeBSD d038ee76 part 2/2 (f)
Matthew Dillon [Sun, 7 Jun 2015 02:53:48 +0000 (19:53 -0700)]
sh - Sync to FreeBSD d038ee76 part 2/2 (f)

* Fix bin/kill (shares code with /bin/sh).  Procedure renamed.

8 years agosh - Sync to FreeBSD d038ee76 part 2/2 (e)
Matthew Dillon [Sun, 7 Jun 2015 02:47:35 +0000 (19:47 -0700)]
sh - Sync to FreeBSD d038ee76 part 2/2 (e)

* Reapply d9b533666 - mdoc nits.

* Makefile adjustments for clean stderr

* Fix minor coding error in recent commit..

8 years agosh - Sync to FreeBSD d038ee76 part 2/2 (d)
Matthew Dillon [Sun, 7 Jun 2015 02:44:29 +0000 (19:44 -0700)]
sh - Sync to FreeBSD d038ee76 part 2/2 (d)

Reapply 330497ceac - fix O_CLOEXEC race in open() and fhopen()

* Fix an O_CLOEXEC race where a fork/exec can race an open(...O_CLOEXEC)
  and improperly inherit the descriptor.

8 years agosh - Sync to FreeBSD d038ee76 part 2/2 (c)
Matthew Dillon [Sun, 7 Jun 2015 02:25:53 +0000 (19:25 -0700)]
sh - Sync to FreeBSD d038ee76 part 2/2 (c)

* Renumber copyright lines after the advertising clause was taken out.

8 years agosh - Sync to FreeBSD d038ee76 part 2/2 (b)
Matthew Dillon [Sun, 7 Jun 2015 02:22:15 +0000 (19:22 -0700)]
sh - Sync to FreeBSD d038ee76 part 2/2 (b)

* Undo a portion of the error.h move to reduce edits to bin/kill/halt.c etc.

8 years agosh - Sync to FreeBSD d038ee76 part 2/2 (a)
Matthew Dillon [Sun, 7 Jun 2015 01:44:14 +0000 (18:44 -0700)]
sh - Sync to FreeBSD d038ee76 part 2/2 (a)

* Undo el_fn_sh_complete rename.

8 years agosh - Sync to FreeBSD d038ee76 part 1/2
Matthew Dillon [Sun, 7 Jun 2015 01:41:36 +0000 (18:41 -0700)]
sh - Sync to FreeBSD d038ee76 part 1/2

* Sync to FreeBSD d038ee76 25 Apr 2015.

8 years ago<sys/sysctl.h>: Include <sys/lock.h> only for the kernel (unbreaks world).
Sascha Wildner [Sun, 7 Jun 2015 02:16:12 +0000 (04:16 +0200)]
<sys/sysctl.h>: Include <sys/lock.h> only for the kernel (unbreaks world).

The problem was that when userland included <sys/sysctl.h> without
_KERNEL_STRUCTURES defined, it could later on no longer include
<sys/lock.h> _with_ _KERNEL_STRUCTURES defined (via <sys/kinfo.h>,
for example).

8 years agokernel/hpt27xx: Stop using __DATE__ and __TIME__.
Sascha Wildner [Sun, 7 Jun 2015 00:30:22 +0000 (02:30 +0200)]
kernel/hpt27xx: Stop using __DATE__ and __TIME__.

Better for binary diffs.

Taken-from: FreeBSD

8 years agosysctl - SMP performance work
Matthew Dillon [Sat, 6 Jun 2015 23:17:41 +0000 (16:17 -0700)]
sysctl - SMP performance work

Performance work on the sysctl API.  Most accesses (including nearly all
accesses made by libc) now use a shared lock, increasing concurrency in the
exec path.

* Acquire the sysctl global lock shared instead of exclusive for all normal
  accesses.  Use an exclusive lock for node and leaf creation or deletion.
  Ultimately we will move to a fine-grained model and remove the global lock.

* Give each oid its own lockmgr lock.  Automatically acquire this lock
  shared for read access and exclusive for write access.  This retains
  just enough serialization of modifying (individual) sysctls to make
  sense to programmers.

* Supply flag overrides to force shared or exclusive use.  Force a shared
  oid lock for name2oid(), allowing the sysctlbyname() path to nominally
  use a shared lock.

8 years agolibarchive - Ensure futimens() operation is consistent with utimes()
Matthew Dillon [Sat, 6 Jun 2015 18:20:21 +0000 (11:20 -0700)]
libarchive - Ensure futimens() operation is consistent with utimes()

* utimes() allows tv_sec to be -1 to indicate that the element should
  not be updated.

* Handle this case for when futimens() is used by setting tv_nsec to
  UTIME_OMIT.

* This way operation is consistent whether we use futimens() or use
  utimes().

8 years agosys/gnu/vfs/ext2fs: Remove|fix duplicated macro definitions
Tomohiro Kusumi [Sat, 6 Jun 2015 10:09:44 +0000 (19:09 +0900)]
sys/gnu/vfs/ext2fs: Remove|fix duplicated macro definitions

- Define MAXNAMLEN using EXT2_NAME_LEN since EXT2_NAME_LEN
  is the original ondisk definition.

- Bring back MAXSYMLINKLEN that was removed in a0403c0
  using EXT2_MAXSYMLINKLEN. It's probably better to keep both
  EXT2_MAXSYMLINKLEN and MAXSYMLINKLEN just like above MAXNAMLEN
  does considering it's been exposed to userspace and removing
  may break them (although there are probably none or very few).

- Remove duplicated MAXMNTLEN definition.

- (Note that dfly's ext2 seems to be broken currently)

8 years agosys/gnu/vfs/ext2fs: Add missing ifndef/define/endif
Tomohiro Kusumi [Sat, 6 Jun 2015 12:46:25 +0000 (21:46 +0900)]
sys/gnu/vfs/ext2fs: Add missing ifndef/define/endif

- ext2fs/fs.h needs ifndef/define/endif.

- The next commit ("Remove|fix duplicated macro definitions")
  results compile error without this.

- (Note that dfly's ext2 seems to be broken currently)

8 years agosys/gnu/vfs/ext2fs: Fix terminology of "cylinder group"
Tomohiro Kusumi [Sat, 6 Jun 2015 08:36:50 +0000 (17:36 +0900)]
sys/gnu/vfs/ext2fs: Fix terminology of "cylinder group"

- Change "cylinder group" to "block group".

- Both "block group" and "cylinder group" are used in dfly ext2.
  These refer to the same(similar) idea and ext2 uses "block group".
  Not having two expressions is grep-friendly.

- No binary difference as it only changes some comments.

- (Note that dfly's ext2 seems to be broken currently)

8 years agodrm/radeon: Sync gpu driver code with Linux 3.11
zrj [Wed, 3 Jun 2015 12:01:30 +0000 (15:01 +0300)]
drm/radeon: Sync gpu driver code with Linux 3.11

Little to none functional change.

Use kzalloc()/kfree()/kcalloc() wrappers.
Also use mb() and rmb().

Use linux compat macros:
  udelay, mdelay
  wake_up
  printk
  ARRAY_SIZE
  ALIGN, round_up
  BUG, BUG_ON, BUILD_BUG_ON, WARN

While there, reduce whitespace diffs with Linux 3.11

8 years agodrm/radeon: Move some prototype declarations
zrj [Wed, 3 Jun 2015 11:48:49 +0000 (14:48 +0300)]
drm/radeon: Move some prototype declarations

While there fix a typo in r600_cp.c

8 years agodrm/radeon: Use release_firmware()/request_firmware()
zrj [Wed, 3 Jun 2015 11:45:46 +0000 (14:45 +0300)]
drm/radeon: Use release_firmware()/request_firmware()

8 years agosys/gnu/vfs/ext2fs: Remove|avoid duplicated macro definitions
Tomohiro Kusumi [Sat, 6 Jun 2015 02:33:17 +0000 (11:33 +0900)]
sys/gnu/vfs/ext2fs: Remove|avoid duplicated macro definitions

- There are EXT2_ROOTINO and EXT2_ROOT_INO, but using EXT2_ROOTINO
  is probably appropriate on dfly (and it does use EXT2_ROOTINO)
  considering it's been used by userspace, and other fs have it in
  NAME_ROOTINO format.

- WINO is from UFS, but ext2 has it for bad inode for ondisk inode.

- NDADDR and NIADDR (# of slots for direct/indirect block) should be
  defined using existing ext2 ondisk definitions.
  (or maybe don't even use NDADDR and NIADDR, but these two should be
  kept as dfly ext2 code is UFS based and UFS heavily uses these two)

- Remove MAXSYMLINKLEN since there is EXT2_MAXSYMLINKLEN and only
  EXT2_MAXSYMLINKLEN is being used. It also conflicts with UFS version
  of MAXSYMLINKLEN in vfs/ufs/dinode.h.

- (Note that dfly's ext2 seems to be broken currently)

8 years agomake.conf: Remove a no longer used variable.
Sascha Wildner [Fri, 5 Jun 2015 22:49:48 +0000 (00:49 +0200)]
make.conf: Remove a no longer used variable.

8 years agokernel/syscons: Hack around some issues between console cut/paste and Xorg.
Sascha Wildner [Fri, 5 Jun 2015 21:25:51 +0000 (23:25 +0200)]
kernel/syscons: Hack around some issues between console cut/paste and Xorg.

It led to repeating characters (as if typed) when cutting/pasting
in Xorg.

Reported-by: profmakx, jh32, ryuo, and others
Submitted-by: dillon
8 years agodrm: hack together an implementation of fb_get_options
Imre Vadász [Tue, 2 Jun 2015 21:14:52 +0000 (23:14 +0200)]
drm: hack together an implementation of fb_get_options

This can be used to set the video mode used for the syscons fb console,
a la "video=..." in linux.

8 years agokernel/syscons: First hacky steps to make syscons work with {i915,radeon}kms.
Sascha Wildner [Wed, 3 Jun 2015 18:01:46 +0000 (20:01 +0200)]
kernel/syscons: First hacky steps to make syscons work with {i915,radeon}kms.

This is a joint effort of Imre Vadasz (all the drm/i915/radeon related
bits) and me (syscons rendering related bits, mainly).

To enable the support, the "kern.kms_console" tunable needs to be set
via loader.conf.

In-collaboration-with: ivadasz

8 years agoFix kernel options in files for i915/radeon (kmsdrm -> kms).
Sascha Wildner [Tue, 2 Jun 2015 17:09:15 +0000 (19:09 +0200)]
Fix kernel options in files for i915/radeon (kmsdrm -> kms).

8 years agoUpdate files for recent drm/i915/radeon changes.
Sascha Wildner [Tue, 2 Jun 2015 16:59:17 +0000 (18:59 +0200)]
Update files for recent drm/i915/radeon changes.

8 years agosensors: By default, stick sensor tasks to the first cpu package
Sepherosa Ziehau [Fri, 5 Jun 2015 13:04:54 +0000 (21:04 +0800)]
sensors: By default, stick sensor tasks to the first cpu package

8 years agoecc/e5: Register sensor tasks to the proper cpu package
Sepherosa Ziehau [Fri, 5 Jun 2015 13:04:01 +0000 (21:04 +0800)]
ecc/e5: Register sensor tasks to the proper cpu package

8 years agomemtemp/e5: Register sensor tasks to the proper cpu package
Sepherosa Ziehau [Fri, 5 Jun 2015 13:03:24 +0000 (21:03 +0800)]
memtemp/e5: Register sensor tasks to the proper cpu package

8 years agocpu_topo: Add get_cpu_node_by_chipid()
Sepherosa Ziehau [Fri, 5 Jun 2015 13:02:20 +0000 (21:02 +0800)]
cpu_topo: Add get_cpu_node_by_chipid()

This function retrieve cpu_node according to the chip ID passed.

8 years agosys/gnu/vfs/ext2fs: Cleanup __KERNEL__ related macros
Tomohiro Kusumi [Sat, 30 May 2015 10:19:35 +0000 (19:19 +0900)]
sys/gnu/vfs/ext2fs: Cleanup __KERNEL__ related macros

- Add comments on EXT2_XXX(s) macros. These macros on dfly ext2 happen
  to be tricky and confusing as their arg types are not consistent.
  These macros are taken from e2fsprogs header (rather than macros of
  the same name in Linux kernel header) and made to work as a part of
  kernel filesystem code.

- Remove unused __KERNEL__ version of EXT2_XXX(s) macros. These are not
  compiled on dfly (and most of them result compile error if enabled on
  dfly ext2) since __KERNEL__ is designed to be Linux kernel specific
  code while dfly ext2 is made to work with userspace version of macros
  taken from e2fsprogs as mentioned above. Moreover, some of these
  __KERNEL__ version of macros are already deprecated on Linux kernel
  and have been removed from the e2fsprogs header accordingly, so there
  is no reason to keep it here as well.

- Compiling e2fsprogs does not require ext2_fs.h installed under
  /usr/include/... as it has its own copy of the ext2_fs.h in its source
  code that the dfly ext2 originally referred to.

- This commit makes no binary difference. Also this commit does not
  affect external userspace programs.

- (Note that dfly's ext2 seems to be broken currently)

8 years agosys/gnu/vfs/ext2fs: Cleanups
Tomohiro Kusumi [Sat, 30 May 2015 08:18:16 +0000 (17:18 +0900)]
sys/gnu/vfs/ext2fs: Cleanups

- Align with other #define by removing a space between # and define.

- (Note that dfly's ext2 seems to be broken currently)

8 years agosys/gnu/vfs/ext2fs: Sync with Linux kernel's ext2 definitions
Tomohiro Kusumi [Sat, 30 May 2015 02:39:14 +0000 (11:39 +0900)]
sys/gnu/vfs/ext2fs: Sync with Linux kernel's ext2 definitions

- Some of these macros could be used in the existing dfly ext2 code.

- This commit makes no binary difference.

- (Note that dfly's ext2 seems to be broken currently)

8 years agokernel - Fix altq fairq panic
Matthew Dillon [Thu, 4 Jun 2015 18:04:37 +0000 (11:04 -0700)]
kernel - Fix altq fairq panic

* Fix an altq fairq panic when RED and/or RIO is enabled.  A packet drop
  can cause a sequence of events which leads to a NULL pointer dereference
  in the fairq round robin code.

Reported-by: Joris Giovannangeli
8 years agosensors: Accept -1 as sensor thread cpuid
Sepherosa Ziehau [Thu, 4 Jun 2015 12:31:02 +0000 (20:31 +0800)]
sensors: Accept -1 as sensor thread cpuid

The task will be register to the default sensor thread.

8 years agocoretemp: Utilize per-cpu sensor threads
Sepherosa Ziehau [Thu, 4 Jun 2015 11:00:53 +0000 (19:00 +0800)]
coretemp: Utilize per-cpu sensor threads

This greatly simplifies the code.

8 years agosensors: Create per-cpu sensor task threads
Sepherosa Ziehau [Thu, 4 Jun 2015 11:00:08 +0000 (19:00 +0800)]
sensors: Create per-cpu sensor task threads

So that accessing to sensor device could be properly cpu localized,
e.g. accessing coretemp(4) could be localized to a proper cpu core,
and accessing ecc(4) could be localized to a proper cpu package.

8 years agocputimer/tsc: Prevent rdtsc reordering
Sepherosa Ziehau [Mon, 1 Jun 2015 14:19:07 +0000 (22:19 +0800)]
cputimer/tsc: Prevent rdtsc reordering

Use lfence on Intel and mfence on AMD to make sure that all instructions
before rdtsc are completed.  This should prevent time warps, if TSC is
selected as cputimer.

8 years agotsc: Factor out rdtsc_ordered()
Sepherosa Ziehau [Mon, 1 Jun 2015 13:41:44 +0000 (21:41 +0800)]
tsc: Factor out rdtsc_ordered()

Use lfence on Intel and mfence on AMD to make sure that all instructions
before rdtsc are completed.

While I'm here
- Remove redundant functions declaration in lwkt_thread.c to unbreak
  compile.
- Add cpu_vendor_id for vkernel64; extra work is needed to set it to a
  proper value.

8 years agorc.conf.5: Fix description of sysvipcd_enable.
Sascha Wildner [Wed, 3 Jun 2015 07:24:48 +0000 (09:24 +0200)]
rc.conf.5: Fix description of sysvipcd_enable.

Reported-by: James Buren <ryu0@ymail.com>
8 years agodrm - Fix deadlock
Matthew Dillon [Tue, 2 Jun 2015 06:37:04 +0000 (23:37 -0700)]
drm - Fix deadlock

* mutex_trylock()'s return value was inverted, resulting in a hanging
  lock.  Adjust the macro.

* This should fix multiple reports of deadlocks in i915 (intel).

Reported-by: ftigeot
8 years agokernel - Fix VM deadlock in optimized file read path
Charlie Root [Tue, 2 Jun 2015 01:17:30 +0000 (18:17 -0700)]
kernel - Fix VM deadlock in optimized file read path

* The optimized file read path can deadlock if the uiocopy or copyout
  operation requires a non-trivial VM fault.  Most cases were handled,
  but a MAP_ENTRY_NEEDS_COPY->vm_map_entry_shadow() path was not being
  handled.

* Disallow the optimized path for the COW case.

Reported-by: Sevan Janiyan
8 years agodrm: Partially sync drm_ioctl() with Linux 3.14
François Tigeot [Sun, 31 May 2015 17:02:10 +0000 (19:02 +0200)]
drm: Partially sync drm_ioctl() with Linux 3.14

It now uses the drm_global_mutex lockmgr lock

8 years agodrm: Synchronize ioctl definitions with Linux 3.14
François Tigeot [Sun, 31 May 2015 16:28:29 +0000 (18:28 +0200)]
drm: Synchronize ioctl definitions with Linux 3.14

Many IOCTLs don't require the acquisition of a lock anymore.