- 04 May, 2018 24 commits
-
-
Matt Macy authored
Reviewed by: sbruno
-
Matt Macy authored
Approved by: sbruno
-
Matt Macy authored
Approved by: sbruno
-
Mark Johnston authored
With r332974, when performing a synchronized access of a page's "queue" field, one must first check whether the page is logically dequeued. If so, then the page lock does not prevent the page from being removed from its page queue. Intoduce vm_page_queue(), which returns the page's logical queue index. In some cases, direct access to the "queue" field is still required, but such accesses should be confined to sys/vm. Reported and tested by: pho Reviewed by: kib Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D15280
-
Ian Lepore authored
mode or not. An earlier attempt to make this work was done in r320456, by always reading the pad status register (PSR) instead of the data register. But it turns out the values in PSR only reflect the electrical level of an output pin if the pad is configured with the SION (Set Input On) bit in the pinmux config, and most output gpio pads are not configured that way. So now a gpio read is done by returning the value from the data register, which works right whether the pin is configured for input or output, unless the pin has been set for OPENDRAIN mode, in which case the PSR is read instead. For this to work, the pin must also be configured with SION turned on in the fdt pinmux data, which is a reasonable thing to require for the unusual case of reading an open-drain output pin.
-
Stephen Hurd authored
In r301567, code was added to cleanup to prevent memory leaks for the Tx and Rx ring structs. This code carefully tracked txq and rxq, and made sure to free them properly during cleanup. Because we assigned the txq and rxq pointers into the ctx->ifc_txqs and ctx->ifc_rxqs, we carefully reset these pointers to NULL, so that cleanup code would not accidentally free the memory twice. This was changed by r304021 ("Update iflib to support more NIC designs"), which removed this resetting of the pointers to NULL, because it re-used the txq and rxq pointers as an index into the queue set array. Unfortunately, the cleanup code was left alone. Thus, if we fail to allocate DMA or fail to configure the queues using the drivers ifdi methods, we will attempt to free txq and rxq. These variables would now incorrectly point to the wrong location, resulting in a page fault. There are a number of methods to correct this, but ultimately the root cause was that we reuse the txq and rxq pointers for two different purposes. Instead, when allocating, store the returned pointer directly into ctx->ifc_txqs and ctx->ifc_rxqs. Then, assign this to txq and rxq as index pointers before starting the loop to allocate each queue. Drop the cleanup code for txq and rxq, and only use ctx->ifc_txqs and ctx->ifc_rxqs. Thus, we no longer need to free txq or rxq under any error flow, and intsead rely solely on the pointers stored in ctx->ifc_txqs and ctx->ifc_rxqs. This prevents the invalid free(), and ensures that we still properly cleanup after ourselves as before when failing to allocate. Submitted by: Jacob Keller Reviewed by: gallatin, sbruno Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D15285
-
Stephen Hurd authored
This pointer was no longer written to as of r315217. Since nothing writes to the variable, remove it. Submitted by: Jacob Keller <jacob.e.keller@intel.com> Reviewed by: gallatin, kmacy, sbruno Differential Revision: https://reviews.freebsd.org/D15284
-
Alan Somers authored
The monotonic clock is more appropriate than the realtime clock for measuring durations. Reviewed by: ken, jilles Differential Revision: https://reviews.freebsd.org/D14032
-
Kyle Evans authored
-
Philip Paeps authored
zones. This does not affect the vast majority of users who do not care about (or even know about) the tm_isdst flag but may be slightly surprising to those with a more specialised interest in time zone arcana. MFC after: 3 days
-
Philip Paeps authored
Changes: https://github.com/eggert/tz/blob/2018e/NEWS MFC after: 3 days
-
Philip Paeps authored
-
Andrey V. Elsukov authored
In r309610 and r315514 the behavior of handling EACCES was changed, and tcp_output() now returns zero when EACCES happens. The reason of this change was a hesitation that applications that use TCP-MD5 will be affected by changes in project/ipsec. TCP-MD5 code returns EACCES when security assocition for given connection is not configured. But the same error code can return pfil(9), and this change has affected connections blocked by pfil(9). E.g. application doesn't return immediately when SYN segment is blocked, instead it waits when several tries will be failed. Actually, for TCP-MD5 application it doesn't matter will it get EACCES after first SYN, or after several tries. Security associtions must be configured before initiating TCP connection. I left the EACCES in the switch() to show that it has special handling. Reported by: Andreas Longwitz <longwitz at incore dot de> MFC after: 10 days
-
Andriy Gapon authored
In fact, this taskqueue should use "boring" threads, nothing special about them. MFC after: 2 weeks
-
Matt Macy authored
x dup_before + dup_after +------------------------------------------------------------+ | x + | |x x x x ++ ++| | |____AM___| |AM|| +------------------------------------------------------------+ N Min Max Median Avg Stddev x 5 1.514954e+08 1.5230351e+08 1.5206157e+08 1.5199371e+08 341205.71 + 5 1.5494336e+08 1.5519569e+08 1.5511982e+08 1.5508323e+08 96232.829 Difference at 95.0% confidence 3.08952e+06 +/- 365604 2.03266% +/- 0.245071% (Student's t, pooled s = 250681) Reported by: mjg@ MFC after: 1 week
-
Mateusz Guzik authored
The code was unnecessarily conditionally copying either 5 or 6 args. It can blindly copy 6, which also means the size is known at compilation time and the operation can be depessimized. Note the entire syscall handling code is rather slow. Tested on Skylake, sample result for getppid (calls/s): without pti: 7310106 -> 10653569 with pti: 3304843 -> 4148306 Some syscalls (like read) did not note any difference, other have typically very modest wins.
-
Mateusz Guzik authored
See r323329 for an explanation why this is a good idea.
-
Pedro F. Giffuni authored
This fixes a regression that happened in r120492 (2003) where libkiconv was introduced and we went from checking unlen to checking for '\0'. PR: 111843 Patch by: Damjan Jovanovic MFC after: 1 week
-
Kyle Evans authored
Submitted by: 0mp Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D15196
-
Kyle Evans authored
-
Kyle Evans authored
It was an old TRE that had plenty of bugs and no performance gain over regex(3). I disabled it by default in r323615, and there was some confusion about what the knob does- likely due to poor naming on my part- to the tune of "well, it sounds like it should speed things up" (mentioned by multiple people). To compound this, I have no intention of maintaining a second regex implementation. If someone would like to step up and volunteer to maintain a lean-and-mean implementation for grep, this is OK, but we have very few volunteers to maintain even our primary regex implementation.
-
Peter Grehan authored
The prior code only allowed multiples of 32 for the numbers of columns. Remove this restriction to allow a forthcoming UEFI firmware update to allow arbitrary x,y resolutions. (the code for handling rows already supported non mult-32 values) Reviewed by: Leon Dang (original author) MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D15274
-
Ed Maste authored
admbugs: 796 Submitted by: Domagoj Stolfa <ds815@cam.ac.uk> Reported by: Ilja Van Sprundel <ivansprundel@ioactive.com> Reviewed by: avg MFC after: 1 day
-
Ed Maste authored
FAT32 partition with LBA addressing. Reviewed by: marcel MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D15266
-
- 03 May, 2018 16 commits
-
-
Peter Grehan authored
GPUs often have a VGA PCI class code and are probed/attached by the VGA driver. Allow them to be detached so they can be presented as passthru devices to VM guests. Submitted by: mmacy Reviewed by: jhb, imp, rgrimes MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D15269
-
Konstantin Belousov authored
ifuncs on x86. Also keep helpers to define 'pseudo-ifuncs' which are emulated by the indirect jmp. Reviewed by: jhb (previous version, as part of the larger patch) Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D13838
-
Konstantin Belousov authored
Required MD bits are only provided for x86. Reviewed by: jhb (previous version, as part of the larger patch) Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D13838
-
Kyle Evans authored
The 4.16 DTS import brought in emac support for the a83t. Since these boards' DTS is pulled from /boot and I forgot to hook these up to the build, they should be fairly safe to go away. The a83t-sid and h3-sid overlays are still relevant. a83t-sid will likely come in with 4.18 DTS.
-
Kyle Evans authored
-
Jung-uk Kim authored
AcpiOsEnterSleep() was meant to implement this feature. Reviewed by: avg
-
Kyle Evans authored
The rsu firmware license check has been disabled since r292756. Changes rsu(4) since the license ack is no longer required. While here, add `device rsufw` hint to the kernel configuration lines and add/update paths to the installed license file in both rsu(4) and rsufw(4). Submitted by: Mateusz Piotrowski (0mp) Reviewed by: bcr (manpages) MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D14966
-
Benno Rice authored
Currently 'man -k iflib' would find you the right pages for iflib documentation, namely iflibdd(9) and iflibdi(9) but 'man iflib' would leave you in the dark. This allows both approaches to find the relevant documentation. Reviewed by: kmacy, shurd Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D15219
-
Benno Rice authored
Prior to this change the manual page documented ifdi_queues_alloc which has been replaced by separate methods for tx and rx queues. Reviewed by: kmacy, shurd Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D15218
-
Stephen Hurd authored
Since the move to SMP NIC driver locking has had to go through serious contortions using mtx around long running hardware operations. This moves iflib past that. Individual drivers may now sleep when appropriate. Submitted by: Matthew Macy <mmacy@mattmacy.io> Reviewed by: shurd Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D14983
-
Andriy Gapon authored
Without the suspend method the watchdog may fire in S1 state. Without the resume method the watchdog is not re-enabled after returning from S3 state. I observe this on one of my systems. Not sure if watchdog(4) should participate in the suspend actions. Right now everything is up to individual drivers. MFC after: 2 weeks
-
Sean Bruno authored
- Update cubic parameters to draft-ietf-tcpm-cubic-04 Submitted by: Matt Macy <mmacy@mattmacy.io> Reviewed by: lstewart Differential Revision: https://reviews.freebsd.org/D10556
-
Sean Bruno authored
Submitted by: kbowling Reviewed by: brooks Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D15277
-
Andriy Gapon authored
MFC after: 1 week
-
Konstantin Belousov authored
Sponsored by: The FreeBSD Foundation MFC after: 3 days Differential revision: https://reviews.freebsd.org/D13838
-
Ruey-Cherng Yu authored
Approved by: delphij Differential Revision: https://reviews.freebsd.org/D14504
-