- 02 Dec, 2021 24 commits
-
-
Warner Losh authored
Port 9781c28c and a8837c77 to the mps driver. Before this change devq was frozen only if some command was sent to the target after reset started, but release was called always. This change freezes the devq immediately, leaving mprsas_action_scsiio() check only to cover race condition due to different lock devq use. This should also avoid unnecessary requeue of the commands, creating additional log noise and confusing some broken apps. It also avoids a 'busy' requeue of I/Os failing when we're doing recovery that takes longer than the normal busy timeout. These I/Os failing can lead to filesystems being unmounted in the force unmount case for I/O errors. Sponsored by: Netflix Reviewed by: mav Differential Revision: https://reviews.freebsd.org/D33228
-
Gleb Smirnoff authored
An mbuf rcvif pointer is supposed to be valid and doesn't need extra checks. The code appeared in d314ad7b.
-
Mateusz Piotrowski authored
Reviewed by: allanjude Approved by: allanjude (src) MFC after: 3 days Sponsored by: Modirum MDPay Differential Revision: https://reviews.freebsd.org/D33230
-
Gleb Smirnoff authored
which will report where the epoch was entered and also mark the tracker, so that exit will also be reported. Helps to understand epoch entrance/exit scenarios in complex cases, like network stack. As everything else under EPOCH_TRACE it is a developer only tool.
-
Gleb Smirnoff authored
Fixes: ce40632a
-
Gleb Smirnoff authored
Just trust the pcb database, that if we did in_pcbref(), no way an inpcb can go away. And if we never put a dropped inpcb on our queue, and tcp_discardcb() always removes an inpcb to be dropped from the queue, then any inpcb on the queue is valid. Now, to solve LOR between inpcb lock and HPTS queue lock do the following trick. When we are about to process a certain time slot, take the full queue of the head list into on stack list, drop the HPTS lock and work on our queue. This of course opens a race when an inpcb is being removed from the on stack queue, which was already mentioned in comments. To address this race introduce generation count into queues. If we want to remove an inpcb with generation count mismatch, we can't do that, we can only mark it with desired new time slot or -1 for remove. Reviewed by: rrs Differential revision: https://reviews.freebsd.org/D33026
-
Gleb Smirnoff authored
The HPTS input queue is in reality used only for "delayed drops". When a TCP stack decides to drop a connection on the output path it can't do that due to locking protocol between main tcp_output() and stacks. So, rack/bbr utilize HPTS to drop the connection in a different context. In the past the queue could also process input packets in context of HPTS thread, but now no stack uses this, so remove this functionality. Reviewed by: rrs Differential revision: https://reviews.freebsd.org/D33025
-
Gleb Smirnoff authored
Also, make some of the functions also private to the module. Remove unused functions discovered after that. Reviewed by: rrs Differential revision: https://reviews.freebsd.org/D33024
-
Gleb Smirnoff authored
It will hide some internal HPTS knowledge from the consumers. Reviewed by: rrs Differential revision: https://reviews.freebsd.org/D33023
-
Gleb Smirnoff authored
With introduction of epoch(9) synchronization to network stack the inpcb database became protected by the network epoch together with static network data (interfaces, addresses, etc). However, inpcb aren't static in nature, they are created and destroyed all the time, which creates some traffic on the epoch(9) garbage collector. Fairly new feature of uma(9) - Safe Memory Reclamation allows to safely free memory in page-sized batches, with virtually zero overhead compared to uma_zfree(). However, unlike epoch(9), it puts stricter requirement on the access to the protected memory, needing the critical(9) section to access it. Details: - The database is already build on CK lists, thanks to epoch(9). - For write access nothing is changed. - For a lookup in the database SMR section is now required. Once the desired inpcb is found we need to transition from SMR section to r/w lock on the inpcb itself, with a check that inpcb isn't yet freed. This requires some compexity, since SMR section itself is a critical(9) section. The complexity is hidden from KPI users in inp_smr_lock(). - For a inpcb list traversal (a pcblist sysctl, or broadcast notification) also a new KPI is provided, that hides internals of the database - inp_next(struct inp_iterator *). Reviewed by: rrs Differential revision: https://reviews.freebsd.org/D33022
-
Gleb Smirnoff authored
Reviewed by: rrs Differential revision: https://reviews.freebsd.org/D33021
-
Gleb Smirnoff authored
With upcoming changes to the inpcb synchronisation it is going to be broken. Even its current status after the move of PCB synchronization to the network epoch is very questionable. This experimental feature was sponsored by Juniper but ended never to be used in Juniper and doesn't exist in their source tree [sjg@, stevek@, jtl@]. In the past (AFAIK, pre-epoch times) it was tried out at Netflix [gallatin@, rrs@] with no positive result and at Yandex [ae@, melifaro@]. I'm up to resurrecting it back if there is any interest from anybody. Reviewed by: rrs Differential revision: https://reviews.freebsd.org/D33020
-
Gleb Smirnoff authored
Reviewed by: rrs Differential revision: https://reviews.freebsd.org/D33019
-
Don Morris authored
Reviewed by: vangyzen, whu, bdrewery Sponsored by: Dell EMC Differential Revision: https://reviews.freebsd.org/D30060
-
Ed Maste authored
-
Ed Maste authored
Contrary to the previous description WITHOUT_CXX does not disable /usr/bin/c++, which is just a link to Clang. We also no longer have gperf. MFC after: 1 week Sponsored by: The FreeBSD Foundation
-
Gordon Bergling authored
- s/duirng/during/ MFC after: 3 days
-
Mateusz Piotrowski authored
The ports tree now has its own prepare-commit-msg Git hook, so there is not need to keep ports-specific metadata fields around in the src tree. Differential Revision: https://reviews.freebsd.org/D29860
-
Randall Stewart authored
I just discovered that the return of the EBUSY error was incorrectly rigged so that you could unload a CC module that was set to default. Its supposed to be an EBUSY error. Make it so. Reviewed by: Michael Tuexen Sponsored by: Netflix Inc. Differential Revision: https://reviews.freebsd.org/D33229
-
Gordon Bergling authored
- s/osbolete/obsolete/ MFC after: 3 days
-
Gordon Bergling authored
- s/parameteres/parameters/ MFC after: 3 days
-
Hubert Mazur authored
Add driver for TMP461 thermal sensor. Register new sysctl node of integer type for device. Read register and fill sysctl with valid temperature. Reviewed by: Sponsored by: Alstom Obtained from: Semihalf Differential revision: https://reviews.freebsd.org/D32818
-
Hubert Mazur authored
Add helper functions for 32 and 64 bit unsigned to signed integers conversions. Reviewed by: Sponsored by: Alstom Obtained from: Semihalf Differential revision: https://reviews.freebsd.org/D33162
-
Ed Maste authored
In fact MK_CXX does not control whether /usr/bin/c++ is built -- it is installed as a link to Clang (which is always a C/C++ compiler), and it already exists in OptionalObsoleteFiles under MK_TOOLCHAIN. Sponsored by: The FreeBSD Foundation
-
- 01 Dec, 2021 16 commits
-
-
John Baldwin authored
Reported by: Mark Millard
-
John Baldwin authored
-
John Baldwin authored
Reported by: Mark Millard
-
John Baldwin authored
Reported by: Mark Millard Fixes: d6dffbae lastcomm/sa: Remove sparc64 tests, they aren't needed.
-
John Baldwin authored
Reported by: Mark Millard
-
Rick Macklem authored
When an ACL is presented to the NFSv4 server in Setattr or Verify, parsing of the ACL assumed a sane acecnt and sane sizes for the "who" strings. This patch adds sanity checks for these. The patch also fixes handling of an error return from nfsrv_dissectacl() for one broken case. Reported by: rtm@lcs.mit.edu Tested by: rtm@lcs.mit.edu PR: 260111 MFC after: 2 weeks
-
Rick Macklem authored
When nfsrv_checksequence() replies NFSERR_BADSLOT, the value of nd_slotid is not valid. As such, the reply cannot be cached in the session. Do not set ND_HASSEQUENCE for this case. Reported by: rtm@lcs.mit.edu Tested by: rtm@lcs.mit.edu PR: 260076 MFC after: 2 weeks
-
Ed Maste authored
/usr/bin/CC is installed by usr.bin/clang/clang/Makefile, as with /usr/bin/cc, /usr/bin/cpp, etc., and is not controlled by MK_CXX. Move it to the same section as those tools. (It may be that these should all be under MK_TOOLCHAIN == no || MK_CLANG_IS_CC == no, but that seems like unnecessary complexity.) Sponsored by: The FreeBSD Foundation
-
Vincenzo Maffione authored
Similarly to the other Intel drivers, don't try to process RX checksum offloads when this feature (IFCAP_RXCSUM) is disabled. Reviewed by: gallatin, kbowling, erj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D33155
-
Vincenzo Maffione authored
The ifp (struct ifnet) backpointer in the e1000 private ifnet data is not used anymore since the iflib transition. Remove it so that developers are not tempted to use it and get a NULL pointer dereference. Reviewed by: markj, kbowling, erj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D33157
-
Michael Tuexen authored
When there is no association, don't return -1 and indicate ENOENT, but return 0 instead. This is specified in RFC 6458. PR: 260117 MFC after: 1 week
-
Alexander Motin authored
While it still looks like previous code worked by coincidence, this change broke things even more instead of fixing. Reported by: avg@ MFC after: 1 week
-
Michael Tuexen authored
Section 9.5 of RFC 6458 (SCTP Socket API) requires that sctp_getladdrs() returns 0 in case the socket is unbound. This is the cause of reporting 0 addresses. So don't indicate an error, just report this case as required. PR: 260117 MFC after: 1 week
-
Andrew Turner authored
This is only available in recent toolchains. Check for it so we can use it in libmd. Reviewed by: emaste Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D33166
-
Zhenlei Huang authored
Reviewed by: kp MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D33210
-
Michael Tuexen authored
For socket options related to local and remote addresses providing generic association ids does not make sense. Report EINVAL in this case. MFC after: 1 week
-