History log of /barrelfish-master/kernel/include/kcb.h
Revision Date Author Comments
# ded176ef 15-Nov-2019 Lukas Humbel <lukas.humbel@inf.ethz.ch>

armv8: increase kcb size to accomodate vector table

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


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


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


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


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


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


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


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

Put KCB syscalls in platform independent kernel source.


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

Integrating coreboot for 32bit.


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

Refactor kcb add/remove function in kernel.


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

Fixed deferred events when migrating onto running cpu driver.


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


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

Assert that kcb is set.


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

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


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

Fixed x86boot 'take' operation implementation.


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


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


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

Fix some code, able to do benchmarks.


# 68bdda3d 20-Dec-2013 Simon Gerber <simon.gerber@inf.ethz.ch>

Added code to make it possible to switch between kernels with different schedulers.

This currently works by having the 'up' argument to x86boot optionally have
the form 'up=<scheduler strategy>', e.g. 'up=rbed'. Currently you need to
build each version of the cpu driver by hand, and copy the resulting binary to
'cpu_<scheduler strategy>'. You also need to add multiboot modules for each
of these (module /x86_64/sbin/cpu_rbed nospawn).


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


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

Added more scheduler state to kcb.


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

Added kernel_now to kcb and fixed restoring of scheduler state.


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

struct cte include for kcb.


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

Implemented mdb restore iff valid kcb available. Moved scheduling to always keep kcb and local vars in sync.


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

Made mdb update kcb if compiled in 'kernel mode' and adapted mdb tests.


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

Construct kernel control blocks in x86boot.

Store them in the coredata struct that is passed along to the new kernel.
We should really move all coredata state in the kcb and pass the kcb
to the kernel instead of the other way around.


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

Remove defines.


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

Moving IRQ state in KCB.


# 33a875a2 16-Dec-2013 Simon Gerber <simon.gerber@inf.ethz.ch>

Added capability type and struct definition for kcb. Modelled after dispatcher & struct dcb.

This doesn't do anything yet. It's just the framework for moving all the state
of the kernel that isn't in capabilities yet into one. This is mostly for
persisting state over core reboots at this time (c.f. meeting 2013-12-16).