-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge FreeBSD 2024-06-21 #2239
Merged
Merged
Merge FreeBSD 2024-06-21 #2239
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The allocation call could result in sleep lock violation if it is in smp_rendezvous. Move it out. Also move the pcpu memory pointer to vmbus_pcpu_data since it is only used on Hyper-V. PR: 279738 Reported by: gbe Fixes: 2b88768 MFC after: 2 weeks Sponsored by: Microsoft
The correponding changes (mostly ANSIfication) were done long ago locally. No functional change. Obtained from: NetBSD (libutil CVS Attic)
This reverts commit 1a968da. I was mistakenly looking at the version strings in the CVS attic but the function was moved to libc/stdio where it matches the current string.
Remove 3rd and 4th clauses in christos' license. OK christos. Obtained from: NetBSD
This reverts commit dd0e5c0.
- s/emtpy/empty/ MFC after: 3 days
- s/emtpy/empty/ MFC after: 5 days
aa3bcaa fixed an edge case invloving mlock() and superpage creation by creating and inserting a leaf pagetable page for mlock'd superpages. However, the code does not properly release the reference to the pagetable page in the error handling path. This commit fixes the issue by adding calls to 'pmap_abort_ptp' in the error handling path. Reported by: alc Approved by: markj (mentor) Fixes: aa3bcaa Differential Revision: https://reviews.freebsd.org/D45577
808f5ac fixed an edge case invloving mlock() and superpage creation by creating and inserting a leaf pagetable page for mlock'd superpages. However, the code does not properly release the reference to the pagetable page in the error handling path. This commit fixes the issue by adding calls to 'pmap_abort_ptp' in the error handling path. Reported by: alc Approved by: markj (mentor) Fixes: 808f5ac Differential Revision: https://reviews.freebsd.org/D45578
This commit moves code for releasing pagetable page references into a separate function. No functional change intended. Approved by: markj (mentor) Differential Revision: https://reviews.freebsd.org/D45581
…ilure 0013741 fixed an edge case invloving mlock() and superpage creation by creating and inserting a leaf pagetable page for mlock'd superpages. However, the code does not properly release the reference to the pagetable page in the error handling path. This commit fixes the issue by adding calls to 'pmap_abort_ptp' in the error handling path. Reported by: alc Approved by: markj (mentor) Fixes: 0013741 Differential Revision: https://reviews.freebsd.org/D45582
This commit moves code for releasing pagetable page references into a separate function. No functional change intended. Approved by: markj (mentor) Differential Revision: https://reviews.freebsd.org/D45579
d0941ed fixed an edge case invloving mlock() and superpage creation by creating and inserting a leaf pagetable page for mlock'd superpages. However, the code does not properly release the reference to the pagetable page in the error handling path. This commit fixes the issue by adding calls to 'pmap_abort_ptp' in the error handling path. Reported by: alc Approved by: markj (mentor) Fixes: d0941ed Differential Revision: https://reviews.freebsd.org/D45580
Fixes: b16b4c2 ("vm_page: Implement lazy page initialization") Reported by: Steffen Nurpmeso <[email protected]>
We were undercounting in the case where the boot stack crosses a 2MB boundary, resulting in a panic during locore execution. MFC after: 1 week Fixes: 756bc3a ("kasan: Create a shadow for the bootstack prior to hammer_time()")
Commit bf454ca made wg_transmit() defined only when "device netmap" is configured, as if_wg's if_transmit implementation should never be called otherwise, but this breaks a requirement that interfaces implement both or neither of if_transmit and if_qflush. Restore the old behaviour of unconditionally defining wg_transmit(). It contains an assertion that the interface is in netmap mode. Reported by: peterj MFC after: 2 weeks Fixes: bf454ca ("wg: Add netmap support")
No functional change intended. MFC after: 1 week
No functional change intended. MFC after: 1 week
No functional change intended. MFC after: 1 week
No functional change intended. MFC after: 1 week
No functional change intended. MFC after: 1 week
No functional change intended. MFC after: 1 week
No functional change intended. MFC after: 1 week
No functional change intended.
No functional change intended. MFC after: 1 week
No functional change intended. MFC after: 1 week
No functional change intended. MFC after: 1 week
No functional change intended. MFC after: 1 week
No functional change intended. MFC after: 1 week
This fixes ncurses 6.5 badly reading termcap
This is useful for two reasons. Within this change, it allows the early DTB mapping to be eliminated, as we can now just dereference the physical address provided by FW and copy the DTB contents into KVA. It will also aid in an upcoming change: the larger reworking of page table bootstrapping on this platform. Reviewed by: markj, jhb MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45324
The overall goal of the change is to reduce the amount of work done in locore assembly, and defer as much as possible until pmap_bootstrap(). Currently, half the setup is done in assembly, and then we pass the l1pt address to pmap_bootstrap() where it is amended with other mappings. Inspiration and understanding has been taken from amd64's create_pagetables() routine, and I try to present the page table construction in the same way: a linear procedure with commentary explaining what we are doing and why. Thus the core of the new implementation is contained in pmap_create_pagetables(). Once pmap_create_pagetables() has finished, we switch to the new pagetable root and leave the bootstrap ones created by locore behind, resulting in a minimal 8kB of wasted space. Having the whole procedure in one place, in C code, allows it to be more easily understood, while also making it more amenable to future changes which depend on CPU feature/errata detection. Note that with this change the size of the early devmap is bumped up from one to four L2 pages (8MB). Reviewed by: markj MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45327
Currently we create the DMAP by mapping the entire range between the smallest and largest physical memory addresses with L1 superpages. This is obviously overkill, and we may end up mapping all kinds of ranges that are not real memory. In the case of the HiFive Unmatched (obsolete hardware), there is an errata resulting in faults when a TLB mapping spans PMP (firmware) protection regions. So, when our DMAP mapping spans into the memory reserved by OpenSBI, we get a fatal fault. This highlights the need to be smarter here. Therefore, let's attempt to build the DMAP a little more correctly by walking the physmap array and mapping each range individually. It is not perfect in that we still only respect the range to a 2MB granularity, but this could be improved in the future. Reviewed by: markj MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45328
And from struct riscv_bootparams. It is no longer needed. Reviewed by: br, markj MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D45470
Fixes: 4231a5e release: don't keep old packages if the BRANCH changes Sponsored by: Chelsio Communications
MFC after: 1 week Sponsored by: Klara, Inc. Sponsored by: Juniper Networks, Inc.
No functional change intended. MFC after: 1 week Sponsored by: Klara, Inc. Sponsored by: Juniper Networks, Inc.
No functional or content changes.
The old Linux used 8-bit rtm_table field of the RTM_NEWROUTE message to specify routing table id. Modern netlink uses RTA_TABLE 32-bit attribute. Unfortunately, there is modern software (namely bird) that would prefer the old API as long as the routing table id fits into 8-bit. PR: 279662
If WITH_CLOUDWARE is not set, we didn't build BASIC-CLOUDWARE; don't try to install it into the /VM-IMAGES/ directory as part of ftp-stage. Fixes: 4771c2e "release: Publish non-uploaded cloudware bits" MFC after: 6 days
All compilers that can build FreeBSD binaries (as opposed to the entire system) support at least gcc 9 (gcc, clang, tcc). Even pcc supports most of the gcc 4.3 attributes. Make this file simpler by removing support for pre-3.0 compilers. Reviewed by: brooks Differential Revision: https://reviews.freebsd.org/D45653 Sponsored by: Netflix
All supported compilers support the gcc 3 attribute extensions. Remove the #else clauses for this. Also, latter-day pcc compilers also define __GNUC__, so there's not need to also test for __PCC__. Reviewed by: brooks Differential Revision: https://reviews.freebsd.org/D45654 Sponsored by: Netflix
Remove support for old gcc versions by unconditionally defining __MATH_BUILTIN_RELOPS and __MATH_BUILTIN_CONSTANTS. Per kib's request, don't #undef those so it's easier to understand what the builtins are doing. Reviewed by: brooks Differential Revision: https://reviews.freebsd.org/D45655 Sponsored by: Netflix
Reviewed by: brooks Differential Revision: https://reviews.freebsd.org/D45656 Sponsored by: Netflix
Summary: Add support for building ossl(4) on powerpc64* by implementing ossl_cpuid and other support functions for powerpc. The required assembly files for ppc were already present in-tree. Test Plan: The changes were tested using the in-tree tools/tools/crypto/cryptocheck.c tool on both powerpc64 and powerpc64le on a POWER9 system. Reviewed by: #powerpc, jhibbits, jhb Differential Revision: https://reviews.freebsd.org/D41837
In 2001 when the ACPI timer was introduced, it included code to check for a bug present in some Pentium II and Pentium III chipsets; if the bug was found to be present, ACPI-safe (which was slower but had a workaround for the bug) would be used rather than ACPI-fast (which read the same timer but without the workaround). In a8b89df (September 2021) I disabled this check by default, with a loader tunable available to re-enable it; I announced at the time that it would go away in FreeBSD 15 if I didn't receive any reports of problems. I have received no such problems, so this code is now going away. The debug.acpi.timer_test loader variable triggered a lengthy (in fact, infinitely long) test of the ACPI timer and appears to have been introduced as part of the process of writing the ACPI timer (and the associated ACPI-safe workaround) in 2001; since we are dropping support for systems with this ACPI bug, there is no need to keep that test code either.
the fixes kernel building after 00d0618
Ensure that we correctly transfer byte counts if the value exceeds what can be stored in a single 32-bit counter. Sponsored by: Rubicon Communications, LLC ("Netgate")
… friends Reviewed by: cperciva Differential Revision: https://reviews.freebsd.org/D45669
TinyC doesn't support the .symver assembler directive. Add a generic way to signal this and use that not to define __sym_() macros that use it. Only use the __sym_* macros in headers when they are defined (which currently is only for the qsort_r compat code. Not supporting this for tcc is fine: It's an edge case for legacy binaries / code anyway which isn't relevant to tinyc. Sponsored by: Netflix Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D45651
Move to trusting C++ environment for thread local storage designation. Noticed by: brooks Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D45663
Pax can sometimes loop forever. For example: $ mkdir -p /tmp/src/foo/bar $ rm -rf /tmp/dst ; mkdir -p /tmp/dst $ cd /tmp/src $ echo 'foo/bar/' | /bin/pax -r -w -d -pe "/tmp/dst" <looping infinitely> Here, pax(1) infinitely deletes and re-creates /tmp/dst/foo/bar/. The problem is that chk_path() (bin/pax/file_subs.c), called from node_creat() also creates the leaf directory when a trailing '/' appears in the directory name to create. When the execution goes back from chk_path() to node_creat(), the function still cannot create the leaf directory (it has been created by chk_path()), so it unlinks it and calls node_creat() again. The function re-creates it, and so on... In node_creat() detect trailing slashes and not create a leaf directory, but only intermediate ones. PR: 277060 Reviewed by: imp
Fixes: c368d3f ("tests/sendfile: factor out tcp_socketpair()") Differential Revision: https://reviews.freebsd.org/D45598
VM, BASIC-CI, and BASIC-CLOUDWARE images are published with the filesystem type (UFS or ZFS) in the file name. For backwards compatibility we have published the UFS images with no filesystem in the filename (aka with the same file names as we used before we supported building ZFS VM images); those are going away now. This will not be MFCed.
On Feb. 28, a problem was reported on freebsd-stable@ where a nfsd thread processing an ExchangeID operation was blocked for a long time by another nfsd thread performing a copy_file_range. This occurred because the copy_file_range was taking a long time, but also because handling a clientID requires that all other nfsd threads be blocked via an exclusive lock, as required by ExchangeID. This patch adds two arguments to nfsv4_cleanclient() so that it can optionally be called with a mutex held. For this patch, the first of these arguments is "false" and, as such, there is no change in semantics. However, this change will allow a future commit to modify handling of the clientID so that it can be done with a mutex held while other nfsd threads continue to process NFS RPCs. MFC after: 1 month
TinyC has heart-burn on this construct, but gcc and clang like it just fine. Sponsored by: Netflix
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR for CI