History log of /barrelfish-master/kernel/arch/x86_64/syscall.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>


# 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>


# ca8451e9 13-Nov-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,libbarrelfish: Remove Frame identify and Vnode identify invocation handlers and commands

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


# 8ff0486c 13-Nov-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

Remove invoke_frame_identify, replaced with frame_identify().

This commit fully removes the Frame_Identify invocation and replaces the
calls with frame_identify().
Additionally, because the KCB is special, this commit introduces a new
invocation kcb_identify() which translates the lvaddr in the KCB
capability into the pysical address of the kernel control block.

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


# b917f1c1 13-Nov-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

libbarrelfish: endpoints: refactor to make EP management invocations unnecessary.

This commit implements endpoint_identify using cap_direct_identify and
endpoint_set_iftype using cap_mint.

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


# bf04495c 06-Nov-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: x86_64: vmkit: handle_dispatcher_setup_guest: save guest root pt address in dcb->vspace and dcb->guest_desc.vspace.

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


# 81781123 01-Nov-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,monitor: implement reclaiming of previously dropped ram caps.

Until now, if the kernel couldn't return a freed region of physical
memory to the monitor, e.g. because the monitor was not ready yet, or
the monitor's receive slot is already occupied, it would drop the range
and print a diagnostic message.

With this change, the cpu driver has 4 slots per KCB in which it can
store a range that would be dropped. The monitor gets a new kernel cap
invocation which allows it to retrieve one of the stored slots, if any.
The monitor runs a deferred event loop which checks if there's a range
to retrieve every second, and forwards any retrieved ranges to the
memory server.

The retrieval is very similar to a capops delete step, but does not
happen inside the capops machinery because the need for an action are
not coupled to a capability operation.

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


# 5ef61ece 23-Oct-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

libbf: use cap_direct_identify for frame_identify and co and replace calls to debug_cap_identify where appropriate

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


# dc30d977 18-Oct-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,x86_64: vnode_inherit: fix call to create_mapping_cap

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


# 91d728c7 25-Jun-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,libbarrelfish: implement general purpose direct cap_identify

This is required when an application wishes to map its own page tables read
only, as we previously did not have a sensible general purpose way of figuring
out the type of a given capref without using a debug invocation.

Realistically, direct cap_identify should be modified to redact potentially
sensitive information which we want to withhold from applications.

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


# b4221c3b 09-Dec-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

T383: vnode_inherit: create mapping caps for cloned ptes

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


# 6d6a44dd 08-Dec-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

T383: Add comment about needing to create mapping caps in vnode_inherit invocation handler

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


# c8597501 17-Oct-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,x86_64: allow dump of page tables around provided virtual address

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


# 922fc829 07-Mar-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: add debug printf in vnode_inherit handler

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


# 31736bdc 07-Mar-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: fix remaining merge errors in vspace management code

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


# 30b6237b 18-Oct-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T167: improvements to copy-on-write benchmark.

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


# e7a11470 08-Oct-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T166: implement cloning of pte pages using spacejmp vnode_inherit

Closes T166

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


# da6b8b38 21-Jul-2015 Reto Achermann <reto.achermann@inf.ethz.ch>

mvas: adding kernel support for raw vnode copy

cherry-pick vnode_clone() for lazy cow

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


# fcc60dd3 19-Jul-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

kernel: add invocation to set iftype of endpoint (for x86_64)

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 73630d29 18-Apr-2018 Lukas Humbel <lukas.humbel@inf.ethz.ch>

driverkit: better handling of node ids

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


# d843c206 04-Apr-2018 Reto Achermann <reto.achermann@inf.ethz.ch>

cpudriver: remove a debug printf

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


# b76150a5 16-Mar-2018 Reto Achermann <reto.achermann@inf.ethz.ch>

caps: implementing support to identify and map endpoint caps

Signed-off-by: Reto Achermann <reto.achermann@inf.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>


# e864260a 12-Mar-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

kernel: handle devid cap invoke correctly

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 52f0a76b 11-Mar-2018 Reto Achermann <reto.achermann@inf.ethz.ch>

devidcaps: pass all arguemnts to the kernel to fill the cap

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


# 7773be69 05-Mar-2018 Reto Achermann <reto.achermann@inf.ethz.ch>

caps: adding invocation handlers for the new captypes to the cpudriver

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


# 6f321005 28-Feb-2018 Reto Achermann <reto.achermann@inf.ethz.ch>

caps: adding capability definitions for the Intel VT-d IOMMU root and context tables

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


# a2f1e286 23-Mar-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T82: checkpoint. Guest domain up. Need to implement hypervisor service.

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


# 13980b70 25-Mar-2015 Gerd Zellweger <mail@gerdzellweger.com>

kernel,libbarrelfish: Add debug syscall for flushing the TLB.

Signed-off-by: Gerd Zellweger <mail@gerdzellweger.com>


# 825c48c3 19-Mar-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

Minor fixes.

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


# 5b1c86e8 19-Mar-2015 Oleg Godunok <none@none>

Arrakis with Intel virtualization extensions.

Made the necessary changes to allow Arrakis domains to work with Intel
virtualization extensions. The type of extensions that are enabled (AMD or
Intel) is controlled by the configuration variable config_svm in
hake/Config.hs.

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


# 78ccc02c 03-Mar-2015 Gerd Zellweger <mail@gerdzellweger.com>

Added cap invocation that clears the dirty bits.

Signed-off-by: Gerd Zellweger <mail@gerdzellweger.com>


# 2614f67c 27-Oct-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

Add mdb operation counts to calculate scores for different implementations

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


# 07645779 27-Oct-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

Add mdb operation counts to calculate scores for different implementations

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


# 4500ea44 18-Sep-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,libbf: implement noop invocation on Objtype_RAM

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


# e4aef53a 18-Sep-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,libbf: implement noop invocation on Objtype_RAM

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


# 54207f1f 25-Aug-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

Implement get_mdb_size() debug syscall

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


# c1c6635e 25-Aug-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

Implement get_mdb_size() debug syscall

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


# 6296e5d6 07-Aug-2018 Adam Turowski <adam.turowski@inf.ethz.ch>

xeon_phi: fixing timers, dispatching and stack's alignment

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


# f3d04a51 14-May-2018 Adam Turowski <adam.turowski@inf.ethz.ch>

Removing the unnecessary syscall GET_ABS_TIME from x86_64

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


# 5e68d81b 14-May-2018 Adam Turowski <adam.turowski@inf.ethz.ch>

fpu: some cleanups

Signed-off-by: Adam Turowski <adam.turowski@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>


# a5455891 14-May-2018 Adam Turowski <adam.turowski@inf.ethz.ch>

Removing the unnecessary syscall GET_ABS_TIME from x86_64

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


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

fpu: some cleanups

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>


# f5426458 06-Oct-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T166: x86_64: implement vnode_modify_flags

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


# 01ee9a40 22-Sep-2017 Adam Turowski <adam.turowski@inf.ethz.ch>

Fixup of some headers.

Signed-off-by: Adam Turowski <adam.turowski@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>


# 8d697ae2 09-Nov-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

x86_64: kernel: fix handle_vnode_identify to not do superfluous switch on objtype

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


# 80f4ecf3 01-Nov-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

Make debug_my_cspace work with new CSpace layout

Signed-off-by: Lukas Humbel <lukas.humbel@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>


# aa13ea83 02-Aug-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T276: Fix monitor revoke check to check for overlapping descendants instead of any descendants

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


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

T274: Fix remote retype

Properly propagate source and destiation root cnode throughout monitor retype
code and fix kernel code for monitor cap creation and monitor retype.

Signed-off-by: Simon Gerber <simon.gerber@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>


# be009ebd 27-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T266: Resizing root cnode enabled for libmm slot allocator

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


# 3adb4eaf 25-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T273: x86_64: monitor invocation handlers: rename vbits to level for cspace level arguments

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


# 0d0a3446 25-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T273: fix monitor_retype and adjust arguments in direct retype

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


# 9918bcec 25-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T258: x86_64: change dispatcher_setup_guest, trace_setup and perfcounter_activate to use new cap lookup functions

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


# b590dd1b 25-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T273: x86_64: distributed capability operations updated to new cspace layout

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


# 0af702bd 25-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,x86_64: move handle_map to where it should be in the file

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>


# fad6529e 04-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T264: Add NYI handler for L1/L2 CNode invocations

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


# eb4f236c 22-Jun-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T255: kernel cap invocation and monitor RPC to discover architecture and platform.

Closes T255.

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


# bc066070 16-Jun-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: x86_64: set dcb_current->disabled correctly when entering kernel via syscall

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


# be54ebeb 29-Apr-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T191: x86_64: refactor retype2 back to retype

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


# e07e9496 20-Apr-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T191: remove old caps_retype() code from kernel

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


# 4d6a0890 20-Apr-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T191: add warning about use of old retype

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


# bb44e814 20-Apr-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T191: update monitor capops retype

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


# de0e8f91 19-Apr-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T191: comment arg dumping for retype2 and add comment about retype + copies of src

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


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

Implement identify command for ObjType_RAM

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


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

T191: fix wrong command in invoke_cnode_retype2, and add some more output in kernel code

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


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

T191: Implement prototype for new retype

The new retype call takes an offset into the source cap and a count of objects
to create. This is different from the old call that just took a source and
created as many new objects as fit into that source (determined by source size
and requested size for new objects).

Currently available as `cap_retype2(dest_start, src, offset, new_type, objsize, count);`

Note that this is not used anywhere yet.

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>


# 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>


# 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>


# 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>


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

IRQ: cap stubs

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


# ced110dd 26-Feb-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T191: x86_64: frame_identify returns size in bytes

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


# fc7fc8de 16-Dec-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T191: change PhysAddr, RAM, Frame, DevFrame and VNode_* cap types to have size in bytes

This only changes the actual struct capability reprensentation for these
types. Most of the code dealing with these types now uses log2ceil(bits) to
set the new `bytes` field.

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


# 1afe32bb 18-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: change vnode_unmap() to only take ptable and mapping caps

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


# 0a849360 18-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: Implement modify_flags() on mapping cap

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


# bd42059e 17-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: x86_64: squash capability size to 64 bytes

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


# 612306d2 17-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: kernel: add mapping cap commands (NYI)

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


# 7a7afdec 17-Nov-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T187: kernel unmarshalling of mapping cap slot

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


# 0c769dd9 20-Aug-2015 Reto Achermann <reto.achermann@inf.ethz.ch>

kernel: SYS_ERR_VMKIT_UNAVAIL on VM syscalls on Xeon Phi

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


# 42ff64e3 14-Aug-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

Fix arrakis merge errors

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


# af59ae7e 15-Jun-2015 Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>

T119: kernel, spawn, libbarrelfish, fish: Remove DEBUG_PRINT_CAPABILITIES syscall. Use capinvoke from fish instead. Improve output formatting.

Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>


# cd66fb54 15-Jun-2015 Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>

T119: kernel, spawnd, fish: Use dispatcher invocations to dump capability information

Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>


# 27e7faaa 15-Jun-2015 Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>

T119: kernel: Unify debug_print_capabilities in sys_debug.c

Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>


# 6ed71d68 11-Jun-2015 Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>

T119: implement syscall and monitor interface to debug_print_capabilities

Signed-off-by: Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>


# 47cce963 11-Mar-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T77: Implement selective TLB flushing hint for modify_flags.

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


# 878547ec 04-Jun-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

Merge of upstream arrakis code.

This merge includes the following:
* VT-d (IOMMU) support
* VMX (Intel CPU virtualization) support
* Parallel hake build
* MegaRAID driver
* Subways fast packet forwarding application
* Identify physical address of VNodes
* libstorage (VSIC & VSA support)
* POSIX support: poll, uname, nanosleep, fsync, poll, pthread attributes, syslog, wait3, ...
* TenaciousD (persistent data structures: log & queue)
* Hack to skip boot RAM when it's too large
* Arranet: Support for raw IP sockets, interrupts
* Removal of colorful debug output
* MegaRAID blockdevfs support
* Arrakis compile wrappers for Autoconf
* Patches to binutils & GCC to build Arrakis C++ applications

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>
Signed-off-by: Simon Peter <simpeter@cs.washington.edu>
Signed-off-by: Oleg Godunok <ogodunok@gmail.com>
Signed-off-by: Antoine Kaufmann <antoinek@cs.washington.edu>
Signed-off-by: Jialin Li <lijl@cs.washington.edu>
Signed-off-by: Dalton Black <dalton.m.black@gmail.com>
Signed-off-by: Taesoo Kim <taesoo@uw.edu>


# 92460242 03-Mar-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: x86_64: fix error passthrough in modify_flags.

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


# 4713b669 20-Feb-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

Add get_absolute_time() syscall + implement std::chrono::steady_clock::now() using it.

This addresses T64. Needs revising and more work to make it available on
architectures other than x86_64.

This may not quite satisfy the requirements mandated for
std::chrono::steady_clock, but is good enough to make steady_clock workable
for code that needs to work with millisecond precision durations.

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


# d2cf0745 11-Dec-2014 Gerd Zellweger <mail@gerdzellweger.com>

[clang] Fixes for the clang compiler.


# dfddb708 26-Nov-2014 Timothy Roscoe <troscoe@inf.ethz.ch>

Ensure all Mackerel files are included explicitly from dev/


# 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.


# db8fa193 21-Nov-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Factored out IPI sending invocations to their own cap instead of kernel cap.


# 119e092c 11-Nov-2014 Gerd Zellweger <mail@gerdzellweger.com>

Remove unneeded code.


# 089514f9 11-Nov-2014 Gerd Zellweger <mail@gerdzellweger.com>

Make sure it compiles on x86 again.


# de30396d 11-Nov-2014 Gerd Zellweger <mail@gerdzellweger.com>

Boot driver for ARM can now boot a pandaboard core.


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

Put KCB syscalls in platform independent kernel source.


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

Move boot-up assembly to usr/drivers.


# b09035c2 05-Nov-2014 Gerd Zellweger <mail@gerdzellweger.com>

Remove unneeded code in x86_64.


# 5e985cb2 29-Oct-2014 Gerd Zellweger <mail@gerdzellweger.com>

Remove no longer necessary assertion and print.


# 6788c45f 28-Oct-2014 Gerd Zellweger <mail@gerdzellweger.com>

Refactor kcb add/remove function in kernel.


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

Remove the KernelCmd_StopCore.

We do not really have need for this as long as booting a core is fast
enough.


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

Changes to make benchmarks work.


# 060eb5bb 05-Apr-2014 Gerd Zellweger <mail@gerdzellweger.com>

Warning to pleco file added.


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

Fixed deferred events when migrating onto running cpu driver.


# 10188087 24-Jan-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Added current core_id so we can properly reroute interrupts after moving kcb.


# 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.


# 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.


# 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.


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

Reverted kernel_add_kcb to take a kernel-local address again.

This reverts commit 3e872068eff416694c585511539172f11858daf1.


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

Make kernel_add_kcb take a physical instead of a kernel-local address.


# 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.


# 28a9f55f 09-Jan-2014 Gerd Zellweger <mail@gerdzellweger.com>

Fix some code, able to do benchmarks.


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

Using sys_suspend syscall to halt a core and resume later.

Also adding user-level part where we do something similar to sys_yield, ie. save
the context for enabled dispatcher while disabled and set the dispatcher to
enabled again in the kernel. This ensures we will jump back to the right part
when scheduling without ever returning from the syscall.


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

Use monitor/mwait function that were already there

Refactored some of the code, have a function that checks for monitor/mwait
support before.


# d9aca7a5 17-Dec-2013 Simon Gerber <simon.gerber@inf.ethz.ch>

Implemented FrameCmd_Identify for kcb.


# f4e96de8 13-Dec-2013 Gerd Zellweger <mail@gerdzellweger.com>

Enable monitor/mwait.


# d0d3f2f7 13-Dec-2013 Gerd Zellweger <mail@gerdzellweger.com>

Keyboard working.


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

Trying to figure out why APIC is no longer working


# a9805c82 10-Dec-2013 Gerd Zellweger <mail@gerdzellweger.com>

Can halt/resume cores again using monitor/mwait.


# 387fbfef 05-Dec-2013 Gerd Zellweger <mail@gerdzellweger.com>

Try monitor/mwait in kernel.


# 08ecc314 19-Nov-2013 Gerd Zellweger <mail@gerdzellweger.com>

Add syscall to get phys address of struct global.

We need to set a pointer in the bootstrap code of the new kernel to
point to this global struct that is shared by all kernels. The global
struct contains a lock for printing to console.

This change allows to completely remove all boot-up logic in the kernel.
All we use the kernel for now is to send interrupts to awake the
destination core.


# 4154407d 14-Nov-2013 Gerd Zellweger <mail@gerdzellweger.com>

Remove trailing whitespace.


# b88f6a2e 14-Nov-2013 Gerd Zellweger <mail@gerdzellweger.com>

Added Syscalls for startup ipi and init ipi.


# f02a8d89 25-Mar-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

monitor: removed unused monitor_identify_cnode_get_cap.


# 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.


# 1bcf4690 25-Sep-2013 Gerd Zellweger <mail@gerdzellweger.com>

Added a syscall to halt a core.

Currently only for x86-64 and it does not do any checks if its actually safe to
halt the core.


# b8d995cb 02-Oct-2013 Simon Gerber <simon.gerber@inf.ethz.ch>

Redesigned hw page table dumping to be an invocation on a dispatcher cap.

This has two benefits over the old design where dumping hw page tables was a
kernel cap invocation and took a dispatcher cap as an argument:
1) This is probably the most common use case, you don't have to go through
the monitor if you just want to dump your own hw page tables.
2) A domain which has the dispatcher cap of another domain (mostly because
it's going to spawn said domain) can dump the hw page tables of the
to-be-spawned domain without capability address contortions.


# 97241117 20-Aug-2013 Simon Gerber <gesimu@gmail.com>

Added missing ifdefs in TRACE_PMEM_CTRL syscall.


# 7cf6d00d 31-Jul-2013 Simon Gerber <simon.gerber@inf.ethz.ch>

Added debug syscall & Config.hs variable for physmem capability tracing.


# 1e14b9d3 18-Jul-2013 Simon Gerber <simon.gerber@inf.ethz.ch>

Fixed capability system merge errors. Builds, boots and promptly crashes.


# cd9c7033 03-Aug-2012 Mark Nevill <mark@nevill.ch>

Implemented monitor_delete_foreign invocation.

This invocation is used when deleting the last copy of a non-moveable
cap on its owning core. In this case, because the owner cannot be
migrated, all foreign caps must also be deleted, for which this
invocation is run on each monitor with foreign copies.


# b9db7ed3 03-Jul-2012 Mark Nevill <nevillm@ethz.ch>

Rewrote distributed revoke and delete handling.


# 8055af74 25-May-2012 Mark Nevill <nevillm@ethz.ch>

Implemented support for "give_away" transfers in capops_copy.


# f0f90877 16-May-2012 Mark Nevill <nevillm@ethz.ch>

Added individual remote relations bits for copies/ancestors/descendants.


# e229b39a 01-Apr-2012 Mark Nevill <nevillm@ethz.ch>

Implemented "has_descendants" for retype.


# e822f263 31-Mar-2012 Mark Nevill <nevillm@ethz.ch>

Completed implementation of "give away" cap support.


# e992c5b3 27-Mar-2012 Mark Nevill <nevillm@ethz.ch>

Implemented monitor_copy_existing invocation.


# 0ac6a546 26-Mar-2012 Mark Nevill <nevillm@ethz.ch>

Fixed get/set owner invocation argument handling in kernel.


# b7c694b4 22-Mar-2012 Mark Nevill <nevillm@ethz.ch>

Fixed cap lock/unlock calls to allow lookup from custom root cap.


# 2633a91c 20-Mar-2012 Mark Nevill <nevillm@ethz.ch>

Integrated delete & revoke handling.


# 82f33c11 16-Mar-2012 Mark Nevill <nevillm@ethz.ch>

Implemented monitor_(un)lock_cap.


# 62334d8e 14-Mar-2012 Mark Nevill <nevillm@ethz.ch>

Implemented get/set owner monitor invocations.


# ba57ae83 14-Mar-2012 Mark Nevill <nevillm@ethz.ch>

Integrated capops with monitor_cap_create.

Note that cap_create_from_existing does not currently check that the
supplied owner matches existing local copies of the cap.


# 8c02a1f1 12-Mar-2012 Mark Nevill <nevillm@ethz.ch>

Added invocations for distcap_get_state.


# 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>


# bde9b9d6 26-Jun-2013 Raphael Fuchs <fuchs.raphael@gmail.com>

vmkitmon: Adjust vmkitmon to new terminal API.

Modify the virtual PC16550d driver allowing to connect a virtual serial port to
a host serial port. This patch also fixes serial input, which previously was
broken.


# c0763898 18-Jan-2013 Simon Gerber <simon.gerber@inf.ethz.ch>

x86_64: Implemented modifying flags for parts of mapped regions.


# 3962edb6 27-Nov-2012 Simon Gerber <simon.gerber@inf.ethz.ch>

Cleanup function names and converted printfs to debug() in kernel component of new memory interface.


# 16a3ba1b 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

x86: Added mapped capability in unmap syscall arguments.


# b63daf9d 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Removed old syscall vm_modify_mapping.


# 422cbdc7 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Implemented new VNode_Map syscall.


# a0e28164 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Added code to dump hardware page tables from user space.


# 96df4814 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Implemented unmap with checks. Fixed unmap_region to unmap each frame individually.


# f7f6b6e5 22-Nov-2012 Simon Gerber <simugerber@student.ethz.ch>

Added vm_modify_mapping syscall on pmem capabilities. Also lots of debugging printfs.


# 49d9d284 22-Jun-2012 Raphael Fuchs <raphaelfuchs@student.ethz.ch>

Added ID capability, providing a system-wide unique ID.

The ID capability currently supports one invocation called 'identify', to
retrieve the system-wide unique ID.

The Domain capability, which was never used, is removed with this patch, since
the ID capability provides a more general capability.


# 96dc7841 18-Jun-2012 Raphael Fuchs <raphaelfuchs@student.ethz.ch>

Added ability to create certain capabilities at runtime (without using retype).

The CNode capabilities are enhanced with a new invocation 'CNodeCmd_Create',
allowing to create new capabilities at runtime.
Only certain types of capabilities can be created this way. If invoked on a
capability type, that is not creatable at runtime the error
SYS_ERR_NOT_CREATABLE is emitted.


# 84539d5c 25-Jan-2012 Mark Nevill <nevillm@ethz.ch>

Adapt existing mdb functions in kernel to use new tree.


# 38f02e71 11-Jan-2012 Andrew Baumann <andrew.baumann@microsoft.com>

clean up and add some flexbility to mapping of APIC IDs and core IDs

* introduced kernel boot parameter to control the core ID for the BSP
(on x86, where it was always zero)
* introduced spawnd parameter to allow all core IDs to start from an offset
(I'm using this for boot on MIC)
* added monitor API to query the local core's APIC ID (some drivers might need it)
* fixed some kernel paths that were needlessly reading the APIC ID out of the
APIC all the time


# 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


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

Merge from ASPLOS tree.


# e196fe93 18-Jul-2011 Andrew Baumann <andrew.baumann@microsoft.com>

fixes to enable compilation with ICC

The primary changes are avoiding pointer arithmetic on void * types, which is
evidently a GCCism: instead a byte-sized pointer type should be used.

Other changes include workarounds to avoid uninitialised variable warnings,
and an insistence that const values have an initialiser (being static and implicitly
initialised to zero isn't sufficient).


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

Initial version of public stable barrelfish repository.