#
337245 |
|
03-Aug-2018 |
kib |
MFC r336683: Extend ranges of the critical sections to ensure that context switch code never sees FPU pcb flags not consistent with the hardware state.
|
#
325543 |
|
08-Nov-2017 |
kib |
MFC r325270: Consistently ensure that we do not load MXCSR with reserved bits set.
|
#
322205 |
|
07-Aug-2017 |
jkim |
MFC: r322076
Detect hypervisor early so that we set lower hz on it. > Description of fields to fill in above: 76 columns --| > PR: If and which Problem Report is related. > Submitted by: If someone else sent in the change. > Reported by: If someone else reported the issue. > Reviewed by: If someone else reviewed your modification. > Approved by: If you needed approval for this commit. > Obtained from: If the change is from a third party. > MFC after: N [day[s]|week[s]|month[s]]. Request a reminder email. > MFH: Ports tree branch name. Request approval for merge. > Relnotes: Set to 'yes' for mention in release notes. > Security: Vulnerability reference (one per line) or description. > Sponsored by: If the change was sponsored by an organization. > Differential Revision: https://reviews.freebsd.org/D### (*full* phabric URL needed). > Empty fields above will be automatically removed.
_M . M sys/amd64/amd64/machdep.c M sys/amd64/include/md_var.h M sys/i386/i386/machdep.c M sys/i386/include/md_var.h M sys/x86/x86/identcpu.c
|
#
314845 |
|
07-Mar-2017 |
kib |
MFC r314429: Initialize pcb_save for thread0.
|
#
313464 |
|
09-Feb-2017 |
kib |
MFC r313109: Use ANSI definitions for some i386 functions.
|
#
294683 |
|
24-Jan-2016 |
ian |
MFC r293045, r293046:
Make the 'env' directive described in config(5) work on all architectures, providing compiled-in static environment data that is used instead of any data passed in from a boot loader.
Previously 'env' worked only on i386 and arm xscale systems, because it required the MD startup code to examine the global envmode variable and decide whether to use static_env or an environment obtained from the boot loader, and set the global kern_envp accordingly. Most startup code wasn't doing so. Making things even more complex, some mips startup code uses an alternate scheme that involves calling init_static_kenv() to pass an empty buffer and its size, then uses a series of kern_setenv() calls to populate that buffer.
Now all MD startup code calls init_static_kenv(), and that routine provides a single point where envmode is checked and the decision is made whether to use the compiled-in static_kenv or the values provided by the MD code.
The routine also continues to serve its original purpose for mips; if a non-zero buffer size is passed the routine installs the empty buffer ready to accept kern_setenv() values. Now if the size is zero, the provided buffer full of existing env data is installed. A NULL pointer can be passed if the boot loader provides no env data; this allows the static env to be installed if envmode is set to do so.
Most of the work here is a near-mechanical change to call the init function instead of directly setting kern_envp. A notable exception is in xen/pv.c; that code was originally installing a buffer full of preformatted env data along with its non-zero size (like mips code does), which would have allowed kern_setenv() calls to wipe out the preformatted data. Now it passes a zero for the size so that the buffer of data it installs is treated as non-writeable.
Also, revert accidental change that snuck into r293045.
|
#
293581 |
|
09-Jan-2016 |
dchagin |
MFC r283479:
The kernel sends signals to the processes via ABI specific sv_sendsig method. Native ABI do not need signal conversion, only emulators may want this. Usually emulators implements its own sv_sendsig method. For now only ibcs2 emulator does not have own sv_sendsig implementation and depends on native sendsig() method. So, remove any extra attempts to convert signal numbers from native sendsig() methods except from i386 where ibsc2 is living.
|
#
290734 |
|
12-Nov-2015 |
jhb |
MFC 284325: Report the values of x86 segment registers to remote debuggers.
While here, also report %eflags from the i386 trapframe.
|
#
290731 |
|
12-Nov-2015 |
jhb |
MFC 285783: Various changes to the registers displayed in DDB for x86. - Fix segment registers to only display the low 16 bits. - Remove unused handlers and entries for the debug registers. - Display xcr0 (if valid) in 'show sysregs'. - Add '0x' prefix to MSR values to match other values in 'show sysregs'. - MFamd64: Display various MSRs in 'show sysregs'. - Add a 'show dbregs' to display the value of debug registers. - Dynamically size the column width for register values to properly align columns on 64-bit platforms. - Display %gs for i386 in 'show registers'.
|
#
287126 |
|
25-Aug-2015 |
marcel |
MFC r286667 & r286723
Better support memory mapped console devices, such as VGA and EFI frame buffers and memory mapped UARTs.
PR: 191564, 194952, 202276
|
#
286878 |
|
18-Aug-2015 |
kib |
MFC r286288: Give large kernel stack to the initial thread.
|
#
282066 |
|
27-Apr-2015 |
kib |
MFC r281762: Remove duplicate definitions of MWAIT_CX hints. Identical defines in specialreg.h are enough.
|
#
282065 |
|
27-Apr-2015 |
kib |
MFC r281495: Add config option PAE_TABLES for the i386 kernel. It switches pmap to use PAE format for the page tables, but does not incur other consequences of the full PAE config. In particular, vm_paddr_t and bus_addr_t are left 32bit, and max supported memory is still limited by 4GB.
The option allows to have nx permissions for memory mappings on i386 kernel, while keeping the usual i386 KBI and avoiding the kernel data sizing problems typical for the PAE config.
|
#
280973 |
|
01-Apr-2015 |
jhb |
MFC 276724: On some Intel CPUs with a P-state but not C-state invariant TSC the TSC may also halt in C2 and not just C3 (it seems that in some cases the BIOS advertises its C3 state as a C2 state in _CST). Just play it safe and disable both C2 and C3 states if a user forces the use of the TSC as the timecounter on such CPUs.
PR: 192316
|
#
278347 |
|
07-Feb-2015 |
kib |
MFC r278001: Do not qualify the mcontext_t *mcp argument for set_mcontext(9) as const.
|
#
276135 |
|
23-Dec-2014 |
nyan |
MFC: r272492
Merge pc98's machdep.c into i386/i386/machdep.c.
|
#
276085 |
|
22-Dec-2014 |
jhb |
MFC 275035: MFamd64: Check for invalid flags in the machine context in sigreturn() and setcontext().
|
#
276084 |
|
22-Dec-2014 |
jhb |
MFC 273988,273989,273995,274057: MFamd64: Add support for extended FPU states on i386. This includes support for AVX on i386.
|
#
276076 |
|
22-Dec-2014 |
jhb |
MFC 271405,271408,271409,272658: MFamd64: Use initializecpu() to set various model-specific registers on AP startup and AP resume (it was already used for BSP startup and BSP resume).
|
#
276070 |
|
22-Dec-2014 |
jhb |
MFC 260557,271076,271077,271082,271083,271098: - Remove spaces from boot messages when we print the CPU ID/Family/Stepping - Move prototypes for various functions into out of C files and into <machine/md_var.h>. - Reduce diffs between i386 and amd64 initcpu.c and identcpu.c files. - Move blacklists of broken TSCs out of the printcpuinfo() function and into the TSC probe routine. - Merge the amd64 and i386 identcpu.c into a single x86 implementation.
|
#
275921 |
|
18-Dec-2014 |
jhb |
MFC 273871: Skip the smap sysctl instead of panicing if no kernel metadata can be found.
|
#
272913 |
|
10-Oct-2014 |
jhb |
MFC 270828,271487,271495: Add sysctls to export the BIOS SMAP and EFI memory maps along with handlers in the sysctl(8) binary to format them.
|
#
271541 |
|
13-Sep-2014 |
pfg |
MFC r271149: Apply known workarounds for less modern MacBooks.
The legacy USB circuit tends to give trouble on older MacBooks. While the original report covered MacBook4, extend the fix preemptively for the newer MacBookPro4 too.
PR: 191693 Reviewed by: emaste Approved by: re
|
#
271191 |
|
06-Sep-2014 |
jhb |
MFC 270826: MFamd64: Add a machdep.bootmethod sysctl to inform the installer which firmware method was used for booting. This is hardcoded to BIOS on i386.
PR: 192962 Approved by: re (gjb)
|
#
267964 |
|
27-Jun-2014 |
jhb |
MFC 261781: Don't waste a page of KVA for the boot-time memory test on x86. For amd64, reuse the first page of the crashdumpmap as CMAP1/CADDR1. For i386, remove CMAP1/CADDR1 entirely and reuse CMAP3/CADDR3 for the memory test.
|
#
258996 |
|
05-Dec-2013 |
royger |
MFC 258176:
Fix accounting for hw.realmem on the i386 and amd64 platforms.
sys/i386/i386/machdep.c: sys/amd64/amd64/machdep.c: The value reported by FreeBSD as "real memory" when booting doesn't match what is later reported by sysctl as hw.realmem. This is due to the fact that the value printed during the boot process is fetched from smbios data (when possible), and accounts for holes in physical memory. On the other hand, the value of hw.realmem is unconditionally set to be one larger than the highest page of the physical address space.
Fix this by setting hw.realmem to the same value printed during boot, this makes hw.realmem honour it's name and account properly for physical memory present in the system.
Submitted by: Roger Pau Monné Reviewed by: gibbs Approved by: gibbs (mentor) Approved by: re (gjb)
|
#
258559 |
|
25-Nov-2013 |
emaste |
MFC r258135: x86: Allow users to change PSL_RF via ptrace(PT_SETREGS...)
Debuggers may need to change PSL_RF. Note that tf_eflags is already stored in the signal context during signal handling and PSL_RF previously could be modified via sigreturn, so this change should not provide any new ability to userspace.
For background see the thread at: http://lists.freebsd.org/pipermail/freebsd-i386/2007-September/005910.html
Reviewed by: jhb, kib
Sponsored by: DARPA, AFRL Approved by: re (gjb)
|
#
258158 |
|
15-Nov-2013 |
kib |
MFC r257858: Fix signal delivery for the iBCS2 binaries.
Approved by: re (gjb)
|
#
287126 |
|
25-Aug-2015 |
marcel |
MFC r286667 & r286723
Better support memory mapped console devices, such as VGA and EFI frame buffers and memory mapped UARTs.
PR: 191564, 194952, 202276
|
#
286878 |
|
18-Aug-2015 |
kib |
MFC r286288: Give large kernel stack to the initial thread.
|
#
282066 |
|
27-Apr-2015 |
kib |
MFC r281762: Remove duplicate definitions of MWAIT_CX hints. Identical defines in specialreg.h are enough.
|
#
282065 |
|
27-Apr-2015 |
kib |
MFC r281495: Add config option PAE_TABLES for the i386 kernel. It switches pmap to use PAE format for the page tables, but does not incur other consequences of the full PAE config. In particular, vm_paddr_t and bus_addr_t are left 32bit, and max supported memory is still limited by 4GB.
The option allows to have nx permissions for memory mappings on i386 kernel, while keeping the usual i386 KBI and avoiding the kernel data sizing problems typical for the PAE config.
|
#
280973 |
|
01-Apr-2015 |
jhb |
MFC 276724: On some Intel CPUs with a P-state but not C-state invariant TSC the TSC may also halt in C2 and not just C3 (it seems that in some cases the BIOS advertises its C3 state as a C2 state in _CST). Just play it safe and disable both C2 and C3 states if a user forces the use of the TSC as the timecounter on such CPUs.
PR: 192316
|
#
278347 |
|
07-Feb-2015 |
kib |
MFC r278001: Do not qualify the mcontext_t *mcp argument for set_mcontext(9) as const.
|
#
276135 |
|
23-Dec-2014 |
nyan |
MFC: r272492
Merge pc98's machdep.c into i386/i386/machdep.c.
|
#
276085 |
|
22-Dec-2014 |
jhb |
MFC 275035: MFamd64: Check for invalid flags in the machine context in sigreturn() and setcontext().
|
#
276084 |
|
22-Dec-2014 |
jhb |
MFC 273988,273989,273995,274057: MFamd64: Add support for extended FPU states on i386. This includes support for AVX on i386.
|
#
276076 |
|
22-Dec-2014 |
jhb |
MFC 271405,271408,271409,272658: MFamd64: Use initializecpu() to set various model-specific registers on AP startup and AP resume (it was already used for BSP startup and BSP resume).
|
#
276070 |
|
22-Dec-2014 |
jhb |
MFC 260557,271076,271077,271082,271083,271098: - Remove spaces from boot messages when we print the CPU ID/Family/Stepping - Move prototypes for various functions into out of C files and into <machine/md_var.h>. - Reduce diffs between i386 and amd64 initcpu.c and identcpu.c files. - Move blacklists of broken TSCs out of the printcpuinfo() function and into the TSC probe routine. - Merge the amd64 and i386 identcpu.c into a single x86 implementation.
|
#
275921 |
|
18-Dec-2014 |
jhb |
MFC 273871: Skip the smap sysctl instead of panicing if no kernel metadata can be found.
|
#
272913 |
|
10-Oct-2014 |
jhb |
MFC 270828,271487,271495: Add sysctls to export the BIOS SMAP and EFI memory maps along with handlers in the sysctl(8) binary to format them.
|
#
271541 |
|
13-Sep-2014 |
pfg |
MFC r271149: Apply known workarounds for less modern MacBooks.
The legacy USB circuit tends to give trouble on older MacBooks. While the original report covered MacBook4, extend the fix preemptively for the newer MacBookPro4 too.
PR: 191693 Reviewed by: emaste Approved by: re
|
#
271191 |
|
06-Sep-2014 |
jhb |
MFC 270826: MFamd64: Add a machdep.bootmethod sysctl to inform the installer which firmware method was used for booting. This is hardcoded to BIOS on i386.
PR: 192962 Approved by: re (gjb)
|
#
267964 |
|
27-Jun-2014 |
jhb |
MFC 261781: Don't waste a page of KVA for the boot-time memory test on x86. For amd64, reuse the first page of the crashdumpmap as CMAP1/CADDR1. For i386, remove CMAP1/CADDR1 entirely and reuse CMAP3/CADDR3 for the memory test.
|
#
258996 |
|
05-Dec-2013 |
royger |
MFC 258176:
Fix accounting for hw.realmem on the i386 and amd64 platforms.
sys/i386/i386/machdep.c: sys/amd64/amd64/machdep.c: The value reported by FreeBSD as "real memory" when booting doesn't match what is later reported by sysctl as hw.realmem. This is due to the fact that the value printed during the boot process is fetched from smbios data (when possible), and accounts for holes in physical memory. On the other hand, the value of hw.realmem is unconditionally set to be one larger than the highest page of the physical address space.
Fix this by setting hw.realmem to the same value printed during boot, this makes hw.realmem honour it's name and account properly for physical memory present in the system.
Submitted by: Roger Pau Monné Reviewed by: gibbs Approved by: gibbs (mentor) Approved by: re (gjb)
|
#
258559 |
|
25-Nov-2013 |
emaste |
MFC r258135: x86: Allow users to change PSL_RF via ptrace(PT_SETREGS...)
Debuggers may need to change PSL_RF. Note that tf_eflags is already stored in the signal context during signal handling and PSL_RF previously could be modified via sigreturn, so this change should not provide any new ability to userspace.
For background see the thread at: http://lists.freebsd.org/pipermail/freebsd-i386/2007-September/005910.html
Reviewed by: jhb, kib
Sponsored by: DARPA, AFRL Approved by: re (gjb)
|
#
258158 |
|
15-Nov-2013 |
kib |
MFC r257858: Fix signal delivery for the iBCS2 binaries.
Approved by: re (gjb)
|