History log of /barrelfish-master/kernel/arch/x86_64/irq.c
Revision Date Author Comments
# 9bd8d1d5 03-Apr-2019 Reto Achermann <reto.achermann@inf.ethz.ch>

replacing umlaute and fixing address in headers Haldeneggsteig -> Universitaetsstrasse

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# 106e5cde 27-Feb-2019 Lukas Humbel <lukas.humbel@inf.ethz.ch>

turn serial pc16550d into module

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# 4bccd389 20-Feb-2019 Lukas Humbel <lukas.humbel@inf.ethz.ch>

Turn serial driver into module and fix userspace GIC

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# d537665d 20-Oct-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T168: modify system to be more/less verbose about pagefaults.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 3a41b163 11-Oct-2018 Lukas Humbel <lukas.humbel@inf.ethz.ch>

hpet source code cleanup

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# beae220b 09-Aug-2018 Rana Afifi <afrana@student-ethz.ch>

HPET Driver which now can configure FSB interrupts and receive them

Signed-off-by: Rana Afifi <afrana@student-ethz.ch>


# 4213f5b8 15-Mar-2018 Reto Achermann <reto.achermann@inf.ethz.ch>

caps: adding endpoint cap type for UMP endpoints

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# d9087e1e 27-Feb-2015 Kornilios Kourtis <kkourt@inf.ethz.ch>

kernel: dont print message on user page faults

Signed-off-by: Kornilios Kourtis <kkourt@inf.ethz.ch>


# 7e74d830 10-Oct-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,x86_64: print rsp,rbp when taking kernel fault

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 9a7d2f5b 11-May-2018 Adam Turowski <adam.turowski@inf.ethz.ch>

fpu: unifing the fpu's context switching
x86_64: fixing the stack's alignment

Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>


# df7a10ce 11-May-2018 Adam Turowski <adam.turowski@inf.ethz.ch>

fpu: unifing the fpu's context switching
x86_64: fixing the stack's alignment

Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>


# 6415ae25 07-Feb-2018 Lukas Humbel <lukas.humbel@inf.ethz.ch>

Correct irq delivery in int_route client

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# cea6f092 22-Dec-2017 Lukas Humbel <lukas.humbel@inf.ethz.ch>

Kaluga: Make unified irq src caps work on armv7

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# da7f8971 10-Oct-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,x86_64: print rsp,rbp when taking kernel fault

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 05f3eb5a 27-Nov-2016 Adam Turowski <adam.turowski@inf.ethz.ch>

systime: introducing system time based on time stamp counter/global timer, removing kernel_now

Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>


# d29f9d41 31-Oct-2016 Adam Turowski <adam.turowski@inf.ethz.ch>

network: replacing the continuation manager with simple queues
e1000: small performance tweaks

Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>


# d30a3f6b 07-Oct-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: Add range to IRQSrc cap

To prepare for MSIx, we change the IRQSrc cap so that it does not
represent a single interrupt source but a whole range. This commit
changes it to a range.

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# 10957289 05-Aug-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T258: Delete GPT cspace functionality and rename new functions

This commit deletes all the old GPT cnode code, and renames the new two-level
functions to the "old" names (e.g. caps_lookup_slot() is now a two-level
cspace function).

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 9ecf3912 19-Jul-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: Activate PCI interrupts

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# b1f13195 14-Jul-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: Kaluga start driver with IRQ caps.

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# 145c3282 12-Jul-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: use uint64_t everywhere for int numbers, renamed controller

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# f5ad184d 29-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: x86,k1om: #define START_KERNEL_PHYS as alias for {X86_64,K1OM}_START_KERNEL_PHYS

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 17948f60 22-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T258, T264, T270: Implement two-level cspace layout using L1/L2 CNode objects.

distops functionality is NYI.

This commit also makes the root cnodes explicit for sys_map(), closes T270.

Notable changes:
* LRPC LMP endpoints are regular capabilities in L2 cnode, no longer in root
cnode.
* Capability operations take a capability address for the root cnode relative
to which capability addresses are to be resolved. The root cnode capability
address must be resolvable in the current domains cspace.

Closes T264.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 69b41b96 18-Apr-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

Squashed changes of e89aa91..6ca6bdf (master as of 2016-04-18).

Take this commit out when merging

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 941addfd 08-Apr-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: bugfix (no index variable shadow)

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# 823b775b 05-Apr-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: refactoring caps names

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# 5029b6d0 05-Apr-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: Now using (again) a table of ep caps for dispatch and a bitmap for
allocations.

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# f60a294c 01-Apr-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: Found bug, added assertion

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# 380c1162 31-Mar-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: added irq source capability and make the inthandler setup use it

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# 21504120 30-Mar-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: Making the code actually work. ACPI interface

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# ad5eb4e8 29-Mar-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: changed kernel to use irq_dest_cap table with IRQVector caps

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# 064c70fe 24-Mar-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: added IRQVector cap

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# 182a5397 24-Mar-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: getting pci_client closer to using new interface

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# 84deeb42 22-Mar-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: work in progress on receiving side

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# 68d69b70 11-Mar-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

IRQ: Started on the local/driver side. Not a working state.

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# c15e72fa 18-Mar-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

x86_64: irq vector allocation: simplify looping over KCBs and fix loop to check in right kcb

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# bb1a333a 03-Feb-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

x86_64: added more descriptive error message in generic_handle_user_exception.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 37a8558c 26-Nov-2014 Reto Achermann <reto.achermann@inf.ethz.ch>

Cleanup of Xeon Phi Kernel:

Merged duplicated code from k1om architecture with the X86_64 architecture.
No-longer files in arch/k1om have been deleted.


# fb383f0d 10-Nov-2014 Gerd Zellweger <mail@gerdzellweger.com>

Put KCB syscalls in platform independent kernel source.


# a5c0226e 07-Nov-2014 Gerd Zellweger <mail@gerdzellweger.com>

Add KCB to 32bit IRQ code.


# ed97258e 22-Oct-2014 Gerd Zellweger <mail@gerdzellweger.com>

Make stop core interrupt a proper kernel level IRQ.


# fba176c5 21-Oct-2014 Gerd Zellweger <mail@gerdzellweger.com>

Fix comments and remove debug printing.


# b6aa6100 02-May-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

last fixes for coreboot.


# 96877be8 30-Apr-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: more descriptive irq debug message.


# 2d85d019 30-Jan-2014 Gerd Zellweger <mail@gerdzellweger.com>

Version used to benchmark the postgres.


# fab215c7 28-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Updated kcb selection logic in send_user_interrupt(). Added clarifying comment in kcb_remove().


# dbeaac1e 27-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Added code to make deferred events fairly accurate and added shutdown to update operation in cpuboot.


# 59885390 27-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Fixed various interrupt bits.


# 4039bf73 26-Jan-2014 Gerd Zellweger <mail@gerdzellweger.com>

Move IRQ for halt() to handle_irq.


# df86b83f 25-Jan-2014 Gerd Zellweger <mail@gerdzellweger.com>

Added functionality to stop core using IPIs.


# 7c9d8d47 23-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Added missing pieces for enabling moving kcbs with domains that are taking interrupts.


# 00e703f2 23-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Implemented call chain for making interrupts movable.


# 424e4674 22-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Moved interrupt vector allocation into cpu driver.


# 0f860427 15-Jan-2014 Gerd Zellweger <mail@gerdzellweger.com>

Revert "[HACK] changes some measurements and makes code compile."

This reverts commit a5704d79a0ec8fb150b27c7e200708bb448b43ba.
Was not intended to push this.


# 4d3237cb 15-Jan-2014 Gerd Zellweger <mail@gerdzellweger.com>

[HACK] changes some measurements and makes code compile.

DO not commit upstream.


# 508af99f 15-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Band-aid fix for IRQ 222 troubles we've had.


# f7f0d859 14-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Added moving kcb off shared cpu driver, currently crashes in newly started kernel on target core.


# 050f6d0a 14-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Added home kcb which is used for interrupt handling.


# 21520879 14-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Added invocation to remove kcb from kcb scheduling ring.


# 237e5bdf 13-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Various debugging and disabled mdb sanity checks.


# cd1a5359 13-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Added switching of kcb on timer interrupt and added invocation to add kcb to ring.


# 02860728 13-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Renamed kernel global kcb to kcb_current. Fixed wakeup code to directly reference kcb->wakeup_queue_head.


# e886455c 19-Dec-2013 Simon Gerber <simon.gerber@inf.ethz.ch>

Removed lastdisp and kernel_now from kcb; call scheduler_reset_time() on restore instead.


# f488045b 19-Dec-2013 Gerd Zellweger <mail@gerdzellweger.com>

Moved irq_dispatch in kcb again.


# 106d16b7 19-Dec-2013 Gerd Zellweger <mail@gerdzellweger.com>

Revert "Move IRQ state (IDT, dispatch table) inside kcb."

This reverts commit ac289eec65c328f9f7e2ed53f077f2303eeeb61c.

Conflicts:
kernel/arch/x86_64/irq.c


# 29e77526 18-Dec-2013 Gerd Zellweger <mail@gerdzellweger.com>

Debug output.


# b4fb359f 18-Dec-2013 Simon Gerber <simon.gerber@inf.ethz.ch>

Added kernel_now to kcb and fixed restoring of scheduler state.


# d2c59223 18-Dec-2013 Gerd Zellweger <mail@gerdzellweger.com>

Move IRQ state (IDT, dispatch table) inside kcb.

Allows us to restore the IDT state on updates.


# f5eb1b0b 17-Dec-2013 Gerd Zellweger <mail@gerdzellweger.com>

Moving IRQ state in KCB.


# 7cd12806 16-Dec-2013 Gerd Zellweger <mail@gerdzellweger.com>

saving irq state.


# 8bf552b9 11-Dec-2013 Gerd Zellweger <mail@gerdzellweger.com>

Trying to figure out why APIC is no longer working


# de906f69 28-Feb-2014 Simon Peter <simpeter@cs.washington.edu>

The Arrakis backport to Barrelfish.

Here are the macro changes:
* Made lwIP an optional network stack
* Moved lwIP headers out of the general include directory
* Parallel hake
* CPU-virtualized ("arrakis") applications
* libarrakis is a new libOS that uses CPU features directly
* arrakismon is a new monitor for Arrakis apps
* QEMU Multiboot support instead of GRUB (enables KVM)
* e10k virtual function driver
* Software virtual->physical mapping (substitutes IOMMU)
* To be replaced soon with an Intel IOMMU driver
* Better GDB and stack tracing support
* New POSIX support
* pthreads, inet_*(), usleep(), syslimits.h, sigaction(), mman.h,
* resource.h, sendmsg(), recvmsg(), mkfifo(), syslog.h, sysexits.h,
* fcntl(), getegid(), getgid(), pipe(), rlimits
* epoll support
* Separate waitset for interrupts
* Thread TLS key and ID support
* Moved PCRE headers to include/, where they usually are
* Intel performance counters support
* Handle boot-time RAM overflow (for machines with >=64GB RAM)
* Arranet network stack
* Fix for build of lib/barrelfish/arch/x86_64/dispatch.c without -O2
* New comandline options to pci daemon:
* maxvfs=x, x is number of virtual functions to create for each
* device supporting it
* skb_bridge_program=x, x is SKB bridge programming script to use
* bridge_bios is a script that uses the BIOS pre-set values, like Linux
* Correctly build machine-optimized newlib parts
* Library versions of e1000 and e10k drivers
* Support for virtualization in e10k driver
* e10k datacenter control plane daemon
* Modified hellotest to be both a Barrelfish and an Arrakis application

I've decided not to include the lwIP 1.4.1 code, as the port is
not finished and who wants to use lwIP anyway with the Arrakis
network stack and mTCP being released soon. If you want this,
let me know (it's hugely superior to lwIP 1.3.1).

I've made the code backwards-compatible with Barrelfish. The
default should do what Barrelfish does. One can specify
commandline options to the PCI daemon and e10k driver to
configure I/O virtualization and the optional arrakismon allows
loading CPU-virtualized "arrakis" programs.

There are more pending changes, such as support for hardware
rate limiting and weighted round robin packet scheduling, but
I'd like these to go in first, before I push the rest.


# ca0fa85f 07-Nov-2013 pravin@inf.ethz.ch <pravin@inf.ethz.ch>

Cleaned up code and removed all the debugging related code


# 0be97004 07-Nov-2013 pravin@inf.ethz.ch <pravin@inf.ethz.ch>

Webserver working for full website with LMP.

This version of code still does not work for UMP,
and also it does not work for httperf test.

Also, there is lot of commented out code which was helpful for me
in debugging the issue of randome page-fault.


# 578ad774 06-Nov-2013 pravin@inf.ethz.ch <pravin@inf.ethz.ch>

Webserver working for small websites


# a6171934 30-Oct-2013 pravin@inf.ethz.ch <pravin@inf.ethz.ch>

Partially working version of the modified network stack.
Status: Networking works
Small website test works (Barrelfish website without pdfs)
Full website test does not work (Barrelfish website with pdfs)
Tests done with e1000n running on separate core


# b600a240 08-Mar-2013 Kornilios Kourtis <kkourt@inf.ethz.ch>

New tracing infrastructure

This is a Distributed Systems Lab project by
Alexander Grest <agrest@student.ethz.ch> and David Stolz <stolzda@ethz.ch>


# b66b3349 27-Feb-2013 Kornilios Kourtis <kkourt@inf.ethz.ch>

x86_64/irq.c: print SP on page fault error message


# 35a4b8ee 01-Jun-2012 Antoine Kaufmann <antoinek@student.ethz.ch>

Added tracing events for low latency networking
---
include/trace/trace.h | 34 +++++++++++++++++++++++--
kernel/arch/x86_64/irq.c | 4 +++
lib/lwip/src/barrelfish/idc_barrelfish.c | 9 +++++++
lib/lwip/src/core/pbuf.c | 16 ++++++++++++
usr/bench/net_latency/elb/Hakefile | 7 +++--
usr/bench/net_latency/elb/benchmark.c | 35 ++++++++++++++++++++++++++
usr/bench/net_latency/elb/benchmark_tcp.c | 38 +++++++++++++++++++++++++++++
usr/drivers/e10k/Hakefile | 11 +++++---
usr/drivers/e10k/e10k_qdriver.c | 26 ++++++++++---------
9 files changed, 158 insertions(+), 22 deletions(-)


# e8ada2b4 08-Aug-2012 Mothy <troscoe@inf.ethz.ch>

Removed some redundant (identical) files.

--HG--
rename : kernel/include/arch/x86_64/debug.h => kernel/include/arch/x86/debug.h
rename : kernel/include/arch/x86_64/pic.h => kernel/include/arch/x86/pic.h


# 52c61712 28-Dec-2011 Zeus Gómez Marmolejo <zeus.gomez@bsc.es>

Replaced caddr_t type with capaddr_t to avoid conflict with libc

for i in $(find . -type f)
do
grep -r caddr_t $i
if [ $? -eq 0 ]
then
sed 's/caddr_t/capaddr_t/g' $i > $i.sed
mv $i.sed $i
fi
done


# 4bb79fe9 09-Dec-2011 Mothy <troscoe@inf.ethz.ch>

Fixed long-standing 64-bit constants bug, by dropping C enumerations in favor of CPP macros.
Updated documentation.


# f71b4c9e 07-Dec-2011 Mothy <troscoe@inf.ethz.ch>

Fixed weird crashing bug.

--HG--
rename : devices/x86_64_pagetable.dev => devices/amd64.dev


# d7165cf5 05-Dec-2011 pravin shindep@inf.ethz.ch <pravin shindep@inf.ethz.ch>

Changes to get RX benchmark working.
There are lot of small changes in this commit and also extra code for debugging
and performance evaluation which will be cleaned in future versions.


# 09a41b3a 09-Nov-2011 Kornilios Kourtis <kkourt@inf.ethz.ch>

add support for one-shot timers

- Only for x86_64, and disabled by default using a config variable
- changes in existing code are guarded by #ifdefs


# ac18c742 09-Nov-2011 Kornilios Kourtis <kkourt@inf.ethz.ch>

Add some scheduling related comments


# 559955b4 02-Aug-2011 Simon Peter <speter@inf.ethz.ch>

Merge from ASPLOS tree.


# 9299dcef 08-Jul-2011 Stefan Kästle <stefan.kaestle@inf.ethz.ch>

Initial version of public stable barrelfish repository.