dragonfly.git
2 hours agodevfsctl(8): syntax_error() never returns, so change it to 'void'. master
Sascha Wildner [Sat, 16 Dec 2017 21:53:56 +0000 (22:53 +0100)]
devfsctl(8): syntax_error() never returns, so change it to 'void'.

While here, fix indent a bit and add a copyright to devfsctl.h.

18 hours agoigb: Sync with Intel's igb 2.5.3
Sepherosa Ziehau [Sat, 2 Dec 2017 17:43:05 +0000 (01:43 +0800)]
igb: Sync with Intel's igb 2.5.3

- Enable RX packets dropping, if flow control is disabled.
- Clear bad data at chip initialization time.

Tested-by: Tim Darby <t timdarby net> (i211)
   Thomas Nikolajsen <thomas nikolajsen mail dk> (i210)

13 hours agoRemove /boot/efiboot.img via 'make upgrade'.
Sascha Wildner [Sat, 16 Dec 2017 10:39:05 +0000 (11:39 +0100)]
Remove /boot/efiboot.img via 'make upgrade'.

This is needed in our ISOs only to allow booting in EFI mode from
CD-ROM. In the installed system it is not needed anymore, so it
can be removed.

44 hours agobsd-family-tree: add NetBSD 7.0.2; Add recent DragonFly
Eitan Adler [Fri, 15 Dec 2017 03:38:21 +0000 (19:38 -0800)]
bsd-family-tree: add NetBSD 7.0.2; Add recent DragonFly

Also changes exact location of NetBSD 7.0.1
Gives some breathing room for adding new releases

Obtained-from: NetBSD (partially)

3 days agoSync our gcc5 manual pages with gcc-5.4.0
Sascha Wildner [Wed, 13 Dec 2017 14:08:59 +0000 (15:08 +0100)]
Sync our gcc5 manual pages with gcc-5.4.0

3 days agoRemove <sys/ioccom.h> inclusion from a number of files.
Sascha Wildner [Wed, 13 Dec 2017 12:27:41 +0000 (13:27 +0100)]
Remove <sys/ioccom.h> inclusion from a number of files.

<sys/ioccom.h> should only be included from header files that define
ioctls.

4 days agotmpfs - Fix arbitrary maximum file size limitation
Matthew Dillon [Tue, 12 Dec 2017 22:45:04 +0000 (14:45 -0800)]
tmpfs - Fix arbitrary maximum file size limitation

* tmpfs's maxfilesize was limited to the original tmpfs mount
  storage limit, prior to argument overrides.  In addition,
  the -f argument override would not increase the maxfilesize
  limit beyond the original storage limit anyway.

* Remove this limit calculation entirely.  Instead the limit
  is based on the storage limit which can be optioned at mount
  time.

* Fixes expectations when tmpfs is used to hold just a few (or
  even just one) file.

Reported-by: kerma
4 days agoboot/efi: Sync IndustryStandard/Bluetooth.h with UDK2017 branch of EDK II.
Sascha Wildner [Tue, 12 Dec 2017 14:03:19 +0000 (15:03 +0100)]
boot/efi: Sync IndustryStandard/Bluetooth.h with UDK2017 branch of EDK II.

4 days agoboot/efi: Bring in two more TianoCore EDK II headers.
Sascha Wildner [Tue, 12 Dec 2017 08:59:07 +0000 (09:59 +0100)]
boot/efi: Bring in two more TianoCore EDK II headers.

Taken from the MdePkg of the UDK2017 branch of the
git://github.com/tianocore/edk2 repository.
All I modified was killing CRs using 'tr -d "\015"'.

This is a work in progress.

4 days agoboot/efi: Remove an unused header.
Sascha Wildner [Tue, 12 Dec 2017 08:55:37 +0000 (09:55 +0100)]
boot/efi: Remove an unused header.

If we ever need it we'd take it from TianoCore EDK II, i.e.
MdePkg/Include/IndustryStandard/Mbr.h.

6 days agokernel - Revert part of the contig allocation work
Matthew Dillon [Sun, 10 Dec 2017 22:09:03 +0000 (14:09 -0800)]
kernel - Revert part of the contig allocation work

* Revert part of the contig allocation work.  Always use the alist
  allocation from the DMA reserve first, and revert to scanning the
  VM page list only if it fails.

* Fixes performance problems with X.

* What this means, generally, is that we will probably need to rely
  directly on the dma reserve for most of our DMA allocation and
  freeing just to ensure reasonable performance.  Scanning page
  lists is a big lose.

Reported-by: mneumann
6 days agolibc: Forgotten adjustment in Versions.def
Sascha Wildner [Sun, 10 Dec 2017 15:56:53 +0000 (16:56 +0100)]
libc: Forgotten adjustment in Versions.def

Reported-by: Aaron LI <aly@aaronly.me>
6 days agoMakefile_upgrade.inc: Add adding_user.8 to the end of the list.
Sascha Wildner [Sun, 10 Dec 2017 07:15:19 +0000 (08:15 +0100)]
Makefile_upgrade.inc: Add adding_user.8 to the end of the list.

6 days agolibc/termios: Add cfmakesane().
Sascha Wildner [Sun, 10 Dec 2017 07:08:27 +0000 (08:08 +0100)]
libc/termios: Add cfmakesane().

This makes net/bsdrcmds build, in preparation for removing rcp, rlogin,
rlogind, rsh and rshd from base.

Taken-from: FreeBSD

6 days agoUpdate bsd-family-tree
Eitan Adler [Sun, 10 Dec 2017 06:42:19 +0000 (22:42 -0800)]
Update bsd-family-tree

6 days agoRemove 'adding_user.8'
Eitan Adler [Sun, 10 Dec 2017 05:56:27 +0000 (21:56 -0800)]
Remove 'adding_user.8'

Not to be confused with adduser.
Not to be confused with useful information.

6 days agoflowers: correct spelling of lily, Camellia
Eitan Adler [Sun, 10 Dec 2017 05:09:54 +0000 (21:09 -0800)]
flowers: correct spelling of lily, Camellia

6 days agoscsi_modes - bring up to date
Eitan Adler [Sun, 10 Dec 2017 05:06:41 +0000 (21:06 -0800)]
scsi_modes - bring up to date

Obtained-from:   FreeBSD

6 days agoascii: Use standard name for ASCII control codes
Eitan Adler [Sun, 10 Dec 2017 05:02:44 +0000 (21:02 -0800)]
ascii: Use standard name for ASCII control codes

Obtained-from: FreeBSD r293281

7 days agorlogind(8): Staticize and remove unused declarations.
Sascha Wildner [Sat, 9 Dec 2017 19:16:32 +0000 (20:16 +0100)]
rlogind(8): Staticize and remove unused declarations.

7 days agoAdd test to dports-download-check target
Pierre-Alain TORET [Wed, 29 Nov 2017 09:37:03 +0000 (10:37 +0100)]
Add test to dports-download-check target

Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>
Dragonfly-bug: <https://bugs.dragonflybsd.org/issues/3053>

7 days agoAdd __attribute__((__noreturn__)) to various function prototypes in bin/.
Sascha Wildner [Sat, 9 Dec 2017 08:09:51 +0000 (09:09 +0100)]
Add __attribute__((__noreturn__)) to various function prototypes in bin/.

This general cleanup is useful in various ways. It helps the compiler
optimize better and it also helps later GCCs detect better when to give
-Wimplicit-fallthrough warnings and when not.

Found-with: -Wsuggest-attribute=noreturn

7 days agorcp(1): Staticize.
Sascha Wildner [Sat, 9 Dec 2017 07:57:02 +0000 (08:57 +0100)]
rcp(1): Staticize.

7 days agopwd(1): Staticize, remove void cast.
Sascha Wildner [Sat, 9 Dec 2017 07:47:50 +0000 (08:47 +0100)]
pwd(1): Staticize, remove void cast.

8 days agoAdd dports-download-check target
Pierre-Alain TORET [Wed, 29 Nov 2017 09:16:42 +0000 (10:16 +0100)]
Add dports-download-check target

Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>
Dragonfly-bug: <https://bugs.dragonflybsd.org/issues/3053>

8 days agodrm/radeon: Prevent a crash on load with newer drm code
François Tigeot [Fri, 8 Dec 2017 21:57:34 +0000 (22:57 +0100)]
drm/radeon: Prevent a crash on load with newer drm code

* The existing drm/radeon code base contained an invalid unlock/lock
  sequence in radeon_irq_kms_init() which caused the kernel to crash
  during driver initialization with the drm code base from Linux 4.8

* Fixed by replacing the problematic function with its version from
  Linux 4.8

8 days agokernel/evdev: Fix Makefile permission.
Sascha Wildner [Fri, 8 Dec 2017 14:45:08 +0000 (15:45 +0100)]
kernel/evdev: Fix Makefile permission.

8 days agokernel - Add evdev support to kbdmux, ukbd and ums
Peeter Must [Fri, 8 Dec 2017 12:17:22 +0000 (14:17 +0200)]
kernel - Add evdev support to kbdmux, ukbd and ums

* Allows kbdmux, ukbd and ums to send input events to evdev if kernel
  is built with evdev support.

* The sysctl kern.evdev.rcpt_mask determines which drivers are allowed
  to send events to evdev. Its default value is 3, meaning that kbdmux
  and sysmouse are enabled. Since the latter is not yet supported, one
  might want to change the value to 6 (kbdmux and ums) until sysmouse
  will be added.

Obtained-from: FreeBSD

8 days agokernel - Bring in evdev from FreeBSD
Peeter Must [Fri, 8 Dec 2017 10:43:27 +0000 (12:43 +0200)]
kernel - Bring in evdev from FreeBSD

* This is a port of evdev, the generic input event interface, from
  FreeBSD. Wikipedia: "Evdev generalizes raw input events from device
  drivers and makes them available through character devices in the
  /dev/input/ directory."

* It is currently considered experimental since in rare cases it may cause
  kernel crash when a device, e.g. usb mouse or keyboard, is detached
  while a userland program reading from the corresponding input/eventX
  device.

* In order to enable evdev, kernel needs to be rebuilt with 'device evdev'
  and 'options EVDEV_SUPPORT'. For debugging, add 'options EVDEV_DEBUG'.

* At present, only ums, kbd and kbdmux can send events to their respective
  input/eventX devices. More drivers will be added in due course. The sysctl
  kern.evdev.rcpt_mask determines which drivers send events to evdev.

8 days agokernel - Fix crash when cdev is destroyed
Peeter Must [Fri, 8 Dec 2017 09:53:22 +0000 (11:53 +0200)]
kernel - Fix crash when cdev is destroyed

* If a device is destroyed while a userland program is blocked
  in a read() or device ioctl, the underlying node will be deleted.
  Returning EIO will prevent kernel from crashing.

* This is a temporary hack until a better solution is found.

8 days agotmpfs - Correct some timestamp update issues
Matthew Dillon [Fri, 8 Dec 2017 02:20:49 +0000 (18:20 -0800)]
tmpfs - Correct some timestamp update issues

* write() was updating ACCESSED and MODIFIED when it should only
  be updating MODIFIED.

* unlink() (aka rm) was updating CHANGE, ACCESSED, and MODIFIED
  which would be visible if a file has multiple links.  It should
  only update the CHANGE time.

* rmdir() was doing the same thing as UNLINKED.  Fixed this too,
  but the bug would not be readily visible anyway since directories
  cannot be hardlinked.  However, fstat() on an open descriptor
  would still reveal it.

9 days agoddb.4: Document i command addition.
zrj [Thu, 7 Dec 2017 09:06:17 +0000 (11:06 +0200)]
ddb.4: Document i command addition.

While there, document call and reset commands too.

9 days agokernel - Improve contiguous DMA memory allocation
Matthew Dillon [Thu, 7 Dec 2017 03:09:20 +0000 (19:09 -0800)]
kernel - Improve contiguous DMA memory allocation

* vm_page_alloc_contig() will use vm_page_alloc() for degenerate
  requests instead of the free page reserve.  This case often
  occurs when called from kmem_alloc_attr().

* vm_contig_pg_alloc() will scan the VM page queues first for
  unrestricted memory requests, falling back to vm_page_alloc_contig()
  if this fails.

  vm_contig_pg_alloc() will call vm_page_alloc_contig() first if the
  memory request has an address range restriction, falling back to
  a VM page queue scan if it fails.

* This should hopefully reduce instances where device drivers probed
  prior to e.g. NATA eat up all available low-memory DMA space,
  leaving none for NATA (or other drivers) that might need low-memory
  DMA space.

10 days agokernel - Fix ranging test in memory probe, adjust memory test (2)
Matthew Dillon [Wed, 6 Dec 2017 18:51:28 +0000 (10:51 -0800)]
kernel - Fix ranging test in memory probe, adjust memory test (2)

* Correct bug in ranging test commit.

10 days agokernel - Fix vmstats.v_dma_pages
Matthew Dillon [Wed, 6 Dec 2017 08:23:16 +0000 (00:23 -0800)]
kernel - Fix vmstats.v_dma_pages

* Fix an atomic adjustment on v_dma_pages that we believe was
  messing it up, due to not sign-extended a negation of an unsigned
  field.

Reported-by: swildner
10 days agokernel - Fix hw.usermem, hw.physmem, hw.availpages
Matthew Dillon [Wed, 6 Dec 2017 07:00:22 +0000 (23:00 -0800)]
kernel - Fix hw.usermem, hw.physmem, hw.availpages

* Fix the hw.usermem, hw.physmem, and hw.availpages sysctls.
  Some of these were improperly 32-bit sysctls when they need
  to be 64-bits, causing silly values to be returned on
  machines with more than 2G of ram.

Reported-by: zrj
10 days agokernel - Adjust vfs.nbuf, kern.maxvnodes, and debug.max_softdeps counts
Matthew Dillon [Wed, 6 Dec 2017 04:11:51 +0000 (20:11 -0800)]
kernel - Adjust vfs.nbuf, kern.maxvnodes, and debug.max_softdeps counts

* Cap some system limits on machines with tons of memory.

* vfs.nbuf is capped at roughly 350,000 buffer cache buffers.  This
  also caps buffer cache data to approximately 11G.

  The reason for this is to avoid wiring too much physical memory in
  the default configuration since programs might want to use the
  memory fo r other purposes.  Buffer cache buffers provide very fast
  access when reading data from cached vnodes, but the new KVABIO ABI
  will soon allow us to acquire and dispose of such buffers more
  efficiently, increasing the efficiency of accessing data cached via
  the block device and making long-term caching via vnode-backed
  buffers somewhat less important.

* kern.maxvnodes is capped at approximately 3 million vnodes.  This
  can be set higher at run-time via a sysctl, if desired.

  NOTE: Our go-to filesystems are designed to or can be set to cache
file data via the block device instead of the vnode, which is
preferable on systems with lots of memory.  vnode caching is
still important, but a bit less so now than in prior years.

* debug.max_softdeps is capped at 1000000, because even a million
  is an obscenely high value for softdep structures.

10 days agokernel - Fix ranging test in memory probe, adjust memory test
Matthew Dillon [Wed, 6 Dec 2017 02:17:53 +0000 (18:17 -0800)]
kernel - Fix ranging test in memory probe, adjust memory test

* Fix a ranging test in the memory probe code.  The 'incr' value can
  potentially skip over blacked-out areas of memory and thus accidently
  include them in the range.

* We no longer exhaustively test memory.  Instead, just test the first
  and last page for each range.

11 days agokernel - add 'i' command to ddb
Matthew Dillon [Tue, 5 Dec 2017 23:29:00 +0000 (15:29 -0800)]
kernel - add 'i' command to ddb

* Add the 'i' command, which just issues a cpu_invltlb() on the
  current cpu.  Useful when testing MMU/PMAP issues.

11 days agoefisetup - Correct bugs
Matthew Dillon [Tue, 5 Dec 2017 22:40:22 +0000 (14:40 -0800)]
efisetup - Correct bugs

* nvme0 was hardwired in one place, use ${drive}.  This fixes
  issues with efisetup not working on e.g. drives other than nvme0.

* Use -f in the newfs_hammer to avoid complaints about small
  partition sizes.

11 days agodrm/linux: Improve linux/pci.h
François Tigeot [Tue, 5 Dec 2017 20:52:31 +0000 (21:52 +0100)]
drm/linux: Improve linux/pci.h

* Add pci_get_drvdata and pci_set_drvdata()

* Add pci_register_driver()

11 days agofdc(4): Check return error from isa_dma_init().
zrj [Tue, 5 Dec 2017 10:49:16 +0000 (12:49 +0200)]
fdc(4): Check return error from isa_dma_init().

Must have been a bad sector in
0bc821c68ba308f17d4f0a7bfd300c432d575a09

Reported-by: dcb <https://bugs.dragonflybsd.org/issues/3108>
11 days agokernel/ipfw3: Minimal K&R cleanup.
Sascha Wildner [Tue, 5 Dec 2017 09:46:57 +0000 (10:46 +0100)]
kernel/ipfw3: Minimal K&R cleanup.

11 days agolibcipher: Minimal K&R cleanup.
Sascha Wildner [Tue, 5 Dec 2017 09:45:11 +0000 (10:45 +0100)]
libcipher: Minimal K&R cleanup.

11 days agolibcrypt: K&R cleanup.
Sascha Wildner [Tue, 5 Dec 2017 09:43:43 +0000 (10:43 +0100)]
libcrypt: K&R cleanup.

11 days agolibcrypt: Remove some __STDC__ checks.
Sascha Wildner [Tue, 5 Dec 2017 09:43:16 +0000 (10:43 +0100)]
libcrypt: Remove some __STDC__ checks.

11 days agortld - Fix ifunc relocations
Matthew Dillon [Tue, 5 Dec 2017 08:14:20 +0000 (00:14 -0800)]
rtld - Fix ifunc relocations

* ifunc relocations had a bug that caused an immediate seg-fault.
  Apparently this type of relocation is not used very much, we've
  never encountered it before.  But the qemu port uses it.

* Fix the bug.  Basically missing lockstate and the top level in
  rtld was expected to hold the bind lock.

11 days agoRemove some orphaned externs.
Sascha Wildner [Tue, 5 Dec 2017 08:05:52 +0000 (09:05 +0100)]
Remove some orphaned externs.

12 days agokernel - Correct vm_map_entry_reserve() call depth issue w/vkernel
Matthew Dillon [Mon, 4 Dec 2017 23:43:13 +0000 (15:43 -0800)]
kernel - Correct vm_map_entry_reserve() call depth issue w/vkernel

* vm_map was making vaddr tests against VM_MAX_USER_ADDRESS to
  determine when to call vm_map_entry_reserve().  This test works
  fine on real hardware but will not work properly for a vkernel.

* Instead, just use td_nest_count to prevent excessive recursion,
  or test against &kernel_map when necessary.

* Fixes SIGILL in vkernel due to stack overflow.

Reported-by: tuxillo
12 days agolibc - Adjust comment
Matthew Dillon [Mon, 4 Dec 2017 20:26:47 +0000 (12:26 -0800)]
libc - Adjust comment

* Adjust comment for dmalloc.c

12 days agodebug - Adjust kmapinfo
Matthew Dillon [Mon, 4 Dec 2017 20:25:27 +0000 (12:25 -0800)]
debug - Adjust kmapinfo

* Use formatnum() for kmapinfo's segment size output when
  printing EMPTY segments.  This makes the output more readable.

12 days agokernel - Expand physical memory support to 64TB
Matthew Dillon [Mon, 4 Dec 2017 07:50:07 +0000 (23:50 -0800)]
kernel - Expand physical memory support to 64TB

* Make NKPML4E truly programmable and change the default from 1
  PDP page to 16 PDP pages.  This increases KVM from 512G to
  8TB, which should be enough to accomodate a maximal 64TB
  configuration.

  Note that e.g. 64TB of physical ram certainly requires more
  than one kernel PDP page, since the vm_page_array alone
  would require around 2TB, never mind everything else!

  PDP entries in the PML4E (512 total @ 512GB per entry):
256 User space
112 (unused, avail for NKPML4E)
128 DMAP (64TB max physical memory)
 16 KVM NKPML4E default (8TB) (recommend 64 max)

* Increase the DMAP from 64 PDP pages to 128 PDP pages, allowing
  support for up to 64TB of physical memory.

* Changes the meaning of KPML4I from being 'the index of the only
  PDP page in the PML4e' to 'the index of the first PDP page in
  the PML4e'.  There are NKPML4E PDP pages starting at index KPML4I.

* NKPDPE can now exceed 512.  This is calculated to be the maximmum
  number of PD pages needed for KVM, which is now (NKPML4E*NPDPEPG-1).

  We now pre-allocate and populate only enough PD pages to accomodate
  the page tables we are pre-installing.  Those, in turn, are calculated
  to be sufficient for bootstrapping mainly vm_page_array and a large
  initial set of pv_entry structures.

* Remove nkpt, it was not being used any more.

12 days agokernel - Remove DISABLE_PSE option and related code
Matthew Dillon [Mon, 4 Dec 2017 03:06:03 +0000 (19:06 -0800)]
kernel - Remove DISABLE_PSE option and related code

* Remove the DISABLE_PSE option and related code.  Note that the pmap
  code was already forcing DISABLE_PSE since we are 64-bit only and
  the pmap code never supported PSE anyway.

12 days agovmstat(8): Change few printf formats for -s.
zrj [Mon, 4 Dec 2017 10:02:16 +0000 (12:02 +0200)]
vmstat(8): Change few printf formats for -s.

Catch up with b7ea2f3f550021bfaabd8ed8d50b54c157fb55bf

12 days agoFix mdoc issues in various manual pages.
Sascha Wildner [Mon, 4 Dec 2017 08:25:32 +0000 (09:25 +0100)]
Fix mdoc issues in various manual pages.

12 days agokernel - Expand page count fields to 64 bits
Matthew Dillon [Mon, 4 Dec 2017 01:14:15 +0000 (17:14 -0800)]
kernel - Expand page count fields to 64 bits

* 32 bit page count fields limit us to 8TB of ram.  Expand to allow
  up to the DMAP limit (32TB).  Do an initial pass on various page
  count fields and change them from int's to long's or vm_pindex_t's.

* Fix a 32-bit overflow in the pv_entry initialization code.

  pv_entry_max = shpgperproc * maxproc + vm_page_array_size;
  2000 * 1046516 + pages_of_phys_memory;

  maxproc is 1046516 @ 512GB.  This calculation overflows its 32
  bit signed variable somewhere between 256G and 512G of ram.  This
  can lead to a zinitna() allocation in pvzone that is much too
  large.

Reported-by: zrj
12 days agotest/vkernel - Add hammer2 support
Antonio Huete Jimenez [Mon, 4 Dec 2017 00:55:05 +0000 (16:55 -0800)]
test/vkernel - Add hammer2 support

- Fix fstab and loader.conf settings.

13 days agodrm/linux: Implement sort()
François Tigeot [Sun, 3 Dec 2017 10:31:41 +0000 (11:31 +0100)]
drm/linux: Implement sort()

13 days agodrm/linux: Fix linux/dma-mapping.h compilation...
François Tigeot [Sun, 3 Dec 2017 09:32:58 +0000 (10:32 +0100)]
drm/linux: Fix linux/dma-mapping.h compilation...

... with the drm/i915 codebase from Linux 4.8

* Move functions from .h to .c files in order to hide their implementations

* This avoids leaking DragonFly headers to Linux code or Linux headers
  to DragonFly code with associated bad side-effects like type redefinitions

13 days agodrm/linux: Add i2c_get_adapdata and i2c_set_adapdata()
François Tigeot [Sun, 3 Dec 2017 07:15:04 +0000 (08:15 +0100)]
drm/linux: Add i2c_get_adapdata and i2c_set_adapdata()

13 days agodrm/linux: Add system_unbound_wq
François Tigeot [Sun, 3 Dec 2017 06:37:04 +0000 (07:37 +0100)]
drm/linux: Add system_unbound_wq

2 weeks agosyscons: Unbreak compile w/o splash
Sepherosa Ziehau [Sat, 2 Dec 2017 17:13:43 +0000 (01:13 +0800)]
syscons: Unbreak compile w/o splash

2 weeks agohammer2 - Fix indefinite dirty chains due to rename
Matthew Dillon [Sat, 2 Dec 2017 19:06:30 +0000 (11:06 -0800)]
hammer2 - Fix indefinite dirty chains due to rename

* Do not call cache_setunresolved() on tnch before calling
  cache_rename().  Doing so prevents cache_rename() from properly
  setting VREF_FINALIZE on the vnode.  Since the deleted inode is
  no longer in the chain hierarchy the related chains can remain
  dirty indefinitely (until the vnode is reused or the filesystem
  is unmounted).

* This fixes inmem dirty chain accounting and 'chnmem' stalls.

2 weeks agohammer2 - optimize hammer2_pfs_memory_wakeup()
Matthew Dillon [Sat, 2 Dec 2017 19:05:58 +0000 (11:05 -0800)]
hammer2 - optimize hammer2_pfs_memory_wakeup()

* Optimize hammer2_pfs_memory_wakeup() to use fetchadd instead of
  cmpset, reducing contention.

2 weeks agohammer2 - Fix rename race
Matthew Dillon [Sat, 2 Dec 2017 09:02:59 +0000 (01:02 -0800)]
hammer2 - Fix rename race

* Fix a rename race in hammer2 which can result in unwanted namecache
  overloading.  When this occurs, a rename operation can wind up
  deleting the same inode more than once.

* This fixes a "hammer2_chain_getparent: no parent" panic in H2.

Reported-by: kerma
2 weeks agotop(1): Avoid segfaults on systems with more cores.
zrj [Sat, 2 Dec 2017 17:44:42 +0000 (19:44 +0200)]
top(1): Avoid segfaults on systems with more cores.

Fixes segfaults on 110 cpu core setup for top -M usage.

2 weeks agosystat(1): Print VNODE PAGER.
zrj [Sat, 2 Dec 2017 17:41:04 +0000 (19:41 +0200)]
systat(1): Print VNODE PAGER.

Looks a bit better.

2 weeks agohammer2(8): Document cleanup command.
zrj [Sat, 2 Dec 2017 17:40:08 +0000 (19:40 +0200)]
hammer2(8): Document cleanup command.

While there, do some misc whitespace cleanup.

2 weeks agokernel/vfs: Avoid diagnostic line breaks.
zrj [Sat, 2 Dec 2017 17:38:46 +0000 (19:38 +0200)]
kernel/vfs: Avoid diagnostic line breaks.

2 weeks ago<sys/systm.h>: Remove bcopyb() prototype.
Sascha Wildner [Sat, 2 Dec 2017 11:49:45 +0000 (12:49 +0100)]
<sys/systm.h>: Remove bcopyb() prototype.

It was a i386 specific function which was removed in f4c88b0b86f1810.

Reported-by: zrj
2 weeks agopthread_join.3: Document pthread_timedjoin_np() (taken from FreeBSD).
Sascha Wildner [Sat, 2 Dec 2017 08:55:05 +0000 (09:55 +0100)]
pthread_join.3: Document pthread_timedjoin_np() (taken from FreeBSD).

2 weeks agopthread_mutex_*.3: Add {get,set}prioceiling to SEE ALSO.
Sascha Wildner [Sat, 2 Dec 2017 07:57:03 +0000 (08:57 +0100)]
pthread_mutex_*.3: Add {get,set}prioceiling to SEE ALSO.

2 weeks agopf.os: Add OpenBSD:6.1
Eitan Adler [Sat, 2 Dec 2017 06:24:18 +0000 (22:24 -0800)]
pf.os: Add OpenBSD:6.1

Obtained From: OpenBSD

2 weeks agokernel - Increase syscons history buffer size
Matthew Dillon [Sat, 2 Dec 2017 02:56:06 +0000 (18:56 -0800)]
kernel - Increase syscons history buffer size

* Increase syscons history from 4 screens to 10 screens
  (4*rows to 10*rows).

2 weeks agokernel - Fix CAM unit allocation race
Matthew Dillon [Sat, 2 Dec 2017 02:52:27 +0000 (18:52 -0800)]
kernel - Fix CAM unit allocation race

* Fix an issue where multiple targets can sometimes allocate the
  same unit when probed asynchronously.  The search and insertion
  functions were being independently locked.

2 weeks agoRevert "Remove advertising clause from pr(1)"
Eitan Adler [Fri, 1 Dec 2017 21:29:50 +0000 (13:29 -0800)]
Revert "Remove advertising clause from pr(1)"

This reverts commit 4586ab4e1609825eb2d4503c92578933c3479239.

See https://www.mail-archive.com/svn-src-all@freebsd.org/msg153666.html

2 weeks agosyscons - Partly implement FBIO_BLANK ioctl, for display powersaving.
Imre Vadász [Sat, 25 Nov 2017 17:25:54 +0000 (18:25 +0100)]
syscons - Partly implement FBIO_BLANK ioctl, for display powersaving.

* Only implement the parts relevant for display powersaving when a KMS
  graphics driver is loaded. Adjust the existing V_DISPLAY_* constant
  definitions to match the corresponding definitions in FreeBSD.

2 weeks agoMinor fixes to pr(1)
Eitan Adler [Thu, 30 Nov 2017 08:02:23 +0000 (00:02 -0800)]
Minor fixes to pr(1)

Obtained-from: FreeBSD

2 weeks agoAdd 'const' where appropriate in pr(1)
Eitan Adler [Thu, 30 Nov 2017 07:45:12 +0000 (23:45 -0800)]
Add 'const' where appropriate in pr(1)

2 weeks agoRemove advertising clause from pr(1)
Eitan Adler [Thu, 30 Nov 2017 07:35:33 +0000 (23:35 -0800)]
Remove advertising clause from pr(1)

Permitted by https://www.freebsd.org/copyright/license.html
Renumber 4->3 to be consistent with other files

2 weeks agoAdd static to variables in pr(1)
Eitan Adler [Thu, 30 Nov 2017 06:59:17 +0000 (22:59 -0800)]
Add static to variables in pr(1)

2 weeks agolibpthread: Document some more functions.
Sascha Wildner [Thu, 30 Nov 2017 07:26:00 +0000 (08:26 +0100)]
libpthread: Document some more functions.

Specifically:

pthread_condattr_getclock()           (Taken-from: FreeBSD)
pthread_condattr_getpshared()         (Taken-from: FreeBSD)
pthread_condattr_setclock()           (Taken-from: FreeBSD)
pthread_condattr_setpshared()         (Taken-from: FreeBSD)
pthread_mutex_getprioceiling()        (Taken-from: NetBSD)
pthread_mutex_setprioceiling()        (Taken-from: NetBSD)
pthread_mutexattr_getpshared()
pthread_mutexattr_setpshared()

2 weeks agolibpthread: Add pthread_mutex_timedlock() reference to some manual pages.
Sascha Wildner [Thu, 30 Nov 2017 07:12:32 +0000 (08:12 +0100)]
libpthread: Add pthread_mutex_timedlock() reference to some manual pages.

2 weeks agolibpthread: Sort a few things in the Makefile.
Sascha Wildner [Thu, 30 Nov 2017 06:55:18 +0000 (07:55 +0100)]
libpthread: Sort a few things in the Makefile.

2 weeks agogames: Make benefits for the glorious curses lib.
zrj [Wed, 29 Nov 2017 15:58:14 +0000 (17:58 +0200)]
games: Make benefits for the glorious curses lib.

Consolidate all private ncurses handling in top level Makefile.inc in games/.
Will simplify upcoming base ncurses library update.

While there, perfom the same for private crypto lib even if it a single case.

2 weeks agofortune(6): Pre-emptive CENSORSHIP.
zrj [Wed, 29 Nov 2017 15:36:41 +0000 (17:36 +0200)]
fortune(6): Pre-emptive CENSORSHIP.

First let's get it straight. It is censorship and let's not sugar coat it.

The FO has fallen, N is falling and naturally we are next.
I'm only doing this to prevent certain discussions taking place on the mailing
lists or irc over the holidays and to explictly show irony of all this ${thing}.
It is SAD to see that various projects went from technical to being PC infested.
So much for being the flagmans of OSS developments & examples to other projects.
                   (slow ironic clapping insert here)
Such slabnij individuals with "hurt feelings" always are causing developers to
get distracted from their hacking on source or making hardware work properly.
Also, these actions opens up the door wider for "other" topics into discussions.

I'm not going to mention the name of certain evil* person so that this would not
get "flagged". Absurdity is already way beyond any reasonable levels. Clearly
there are some perpetually offended snoflakes, who have nothing better to do
other than look for ways to get offended or to trigger other people in real life
and over the internet. Why not just choose one? If someone wants to let some
accumulated steam off, there are places over the internet where one can have a
constructive conversation about certain topics. If you can not handle the raw,
unredacted, straight opinions, you must be new there, please kindly go back to
reddit safe spaces. Just do *not* bring those talks over into the projects!
It is very likely that not everybody feels the same or even cares.
This is literally "Look what you made me do!", so here we go.

I'm going to consider cookies removal *only* and *only* if some things are
declared illegal by the country/state law with a reference to look it up where
it clearly states what is illegal to quote (including if that applies to the
translated text variants). No "probably" stuff. Either it's illegal or it's not.
If you are not sure, you should consult with your country/state lawyers first.

By going trough MSM and lists it is clear that some find offensive *not* the
quotes by itself but the mere mention of certain letter combinations. Since I do
not share identical ideology as most westerners (I was born in 19 88, USSR, and
with collapse of Soviet union and 19 91 events my fundation is a different myth)
I'm expanding "grep ${pattern} datfiles/fortune" to include Stalin for lulz too.
Many Lithuanians and Ukrainians find "admirating" that historic figure offensive
too, mainly because of "free" trips to Siberia, brothers and sisters separated
from parents, etc. Still it is not for me to judge the history nor rewrite it.

For now I'm keeping all Communism/Capitalism cookies just as a satire. But I'm
moving the qoute by Adolfo Guzman too, cause "sorry it matched the patternTM".
Doing this solves the following issues:
  * does not single out any specific individual (just a pattern right?);
  * clearly expresses irony and shows how some are so biased and have no
    understanding that their actions have consequences.

If for some reason you still find something offensive, check out "man 6 fortune"
for "-o" flag. Of course, if (for some reason) you do not want the potentially
"offensive" aphorisms on your disk, you can opt out:
  * echo 'INSTALL_OFFENSIVE_FORTUNES=NO\!\!\!\!' >> /etc/make.conf
  * standard buildworld/installworld
  * make upgrade
and problem solved.

If still find things like fortune(6), hangman(6), pig(6) or maybe even tetris(6)
"offensive", set NO_GAMES=YES and get rid of all games distrib (I don't judge).
Since we are source based distribution (and no, BSD does *not* stand for Binary
Software Distribution) we provide installation images just for convenience. We
do not support binary base upgrades, only the standard source tree build ones.

To be clear, I had some of these fortune cookies added over a year ago in:
 6c5aea60b8d9d163c6caa536036e82e7472b84bc and nobody so far complained about it.
It is still very strange that previously those were OK. So what has changed now?

What if I'm offended by software bugs? Should I remove that sofware or try to
fix it? What if someone is offended by the license say GPL, CDDL or even Apache?
So far censorship applies only to games/fortune/.

All of this is just something to think about & no further talks will take place.
Respect others and respect yourself. Also, don't get offended to get offended.
I can only hope that infinity will forgive me, but this needs to be done.

2 weeks agokernel: Make floppies work again.
zrj [Tue, 28 Nov 2017 11:44:44 +0000 (13:44 +0200)]
kernel: Make floppies work again.

Revive the old x86 32bit only fdc(4) driver, it only needs just a few changes.
The fdc was never ported to work on x86_64 DragonFly, so rather than remove it
together with its manpage, fix few things and hook it to LINT64 config so that
we would keep track the state of it and not keep it in a dusty corner of sys/.

On modern x86_64 systems fdc($) has little value and it is getting harder and
harder to find floppy drives that work or even the motherboards that still have
the FDD headers to hook the 34pin ribbon cable, but I feel nostalgic about the
scratching noises the floppy drive makes while performing the operations.
So went through all storage closets and find one that works, blew out all the
accumulated dusts, cleaned the magnetic heads with a folder paper tissue good.
The hardest part was to find a floppy disk. Only could find just a single one
stashed away deep on the floor of a very old safe under heeps of old documents.

For fdc(4) to actually work, some adjustmens to isa_dma.c were needed because
of how ISA bus probing is done in platform/pc64/x86_64/autoconf.c. To work
around the exhaustion of low DMA memory before it gets to isa_probe_children()
now try to preallocate contiguous buffer of 512KB and free it just before the
probe of ISA bus. This should help any legacy ISA drivers(including ppc(4))
or even some of more picky drivers that are not built in into the kernel.

For case where isa_dmainit() would still fail to allocate the buffer fitting
the requirements, have added the safety checks and explicit fallback to non
DMA mode by setting the FDC_NODMA flag to avoid panics on "bad bounce buffer".
Floppy drive would not work properly, but it is this versus a panic. There are
other issues too. For some reason some files tend to be read with stripes of
zeros, but write operations seems to work. Same floppy is readable on linux.

Currently can not debug the issue cause my floppy had seen better days:
_# time dd if=/dev/fd0 of=/tmp/recover.img conv=sync,noerror
...
dd: /dev/fd0: Input/output error
2880+0 records in
2880+0 records out
1474560 bytes transferred in 80.723953 secs (18267 bytes/sec)

while dmesg:
fd0: hard error reading offset 00000000ae00 for 512 (ST0 40<abnrml> ST1 20<bad_crc> ST2 20<bad_crc> cyl 2 hd 0 sec 16)
fd0: hard error reading offset 00000000f600 for 512 (ST0 40<abnrml> ST1 1<no_am> ST2 1<no_dam> cyl 3 hd 0 sec 16)
fd0: hard error reading offset 000000113800 for 512 (ST0 40<abnrml> ST1 20<bad_crc> ST2 20<bad_crc> cyl 61 hd 0 sec 9)
fd0: hard error reading offset 000000115c00 for 512 (ST0 44<abnrml,top_head> ST1 4<sec_not_fnd> ST2 10<wrong_cyl> cyl 61 hd 1 sec 9)
fd0: hard error reading offset 00000011a400 for 512 (ST0 44<abnrml,top_head> ST1 4<sec_not_fnd> ST2 0 cyl 62 hd 1 sec 9)
fd0: hard error reading offset 00000011ec00 for 512 (ST0 44<abnrml,top_head> ST1 4<sec_not_fnd> ST2 0 cyl 63 hd 1 sec 9)
fd0: hard error reading offset 000000123400 for 512 (ST0 44<abnrml,top_head> ST1 4<sec_not_fnd> ST2 0 cyl 64 hd 1 sec 9)
fd0: hard error reading offset 000000127c00 for 512 (ST0 44<abnrml,top_head> ST1 4<sec_not_fnd> ST2 0 cyl 65 hd 1 sec 9)

Given the state of my single floppy I cannot even do a proper newfs_msdos(8).
So maybe someone who has a collection of good floppies could give it a go.

While there, hook old musycc(4) driver to LINT64, it was fixed in:
906779c3d1e064e55bb019342ad6c1621cc04399

2 weeks agolibarchive: Revert commit that was not meant to be pushed.
Sascha Wildner [Tue, 28 Nov 2017 19:13:35 +0000 (20:13 +0100)]
libarchive: Revert commit that was not meant to be pushed.

2 weeks agolibc/nls: Use current locale (set by thread).
Sascha Wildner [Tue, 28 Nov 2017 18:34:23 +0000 (19:34 +0100)]
libc/nls: Use current locale (set by thread).

It was global locale always previously.

Taken-from:  FreeBSD (r304755)
Reported-by: xenu (also provided a test case)
2 weeks agodrm/linux: Add vmalloc_user() and vfree()
François Tigeot [Tue, 28 Nov 2017 17:21:03 +0000 (18:21 +0100)]
drm/linux: Add vmalloc_user() and vfree()

2 weeks agoix: Add missing source to conf/files.
zrj [Tue, 28 Nov 2017 14:41:49 +0000 (16:41 +0200)]
ix: Add missing source to conf/files.

Missed in 6150453f26f6ee01b60ce647b20bc8afcfc71c8e

2 weeks agoix: Sync with Intel's ix-3.2.17.
Sepherosa Ziehau [Sat, 11 Nov 2017 22:26:56 +0000 (06:26 +0800)]
ix: Sync with Intel's ix-3.2.17.

- Add several new chips.
- Add software workaround for 82598 errata #26.

2 weeks agodrm/linux: Add or improve various header files
François Tigeot [Mon, 27 Nov 2017 18:03:25 +0000 (19:03 +0100)]
drm/linux: Add or improve various header files

2 weeks agodrm/linux: Remove debugging messages
François Tigeot [Mon, 27 Nov 2017 09:22:32 +0000 (10:22 +0100)]
drm/linux: Remove debugging messages

2 weeks agokernel - Bring in definition of _IOWINT from FreeBSD.
Peeter Must [Mon, 27 Nov 2017 11:25:09 +0000 (13:25 +0200)]
kernel - Bring in definition of _IOWINT from FreeBSD.

* This is needed for evdev.

Obtained-from: FreeBSD

2 weeks agotcpdump(8): Reconfigure a bit after NO_CRYPT removal.
Sascha Wildner [Sun, 26 Nov 2017 13:11:17 +0000 (14:11 +0100)]
tcpdump(8): Reconfigure a bit after NO_CRYPT removal.

3 weeks agoRemove faith(4) and faithd(8) from the tree.
Sascha Wildner [Sat, 25 Nov 2017 21:01:12 +0000 (22:01 +0100)]
Remove faith(4) and faithd(8) from the tree.

FreeBSD did that 3 years ago (r274331). Quoting from their commit msg:

-----8<-----
It looks like industry have chosen different (and more traditional)
stateless/stateful NAT64 as translation mechanism. Last non-trivial
commits to both faith(4) and faithd(8) happened more than 12 years
ago, so I assume it is time to drop RFC3142 in FreeBSD.
----->8-----

Some more info here:

https://lists.freebsd.org/pipermail/freebsd-net/2014-October/040224.html

Discussed-with: sephe

3 weeks agoautofs: Add "noatime" to auto_master
Tomohiro Kusumi [Sat, 25 Nov 2017 18:02:47 +0000 (20:02 +0200)]
autofs: Add "noatime" to auto_master

FreeBSD@GitHub 708d95a2d6 e5253222e9

Note that in DragonFly "noatime" was never added to -media map.
("noatime" in -media map existed only for 1 day in FreeBSD)

3 weeks agoautofs: Add etc/autofs/include_nis
Tomohiro Kusumi [Sat, 25 Nov 2017 17:53:20 +0000 (19:53 +0200)]
autofs: Add etc/autofs/include_nis

FreeBSD@GitHub e9b93842e9

3 weeks agoautofs: Import FreeBSD@GitHub 7e6cabd06e
Tomohiro Kusumi [Sat, 25 Nov 2017 14:09:02 +0000 (16:09 +0200)]
autofs: Import FreeBSD@GitHub 7e6cabd06e