|
Revision tags: release/12.4.0, release/13.1.0 |
|
| #
ee30e445 |
| 10-Dec-2021 |
Warner Losh <[email protected]> |
ed: Remove options
ed(4) was removed some time ago, but these options relevant to only it weren't GC'd at the time. Remove them.
Sponsored by: Netflix
(cherry picked from commit 21e22be91aa0d7772
ed: Remove options
ed(4) was removed some time ago, but these options relevant to only it weren't GC'd at the time. Remove them.
Sponsored by: Netflix
(cherry picked from commit 21e22be91aa0d77723f761b014a06f80e25e6291)
show more ...
|
|
Revision tags: release/12.3.0 |
|
| #
50b3d57e |
| 01-Oct-2021 |
Warner Losh <[email protected]> |
nvme: Only reset once on attach.
The FreeBSD nvme driver has reset the nvme controller twice on attach to address a theoretical issue assuring the hardware is in a known state. However, exierence ha
nvme: Only reset once on attach.
The FreeBSD nvme driver has reset the nvme controller twice on attach to address a theoretical issue assuring the hardware is in a known state. However, exierence has shown the second reset is unnecessary and increases the time to boot. Eliminate the second reset. Should there be a situation when you need a second reset (for buggy or at least somewhat out of the mainstream hardware), the hardware option NVME_2X_RESET will restore the old behavior. Document this in nvme(4).
If there's any trouble at all with this, I'll add a sysctl tunable to control it.
Sponsored by: Netflix Reviewed by: cperciva, mav Differential Revision: https://reviews.freebsd.org/D32241
(cherry picked from commit 4b3da659bf62b0f5306b5acee9add41b84361498)
show more ...
|
| #
984b9d89 |
| 04-Dec-2021 |
Florian Walpen <[email protected]> |
MAC/priority module for realtime privilege group
PR: 239125
(cherry picked from commit bf2fa8d9d11c9f2ceff09bacc406876fa37096be)
|
| #
5fdfe78b |
| 10-Aug-2021 |
Mark Johnston <[email protected]> |
conf: Add a KMSAN kernel option
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 30d00832d7733e60f5e030d335c129bfa77dd77a)
|
| #
8b3c771f |
| 13-Apr-2021 |
Mark Johnston <[email protected]> |
Add a KASAN option to the kernel build
LLVM support for enabling KASAN has not yet landed so the option is not yet usable, but hopefully this will change soon.
Reviewed by: imp, andrew Sponsored by
Add a KASAN option to the kernel build
LLVM support for enabling KASAN has not yet landed so the option is not yet usable, but hopefully this will change soon.
Reviewed by: imp, andrew Sponsored by: The FreeBSD Foundation
(cherry picked from commit 01028c736cbcdba079967c787bee1551fc8439aa)
show more ...
|
| #
8e11e8fb |
| 20-Jun-2021 |
Kyle Evans <[email protected]> |
kern: add an option for preserving the early kenv
Some downstream configurations do not store secrets in the early (loader/static) environments and desire a way to preserve these for diagnostic reas
kern: add an option for preserving the early kenv
Some downstream configurations do not store secrets in the early (loader/static) environments and desire a way to preserve these for diagnostic reasons. Provide an option to do so.
(cherry picked from commit 7a129c973b5ba0fa916dfa658d523bec66dbd02d)
show more ...
|
|
Revision tags: release/13.0.0 |
|
| #
5d684701 |
| 18-Feb-2021 |
Konstantin Belousov <[email protected]> |
Delete dead CLUSTERDEBUG config option.
(cherry picked from commit 750ea20d3fb143a95ccf3ff84cfbe86cce9b9cac)
|
| #
a60c5de9 |
| 08-Feb-2021 |
Warner Losh <[email protected]> |
acpi: limit the AMDI0020/AMDI0010 workaround to an option
It appears that production versions of EPYC firmware get the _STA method right for these nodes. In fact, this workaround breaks on productio
acpi: limit the AMDI0020/AMDI0010 workaround to an option
It appears that production versions of EPYC firmware get the _STA method right for these nodes. In fact, this workaround breaks on production hardware by including too many uart nodes. This work around was for pre-release hardware that wound up not having a large deployment. Move this work around to a kernel option since the machines that needed it have been powered off and are difficult to resurrect. Should there be a more significant deployment than is understood, we can restrict it based on smbios strings.
Discussed with: mmacy@, seanc@, jhb@ MFC After: 3 days
(cherry picked from commit 35af933173d516101f4c44af328fbe2d6e587869)
show more ...
|
| #
b62f6dfa |
| 12-Jan-2021 |
Vladimir Kondratyev <[email protected]> |
hid: Replace USBHID_ENABLED kernel config option with loader tunable
usbhid(4) is disabled by default to avoid conflicts with existing USB HID drivers. To enable it place following lines to /boot/lo
hid: Replace USBHID_ENABLED kernel config option with loader tunable
usbhid(4) is disabled by default to avoid conflicts with existing USB HID drivers. To enable it place following lines to /boot/loader.conf:
hw.usb.usbhid.enable=1 usbhid_load="YES"
Suggested by: jhb Reviewed by: hselasky Differential revision: https://reviews.freebsd.org/D28124
show more ...
|
| #
9be6b22d |
| 13-Dec-2020 |
Vladimir Kondratyev <[email protected]> |
hidraw(4): Add HIDRAW_MAKE_UHID_ALIAS kernel option
which installs /dev/uhid# alias to hidraw character device for compatibility with some existing uhid(4) users like Firefox. As side effect it rena
hidraw(4): Add HIDRAW_MAKE_UHID_ALIAS kernel option
which installs /dev/uhid# alias to hidraw character device for compatibility with some existing uhid(4) users like Firefox. As side effect it renames traditional uhid(4) driver to hidraw to make possible using of common unit number allocator.
Requested by: Greg V <greg_unrelenting.technology> Reviewed by: hselasky (as part of D27992)
show more ...
|
|
Revision tags: release/12.2.0 |
|
| #
b93f6bfc |
| 12-Oct-2020 |
Vladimir Kondratyev <[email protected]> |
hid: Port ukbd to HID and attach to build
Reviewed by: hselasky Differential revision: https://reviews.freebsd.org/D27991
|
| #
01f2e864 |
| 08-Oct-2020 |
Vladimir Kondratyev <[email protected]> |
hid: Import usbhid - USB transport backend for HID subsystem.
This change implements hid_if.m methods for HID-over-USB protocol [1].
Also, this change adds USBHID_ENABLED kernel option which change
hid: Import usbhid - USB transport backend for HID subsystem.
This change implements hid_if.m methods for HID-over-USB protocol [1].
Also, this change adds USBHID_ENABLED kernel option which changes device_probe() priority and adds/removes PnP records to prefer usbhid over ums, ukbd, wmt and other USB HID device drivers and vice-versa.
The module is based on uhid(4) driver. It is disabled by default for now due to conflicts with existing USB HID drivers.
[1] https://www.usb.org/sites/default/files/hid1_11.pdf
Reviewed by: hselasky Differential revision: https://reviews.freebsd.org/D27893
show more ...
|
| #
b1f1b07f |
| 06-Oct-2020 |
Vladimir Kondratyev <[email protected]> |
hid: Import iichid - I2C transport backend for HID subsystem
This implements hid_if.m methods for HID-over-I2C protocol [1].
Following kernel options are added:
IICHID_SAMPLING - Enable support fo
hid: Import iichid - I2C transport backend for HID subsystem
This implements hid_if.m methods for HID-over-I2C protocol [1].
Following kernel options are added:
IICHID_SAMPLING - Enable support for a sampling mode as interrupt resource acquisition is not always possible in a case of GPIO interrupts. IICHID_DEBUG - Enable debug output.
The module is based on prior Marc Priggemeyer work (D16698).
[1] http://download.microsoft.com/download/7/d/d/7dd44bb7-2a7a-4505-ac1c-7227d3d96d5b/hid-over-i2c-protocol-spec-v1-0.docx
Differential revision: https://reviews.freebsd.org/D27892
show more ...
|
| #
19758786 |
| 05-Oct-2020 |
Vladimir Kondratyev <[email protected]> |
hid: Import functions and constants required by new subsystem
This does an import of quirk stubs, debugging macros from USB code and numerous usage constants used by dependent drivers.
Besides, thi
hid: Import functions and constants required by new subsystem
This does an import of quirk stubs, debugging macros from USB code and numerous usage constants used by dependent drivers.
Besides, this change renames some functions to get a better matching with userland library and NetBSD/OpenBSD HID code. Namely:
- Old hid_report_size() renamed to hid_report_size_max() - New hid_report_size() calculates size of given report rather than maximum size of all reports. - hid_get_data_unsigned() renamed to hid_get_udata() - hid_put_data_unsigned() renamed to hid_put_udata()
Compat shim functions are provided in usbhid.h to make possible compile of legacy code unmodified after this change.
Reviewed by: manu, hselasky Differential revision: https://reviews.freebsd.org/D27887
show more ...
|
| #
f5baf8bb |
| 25-Dec-2020 |
Alexander V. Chernikov <[email protected]> |
Add modular fib lookup framework.
This change introduces framework that allows to dynamically attach or detach longest prefix match (lpm) lookup algorithms to speed up datapath route tables lookup
Add modular fib lookup framework.
This change introduces framework that allows to dynamically attach or detach longest prefix match (lpm) lookup algorithms to speed up datapath route tables lookups.
Framework takes care of handling initial synchronisation, route subscription, nhop/nhop groups reference and indexing, dataplane attachments and fib instance algorithm setup/teardown. Framework features automatic algorithm selection, allowing for picking the best matching algorithm on-the-fly based on the amount of routes in the routing table.
Currently framework code is guarded under FIB_ALGO config option. An idea is to enable it by default in the next couple of weeks.
The following algorithms are provided by default: IPv4: * bsearch4 (lockless binary search in a special IP array), tailored for small-fib (<16 routes) * radix4_lockless (lockless immutable radix, re-created on every rtable change), tailored for small-fib (<1000 routes) * radix4 (base system radix backend) * dpdk_lpm4 (DPDK DIR24-8-based lookups), lockless datastrucure, optimized for large-fib (D27412) IPv6: * radix6_lockless (lockless immutable radix, re-created on every rtable change), tailed for small-fib (<1000 routes) * radix6 (base system radix backend) * dpdk_lpm6 (DPDK DIR24-8-based lookups), lockless datastrucure, optimized for large-fib (D27412)
Performance changes: Micro benchmarks (I7-7660U, single-core lookups, 2048k dst, code in D27604): IPv4: 8 routes: radix4: ~20mpps radix4_lockless: ~24.8mpps bsearch4: ~69mpps dpdk_lpm4: ~67 mpps 700k routes: radix4_lockless: 3.3mpps dpdk_lpm4: 46mpps
IPv6: 8 routes: radix6_lockless: ~20mpps dpdk_lpm6: ~70mpps 100k routes: radix6_lockless: 13.9mpps dpdk_lpm6: 57mpps
Forwarding benchmarks: + 10-15% IPv4 forwarding performance (small-fib, bsearch4) + 25% IPv4 forwarding performance (full-view, dpdk_lpm4) + 20% IPv6 forwarding performance (full-view, dpdk_lpm6)
Control: Framwork adds the following runtime sysctls:
List algos * net.route.algo.inet.algo_list: bsearch4, radix4_lockless, radix4 * net.route.algo.inet6.algo_list: radix6_lockless, radix6, dpdk_lpm6 Debug level (7=LOG_DEBUG, per-route) net.route.algo.debug_level: 5 Algo selection (currently only for fib 0): net.route.algo.inet.algo: bsearch4 net.route.algo.inet6.algo: radix6_lockless
Support for manually changing algos in non-default fib will be added soon. Some sysctl names will be changed in the near future.
Differential Revision: https://reviews.freebsd.org/D27401
show more ...
|
| #
d1d941c5 |
| 29-Nov-2020 |
Alexander V. Chernikov <[email protected]> |
Remove RADIX_MPATH config option.
ROUTE_MPATH is the new config option controlling new multipath routing implementation. Remove the last pieces of RADIX_MPATH-related code and the config option.
Remove RADIX_MPATH config option.
ROUTE_MPATH is the new config option controlling new multipath routing implementation. Remove the last pieces of RADIX_MPATH-related code and the config option.
Reviewed by: glebius Differential Revision: https://reviews.freebsd.org/D27244
show more ...
|
| #
cd853791 |
| 28-Nov-2020 |
Konstantin Belousov <[email protected]> |
Make MAXPHYS tunable. Bump MAXPHYS to 1M.
Replace MAXPHYS by runtime variable maxphys. It is initialized from MAXPHYS by default, but can be also adjusted with the tunable kern.maxphys.
Make b_pag
Make MAXPHYS tunable. Bump MAXPHYS to 1M.
Replace MAXPHYS by runtime variable maxphys. It is initialized from MAXPHYS by default, but can be also adjusted with the tunable kern.maxphys.
Make b_pages[] array in struct buf flexible. Size b_pages[] for buffer cache buffers exactly to atop(maxbcachebuf) (currently it is sized to atop(MAXPHYS)), and b_pages[] for pbufs is sized to atop(maxphys) + 1. The +1 for pbufs allow several pbuf consumers, among them vmapbuf(), to use unaligned buffers still sized to maxphys, esp. when such buffers come from userspace (*). Overall, we save significant amount of otherwise wasted memory in b_pages[] for buffer cache buffers, while bumping MAXPHYS to desired high value.
Eliminate all direct uses of the MAXPHYS constant in kernel and driver sources, except a place which initialize maxphys. Some random (and arguably weird) uses of MAXPHYS, e.g. in linuxolator, are converted straight. Some drivers, which use MAXPHYS to size embeded structures, get private MAXPHYS-like constant; their convertion is out of scope for this work.
Changes to cam/, dev/ahci, dev/ata, dev/mpr, dev/mpt, dev/mvs, dev/siis, where either submitted by, or based on changes by mav.
Suggested by: mav (*) Reviewed by: imp, mav, imp, mckusick, scottl (intermediate versions) Tested by: pho Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D27225
show more ...
|
| #
a28c28e6 |
| 19-Nov-2020 |
Mark Johnston <[email protected]> |
Remove NO_EVENTTIMERS support
The arm configs that required it have been removed from the tree. Removing this option makes the callout code easier to read and discourages developers from adding new
Remove NO_EVENTTIMERS support
The arm configs that required it have been removed from the tree. Removing this option makes the callout code easier to read and discourages developers from adding new configs without eventtimer drivers.
Reviewed by: ian, imp, mav Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D27270
show more ...
|
| #
a3c41f8b |
| 10-Oct-2020 |
Conrad Meyer <[email protected]> |
Add "Fenestras X" alternative /dev/random implementation
Fortuna remains the default; no functional change to GENERIC.
Big picture: - Scalable entropy generation with per-CPU, buffered local genera
Add "Fenestras X" alternative /dev/random implementation
Fortuna remains the default; no functional change to GENERIC.
Big picture: - Scalable entropy generation with per-CPU, buffered local generators. - "Push" system for reseeding child generators when root PRNG is reseeded. (Design can be extended to arc4random(9) and userspace generators.) - Similar entropy pooling system to Fortuna, but starts with a single pool to quickly bootstrap as much entropy as possible early on. - Reseeding from pooled entropy based on time schedule. The time interval starts small and grows exponentially until reaching a cap. Again, the goal is to have the RNG state depend on as much entropy as possible quickly, but still periodically incorporate new entropy for the same reasons as Fortuna.
Notable design choices in this implementation that differ from those specified in the whitepaper: - Blake2B instead of SHA-2 512 for entropy pooling - Chacha20 instead of AES-CTR DRBG - Initial seeding. We support more platforms and not all of them use loader(8). So we have to grab the initial entropy sources in kernel mode instead, as much as possible. Fortuna didn't have any mechanism for this aside from the special case of loader-provided previous-boot entropy, so most of these sources remain TODO after this commit.
Reviewed by: markm Approved by: csprng (markm) Differential Revision: https://reviews.freebsd.org/D22837
show more ...
|
| #
fedeb08b |
| 03-Oct-2020 |
Alexander V. Chernikov <[email protected]> |
Introduce scalable route multipath.
This change is based on the nexthop objects landed in D24232.
The change introduces the concept of nexthop groups. Each group contains the collection of nexthops
Introduce scalable route multipath.
This change is based on the nexthop objects landed in D24232.
The change introduces the concept of nexthop groups. Each group contains the collection of nexthops with their relative weights and a dataplane-optimized structure to enable efficient nexthop selection.
Simular to the nexthops, nexthop groups are immutable. Dataplane part gets compiled during group creation and is basically an array of nexthop pointers, compiled w.r.t their weights.
With this change, `rt_nhop` field of `struct rtentry` contains either nexthop or nexthop group. They are distinguished by the presense of NHF_MULTIPATH flag. All dataplane lookup functions returns pointer to the nexthop object, leaving nexhop groups details inside routing subsystem.
User-visible changes:
The change is intended to be backward-compatible: all non-mpath operations should work as before with ROUTE_MPATH and net.route.multipath=1.
All routes now comes with weight, default weight is 1, maximum is 2^24-1.
Current maximum multipath group width is statically set to 64. This will become sysctl-tunable in the followup changes.
Using functionality: * Recompile kernel with ROUTE_MPATH * set net.route.multipath to 1
route add -6 2001:db8::/32 2001:db8::2 -weight 10 route add -6 2001:db8::/32 2001:db8::3 -weight 20
netstat -6On
Nexthop groups data
Internet6: GrpIdx NhIdx Weight Slots Gateway Netif Refcnt 1 ------- ------- ------- --------------------------------------- --------- 1 13 10 1 2001:db8::2 vlan2 14 20 2 2001:db8::3 vlan2
Next steps: * Land outbound hashing for locally-originated routes ( D26523 ). * Fix net/bird multipath (net/frr seems to work fine) * Add ROUTE_MPATH to GENERIC * Set net.route.multipath=1 by default
Tested by: olivier Reviewed by: glebius Relnotes: yes Differential Revision: https://reviews.freebsd.org/D26449
show more ...
|
| #
6186bfbd |
| 29-Sep-2020 |
Ruslan Bukin <[email protected]> |
Rename kernel option ACPI_DMAR to IOMMU. This is mostly needed for a common arm64/amd64 iommu code.
Reviewed by: kib Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D265
Rename kernel option ACPI_DMAR to IOMMU. This is mostly needed for a common arm64/amd64 iommu code.
Reviewed by: kib Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D26587
show more ...
|
| #
64612d4e |
| 01-Jul-2020 |
Conrad Meyer <[email protected]> |
geom(4): Kill GEOM_PART_EBR_COMPAT option
Take advantage of Warner's nice new real GEOM aliasing system and use it for aliased partition names that actually work.
Our canonical EBR partition name i
geom(4): Kill GEOM_PART_EBR_COMPAT option
Take advantage of Warner's nice new real GEOM aliasing system and use it for aliased partition names that actually work.
Our canonical EBR partition name is the weird, not-default-on-x86-prior-to- this-revision "da1p4+00001234." However, if compatibility mode (tunable kern.geom.part.ebr.compat_aliases) is enabled (1, default), we continue to provide the alias names like "da1p5" in addition to the weird canonical names.
Naming partition providers was just one aspect of the COMPAT knob; in addition it limited mutability, in part because it did not preserve existing EBR header content aside from that of LBA 0. This change saves the EBR header for LBA 0, as well as for every EBR partition encountered. That way, when we write out the EBR partition table on modification, we can restore any bootloader or other metadata in both LBA0 (the first data-containing EBR may start after 0) as well as every logical EBR we read from the disk, and only update the geometry metadata and linked list pointers that describe the actual partitioning.
(This change does not add support for the 'bootcode' verb to EBR.)
PR: 232463 Reported by: Manish Jain <bourne.identity AT hotmail.com> Discussed with: ae (no objection) Relnotes: maybe Differential Revision: https://reviews.freebsd.org/D24939
show more ...
|
| #
95033af9 |
| 18-Jun-2020 |
Mark Johnston <[email protected]> |
Add the SCTP_SUPPORT kernel option.
This is in preparation for enabling a loadable SCTP stack. Analogous to IPSEC/IPSEC_SUPPORT, the SCTP_SUPPORT kernel option must be configured in order to suppor
Add the SCTP_SUPPORT kernel option.
This is in preparation for enabling a loadable SCTP stack. Analogous to IPSEC/IPSEC_SUPPORT, the SCTP_SUPPORT kernel option must be configured in order to support a loadable SCTP implementation.
Discussed with: tuexen MFC after: 2 weeks Sponsored by: The FreeBSD Foundation
show more ...
|
|
Revision tags: release/11.4.0 |
|
| #
e9ee2675 |
| 04-Jun-2020 |
Mark Johnston <[email protected]> |
Update vt(4) config option names to chase r303043.
PR: 246080 Submitted by: David Marec <[email protected]> MFC after: 1 week
|
| #
97e25132 |
| 11-May-2020 |
John Baldwin <[email protected]> |
Remove ubsec(4).
This driver was previously marked for deprecation in r360710.
Approved by: csprng (cem, gordon, delphij) Relnotes: yes Sponsored by: Chelsio Communications Differential Revision: h
Remove ubsec(4).
This driver was previously marked for deprecation in r360710.
Approved by: csprng (cem, gordon, delphij) Relnotes: yes Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D24766
show more ...
|