summaryrefslogtreecommitdiff
path: root/arch/x86/machine/lapic.c
AgeCommit message (Collapse)Author
2018-05-03lapic: resets perfmon interrupt after each call.Remy Noel
2018-04-29Minor changesRichard Braun
2018-04-21lapic: fix non-perfmon compilation.Remy Noel
2018-04-21perfmon: add perfmon overflow interrupt.Remy Noel
2018-04-13x86/lapic: fix inter-process interrupt generationRichard Braun
Make the lapic_ipi function interrupt-safe.
2018-01-20x86/lapic: don't pack memory map structuresRichard Braun
This is actually unneeded and dangerous, as it may cause the compiler to access registers in multiple instructions.
2017-08-27kern/clock: new moduleRichard Braun
2017-06-25Remove the param moduleRichard Braun
Move the page properties into the new x86/page module, and the virtual memory layout macros into the x86/pmap module.
2017-06-24Move the HZ macro to the kern/thread moduleRichard Braun
2017-06-10Use log functions where appropriateRichard Braun
2017-06-03x86: don't unconditionnally initialize the legacy PICRichard Braun
2017-05-30Move assert.h to the include directoryRichard Braun
This turns assert.h into a standard header.
2017-05-28x86/lapic: fix initialization on BSPRichard Braun
2017-05-26x86: use the new intr moduleRichard Braun
In particular, the pic and ioapic modules register their respective devices as interrupt controllers. Selection between the legacy XT-PIC and the modern APIC system is made on the availability of ACPI, disregarding the multiprocessor specification entirely. The uart driver is also updated to register devices interrupt handlers.
2017-05-16x86/lapic: reduce timer calibration delayRichard Braun
Now that cpu_delay uses the timestamp counter, local APIC timer calibration gets more precise, and doesn't require such a long interval.
2017-04-29New stdio.h standard headerRichard Braun
Make kernel code obtain definitions for the printf family of functions through the inclusion of the standard stdio.h header.
2017-04-29kern/printk: rename to printfRichard Braun
The printk functions are close enough to the printf ones to bear the same names.
2017-02-04Clean up compilationRichard Braun
Instead of mixing standard headers and internal redefinitions of standard types, completely rely on the compiler for what is guaranteed for a free standing environment. This results in the removal of kern/stddef.h and kern/stdint.h. The kern/types.h header is reintroduced for the different (and saner) purpose of defining types not specified in standard C, namely ssize_t for now.
2016-12-09Force brackets around one-line conditional statementsRichard Braun
This change was done using astyle, with a few manual editing here and there.
2014-10-02x86/{lapic/pic}: normalize interrupt handler namesRichard Braun
Interrupt handler functions are suffixed with _intr.
2014-05-21x86/lapic: improve IPI generationRichard Braun
2014-05-21x86/lapic: clarify interfaceRichard Braun
Make it clear that destinations are APIC IDs and not kernel-assigned processor IDs.
2014-05-13kern/thread: rename thread_tick to thread_tick_intrRichard Braun
2014-05-08x86/lapic: report internal errorsRichard Braun
My AMD Phenom II X4 955 processor suddenly started to trigger local APIC error interrupts with ESR=0 for some strange reason. Work around the issue by reporting the error instead of halting. In my case, everything else worked as expected despite the error interrupt, which is triggered only once, on cpu0, as soon as the scheduler is started and enables interrupts. It's probably worth to note that this particular machine has shown other weird problems while running up-to-date mainstream operating systems such as Linux.
2014-01-02Declare variables as read mostly where appropriateRichard Braun
2012-12-12kern/thread: support multiprocessor schedulingRichard Braun
In practice, this merely means an idle thread now exists for each CPU, and threads can be preempted and rescheduled on each of them. There is currently no migration between processors.
2012-12-09x86/pmap: inter-processor TLB updatesRichard Braun
Scheduling is temporarily disabled until the thread module is able to cope with multiple processors.
2012-12-09x86/lapic: fixed/broadcast inter-processor interruptsRichard Braun
In addition, make lapic_eoi public.
2012-11-19kern/thread: preliminary scheduling implementationRichard Braun
This change adds periodic timer interrupt reporting to the thread module, basic thread selection, and context switching. It currently only applies to the main processor. The x86/tcb module has been drastically simplified as a side effect.
2012-11-03Merge lib into kernRichard Braun
There are no precise enough criteria to justify the separation of these two directories.
2012-10-22x86/trap: new moduleRichard Braun
The trap module is responsible for managing low level interrupts and exceptions.
2012-10-03x86: new architectureRichard Braun
Merge 32-bit IA-32 (i386) and 64-bit AMD64 (amd64) code into one common architecture. The amd64 variant isn't functional yet.