]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
3 years agoacpi: Ensure that adjacent memory affinity table entries are coalesced
Mark Johnston [Fri, 18 Dec 2020 16:04:48 +0000 (16:04 +0000)]
acpi: Ensure that adjacent memory affinity table entries are coalesced

The SRAT may contain multiple distinct entries that together describe a
contiguous region of physical memory.  In this case we were not
coalescing the corresponding entries in the memory affinity table, which
led to fragmented phys_avail[] entries.  Since r338431 the vm_phys_segs[]
entries derived from phys_avail[] will be coalesced, resulting in a
situation where vm_phys_segs[] entries do not have a covering
phys_avail[] entry.  vm_page_startup() will not add such segments to the
physical memory allocator, leaving them unused.

Reported by: Don Morris <dgmorris@earthlink.net>
Reviewed by: kib, vangyzen
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D27620

3 years agoFix the ipfw service status output when ipfw.ko isn't loaded
markj [Fri, 18 Dec 2020 16:02:28 +0000 (16:02 +0000)]
Fix the ipfw service status output when ipfw.ko isn't loaded

Reported by: lme
Reviewed by: lme
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D27657

3 years agoFix the ipfw service status output when ipfw.ko isn't loaded
Mark Johnston [Fri, 18 Dec 2020 16:02:28 +0000 (16:02 +0000)]
Fix the ipfw service status output when ipfw.ko isn't loaded

Reported by: lme
Reviewed by: lme
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D27657

3 years agovirtio_mmio: Fix feature negotiation copy-paste issue in r361943
jrtc27 [Fri, 18 Dec 2020 15:07:14 +0000 (15:07 +0000)]
virtio_mmio: Fix feature negotiation copy-paste issue in r361943

This caused us to write to the low half of the feature word twice, once with
the high bits and once with the low bits. Common legacy device implementations
seem to be fairly lenient about being able to write to the feature bits
multiple times, but Arm's models use a stricter implementation that will ignore
the second write. This fixes using vtnet(4) on those models.

Reported by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Pointy hat: jrtc27

3 years agovirtio_mmio: Fix feature negotiation copy-paste issue in r361943
Jessica Clarke [Fri, 18 Dec 2020 15:07:14 +0000 (15:07 +0000)]
virtio_mmio: Fix feature negotiation copy-paste issue in r361943

This caused us to write to the low half of the feature word twice, once with
the high bits and once with the low bits. Common legacy device implementations
seem to be fairly lenient about being able to write to the feature bits
multiple times, but Arm's models use a stricter implementation that will ignore
the second write. This fixes using vtnet(4) on those models.

Reported by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Pointy hat: jrtc27

3 years agoFix abort in jemalloc extent coalescing.
mw [Fri, 18 Dec 2020 10:09:21 +0000 (10:09 +0000)]
Fix abort in jemalloc extent coalescing.

Fix error in extent_try_coalesce_impl(), which could cause abort
to happen when trying to coalesce extents backwards. The error could
happen because of how extent_before_get() function works. This function
gets address of previous extent, by subtracting page size from current
extent address. If current extent is located at PAGE_SIZE offset, this
address resolved to 0x0000. An assertion in rtree_leaf_elm_lookup
then caused the running program to abort.

This problem was discovered when trying to build world on 32-bit
machines with ASLR and PIE enabled. The problem was encountered
on armv7 and i386 machines, but most likely other 32-bit
architectures are affected as well.

While this patch fixes one problem with buildworld on 32-bit platforms
with ASLR, the build still fails, however it happens much later
and due to lack of memory.

The change is aligned with accepted fix in the upstream Jemalloc
repository (https://github.com/jemalloc/jemalloc/pull/1973).
As it doesn't apply on top of Jemalloc tree, its updated version
was eventually merged: https://github.com/jemalloc/jemalloc/pull/2003

PR: 249937
Submitted by: Dawid Gorecki <dgr@semihalf.com>
Obtained from: Semihalf
Sponsored by: Stormshield
Differential Revision: https://reviews.freebsd.org/D27025

3 years agoFix abort in jemalloc extent coalescing.
Marcin Wojtas [Fri, 18 Dec 2020 10:09:21 +0000 (10:09 +0000)]
Fix abort in jemalloc extent coalescing.

Fix error in extent_try_coalesce_impl(), which could cause abort
to happen when trying to coalesce extents backwards. The error could
happen because of how extent_before_get() function works. This function
gets address of previous extent, by subtracting page size from current
extent address. If current extent is located at PAGE_SIZE offset, this
address resolved to 0x0000. An assertion in rtree_leaf_elm_lookup
then caused the running program to abort.

This problem was discovered when trying to build world on 32-bit
machines with ASLR and PIE enabled. The problem was encountered
on armv7 and i386 machines, but most likely other 32-bit
architectures are affected as well.

While this patch fixes one problem with buildworld on 32-bit platforms
with ASLR, the build still fails, however it happens much later
and due to lack of memory.

The change is aligned with accepted fix in the upstream Jemalloc
repository (https://github.com/jemalloc/jemalloc/pull/1973).
As it doesn't apply on top of Jemalloc tree, its updated version
was eventually merged: https://github.com/jemalloc/jemalloc/pull/2003

PR: 249937
Submitted by: Dawid Gorecki <dgr@semihalf.com>
Obtained from: Semihalf
Sponsored by: Stormshield
Differential Revision: https://reviews.freebsd.org/D27025

3 years agotools/tools/locale: fix static-colldef
yuripv [Fri, 18 Dec 2020 08:43:06 +0000 (08:43 +0000)]
tools/tools/locale: fix static-colldef

3 years agotools/tools/locale: fix static-colldef
Yuri Pankov [Fri, 18 Dec 2020 08:43:06 +0000 (08:43 +0000)]
tools/tools/locale: fix static-colldef

3 years agoMFV r368746:
delphij [Fri, 18 Dec 2020 04:23:20 +0000 (04:23 +0000)]
MFV r368746:

Apply upstream fix 08968baec1122a58bb90d8f97ad948a75f8a5d69:

Fix error cases when udp-connect is set and send() returns an error

Obtained from: unbound git
MFC after: 3 days

3 years agoMFV r368746:
Xin LI [Fri, 18 Dec 2020 04:23:20 +0000 (04:23 +0000)]
MFV r368746:

Apply upstream fix 08968baec1122a58bb90d8f97ad948a75f8a5d69:

Fix error cases when udp-connect is set and send() returns an error

Obtained from: unbound git
MFC after: 3 days

3 years agotools/tools/locale: install generated files in current src checkout
yuripv [Fri, 18 Dec 2020 04:01:05 +0000 (04:01 +0000)]
tools/tools/locale: install generated files in current src checkout

3 years agotools/tools/locale: install generated files in current src checkout
Yuri Pankov [Fri, 18 Dec 2020 04:01:05 +0000 (04:01 +0000)]
tools/tools/locale: install generated files in current src checkout

3 years agopci_iov: When pci_iov_detach(9) is called, destroy VF children
kib [Fri, 18 Dec 2020 03:46:50 +0000 (03:46 +0000)]
pci_iov: When pci_iov_detach(9) is called, destroy VF children

instead of bailing out with EBUSY if there are any.

If driver module is unloaded, or just device is forcibly detached from
the driver, there is no way for driver to correctly unload otherwise.
Esp. if there are resources dedicated to the VFs which prevent turning
down other resources.

Reviewed by: jhb
Sponsored by: Mellanox Technologies / NVidia Networking
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D27615

3 years agopci_iov: When pci_iov_detach(9) is called, destroy VF children
Konstantin Belousov [Fri, 18 Dec 2020 03:46:50 +0000 (03:46 +0000)]
pci_iov: When pci_iov_detach(9) is called, destroy VF children

instead of bailing out with EBUSY if there are any.

If driver module is unloaded, or just device is forcibly detached from
the driver, there is no way for driver to correctly unload otherwise.
Esp. if there are resources dedicated to the VFs which prevent turning
down other resources.

Reviewed by: jhb
Sponsored by: Mellanox Technologies / NVidia Networking
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D27615

3 years agoFix issues with various VNC clients.
grehan [Fri, 18 Dec 2020 00:38:48 +0000 (00:38 +0000)]
Fix issues with various VNC clients.

- support VNC version 3.3 (macos "Screen Sharing" builtin client)
- wait until client has requested an update prior to sending framebuffer data
- don't send an update if no framebuffer updates detected
- increase framebuffer poll frequency to 30Hz, and double that when
  kbd/mouse input detected
- zero uninitialized array elements in rfb_send_server_init_msg()
- fix overly large allocation in rfb_init()
- use atomics for flags shared between input and output threads
- use #defines for constants

 This work was contributed by Marko Kiiskila, with reuse of some earlier
work by Henrik Gulbrandsen.

Clients tested :
FreeBSD-current
 - tightvnc
 - tigervnc
 - krdc
 - vinagre

Linux (Ubuntu)
 - krdc
 - vinagre
 - tigervnc
 - xtightvncviewer
 - remmina

MacOS
 - VNC Viewer
 - TigerVNC
 - Screen Sharing (builtin client)

Windows 10
 - Tiger VNC
 - VNC Viewer (cursor lag)
 - UltraVNC (cursor lag)

o/s independent
 - noVNC (browser) using websockify relay

PR: 250795
Submitted by: Marko Kiiskila <marko@apache.org>
Reviewed by: jhb (bhyve)
MFC after: 3 weeks
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D27605

3 years agoFix issues with various VNC clients.
Peter Grehan [Fri, 18 Dec 2020 00:38:48 +0000 (00:38 +0000)]
Fix issues with various VNC clients.

- support VNC version 3.3 (macos "Screen Sharing" builtin client)
- wait until client has requested an update prior to sending framebuffer data
- don't send an update if no framebuffer updates detected
- increase framebuffer poll frequency to 30Hz, and double that when
  kbd/mouse input detected
- zero uninitialized array elements in rfb_send_server_init_msg()
- fix overly large allocation in rfb_init()
- use atomics for flags shared between input and output threads
- use #defines for constants

 This work was contributed by Marko Kiiskila, with reuse of some earlier
work by Henrik Gulbrandsen.

Clients tested :
FreeBSD-current
 - tightvnc
 - tigervnc
 - krdc
 - vinagre

Linux (Ubuntu)
 - krdc
 - vinagre
 - tigervnc
 - xtightvncviewer
 - remmina

MacOS
 - VNC Viewer
 - TigerVNC
 - Screen Sharing (builtin client)

Windows 10
 - Tiger VNC
 - VNC Viewer (cursor lag)
 - UltraVNC (cursor lag)

o/s independent
 - noVNC (browser) using websockify relay

PR: 250795
Submitted by: Marko Kiiskila <marko@apache.org>
Reviewed by: jhb (bhyve)
MFC after: 3 weeks
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D27605

3 years agoApply upstream fix 08968baec1122a58bb90d8f97ad948a75f8a5d69:
Xin LI [Thu, 17 Dec 2020 23:35:18 +0000 (23:35 +0000)]
Apply upstream fix 08968baec1122a58bb90d8f97ad948a75f8a5d69:

Fix error cases when udp-connect is set and send() returns an error

Approved by: git-admin (uqs)

3 years agoice: quiet -Wredundant-decls
rlibby [Thu, 17 Dec 2020 22:53:45 +0000 (22:53 +0000)]
ice: quiet -Wredundant-decls

Reapply r364240 after driver update in r365617.

Reviewed by: lwhsu
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D27561

3 years agoice: quiet -Wredundant-decls
Ryan Libby [Thu, 17 Dec 2020 22:53:45 +0000 (22:53 +0000)]
ice: quiet -Wredundant-decls

Reapply r364240 after driver update in r365617.

Reviewed by: lwhsu
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D27561

3 years agoVFS_QUOTACTL: Remove needless casts of arg
brooks [Thu, 17 Dec 2020 21:58:10 +0000 (21:58 +0000)]
VFS_QUOTACTL: Remove needless casts of arg

The argument is a void * so there's no need to cast it to caddr_t.

Update documentation to match function decleration.

Reviewed by: freqlabs
Obtained from: CheriBSD
MFC after: 1 week
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27093

3 years agoVFS_QUOTACTL: Remove needless casts of arg
Brooks Davis [Thu, 17 Dec 2020 21:58:10 +0000 (21:58 +0000)]
VFS_QUOTACTL: Remove needless casts of arg

The argument is a void * so there's no need to cast it to caddr_t.

Update documentation to match function decleration.

Reviewed by: freqlabs
Obtained from: CheriBSD
MFC after: 1 week
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27093

3 years agonet tests: Re-enable most if_clone tests
kp [Thu, 17 Dec 2020 21:54:25 +0000 (21:54 +0000)]
net tests: Re-enable most if_clone tests

All but one of these (tap_ipv6_up_stress) currently pass, so we should enable
them so we don't regress.

3 years agonet tests: Re-enable most if_clone tests
Kristof Provost [Thu, 17 Dec 2020 21:54:25 +0000 (21:54 +0000)]
net tests: Re-enable most if_clone tests

All but one of these (tap_ipv6_up_stress) currently pass, so we should enable
them so we don't regress.

3 years agoFix f_pkt_into_t typo.
mav [Thu, 17 Dec 2020 21:02:58 +0000 (21:02 +0000)]
Fix f_pkt_into_t typo.

MFC after: 1 week

3 years agoFix f_pkt_into_t typo.
Alexander Motin [Thu, 17 Dec 2020 21:02:58 +0000 (21:02 +0000)]
Fix f_pkt_into_t typo.

MFC after: 1 week

3 years agoUse __containerof() instead of home-rolled versions.
jhb [Thu, 17 Dec 2020 20:45:10 +0000 (20:45 +0000)]
Use __containerof() instead of home-rolled versions.

Reviewed by: imp, hselasky
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27582

3 years agoUse __containerof() instead of home-rolled versions.
John Baldwin [Thu, 17 Dec 2020 20:45:10 +0000 (20:45 +0000)]
Use __containerof() instead of home-rolled versions.

Reviewed by: imp, hselasky
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27582

3 years agoDescribe the commit message template our git hook script produces
emaste [Thu, 17 Dec 2020 20:31:45 +0000 (20:31 +0000)]
Describe the commit message template our git hook script produces

Reported by: rpokala

3 years agoDescribe the commit message template our git hook script produces
Ed Maste [Thu, 17 Dec 2020 20:31:45 +0000 (20:31 +0000)]
Describe the commit message template our git hook script produces

Reported by: rpokala

3 years agoUse a template assembly file for firmware object files.
jhb [Thu, 17 Dec 2020 20:31:17 +0000 (20:31 +0000)]
Use a template assembly file for firmware object files.

Similar to r366897, this uses the .incbin directive to pull in a
firmware file's contents into a .fwo file.  The same scheme for
computing symbol names from the filename is used as before to maximize
compatiblity and not require rebuilding existing .fwo files for
NO_CLEAN builds.  Using ld -o binary requires extra hacks in linkers
to either specify ABI options (e.g. soft- vs hard-float) or to ignore
ABI incompatiblities when linking certain objects (e.g.  object files
with only data).  Using the compiler driver avoids the need for these
hacks as the compiler driver is able to set all the appropriate ABI
options.

Reviewed by: imp, markj
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27579

3 years agoUse a template assembly file for firmware object files.
John Baldwin [Thu, 17 Dec 2020 20:31:17 +0000 (20:31 +0000)]
Use a template assembly file for firmware object files.

Similar to r366897, this uses the .incbin directive to pull in a
firmware file's contents into a .fwo file.  The same scheme for
computing symbol names from the filename is used as before to maximize
compatiblity and not require rebuilding existing .fwo files for
NO_CLEAN builds.  Using ld -o binary requires extra hacks in linkers
to either specify ABI options (e.g. soft- vs hard-float) or to ignore
ABI incompatiblities when linking certain objects (e.g.  object files
with only data).  Using the compiler driver avoids the need for these
hacks as the compiler driver is able to set all the appropriate ABI
options.

Reviewed by: imp, markj
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27579

3 years agoCleanups to *ERR* compat shims.
jhb [Thu, 17 Dec 2020 20:28:53 +0000 (20:28 +0000)]
Cleanups to *ERR* compat shims.

- Use [u]intptr_t casts to convert pointers to integers.

- Change IS_ERR* to return bool instead of long.

Reviewed by: manu
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27577

3 years agoCleanups to *ERR* compat shims.
John Baldwin [Thu, 17 Dec 2020 20:28:53 +0000 (20:28 +0000)]
Cleanups to *ERR* compat shims.

- Use [u]intptr_t casts to convert pointers to integers.

- Change IS_ERR* to return bool instead of long.

Reviewed by: manu
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27577

3 years agochmod +x the git commit message prep hook
emaste [Thu, 17 Dec 2020 20:11:31 +0000 (20:11 +0000)]
chmod +x the git commit message prep hook

3 years agochmod +x the git commit message prep hook
Ed Maste [Thu, 17 Dec 2020 20:11:31 +0000 (20:11 +0000)]
chmod +x the git commit message prep hook

3 years agoAdd initial version of git commit message preparation hook
emaste [Thu, 17 Dec 2020 19:58:29 +0000 (19:58 +0000)]
Add initial version of git commit message preparation hook

Start with a slightly modified version of the SVN commit template, to
allow developers to experiment.  This will be updated in the future as
our process and techniques evolve.

This can be installed by copying or symlinking into the .git/hooks/
directory.

Feedback from: cem, jhb
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D27633

3 years agoAdd initial version of git commit message preparation hook
Ed Maste [Thu, 17 Dec 2020 19:58:29 +0000 (19:58 +0000)]
Add initial version of git commit message preparation hook

Start with a slightly modified version of the SVN commit template, to
allow developers to experiment.  This will be updated in the future as
our process and techniques evolve.

This can be installed by copying or symlinking into the .git/hooks/
directory.

Feedback from: cem, jhb
Reviewed by: imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D27633

3 years agoFix a race in tty_signal_sessleader() with unlocked read of s_leader.
kib [Thu, 17 Dec 2020 19:51:39 +0000 (19:51 +0000)]
Fix a race in tty_signal_sessleader() with unlocked read of s_leader.

Since we do not own the session lock, a parallel killjobc() might
reset s_leader to NULL after we checked it.  Read s_leader only once
and ensure that compiler is not allowed to reload.

While there, make access to t_session somewhat more pretty by using
local variable.

PR: 251915
Submitted by: Jakub Piecuch <j.piecuch96@gmail.com>
MFC after: 1 week

3 years agoFix a race in tty_signal_sessleader() with unlocked read of s_leader.
Konstantin Belousov [Thu, 17 Dec 2020 19:51:39 +0000 (19:51 +0000)]
Fix a race in tty_signal_sessleader() with unlocked read of s_leader.

Since we do not own the session lock, a parallel killjobc() might
reset s_leader to NULL after we checked it.  Read s_leader only once
and ensure that compiler is not allowed to reload.

While there, make access to t_session somewhat more pretty by using
local variable.

PR: 251915
Submitted by: Jakub Piecuch <j.piecuch96@gmail.com>
MFC after: 1 week

3 years agoUpdate the unbound version number from r368478.
cy [Thu, 17 Dec 2020 19:50:41 +0000 (19:50 +0000)]
Update the unbound version number from r368478.

Updating the version number is an extra manual step.

Pointy hat to: cy
Reported by: Herbert J. Skuhra <herbert _ gojira.at>
MFC after: 3 days

3 years agoUpdate the unbound version number from r368478.
Cy Schubert [Thu, 17 Dec 2020 19:50:41 +0000 (19:50 +0000)]
Update the unbound version number from r368478.

Updating the version number is an extra manual step.

Pointy hat to: cy
Reported by: Herbert J. Skuhra <herbert _ gojira.at>
MFC after: 3 days

3 years agofd: reimplement close_range to avoid spurious relocking
mjg [Thu, 17 Dec 2020 18:52:30 +0000 (18:52 +0000)]
fd: reimplement close_range to avoid spurious relocking

3 years agofd: reimplement close_range to avoid spurious relocking
Mateusz Guzik [Thu, 17 Dec 2020 18:52:30 +0000 (18:52 +0000)]
fd: reimplement close_range to avoid spurious relocking

3 years agoaudit: rework AUDIT_SYSCLOSE
mjg [Thu, 17 Dec 2020 18:52:04 +0000 (18:52 +0000)]
audit: rework AUDIT_SYSCLOSE

This in particular avoids spurious lookups on close.

3 years agoaudit: rework AUDIT_SYSCLOSE
Mateusz Guzik [Thu, 17 Dec 2020 18:52:04 +0000 (18:52 +0000)]
audit: rework AUDIT_SYSCLOSE

This in particular avoids spurious lookups on close.

3 years agofd: refactor closefp in preparation for close_range rework
mjg [Thu, 17 Dec 2020 18:51:09 +0000 (18:51 +0000)]
fd: refactor closefp in preparation for close_range rework

3 years agofd: refactor closefp in preparation for close_range rework
Mateusz Guzik [Thu, 17 Dec 2020 18:51:09 +0000 (18:51 +0000)]
fd: refactor closefp in preparation for close_range rework

3 years agolualoader: fix lua-lint run
kevans [Thu, 17 Dec 2020 18:29:30 +0000 (18:29 +0000)]
lualoader: fix lua-lint run

luacheck rightfully complains that i is unused in the show-module-options
loop at the end (it was used for some debugging in the process).

We've added a new pager module that's compiled in, so declare that as an
acceptable global.

3 years agolualoader: fix lua-lint run
Kyle Evans [Thu, 17 Dec 2020 18:29:30 +0000 (18:29 +0000)]
lualoader: fix lua-lint run

luacheck rightfully complains that i is unused in the show-module-options
loop at the end (it was used for some debugging in the process).

We've added a new pager module that's compiled in, so declare that as an
acceptable global.

3 years agolualoader: cli: provide a show-module-options loader command
kevans [Thu, 17 Dec 2020 18:24:36 +0000 (18:24 +0000)]
lualoader: cli: provide a show-module-options loader command

This effectively dumps everything lualoader knows about to the console using
the libsa pager; that particular lua interface was added in r368591.

A pager stub implementation has been added that just dumps the output as-is
as a compat shim for older loader binaries that do not have lpager. This
stub should be moved into a more appropriate .lua file if we add anything
else that needs the pager.

3 years agolualoader: cli: provide a show-module-options loader command
Kyle Evans [Thu, 17 Dec 2020 18:24:36 +0000 (18:24 +0000)]
lualoader: cli: provide a show-module-options loader command

This effectively dumps everything lualoader knows about to the console using
the libsa pager; that particular lua interface was added in r368591.

A pager stub implementation has been added that just dumps the output as-is
as a compat shim for older loader binaries that do not have lpager. This
stub should be moved into a more appropriate .lua file if we add anything
else that needs the pager.

3 years ago[ng_socket] Don't take the SOCKBUF_LOCK() twice in the RX data path.
afedorov [Thu, 17 Dec 2020 18:15:07 +0000 (18:15 +0000)]
[ng_socket] Don't take the SOCKBUF_LOCK() twice in the RX data path.

This is just a minor optimization, but it's sensitive. This gives an improvement of 30-50 kpps.

Reviewed by: kp, markj, glebius, lutz_donnerhacke.de
Approved by: vmaffione (mentor)
Sponsored by: vstack.com
Differential Revision: https://reviews.freebsd.org/D27382

3 years ago[ng_socket] Don't take the SOCKBUF_LOCK() twice in the RX data path.
Aleksandr Fedorov [Thu, 17 Dec 2020 18:15:07 +0000 (18:15 +0000)]
[ng_socket] Don't take the SOCKBUF_LOCK() twice in the RX data path.

This is just a minor optimization, but it's sensitive. This gives an improvement of 30-50 kpps.

Reviewed by: kp, markj, glebius, lutz_donnerhacke.de
Approved by: vmaffione (mentor)
Sponsored by: vstack.com
Differential Revision: https://reviews.freebsd.org/D27382

3 years agoAdd IRQ resource to SPIBUS
manu [Thu, 17 Dec 2020 17:11:14 +0000 (17:11 +0000)]
Add IRQ resource to SPIBUS

Add capability to SPIBUS to have child device with IRQ.
For example many ADC chip have a dedicated pin to signal "data ready"
and the host can just wait for a interrupt to go out and read the result.

It is the same code as in R282674 and R282702 for IICBUS by Michal Meloun

Submitted by: Oskar Holmund <oskar.holmlund@ohdata.se>
Differential Revision: https://reviews.freebsd.org/D27396

3 years agoAdd IRQ resource to SPIBUS
Emmanuel Vadot [Thu, 17 Dec 2020 17:11:14 +0000 (17:11 +0000)]
Add IRQ resource to SPIBUS

Add capability to SPIBUS to have child device with IRQ.
For example many ADC chip have a dedicated pin to signal "data ready"
and the host can just wait for a interrupt to go out and read the result.

It is the same code as in R282674 and R282702 for IICBUS by Michal Meloun

Submitted by: Oskar Holmund <oskar.holmlund@ohdata.se>
Differential Revision: https://reviews.freebsd.org/D27396

3 years agoarm: Remove samsung exnynos port
manu [Thu, 17 Dec 2020 17:09:43 +0000 (17:09 +0000)]
arm: Remove samsung exnynos port

Remove the exynos SoC support, this haven't been updated in a while,
isn't present in GENERIC and nobody is motivated to resurect it.

Differential Revision: https://reviews.freebsd.org/D24444

3 years agoarm: Remove samsung exnynos port
Emmanuel Vadot [Thu, 17 Dec 2020 17:09:43 +0000 (17:09 +0000)]
arm: Remove samsung exnynos port

Remove the exynos SoC support, this haven't been updated in a while,
isn't present in GENERIC and nobody is motivated to resurect it.

Differential Revision: https://reviews.freebsd.org/D24444

3 years agoChange POSIX compliance level for visibility of strerror_l(3).
kib [Thu, 17 Dec 2020 17:08:25 +0000 (17:08 +0000)]
Change POSIX compliance level for visibility of strerror_l(3).

Third-party code tests for strerror_l(3) without specifying
_POSIX_SOURCE, and then expects that the function is prototyped with
_POSIX_SOURCE set to 200112.

Reported and tested by: antoine
Sponsored by: The FreeBSD Foundation
MFC after: 13 days

3 years agoChange POSIX compliance level for visibility of strerror_l(3).
Konstantin Belousov [Thu, 17 Dec 2020 17:08:25 +0000 (17:08 +0000)]
Change POSIX compliance level for visibility of strerror_l(3).

Third-party code tests for strerror_l(3) without specifying
_POSIX_SOURCE, and then expects that the function is prototyped with
_POSIX_SOURCE set to 200112.

Reported and tested by: antoine
Sponsored by: The FreeBSD Foundation
MFC after: 13 days

3 years agokyua: Only install examples if requested
manu [Thu, 17 Dec 2020 17:06:57 +0000 (17:06 +0000)]
kyua: Only install examples if requested

Reviewed by: brooks
Differential Revision: https://reviews.freebsd.org/D27638

3 years agokyua: Only install examples if requested
Emmanuel Vadot [Thu, 17 Dec 2020 17:06:57 +0000 (17:06 +0000)]
kyua: Only install examples if requested

Reviewed by: brooks
Differential Revision: https://reviews.freebsd.org/D27638

3 years agoDrop EFI_STAGING_SIZE back down to 64M
imp [Thu, 17 Dec 2020 17:02:09 +0000 (17:02 +0000)]
Drop EFI_STAGING_SIZE back down to 64M

vmware can't cope with anything larger than 64MB. Drop this back to
64MB everywhere but arm.

PR: 251866
MFC After: 1 week

3 years agoDrop EFI_STAGING_SIZE back down to 64M
Warner Losh [Thu, 17 Dec 2020 17:02:09 +0000 (17:02 +0000)]
Drop EFI_STAGING_SIZE back down to 64M

vmware can't cope with anything larger than 64MB. Drop this back to
64MB everywhere but arm.

PR: 251866
MFC After: 1 week

3 years ago[bhyve] virtio-net: Do not allow receiving packets until features have been negotiated.
afedorov [Thu, 17 Dec 2020 16:52:40 +0000 (16:52 +0000)]
[bhyve] virtio-net: Do not allow receiving packets until features have been negotiated.

Enforce the requirement that the RX callback cannot be called after a reset until the features have been negotiated.
This fixes a race condition where the receive callback is called during a device reset.

Reviewed by: vmaffione, grehan
Approved by: vmaffione (mentor)
Sponsored by: vstack.com
Differential Revision: https://reviews.freebsd.org/D27381

3 years ago[bhyve] virtio-net: Do not allow receiving packets until features have been negotiated.
Aleksandr Fedorov [Thu, 17 Dec 2020 16:52:40 +0000 (16:52 +0000)]
[bhyve] virtio-net: Do not allow receiving packets until features have been negotiated.

Enforce the requirement that the RX callback cannot be called after a reset until the features have been negotiated.
This fixes a race condition where the receive callback is called during a device reset.

Reviewed by: vmaffione, grehan
Approved by: vmaffione (mentor)
Sponsored by: vstack.com
Differential Revision: https://reviews.freebsd.org/D27381

3 years agobsdinstall: remove VTOC8 partition scheme option
mhorne [Thu, 17 Dec 2020 15:00:19 +0000 (15:00 +0000)]
bsdinstall: remove VTOC8 partition scheme option

Now that sparc64 has been removed, there are no kernels built with
support for the VTOC8 partitioning scheme by default. Remove the option
from the installer, as it is unsupported on all installer images
produced by re@.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D27641

3 years agobsdinstall: remove VTOC8 partition scheme option
Mitchell Horne [Thu, 17 Dec 2020 15:00:19 +0000 (15:00 +0000)]
bsdinstall: remove VTOC8 partition scheme option

Now that sparc64 has been removed, there are no kernels built with
support for the VTOC8 partitioning scheme by default. Remove the option
from the installer, as it is unsupported on all installer images
produced by re@.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D27641

3 years agoMake non-debug kernels installable.
nwhitehorn [Thu, 17 Dec 2020 14:20:36 +0000 (14:20 +0000)]
Make non-debug kernels installable.

Setting DEBUG_FLAGS results in make installkernel trying to install debug
information that doesn't exist if the kernel was built without it.

3 years agoMake non-debug kernels installable.
Nathan Whitehorn [Thu, 17 Dec 2020 14:20:36 +0000 (14:20 +0000)]
Make non-debug kernels installable.

Setting DEBUG_FLAGS results in make installkernel trying to install debug
information that doesn't exist if the kernel was built without it.

3 years agostrerror.3: Add an example for perror()
0mp [Thu, 17 Dec 2020 12:41:47 +0000 (12:41 +0000)]
strerror.3: Add an example for perror()

This is a nice and quick reference.

Reviewed by: jilles, yuripv
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D27623

3 years agostrerror.3: Add an example for perror()
Mateusz Piotrowski [Thu, 17 Dec 2020 12:41:47 +0000 (12:41 +0000)]
strerror.3: Add an example for perror()

This is a nice and quick reference.

Reviewed by: jilles, yuripv
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D27623

3 years agofreebsd-update: unconditionally regenerate passwd/login.conf files
kevans [Thu, 17 Dec 2020 03:42:54 +0000 (03:42 +0000)]
freebsd-update: unconditionally regenerate passwd/login.conf files

The existing logic is nice in theory, but in practice freebsd-update will
not preserve the timestamps on these files. When doing a major upgrade, e.g.
from 12.1-RELEASE -> 12.2-RELEASE, pwd.mkdb et al. appear in the INDEX and
we clobber the timestamp several times in the process of packaging up the
existing system into /var/db/freebsd-update/files and extracting for
comparisons. This leads to these files not getting regenerated when they're
most likely to be needed.

Measures could be taken to preserve timestamps, but it's unclear whether
the complexity and overhead of doing so is really outweighed by the marginal
benefit.

I observed this issue when pkg subsequently failed to install a package that
wanted to add a user, claiming that the user was removed in the process.
bapt@ pointed to this pre-existing bug with freebsd-update as the cause.

PR: 234014, 232921
Reviewed by: bapt, emaste
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D27635

3 years agofreebsd-update: unconditionally regenerate passwd/login.conf files
Kyle Evans [Thu, 17 Dec 2020 03:42:54 +0000 (03:42 +0000)]
freebsd-update: unconditionally regenerate passwd/login.conf files

The existing logic is nice in theory, but in practice freebsd-update will
not preserve the timestamps on these files. When doing a major upgrade, e.g.
from 12.1-RELEASE -> 12.2-RELEASE, pwd.mkdb et al. appear in the INDEX and
we clobber the timestamp several times in the process of packaging up the
existing system into /var/db/freebsd-update/files and extracting for
comparisons. This leads to these files not getting regenerated when they're
most likely to be needed.

Measures could be taken to preserve timestamps, but it's unclear whether
the complexity and overhead of doing so is really outweighed by the marginal
benefit.

I observed this issue when pkg subsequently failed to install a package that
wanted to add a user, claiming that the user was removed in the process.
bapt@ pointed to this pre-existing bug with freebsd-update as the cause.

PR: 234014, 232921
Reviewed by: bapt, emaste
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D27635

3 years ago/etc/services: attempt to bring the database to this century 2/2.
pfg [Thu, 17 Dec 2020 02:54:32 +0000 (02:54 +0000)]
/etc/services: attempt to bring the database to this century 2/2.

This is the final half of splitting r358153 in two, in order to avoid a build
system bugs and being able to merge an earlier change to previous releases.

Add a note to UPDATING to avoid people building from very old systems from
having issues with mergemaster

MFC after: 3 days (only 12-stable)

Differential Revision: https://reviews.freebsd.org/D23621

3 years ago/etc/services: attempt to bring the database to this century 2/2.
Pedro F. Giffuni [Thu, 17 Dec 2020 02:54:32 +0000 (02:54 +0000)]
/etc/services: attempt to bring the database to this century 2/2.

This is the final half of splitting r358153 in two, in order to avoid a build
system bugs and being able to merge an earlier change to previous releases.

Add a note to UPDATING to avoid people building from very old systems from
having issues with mergemaster

MFC after: 3 days (only 12-stable)

Differential Revision: https://reviews.freebsd.org/D23621

3 years agonl_langinfo(3): document recognized item names
yuripv [Thu, 17 Dec 2020 02:33:52 +0000 (02:33 +0000)]
nl_langinfo(3): document recognized item names

While here, remove .Tn macro usage (prompted by mandoc lint).

PR: 251468
Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D27606

3 years agonl_langinfo(3): document recognized item names
Yuri Pankov [Thu, 17 Dec 2020 02:33:52 +0000 (02:33 +0000)]
nl_langinfo(3): document recognized item names

While here, remove .Tn macro usage (prompted by mandoc lint).

PR: 251468
Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D27606

3 years agoMake mountcritremote dependent upon nfscbd.
rmacklem [Thu, 17 Dec 2020 00:20:57 +0000 (00:20 +0000)]
Make mountcritremote dependent upon nfscbd.

Although it is not often needed, the nfscbd(8) should be running when
NFSv4 mounts are done if callback functionality is required.
Callback functionality is required for the NFSv4 server to issue
delegations or pNFS layouts.

This patch adds nfscbd to the mountcritremote's REQUIRED line
to ensure it is started before NFS mounts specified in /etc/fstab
are done.

Reviewed by: 0mp
Differential Revision: https://reviews.freebsd.org/D27506

3 years agoMake mountcritremote dependent upon nfscbd.
Rick Macklem [Thu, 17 Dec 2020 00:20:57 +0000 (00:20 +0000)]
Make mountcritremote dependent upon nfscbd.

Although it is not often needed, the nfscbd(8) should be running when
NFSv4 mounts are done if callback functionality is required.
Callback functionality is required for the NFSv4 server to issue
delegations or pNFS layouts.

This patch adds nfscbd to the mountcritremote's REQUIRED line
to ensure it is started before NFS mounts specified in /etc/fstab
are done.

Reviewed by: 0mp
Differential Revision: https://reviews.freebsd.org/D27506

3 years agonewvers.sh: Speed up git_tree_modified
brooks [Thu, 17 Dec 2020 00:00:21 +0000 (00:00 +0000)]
newvers.sh: Speed up git_tree_modified

We're looking for file content differences, so ask the question of git
more directly. This helps a lot, saving tens of thousands of fork()s,
when the builder and editor see different stat() results (e.g., UIDs),
as they might with containers.

Submitted by: Nathaniel Wesley Filardo <nwf20@cl.cam.ac.uk>
Reviewed by: bdrewery, emaste, imp
Obtained from: CheriBSD
MFC after: 3 days
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27646

3 years agonewvers.sh: Speed up git_tree_modified
Brooks Davis [Thu, 17 Dec 2020 00:00:21 +0000 (00:00 +0000)]
newvers.sh: Speed up git_tree_modified

We're looking for file content differences, so ask the question of git
more directly. This helps a lot, saving tens of thousands of fork()s,
when the builder and editor see different stat() results (e.g., UIDs),
as they might with containers.

Submitted by: Nathaniel Wesley Filardo <nwf20@cl.cam.ac.uk>
Reviewed by: bdrewery, emaste, imp
Obtained from: CheriBSD
MFC after: 3 days
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27646

3 years agoriscv: increase GENERICSD gap
mhorne [Wed, 16 Dec 2020 20:21:56 +0000 (20:21 +0000)]
riscv: increase GENERICSD gap

Leave more room for bootloaders at the beginning of the image. In
particular, the u-boot files for the HiFive Unleashed are ~5MB in size.

3 years agoriscv: increase GENERICSD gap
Mitchell Horne [Wed, 16 Dec 2020 20:21:56 +0000 (20:21 +0000)]
riscv: increase GENERICSD gap

Leave more room for bootloaders at the beginning of the image. In
particular, the u-boot files for the HiFive Unleashed are ~5MB in size.

3 years agoAppend the branch commit count to _SNAP_SUFFIX for development
gjb [Wed, 16 Dec 2020 18:40:49 +0000 (18:40 +0000)]
Append the branch commit count to _SNAP_SUFFIX for development
snapshot builds.

Sponsored by: Rubicon Communications, LLC (netgate.com)

3 years agoAppend the branch commit count to _SNAP_SUFFIX for development
Glen Barber [Wed, 16 Dec 2020 18:40:49 +0000 (18:40 +0000)]
Append the branch commit count to _SNAP_SUFFIX for development
snapshot builds.

Sponsored by: Rubicon Communications, LLC (netgate.com)

3 years agofd: remove redundant saturation check from fget_unlocked_seq
mjg [Wed, 16 Dec 2020 18:01:41 +0000 (18:01 +0000)]
fd: remove redundant saturation check from fget_unlocked_seq

refcount_acquire_if_not_zero returns true on saturation.
The case of 0 is handled by looping again, after which the originally
found pointer will no longer be there.

Noted by: kib

3 years agofd: remove redundant saturation check from fget_unlocked_seq
Mateusz Guzik [Wed, 16 Dec 2020 18:01:41 +0000 (18:01 +0000)]
fd: remove redundant saturation check from fget_unlocked_seq

refcount_acquire_if_not_zero returns true on saturation.
The case of 0 is handled by looping again, after which the originally
found pointer will no longer be there.

Noted by: kib

3 years agoComplete steps 5 and 9 from Committer's guide
otis [Wed, 16 Dec 2020 16:59:52 +0000 (16:59 +0000)]
Complete steps 5 and 9 from Committer's guide

Reviewed by: osa (mentor)
Approved by: osa (mentor)
Differential Revision: https://reviews.freebsd.org/D27632

3 years agoComplete steps 5 and 9 from Committer's guide
Juraj Lutter [Wed, 16 Dec 2020 16:59:52 +0000 (16:59 +0000)]
Complete steps 5 and 9 from Committer's guide

Reviewed by: osa (mentor)
Approved by: osa (mentor)
Differential Revision: https://reviews.freebsd.org/D27632

3 years agoFix whitespace in r368698
jrtc27 [Wed, 16 Dec 2020 14:48:46 +0000 (14:48 +0000)]
Fix whitespace in r368698

MFC with: r368698

3 years agoFix whitespace in r368698
Jessica Clarke [Wed, 16 Dec 2020 14:48:46 +0000 (14:48 +0000)]
Fix whitespace in r368698

MFC with: r368698

3 years agoFix whitespace in comment modified by r368697
jrtc27 [Wed, 16 Dec 2020 14:47:49 +0000 (14:47 +0000)]
Fix whitespace in comment modified by r368697

3 years agoFix whitespace in comment modified by r368697
Jessica Clarke [Wed, 16 Dec 2020 14:47:49 +0000 (14:47 +0000)]
Fix whitespace in comment modified by r368697

3 years agoUse the standard method for localizing of MSI-X table bar.
mmel [Wed, 16 Dec 2020 14:39:24 +0000 (14:39 +0000)]
Use the standard method for localizing of MSI-X table bar.

Current way, hardcoded value plus heuristic is not conform to the PCI(e)
specification and it fails on systems where MSI-X bar is not initialized by
BIOS/ACPI (many arm or arm64 systems for example).
Instead, use the standard PCI(e) capability for determining of
MSIX table bar address.

MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D27265

3 years agoUse the standard method for localizing of MSI-X table bar.
Michal Meloun [Wed, 16 Dec 2020 14:39:24 +0000 (14:39 +0000)]
Use the standard method for localizing of MSI-X table bar.

Current way, hardcoded value plus heuristic is not conform to the PCI(e)
specification and it fails on systems where MSI-X bar is not initialized by
BIOS/ACPI (many arm or arm64 systems for example).
Instead, use the standard PCI(e) capability for determining of
MSIX table bar address.

MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D27265

3 years agoAllocate right number of pages for the bounced buffers crossing the page.
mmel [Wed, 16 Dec 2020 14:36:57 +0000 (14:36 +0000)]
Allocate right number of pages for the bounced buffers crossing the page.

One of the disadvantages of our current busdma code is the fact that
we process the bounced buffer in a page-by-page manner. This means that
the short (subpage) buffer allocated across page boundaries is bounced
to 2 separate pages.

This suboptimal behavior is consistent across all platforms and can be
related to (probably unimplementable or incompatible with bouncing)
BUS_DMA_KEEP_PG_OFFSET flag.

Therefore, allocate one additional page to be fully comply with this
requirement.

Discused with: markj
PR: 251018

3 years agoAllocate right number of pages for the bounced buffers crossing the page.
Michal Meloun [Wed, 16 Dec 2020 14:36:57 +0000 (14:36 +0000)]
Allocate right number of pages for the bounced buffers crossing the page.

One of the disadvantages of our current busdma code is the fact that
we process the bounced buffer in a page-by-page manner. This means that
the short (subpage) buffer allocated across page boundaries is bounced
to 2 separate pages.

This suboptimal behavior is consistent across all platforms and can be
related to (probably unimplementable or incompatible with bouncing)
BUS_DMA_KEEP_PG_OFFSET flag.

Therefore, allocate one additional page to be fully comply with this
requirement.

Discused with: markj
PR: 251018

3 years agoRemove contrib/binutils, unused after r368667
emaste [Wed, 16 Dec 2020 14:01:04 +0000 (14:01 +0000)]
Remove contrib/binutils, unused after r368667

3 years agoRemove contrib/binutils, unused after r368667
Ed Maste [Wed, 16 Dec 2020 14:01:04 +0000 (14:01 +0000)]
Remove contrib/binutils, unused after r368667