#
76681bd9 |
|
22-Sep-2023 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel: Rewrite B_DEBUG_SPINLOCK_CONTENTION. * Replace count_low/count_high with bigtime_t fields plus an int32. sizeof(spinlock) is now 32 bytes with the debug option enabled. * Adjust and clean up all spinlock code to use the new fields. * Fold DEBUG_SPINLOCK_LATENCIES into the new code. Remove the bootloader option and other flags for it (these were not compiled in by default.) The new code should be much easier to understand and also more powerful. However, the information transmitted to userland isn't as useful now; the KDL command output will have the interesting information. (Things could be reworked to transmit more interesting information to userland again if desired, but as this code clearly hadn't been compiled for many years, as it referred to global spinlocks that have been gone for a very long time.) Change-Id: I2cb34078bfdc7604f288a297b6cd1aa7ff9cc512 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6943 Reviewed-by: waddlesplash <waddlesplash@gmail.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
1f8a8d2b |
|
02-Oct-2020 |
Jérôme Duval <jerome.duval@gmail.com> |
boot/bios_ia32: basic support la57 aka 5-level paging for x86_64 kernels la57 kernel support is required. we simply add a 5th level and enable the cr4 feature. the safemode option "256tb_memory_limit" is named after the 4gb one, but the current support is limited to 512GB as before (this can be later extended). Change-Id: I922774473c4a6112a0e4ff74162285ad58aa53af Reviewed-on: https://review.haiku-os.org/c/haiku/+/3552 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com> Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
|
#
401fb209 |
|
04-Feb-2018 |
Jérôme Duval <jerome.duval@gmail.com> |
kernel: use x2apic on hypervisor, or if already enabled. * this can be disabled per safe mode setting.
|
#
9dd4d2dd |
|
03-Jan-2018 |
Jérôme Duval <jerome.duval@gmail.com> |
kernel: support for Intel SMAP and SMEP on x86_64. SMAP will generated page faults when the kernel tries to access user pages unless overriden. If SMAP is enabled, the override instructions are written where needed in memory with binary "altcodepatches". Support is enabled by default, might be disabled per safemode setting. Change-Id: Ife26cd765056aeaf65b2ffa3cadd0dcf4e273a96
|
#
78777340 |
|
26-Aug-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
Added x2APIC support. * Mostly useful for virtualization at the moment. Works in QEmu. * Can be enabled by safemode settings/menu. * Please note that x2APIC normally requires use of VT-d interrupt remapping feature on real hardware, which we don't support yet.
|
#
9c1714ec |
|
16-May-2011 |
Michael Lotz <mmlr@mlotz.ch> |
Enable IO-APICs by default. It's been tested on a broad spectrum of hardware and all reports so far have been positive. We fall back to legacy mode in the cases where we can't figure out the correct routing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41527 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
56b5ad07 |
|
07-May-2011 |
Michael Lotz <mmlr@mlotz.ch> |
Added a temporary opt-in option "enable_ioapic" to the boot menu. This way the IO-APIC can be easily enabled to test it on various configurations. Note that the previous default opt-out didn't work because the safemode options would not be touched at all when not actually entering the boot menu. Once IO-APIC is more broadly tested this can be removed again and the opt-out option reenabled. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41370 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7b1d69ec |
|
23-Jun-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added safe mode option B_SAFEMODE_4_GB_MEMORY_LIMIT (plus a boot loader menu item) and kernel settings option "4gb_memory_limit". Enabling either one causes the memory beyond 4 GB to be ignored. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37225 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6242fd59 |
|
08-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added the possibility to debug latency issues with spinlocks. * When DEBUG_SPINLOCK_LATENCIES is 1, the system will panic if any spinlock is held longer than DEBUG_LATENCY micro seconds (currently 200). If your system doesn't boot anymore, a new safemode setting can disable the panic. * Besides some problems during boot when the MTRRs are set up, 200 usecs work fine here if all debug output is turned off (the output stuff is definitely problematic, though I don't have a good idea on how to improve upon it a lot). * Renamed the formerly BeOS compatible safemode settings to look better; there is no need to be compatible there. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33953 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f0bf3802 |
|
14-Sep-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Add safemode option to disable the use of APIC timers git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33132 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
69dddbde |
|
18-Jul-2008 |
Michael Lotz <mmlr@mlotz.ch> |
Initial work towards supporting IO APICs. This cannot work for PCI interrupts though until we use ACPI for proper PCI IRQ routing through the IO APIC. Therefore the IO APIC code path is not yet enabled and the IO APIC isn't used. ISA interrupts would work though, as would PCI interrupts if you'd hardcode them for your specific configuration. Note that this change also modifies some parts in the bootloader and in the PIC setup to make local APICs available even on non-SMP systems. This causes APIC timers to be used instead the normal PIT if it is available (also on non-SMP configurations). Also fixes some general errors in SMP and PIC code as well as some code cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26492 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6b202f4e |
|
13-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Introduced new header directory headers/private/system which is supposed to contain headers shared by kernel and userland (mainly libroot). * Moved quite a few private kernel headers to the new location. Split several kernel headers into a shared part and one that is still kernel private. Adjusted all affected Jamfiles and source in the standard x86 build accordingly. The build for other architectures and for test code may be broken. * Quite a bit of userland code still includes private kernel headers. Mostly those are <util/*> headers. The ones that aren't strictly kernel-only should be moved to some other place (maybe headers/private/shared/util). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25486 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
787773400ce9ee4ce71d9255e1be8fac66584615 |
|
26-Aug-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
Added x2APIC support. * Mostly useful for virtualization at the moment. Works in QEmu. * Can be enabled by safemode settings/menu. * Please note that x2APIC normally requires use of VT-d interrupt remapping feature on real hardware, which we don't support yet.
|
#
9c1714ec1a3c8c4769198af90694450c170da007 |
|
16-May-2011 |
Michael Lotz <mmlr@mlotz.ch> |
Enable IO-APICs by default. It's been tested on a broad spectrum of hardware and all reports so far have been positive. We fall back to legacy mode in the cases where we can't figure out the correct routing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41527 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
56b5ad07811e608372b159831a6151598edefd48 |
|
07-May-2011 |
Michael Lotz <mmlr@mlotz.ch> |
Added a temporary opt-in option "enable_ioapic" to the boot menu. This way the IO-APIC can be easily enabled to test it on various configurations. Note that the previous default opt-out didn't work because the safemode options would not be touched at all when not actually entering the boot menu. Once IO-APIC is more broadly tested this can be removed again and the opt-out option reenabled. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41370 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7b1d69ecbb66d555b074b028e26380e92c198673 |
|
23-Jun-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added safe mode option B_SAFEMODE_4_GB_MEMORY_LIMIT (plus a boot loader menu item) and kernel settings option "4gb_memory_limit". Enabling either one causes the memory beyond 4 GB to be ignored. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37225 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6242fd597772185600b922845b95c5223f8b3336 |
|
08-Nov-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Added the possibility to debug latency issues with spinlocks. * When DEBUG_SPINLOCK_LATENCIES is 1, the system will panic if any spinlock is held longer than DEBUG_LATENCY micro seconds (currently 200). If your system doesn't boot anymore, a new safemode setting can disable the panic. * Besides some problems during boot when the MTRRs are set up, 200 usecs work fine here if all debug output is turned off (the output stuff is definitely problematic, though I don't have a good idea on how to improve upon it a lot). * Renamed the formerly BeOS compatible safemode settings to look better; there is no need to be compatible there. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33953 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f0bf38026aff5c5894996aa404758f4705d2ef7b |
|
14-Sep-2009 |
Stefano Ceccherini <stefano.ceccherini@gmail.com> |
Add safemode option to disable the use of APIC timers git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33132 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
69dddbdea163b79cfb464b4a1bc18e6533ab06ff |
|
18-Jul-2008 |
Michael Lotz <mmlr@mlotz.ch> |
Initial work towards supporting IO APICs. This cannot work for PCI interrupts though until we use ACPI for proper PCI IRQ routing through the IO APIC. Therefore the IO APIC code path is not yet enabled and the IO APIC isn't used. ISA interrupts would work though, as would PCI interrupts if you'd hardcode them for your specific configuration. Note that this change also modifies some parts in the bootloader and in the PIC setup to make local APICs available even on non-SMP systems. This causes APIC timers to be used instead the normal PIT if it is available (also on non-SMP configurations). Also fixes some general errors in SMP and PIC code as well as some code cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26492 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6b202f4e3da73d4c131355fcd82b792d153f84f6 |
|
13-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Introduced new header directory headers/private/system which is supposed to contain headers shared by kernel and userland (mainly libroot). * Moved quite a few private kernel headers to the new location. Split several kernel headers into a shared part and one that is still kernel private. Adjusted all affected Jamfiles and source in the standard x86 build accordingly. The build for other architectures and for test code may be broken. * Quite a bit of userland code still includes private kernel headers. Mostly those are <util/*> headers. The ones that aren't strictly kernel-only should be moved to some other place (maybe headers/private/shared/util). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25486 a95241bf-73f2-0310-859d-f6bbb57e9c96
|