summaryrefslogtreecommitdiff
path: root/arch/x86
AgeCommit message (Collapse)Author
2019-09-13Fix the documentation according to the memory modelmemory_model_devRichard Braun
Also, change the ordering requirements of some operations.
2019-08-19Remove all mentions of "barriers" in the cpu moduleRichard Braun
2019-08-16Don't define cpu_delay as a compiler barrierRichard Braun
2019-08-16Use atomic signal fences in the x86 local atomic implementationRichard Braun
2019-08-16x86/latomic: fix latomic_x86_enter and latomic_x86_leaveRichard Braun
2018-11-12x86/boot: work around an SMP-related warningRichard Braun
2018-08-04x86/cpu: fix data/stack alignmentRichard Braun
2018-08-04x86/cpu: improve low level code clarityRichard Braun
Replace magic numbers with macros isolating the computation of offsets in exception frames. The latter are reworked as arrays of words.
2018-07-30x86: use the uart0 console when testing with QEMURichard Braun
The UART console allows using a bigger screen as well as easy copy/pasting the output.
2018-07-30x86/strace: align symbol names in backtracesRichard Braun
2018-07-30Rework assertive functionsRichard Braun
Instead of combining assertions and checking into single functions, rework those into pure checking functions usable with assert(). Those functions were introduced because of warnings about unused functions/variables caused by an earlier implementation of assert().
2018-07-10Makefile: print architecture-specific helpRichard Braun
2018-07-10x86/lapic: fix compiler warningsRichard Braun
2018-07-10x86: add portable architecture-specific qemu make targetRichard Braun
This target makes running QEMU simpler on non-x86 hosts.
2018-07-10kern/panic: remove initialization operationRichard Braun
Maintaining correct dependencies for the panic function is too complicated. It may be used very early, but would depend on the console, which is normally available quite late during initialization. Instead, the behavior of panic is now "best effort", i.e. if called at a time where it works, good, otherwise, the behavior is undefined, but should result in a freeze or a reset most of the time.
2018-07-10x86/cpu: optimize interrupt handlingRichard Braun
Now that exceptions and interrupts are clearly separated, stack switching on an interrupt is unconditional.
2018-07-10x86/cpu: fix excetpion handling on i386Richard Braun
2018-07-08x86/pmu_intel: use the compiler popcount built-inRichard Braun
2018-07-08Make linking against libgcc a global requirementRichard Braun
Linking against libgcc was made a per-architecture option for convenience reasons, an in particular because the kernel didn't have support for the red zone required by the AMD64 ABI. But lacking the compiler companion library proved to be problematic early after, so red zone support was implemented, and libgcc is now unconditionnally linked again.
2018-07-08x86/cpu: add red zone supportRichard Braun
Supporting the red zone is required for full ABI compliance, and in particular to safely link against libgcc.
2018-07-07x86/cpu: improve CPU flags handlingRichard Braun
2018-07-07x86/cpu: use atomic operations for CPU boot synchronizationRichard Braun
2018-07-07x86/{boot,cpu}: rework AP boot stack managementRichard Braun
2018-07-07x86/cpu: turn cpu_delay into a compiler barrierRichard Braun
2018-07-07x86/boot: turn some far returns into far jumpsRichard Braun
2018-07-07kern/thread: add thread name accessorRichard Braun
2018-07-07x86: refactor interrupt/exception handlingRichard Braun
This commit merges the trap module into the cpu module in order to solve interface problems caused by the degree to which those two modules are actually coupled, i.e. it just makes a lot more sense to not separate them at all. The cpu module is also internally reworked with improved object and method definitions, that clarify the double fault handling code, among other things.
2018-07-07x86/cpu: add accessorsRichard Braun
The accessors provide access to the width of physical addresses and CPUID/vendor information.
2018-06-27x86/boot: rename entry pointRichard Braun
2018-06-26x86/strace: rework to use the embedded symbol tableRichard Braun
2018-06-26x86: update linker script to include the embedded symbol tableRichard Braun
2018-06-25x86: add performance monitoring supportRichard Braun
2018-06-25kern/percpu: introduce per-CPU operationsRichard Braun
2018-06-25x86/cpu: new cpu_get_freq functionRichard Braun
2018-06-25x86/cpu: new 64-bit MSR accessorsRichard Braun
2018-06-25x86/cpu: fix and improve MSR accessorsRichard Braun
2018-06-25x86/cpu: identify processor vendorRichard Braun
2018-05-07kern/atomic: alias to latomic operations if relevantRichard Braun
2018-05-07x86/latomic: architecture-specific implementationRichard Braun
2018-05-07kern/latomic: new moduleRichard Braun
2018-05-07kern/atomic: minor changesRichard Braun
This is mostly a polishing commit.
2018-04-26kern/atomic: minor reworkRichard Braun
Allow architectures to specifically override any of the overloaded functions. This removes the need from architecture-specific code to implement selection.
2018-04-21Merge branch 'atomic_rework'Richard Braun
2018-04-21kern/atomic: reworkRichard Braun
This commit restricts atomic operations to 32-bit and 64-bit (when supported). It keeps a similar source interface, but adds restrictions on the supported types. The main drive behind this change is portability, and in particular, upcoming local atomic operations.
2018-04-21Fix atomic operations argument typesRichard Braun
In preparation of the rework of atomic operations, all atomic function calls are fixed to use fully supported, compatible types. This means that atomic operations ar erestricted to 32-bit and 64-bit, and that value types must be strictly compatible with pointer types.
2018-04-21x86: fix i386_defconfigRichard Braun
2018-04-14Rename variables in function-like macrosRichard Braun
2018-04-14Fix left-over reserved identifiersRichard Braun
For some reason, commit be5b9d6ab9f7e7a81c367e4bb0823ba11f85940f didn't take care of all reserved identifiers.
2018-04-13x86/lapic: fix inter-process interrupt generationRichard Braun
Make the lapic_ipi function interrupt-safe.
2018-04-09Make linking with libgcc a per-architecture optionRichard Braun