dragonfly.git
4 years agohammer - Fix coredump bug which can stall processes
Matthew Dillon [Sat, 5 Mar 2016 03:17:28 +0000 (19:17 -0800)]
hammer - Fix coredump bug which can stall processes

* Fix a coredump bug which can stall the process.  If a process > 100MB is
  in the process of being coredumped, a signal will cause the hammer_write()
  path to hit tstop() due to the core-dump being in progress.  Unfortunately
  the write might be happening from the kernel core generator itself which
  will stall the process forever with a number of locks held.

  hammer only checks for signals on very large (> 100MB) read() and write()
  calls so the issue does not effect coredumps of smaller processes.

* Use CURSIG_NOBLOCK() instead of CURSIG().

4 years agoClean up some manual pages (mainly .Dv related).
Sascha Wildner [Fri, 4 Mar 2016 18:27:44 +0000 (19:27 +0100)]
Clean up some manual pages (mainly .Dv related).

4 years agokqueue: Add simple per-cpu cache for the knote
Sepherosa Ziehau [Fri, 4 Mar 2016 16:06:43 +0000 (00:06 +0800)]
kqueue: Add simple per-cpu cache for the knote

This moves the malloc(M_WAITOK) out of the kqueue token for most of
the time.  This significantly reduces the kqueue token contention when
TCP connect rate is @395Kconns/s on connect side: contention rate
dropped from ~150K/s to ~50K/s.

4 years agokqueue: Only allow one thread to register event to a kqueue
Sepherosa Ziehau [Fri, 4 Mar 2016 14:15:54 +0000 (22:15 +0800)]
kqueue: Only allow one thread to register event to a kqueue

This prevents various races on the registration path, if it
ever blocks (kq token will be released):
- Kqueue hash table creation; the malloc(M_WAIT) could block.
- Install a new event.  Holding the token protect the klist could block.

Since kqueue _should_ rarely be shared between threads, allowing one
thread to do the event registration to a kqueue can work well enough.

4 years agoRewrite bsd.cpu.gcc50.mk (new cpus types; i386 removed)
John Marino [Fri, 4 Mar 2016 09:35:13 +0000 (10:35 +0100)]
Rewrite bsd.cpu.gcc50.mk (new cpus types; i386 removed)

The bsd.cpu.gcc50.mk should have been reworked when gcc50 came into
base.  The gcc47 version was such an unmaintainable mess (despite putting
a lot of time into it) that the gcc50 version was just copied from it as
a "good enough" solution that required work later.  It's time to pay the
piper.  I've almost rewritten it from scratch with a goal of comprehension
and maintainability.

- All 32-bit architectures were removed
- CPU types are formally defined per architecture.  If somebody tries to
  define CPUTYPE to an unrecognized value, the native march flag will be
  set with generic features for that architecture.  It will not propagate
  values that gcc50 doesn't understand (as it did previously)
- Support for several new cpus have been added.
- For x86_64 (the only arch currently supported on DF), the recognized
  CPUTYPE values are:
    * athlon64       (aka k8, opteron, athlon-fx)
    * athlon64-sse3  (aka k8-sse3, opteron-sse3)
    * barcelona      (aka amdfam10)
    * bdver(1|2|3|4)
    * bonnell
    * broadwell
    * btver(1|2)
    * core2
    * haswell
    * ivybridge
    * knl
    * nocona
    * nehalem
    * sandybridge
    * silvermont
    * skylake
    * skylake-avx512
    * westmere
    * znver1
- The method for defining CPU features was reworked.  The new method
  removes a ton of repetition by allowing CPU features to be build on
  other CPUs.  It's more readable and easy to add new ones.  The trade-off
  is that when CPUTYPE is defined to a legal value, the mk file will
  define features for all CPUs internal (OTOH, condition chain is gone).
- CPU feature has been made fully complete based on GCC 5.3 documention
- Adding new architectures will be easy using x86_64 as a template
- General makefile improvements were made

When CPUTYPE is not defined (which is the default), this version of the
makefile is functionally identical to the previous versions.  Most of the
improvements are only executed when CPUTYPE type is defined in arguments
or /etc/make.conf

4 years agolibstand: Fix qdivrem.c on x86_64. Don't assume sizeof(int) == sizeof(long).
Imre Vadasz [Wed, 2 Mar 2016 21:24:21 +0000 (22:24 +0100)]
libstand: Fix qdivrem.c on x86_64. Don't assume sizeof(int) == sizeof(long).

* Adds two _Static_asserts() to check if the assumptions of this code
  actually hold.

Taken-From: FreeBSD

4 years agokqueue: Use wakeup_one based on # of threads sleep on kqueue
Sepherosa Ziehau [Wed, 2 Mar 2016 14:39:29 +0000 (22:39 +0800)]
kqueue: Use wakeup_one based on # of threads sleep on kqueue

Get rid of the sysctl to set wakeup_one optimization.  This also
unbreaks the case when wakeup_one optimization is enabled, and
multiple threads share and sleep on one kqueue.

4 years agoLocal adjustments for OpenSSL 1.0.1s.
Sascha Wildner [Wed, 2 Mar 2016 09:33:30 +0000 (10:33 +0100)]
Local adjustments for OpenSSL 1.0.1s.

4 years agoMerge branch 'vendor/OPENSSL'
Sascha Wildner [Wed, 2 Mar 2016 09:32:33 +0000 (10:32 +0100)]
Merge branch 'vendor/OPENSSL'

4 years agoImport OpenSSL 1.0.1s.
Sascha Wildner [Wed, 2 Mar 2016 09:31:53 +0000 (10:31 +0100)]
Import OpenSSL 1.0.1s.

* Fix CVE-2016-0800, CVE-2016-0705, CVE-2016-0798, CVE-2016-0797,
  CVE-2016-0799, CVE-2016-0702

* Disable weak ciphers in SSLv3 and up in default builds of OpenSSL.

For a more detailed list of changes, see crypto/openssl/CHANGES.

4 years agolib/libstand: Remove special lib/libstand/machine headers.
Imre Vadasz [Mon, 29 Feb 2016 20:14:44 +0000 (21:14 +0100)]
lib/libstand: Remove special lib/libstand/machine headers.

* stdarg.h was identical

* stdint.h stuff was already included in sys/cpu/x86_64/include/stdint.h.

* endian.h is obsoleted by the sys/cpu/x86_64/include/endian.h.

* Added #ifdef-s to sys/cpu/x86_64/include/asm.h to handle the __i386__
  case.

* No need for CFLAGS+= -I${.CURDIR} in lib/libstand/Makefile anymore.

4 years agouname(1): The maximum length for a varsym value is MAXVARSYM_DATA.
Sascha Wildner [Tue, 1 Mar 2016 20:59:10 +0000 (21:59 +0100)]
uname(1): The maximum length for a varsym value is MAXVARSYM_DATA.

4 years agouname(3): Make uname() honor varsym variables too.
Sascha Wildner [Tue, 1 Mar 2016 20:58:34 +0000 (21:58 +0100)]
uname(3): Make uname() honor varsym variables too.

Just like uname(1) does.

4 years agortadv{d,ctl}(8): Resolve some __FreeBSD__/__FreeBSD_version checks.
Sascha Wildner [Tue, 1 Mar 2016 20:28:08 +0000 (21:28 +0100)]
rtadv{d,ctl}(8): Resolve some __FreeBSD__/__FreeBSD_version checks.

Discussed-with: sephe
Tested-by: profmakx
4 years agovi(1): Raise WARNS to 1.
Sascha Wildner [Sun, 28 Feb 2016 22:40:19 +0000 (23:40 +0100)]
vi(1): Raise WARNS to 1.

Anything should survive 1.

4 years agomake(1): Raise WARNS to 6.
Sascha Wildner [Sun, 28 Feb 2016 22:39:39 +0000 (23:39 +0100)]
make(1): Raise WARNS to 6.

4 years agosvc(8): Clean up the Makefile a bit.
Sascha Wildner [Sun, 28 Feb 2016 22:39:34 +0000 (23:39 +0100)]
svc(8): Clean up the Makefile a bit.

* Remove redundant LDADD, we already add -pthread. Add DPADD instead for
  properly dependencies.

* Remove commented out WARNS=2. It is 6 without specifying anything.

4 years agoping6(8): Fix a -Wcast-qual warning with a cast and raise WARNS to 6.
Sascha Wildner [Sun, 28 Feb 2016 22:36:44 +0000 (23:36 +0100)]
ping6(8): Fix a -Wcast-qual warning with a cast and raise WARNS to 6.

4 years agoldd(1): Fix some warnings, raise WARNS to 6, further cleanup.
Sascha Wildner [Sun, 28 Feb 2016 20:50:56 +0000 (21:50 +0100)]
ldd(1): Fix some warnings, raise WARNS to 6, further cleanup.

* Remove remaining a.out support.

* Nuke some orphaned externs.

* Remove (void) casts.

* Use ssize_t for read(2)'s return value.

4 years agostat(1): Sync with FreeBSD, bump WARNS to 6.
Sascha Wildner [Sun, 28 Feb 2016 20:16:57 +0000 (21:16 +0100)]
stat(1): Sync with FreeBSD, bump WARNS to 6.

* Add -H to stat.

* Add -f to readlink.

* Various improvements and bug fixes.

Taken-from: FreeBSD

4 years agosys/vfs/hammer: Rename hammer_directory_namekey() to hammer_direntry_namekey()
Tomohiro Kusumi [Sun, 28 Feb 2016 10:32:58 +0000 (19:32 +0900)]
sys/vfs/hammer: Rename hammer_directory_namekey() to hammer_direntry_namekey()

The name of this function should be hammer_direntry_namekey()
since it's only used with directory entry rectype, but not
directories as an object type.
(Note that rectype for directory entry is HAMMER_RECTYPE_DIRENTRY)

4 years agosys/vfs/hammer: Rename hammer_ip_del_directory() to hammer_ip_del_direntry()
Tomohiro Kusumi [Sun, 28 Feb 2016 10:30:55 +0000 (19:30 +0900)]
sys/vfs/hammer: Rename hammer_ip_del_directory() to hammer_ip_del_direntry()

The name "hammer_ip_del_directory" is confusing in the sense that
it sounds like the function deletes a directory as an object type.
What this function actually does is delete a directory entry which
is different from a directory as an object type.
(Note that rectype for directory entry is HAMMER_RECTYPE_DIRENTRY)

4 years agosys/vfs/hammer: Rename hammer_ip_add_directory() to hammer_ip_add_direntry()
Tomohiro Kusumi [Sun, 28 Feb 2016 10:28:46 +0000 (19:28 +0900)]
sys/vfs/hammer: Rename hammer_ip_add_directory() to hammer_ip_add_direntry()

The name "hammer_ip_add_directory" is confusing in the sense that
it sounds like the function adds a directory as an object type.
What this function actually does is add a directory entry which
is different from a directory as an object type.
(Note that rectype for directory entry is HAMMER_RECTYPE_DIRENTRY)

4 years agosys/vfs/hammer: Rename struct hammer_entry_data to hammer_direntry_data
Tomohiro Kusumi [Sun, 28 Feb 2016 10:04:34 +0000 (19:04 +0900)]
sys/vfs/hammer: Rename struct hammer_entry_data to hammer_direntry_data

hammer_entry_data is a structure for dirctory entry, so it's
simply more understandable if the name was hammer_direntry_data.
(Note that rectype for directory entry is HAMMER_RECTYPE_DIRENTRY)

This change does not affect userspace since userspace applications
never use (and should never use) this structure, except for some
sbin/hammer commands. sbin/hammer/cmd_recover.c is the only file
that refers to the name of this structure.

4 years agosys/vfs/hammer: Fix comment
Tomohiro Kusumi [Sat, 27 Feb 2016 19:11:19 +0000 (04:11 +0900)]
sys/vfs/hammer: Fix comment

This comment made by 66325755 in 2007 seems to be wrong today.
There is no code that indicates parent inode# == 0 means it's
deleted, or treats it as deleted.

4 years agovkernel.7: Improve formatting (also of usage(), while here).
Sascha Wildner [Sun, 28 Feb 2016 09:41:38 +0000 (10:41 +0100)]
vkernel.7: Improve formatting (also of usage(), while here).

4 years agosbin/hammer: Reword "llid" to "pfs_id"
Tomohiro Kusumi [Sat, 27 Feb 2016 16:07:28 +0000 (01:07 +0900)]
sbin/hammer: Reword "llid" to "pfs_id"

This file is the only one using "llid" instead of "pfs_id".
Not sure what llid stands for, but this is apparently PFS id,
so rename it to more common and obvious pfs_id.

4 years agosbin/hammer: Use HAMMER_OBJID_ROOT for root inode
Tomohiro Kusumi [Sat, 27 Feb 2016 03:29:28 +0000 (12:29 +0900)]
sbin/hammer: Use HAMMER_OBJID_ROOT for root inode

4 years agosys/vfs/hammer: Add hammer_is_pfs_{master|slave|deleted}()
Tomohiro Kusumi [Thu, 25 Feb 2016 19:09:23 +0000 (04:09 +0900)]
sys/vfs/hammer: Add hammer_is_pfs_{master|slave|deleted}()

Makes code more readable, but introducing these macros could
make |= and &=~ unclear by hiding &.
There are a few |= and &=~ but not many.

4 years agolib/libhammer: Add CFLAGS+= -I${.CURDIR}/../../sys
Tomohiro Kusumi [Sat, 27 Feb 2016 02:13:36 +0000 (11:13 +0900)]
lib/libhammer: Add CFLAGS+= -I${.CURDIR}/../../sys

so libhammer includes headers under the working tree instead of
/usr/include/...

4 years agosbin/hammer: Printf "PFS" instead of "pfs"
Tomohiro Kusumi [Sat, 27 Feb 2016 01:43:14 +0000 (10:43 +0900)]
sbin/hammer: Printf "PFS" instead of "pfs"

The existing printfs as well as hammer(5) use "PFS" unless
it's a part of command name like "pfs-master".

4 years agosys/boot/pc32: Update smbios code a bit, needed for the UEFI bootloader.
Imre Vadász [Sat, 27 Feb 2016 12:54:04 +0000 (13:54 +0100)]
sys/boot/pc32: Update smbios code a bit, needed for the UEFI bootloader.

* The void smbios_detect(const caddr_t addr) declaration is moved to a
  separate smbios.h header.

* Since smbios_match() isn't needed yet, this change omits importing that
  code from FreeBSD for now.

Taken-From: FreeBSD

4 years agosys/boot/common: Fix a pointer type mismatch when building for x86_64.
Imre Vadasz [Sat, 27 Feb 2016 10:18:51 +0000 (11:18 +0100)]
sys/boot/common: Fix a pointer type mismatch when building for x86_64.

4 years agosys/boot/common: Add some casts to fix warnings when building for x86_64.
Imre Vadasz [Fri, 26 Feb 2016 21:19:23 +0000 (22:19 +0100)]
sys/boot/common: Add some casts to fix warnings when building for x86_64.

Inspired-By: FreeBSD
4 years agoipfw3: update rule in func skipto
Bill Yuan [Fri, 26 Feb 2016 23:17:28 +0000 (23:17 +0000)]
ipfw3: update rule in func skipto

4 years agoipfw3: new feature 'ipfwsync'
Bill Yuan [Fri, 26 Feb 2016 22:48:37 +0000 (22:48 +0000)]
ipfw3: new feature 'ipfwsync'

ipfwsync is a new feature to synchronize firewall states between machines
which is running ipfw3 firewall for high availability. ipfw3 can be configured
in centre or edge mode. the centre will automatically sync the states from
centre to the edge.

e.g.
ipfw3 sync edge 5000
ipfw3 sync start edge

ipfw3 sync centre 192.168.1.1:5000,192.168.1.2:5000
ipfw3 sync start centre

ipfw3 sync show config
ipfw3 sync show status
ipfw3 sync test centre 123

4 years agolibstand: Fix some build warnings/errors when trying to build for 64bit.
Imre Vadasz [Thu, 25 Feb 2016 20:16:14 +0000 (21:16 +0100)]
libstand: Fix some build warnings/errors when trying to build for 64bit.

* Just casts uintptr_t values to uintmax_t, since libstand doesn't have
  <inttypes.h> and hence no PRIuPTR for formatting those.

* Use %zd and %zu for ssize_t and size_t values, instead of %d formats.

Partly Submitted-by: zrj (casting uintptr_t to uintmax_t as easiest fix).

4 years agosys/vfs/hammer: Redo commit 283f6970
Tomohiro Kusumi [Wed, 24 Feb 2016 17:26:10 +0000 (02:26 +0900)]
sys/vfs/hammer: Redo commit 283f6970

283f6970 was reverted by 8a94c3eb.
This commit redo the same sanity check in the right place.

Mirror write code that isn't trying to create a PFS still
calls hammer_mkroot_pseudofs() (which is kind of confusing),
so this sanity check must be done only after hammer_get_inode()
failed to find the existing inode by returning NULL.

4 years agoipfw3: fix func lookup_host
Bill Yuan [Fri, 26 Feb 2016 00:26:11 +0000 (00:26 +0000)]
ipfw3: fix func lookup_host

4 years agolibstand: Use the +Q register constraint in the __byte_swap16_var() macro.
Imre Vadasz [Thu, 25 Feb 2016 15:49:39 +0000 (16:49 +0100)]
libstand: Use the +Q register constraint in the __byte_swap16_var() macro.

* Using +Q makes sure that the register also has a 'high' 8-bit
  sub-register. On amd64, the +q constraint would also contain the
  SIL and DIL registers, which don't have a 'high' 8-bit sub-register.

4 years agokqueue: Avoid code duplication for knote searching in kqueue_register
Sepherosa Ziehau [Thu, 25 Feb 2016 14:15:08 +0000 (22:15 +0800)]
kqueue: Avoid code duplication for knote searching in kqueue_register

4 years agokernel/syscons: Add EFI Framebuffer support.
Imre Vadász [Thu, 11 Feb 2016 22:36:49 +0000 (23:36 +0100)]
kernel/syscons: Add EFI Framebuffer support.

* Uses the SC_DFLT_FONT kernel configuration option by default, which is
  required for a usable EFI framebuffer console (otherwise no font would
  be available there, resulting in invisible text).

4 years agokqueue: Use lwkt_{get,rel}pooltoken in kqueue_register
Sepherosa Ziehau [Thu, 25 Feb 2016 13:43:43 +0000 (21:43 +0800)]
kqueue: Use lwkt_{get,rel}pooltoken in kqueue_register

4 years agokqueue: Move fp holding out of kqueue token
Sepherosa Ziehau [Thu, 25 Feb 2016 12:41:43 +0000 (20:41 +0800)]
kqueue: Move fp holding out of kqueue token

4 years agokernel/pc64: Make have_efi_framebuffer static in pc64/x86_64/machdep.c.
Imre Vadász [Mon, 22 Feb 2016 21:29:03 +0000 (22:29 +0100)]
kernel/pc64: Make have_efi_framebuffer static in pc64/x86_64/machdep.c.

probe_efi_fb() should be enough for everyone else.

4 years agodrm/i915: Update to Linux 4.2
François Tigeot [Tue, 23 Feb 2016 20:21:06 +0000 (21:21 +0100)]
drm/i915: Update to Linux 4.2

* Work in progress atomic modesetting support

* Broadwell support improvements

* Skylake support improvements, including runtime power management.
  Starting from Linux 4.2, a separate firmware blob is required to save
  and restore the state of display engines in some low-power modes. These
  low-power modes have been forcibly disabled in the DragonFly version of
  this driver in order to keep it blob-free.

* Basic Broxton (BXT) support

* Various Displayport improvements including optimized link training,
  increased robustness, and automated support for compliance testing

* Execlist overhead reduced

* Frequency boost tuning

* Plenty of bugfixes all around

4 years agokqueue: Nuke unused code
Sepherosa Ziehau [Tue, 23 Feb 2016 13:58:44 +0000 (21:58 +0800)]
kqueue: Nuke unused code

4 years agokqueue: Return value of knote_release is no longer useful.
Sepherosa Ziehau [Tue, 23 Feb 2016 13:44:23 +0000 (21:44 +0800)]
kqueue: Return value of knote_release is no longer useful.

4 years agoRevert 283f6970e848724e9bd2c20d5311e412dea5e67c
Tomohiro Kusumi [Tue, 23 Feb 2016 13:36:26 +0000 (22:36 +0900)]
Revert 283f6970e848724e9bd2c20d5311e412dea5e67c

There seems to be an issue when hammer_ioc_set_pseudofs() is
called by mirror code (that doesn't attemp to create a PFS).

4 years agokqueue: Avoid reprocessing processed knotes in KNOTE.
Sepherosa Ziehau [Mon, 22 Feb 2016 14:08:36 +0000 (22:08 +0800)]
kqueue: Avoid reprocessing processed knotes in KNOTE.

Put a marker before the currently processing knote, so that even if
we have to reprocess this knote for non-zero hint, we don't have to
reprocess already-processed knotes, i.e. knotes before the marker.

Reviewed-by: dillon@
4 years agotest commit
Bill Yuan [Tue, 23 Feb 2016 15:30:54 +0000 (15:30 +0000)]
test commit

4 years agosys/boot/common: Simpler fix for "ls -l", which also works on cd9660 fs.
Imre Vadász [Mon, 22 Feb 2016 21:03:15 +0000 (22:03 +0100)]
sys/boot/common: Simpler fix for "ls -l", which also works on cd9660 fs.

* Blindly using "." as path instead of "" when no explicit path is given
  for ls, doesn't work on the cd9660 filesystem at the moment.

* Just omitting the "/" at the beginning of the buffer, when building the
  path for calling rel_stat() seems better.

4 years agopc64: Introduce machine/framebuffer.h header. Probe EFI fb.
Imre Vadász [Sun, 21 Feb 2016 15:28:39 +0000 (16:28 +0100)]
pc64: Introduce machine/framebuffer.h header. Probe EFI fb.

* Move struct fb_info definition from dev/drm/include/linux/fb.h to
  platform/pc64/include/framebuffer.h.

* Implement EFI framebuffer probing in platform/pc64/x86_64/machdep.c.

4 years agokernel/syscons: Add NULL checks for struct fb_info's restore callback.
Imre Vadász [Sun, 21 Feb 2016 16:40:48 +0000 (17:40 +0100)]
kernel/syscons: Add NULL checks for struct fb_info's restore callback.

4 years agodrm: Use drm_legacy_xxx functions
François Tigeot [Sun, 21 Feb 2016 07:58:43 +0000 (08:58 +0100)]
drm: Use drm_legacy_xxx functions

Reducing differences with Linux

4 years agosyscons: Check if vaddr == 0 in sckmsrndr.c. Improve IOCTLs with KMS.
Imre Vadász [Sat, 20 Feb 2016 14:38:04 +0000 (15:38 +0100)]
syscons: Check if vaddr == 0 in sckmsrndr.c. Improve IOCTLs with KMS.

* Just disable syscons drawing when the vaddr in struct fb_info is 0.
  This allows e.g. to initialize syscons with a framebuffer console,
  before the framebuffer has been mapped into virtual memory.

* Some more IOCTLs should check if the KMS framebuffer is active and
  avoid VGA accesses in that case.

4 years agokernel/syscons: Make the sc_update_render() function a bit more readable.
Imre Vadász [Fri, 19 Feb 2016 19:37:41 +0000 (20:37 +0100)]
kernel/syscons: Make the sc_update_render() function a bit more readable.

Just get rid of an unnecessary indentation level.

4 years agokernel/syscons: More accurate IOCTL behaviour when KMS fb is used.
Imre Vadász [Fri, 19 Feb 2016 19:29:23 +0000 (20:29 +0100)]
kernel/syscons: More accurate IOCTL behaviour when KMS fb is used.

* Some IOCTLs should fail for now, when the KMS framebuffer is active,
  rather than crashing the machine or producing surprising results.

* Implement the CONS_MODEINFO/FBIO_MODEINFO IOCTLs for the KMS framebuffer,
  by just fabricating the video_info_t data.

4 years agokernel/syscons: Disable a bit more VGA console code, when scp->fbi != NULL.
Imre Vadász [Thu, 18 Feb 2016 21:25:37 +0000 (22:25 +0100)]
kernel/syscons: Disable a bit more VGA console code, when scp->fbi != NULL.

Avoids calling load_palette() during vty switching when we have already
switched to the KMS framebuffer.

4 years agokernel - Add kqueue support to NFS (fix firefox issues w/nfs)
Matthew Dillon [Thu, 18 Feb 2016 22:08:04 +0000 (14:08 -0800)]
kernel - Add kqueue support to NFS (fix firefox issues w/nfs)

* Firefox appears to get semi-random memory corruption and otherwise
  implodes if one or more filesystems it accesses does not support
  kqueue.  This appears to be due to some interaction between
  firefox, glib, and the kernel when kqueue support is missing
  from a filesystem.

* Add host-local kqueue support to NFS.  As with locks, the support
  is host-local only and will not work across multiple clients
  sharing the same files.

* Appears to stabilize firefox when file(s) it accesses are on
  NFS.

4 years agokernel/syscons: Fixup previous commit, readd scp->fbi = sc->fbi in init_scp
Imre Vadász [Thu, 18 Feb 2016 19:55:13 +0000 (20:55 +0100)]
kernel/syscons: Fixup previous commit, readd scp->fbi = sc->fbi in init_scp

4 years agokernel/syscons: Factor out font-scaling calculation to sc_font_scale().
Imre Vadász [Wed, 17 Feb 2016 22:01:23 +0000 (23:01 +0100)]
kernel/syscons: Factor out font-scaling calculation to sc_font_scale().

Avoid setting desired_cols after calculating the font scaling factor,
otherwise multiple calls to sc_font_scale() could give surprising results.

Also use sc_font_scale in init_scp, and limit the terminal size on the
first vty to 80x25 to deal with the statically allocated sc_buffer for the
kernel console.

4 years agokqueue: Knote should not be accessed once the KN_PROCESSING is cleared
Sepherosa Ziehau [Thu, 18 Feb 2016 14:16:00 +0000 (22:16 +0800)]
kqueue: Knote should not be accessed once the KN_PROCESSING is cleared

Though the original code is safe, since knote_release() is called w/
kq token, it is better that we clear KN_PROCESSING as the last step.

4 years agoetc/rc.d - diskless adjustments
Matthew Dillon [Wed, 17 Feb 2016 23:27:29 +0000 (15:27 -0800)]
etc/rc.d - diskless adjustments

* Try to 'mount -u /' before testing for a R/W /var and /tmp.  This fixes
  an issue where diskless would always create a MFS /var and MFS /tmp even
  when the NFS root is nominally writable.

* Test for a R/W /var and /tmp with a echo | dd command instead of mkdir,
  which should work nicely even with multiple clients booting at the same
  time.

4 years agokernel/syscons: Implement vr_draw_border_t function in sckmsrndr.c
Imre Vadász [Wed, 17 Feb 2016 22:34:30 +0000 (23:34 +0100)]
kernel/syscons: Implement vr_draw_border_t function in sckmsrndr.c

4 years agolibc - Improve realloc() performance.
Matthew Dillon [Wed, 17 Feb 2016 04:40:44 +0000 (20:40 -0800)]
libc - Improve realloc() performance.

* Oversized free()'s <= 1MB will be cached in a 16-entry array.  Any oversized
  allocation can make use of the cache, even if available cache entries are
  significantly larger than desired, in order to accomodate application
  buffer-growing behavior.  This means that applications which realloc() a
  lot (at least as long as the buffer is <= 1MB) will wind up being handed
  a ~1MB buffer quite frequently, eliminating new mmap() operations.

* Keeps track of the excess in oversized allocations and will garbage-collect
  it if it grows too large (typically > 16MB).  This is primarily what allows
  us to be generous.

* realloc() will attempt to use MAP_TRYFIXED to extend an oversized allocation
  before giving up and remapping it.

* Improves programs which realloc() or malloc()/free() large numbers of
  oversized blocks by reducing or eliminating mmap()/munmap() calls.

4 years agotools/tcp_stream: Fix test name
Sepherosa Ziehau [Tue, 16 Feb 2016 13:18:46 +0000 (21:18 +0800)]
tools/tcp_stream: Fix test name

4 years agouname(3): Add env override capability
John Marino [Tue, 16 Feb 2016 11:26:51 +0000 (12:26 +0100)]
uname(3): Add env override capability

The uname(1) program has honored UNAME_[x] overrides since DragonFly's
beginning, but libc's uname never did.  Make it recognize the following
environment variables:
  UNAME_m
  UNAME_r
  UNAME_s
  UNAME_v
These variables cause uname() to return the specified values instead of
what was built into libc.  This capability, which has been in FreeBSD for
more than a decade, is required for package builders that need to define
the jail environment different from the host (prime example: Python)

4 years agosys/boot/common: Make stat output in "ls -l" (without path argument) work
Imre Vadász [Mon, 15 Feb 2016 21:24:39 +0000 (22:24 +0100)]
sys/boot/common: Make stat output in "ls -l" (without path argument) work

It was accidentally using an absolute path for stat-ing the files, when
the "ls -l" was used without explicitly specifying a path.

4 years agolibstand: Clean up dos_readdir() a bit.
Imre Vadász [Mon, 15 Feb 2016 20:32:37 +0000 (21:32 +0100)]
libstand: Clean up dos_readdir() a bit.

4 years agolibstand: Fix readdir for the root directory on a FAT32 file system.
Imre Vadász [Mon, 15 Feb 2016 20:44:20 +0000 (21:44 +0100)]
libstand: Fix readdir for the root directory on a FAT32 file system.

Taken-From: FreeBSD

4 years agoUpdate the pciconf(8) database.
Sascha Wildner [Mon, 15 Feb 2016 09:08:18 +0000 (10:08 +0100)]
Update the pciconf(8) database.

February 6, 2016 snapshot from http://pciids.sourceforge.net/

4 years agodrm/linux: Add two ktime_xxx functions
François Tigeot [Sun, 14 Feb 2016 16:53:48 +0000 (17:53 +0100)]
drm/linux: Add two ktime_xxx functions

4 years agotools/tcp_stream: Fix building on linux
Sepherosa Ziehau [Sun, 14 Feb 2016 12:38:55 +0000 (20:38 +0800)]
tools/tcp_stream: Fix building on linux

And white space clean up.

4 years agokernel/acpi: Use hint.acpi.0.rsdp to get the RSDP table physical address.
Imre Vadász [Thu, 11 Feb 2016 21:58:09 +0000 (22:58 +0100)]
kernel/acpi: Use hint.acpi.0.rsdp to get the RSDP table physical address.

hint.acpi.0.rsdp isn't set by the legacy BIOS bootloader at the moment,
but it will be be used with the EFI bootloader.

4 years agokernel/pc64: Add support for efi memory map parsing. Add sys/sys/efi.h.
Imre Vadasz [Wed, 10 Feb 2016 22:01:03 +0000 (23:01 +0100)]
kernel/pc64: Add support for efi memory map parsing. Add sys/sys/efi.h.

Taken-From: FreeBSD

4 years agoSync ACPICA with Intel's version 20160212.
Sascha Wildner [Sat, 13 Feb 2016 21:31:03 +0000 (22:31 +0100)]
Sync ACPICA with Intel's version 20160212.

* ACPI specification 6.1 support.

* Ensure \_SB_._INI is executed before any _REG methods are executed.

* Reverted a change made in version 20151218 which enabled method
  invocations to be targets of various ASL operators (SuperName and
  Target grammar elements). Also, disallow this in iASL (flagged as
  errors now) in preparation for ACPI 6.2.

* Completed full support for the ACPI 6.0 External() AML opcode.

* In iASL, implemented support for an optional cross-reference
  output file.

For a more detailed list, please see sys/contrib/dev/acpica/changes.txt.

4 years ago<sys/un.h>: Use a standard type for sockaddr_un's sun_len.
Sascha Wildner [Sat, 13 Feb 2016 14:01:14 +0000 (15:01 +0100)]
<sys/un.h>: Use a standard type for sockaddr_un's sun_len.

4 years ago<sys/un.h>: Whitespace adjustments (no functional change).
Sascha Wildner [Sat, 13 Feb 2016 14:00:07 +0000 (15:00 +0100)]
<sys/un.h>: Whitespace adjustments (no functional change).

4 years agolibedit: Restore installation of the editrc(5) manual page.
Sascha Wildner [Sat, 13 Feb 2016 13:59:16 +0000 (14:59 +0100)]
libedit: Restore installation of the editrc(5) manual page.

Removal of manual pages for the library privatization affects only
section 3 manual pages (for the functions in the library which is
now private). editrc.5 describes the ~/.editrc file that has an
effect on all things linked against the privatized edit library
too, so we want to ship documentation for it.

4 years agolibssh: Restore installation of the moduli(5) manual page.
Sascha Wildner [Sat, 13 Feb 2016 13:45:29 +0000 (14:45 +0100)]
libssh: Restore installation of the moduli(5) manual page.

Removal of manual pages for the library privatization affects only
section 3 manual pages (for the functions in the library which is
now private). moduli.5 describes the /etc/ssh/moduli file as we
deliver it in base so its documentation has to be delivered too.

4 years ago<netinet/in.h>: Use standard types.
Sascha Wildner [Sat, 13 Feb 2016 13:38:14 +0000 (14:38 +0100)]
<netinet/in.h>: Use standard types.

4 years ago<netinet/in.h>: Whitespace adjustments (no functional change).
Sascha Wildner [Sat, 13 Feb 2016 13:37:19 +0000 (14:37 +0100)]
<netinet/in.h>: Whitespace adjustments (no functional change).

4 years ago<unistd.h>: Use types which we actually have.
Sascha Wildner [Sat, 13 Feb 2016 09:02:08 +0000 (10:02 +0100)]
<unistd.h>: Use types which we actually have.

This is dead code at the moment because <unistd.h> includes
<sys/types.h>, leading to these types being already defined
at this point. This commit prepares for the day when we
remove <sys/types.h> from all headers which do not actually
need it.

We should probably have __gid_t and __uid_t.

4 years agokqueue/signal: Send kevent even if the signal is masked
Sepherosa Ziehau [Sat, 13 Feb 2016 08:25:33 +0000 (16:25 +0800)]
kqueue/signal: Send kevent even if the signal is masked

This kinda follows FreeBSD's signal kqueue filter semantic, though
FreeBSD seems to send kevent even if no pending signal will be
rendered.

Reported-by: ftigeot@
Tested-by: ftigeot@
4 years agokqueue: Rework timer expiration
Sepherosa Ziehau [Fri, 12 Feb 2016 12:46:59 +0000 (20:46 +0800)]
kqueue: Rework timer expiration

So that a being processed timer knote will not be activated.

While I'm here, factor out function to reset timer knote callout.

4 years agokqueue: Remove unused global kqueue token
Sepherosa Ziehau [Fri, 12 Feb 2016 11:46:30 +0000 (19:46 +0800)]
kqueue: Remove unused global kqueue token

4 years agoUnbreak VKERNEL64 build.
zrj [Fri, 12 Feb 2016 10:53:06 +0000 (12:53 +0200)]
Unbreak VKERNEL64 build.

After a05cac6 removal of MAKEBOOTDEV and B_ flags from sys/reboot.h
(that is not the place for such things) I broken the VKERNEL64 build.

This is a quick fix before someone with basic motoric functions
and a heart beat will take a better look (I lack the latter).

Not sure if disabling FFS_ROOT breaks anything, but it is better
than having build errors on vkernel/x86_64/autoconf.c

Also it gave me an oportunity to finally go through procedure
described in vkernel(7) to test it out for the first time!
So far no side effects on both X86_64_NON_GENERIC and VKERNEL64
except for no longer printed "no B_DEVMAGIC (bootdev=0)" in dmesg.

I should have guarded MAKEBOOTDEV and B_ flags with __i386__ in
sys/platform/pc64/include/bootinfo.h cause there is no platform/pc32
and I'm pretty sure thats a i386 thing only.

4 years agoifconfig: Fix inet6 address deletion
Sepherosa Ziehau [Fri, 12 Feb 2016 10:54:52 +0000 (18:54 +0800)]
ifconfig: Fix inet6 address deletion

Submitted-by: ygrossel
Dragonfly-bug: http://bugs.dragonflybsd.org/issues/2888

4 years agolibstand: Change sbrk() in libstand to take an intptr_t like libc's.
Sascha Wildner [Wed, 10 Feb 2016 20:58:11 +0000 (21:58 +0100)]
libstand: Change sbrk() in libstand to take an intptr_t like libc's.

4 years agosys/boot: Simplify MAKEBOOTDEV macro
zrj [Wed, 10 Feb 2016 13:44:40 +0000 (15:44 +0200)]
sys/boot: Simplify MAKEBOOTDEV macro

Treat slice as a single part of bootdev.
Previous implementation artificially slit it into
adaptor and controller fields.

No functional change intended.
Taken-from: FreeBSD

4 years agolibstand: Add dos_readdir() function, to make ls work on Fat Filesystems.
Imre Vadász [Tue, 9 Feb 2016 21:25:11 +0000 (22:25 +0100)]
libstand: Add dos_readdir() function, to make ls work on Fat Filesystems.

Taken-From: FreeBSD

4 years agolibstand: Spin the twiddle in dosfs to give visual feedback for disk I/O.
Imre Vadász [Tue, 9 Feb 2016 18:50:51 +0000 (19:50 +0100)]
libstand: Spin the twiddle in dosfs to give visual feedback for disk I/O.

Taken-From: FreeBSD

4 years agogpt.h: Add few more GPT GUIDs
zrj [Wed, 10 Feb 2016 12:28:32 +0000 (14:28 +0200)]
gpt.h: Add few more GPT GUIDs

While there, add few GPT_ENT_ATTR_BOOT attributes,
that will be used by boot-loader.

Taken-from: FreeBSD

4 years agodocs: Move trek(6) USD papers into share/doc
zrj [Thu, 28 Jan 2016 17:01:10 +0000 (19:01 +0200)]
docs: Move trek(6) USD papers into share/doc

4 years agodocs: Move rogue(6) USD papers into share/doc
zrj [Thu, 28 Jan 2016 16:59:08 +0000 (18:59 +0200)]
docs: Move rogue(6) USD papers into share/doc

4 years agodocs: Move rsc(1) PSD papers into share/doc
zrj [Thu, 28 Jan 2016 16:56:38 +0000 (18:56 +0200)]
docs: Move rsc(1) PSD papers into share/doc

4 years agodocs: Use -Thtml to generate papers.
zrj [Thu, 28 Jan 2016 16:40:45 +0000 (18:40 +0200)]
docs: Use -Thtml to generate papers.

unroff doesn't work.

There is some issues with png generation and cleanup.

4 years agodocs: Partially sync bsd.docs.mk with FreeBSD
zrj [Thu, 28 Jan 2016 16:14:52 +0000 (18:14 +0200)]
docs: Partially sync bsd.docs.mk with FreeBSD

Keep NODOCOMPRESS variant instead of WITHOUT_DOCCOMPRESS

4 years agodocs: Sync SMM/PSD/USD papers with FreeBSD
zrj [Thu, 28 Jan 2016 15:52:34 +0000 (17:52 +0200)]
docs: Sync SMM/PSD/USD papers with FreeBSD