History log of /barrelfish-master/lib/barrelfish/debug.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>


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


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

libbarrelfish,debug: properly print x86_64 EPT mapping caps

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


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

libbarrelfish: debug: print error code when debug_cap_identify() fails

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>


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

libbarrelfish: removing unintentionally added includes

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>


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

caps: adding a new capability type for devices

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>


# b90eed75 14-Aug-2018 Adam Turowski <adam.turowski@inf.ethz.ch>

debug: reverting debug_printf and acpi commits

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


# 79df19ed 05-Jul-2018 Adam Turowski <adam.turowski@inf.ethz.ch>

arm: adding gic v3

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


# 29734f4d 11-Dec-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: capabilities: mapping types: remove offset field and switch to ptable+entry

To eliminate the need for looking up page table capabilities by address when
cleaning up mappings etc, we switch the mapping capability types to hold a
pointer to the page table capability and the entry in the capability instead
of just a pointer to the first page table entry which corresponds to the
mapping.

To make room for the additional two bytes, we remove the offset into the
mapped capability which was present in the mappings but never used.

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


# 87f1a8a2 08-Jan-2018 Lukas Humbel <lukas.humbel@inf.ethz.ch>

e1000 irqtest run in driverdomain, newstyle PCI startup

Kaluga starts PCI drivers in a newstyle driver domain. With this commit,
interrupts capabilities are passed to the init function. PCI bars and EP
not yet.

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


# 3d3f82b4 08-Jan-2018 Lukas Humbel <lukas.humbel@inf.ethz.ch>

e1000 irqtest run in driverdomain, newstyle PCI startup

Kaluga starts PCI drivers in a newstyle driver domain. With this commit,
interrupts capabilities are passed to the init function. PCI bars and EP
not yet.

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


# 5b4fdc25 26-Jun-2017 Razvan Damachi <razvan.damachi@gmail.com>

Extract a through-monitor-only cap_identify call from debug_cap_identify.

The function debug_cap_identify in debug.c used to try to identify the given
capref by first invoking the kernel, then performing an RPC with the monitor,
if the kernel invocation failed. The kernel invocation was there for domains
that hold the cap_kernel, which is necessary for the invocation to succeed.
Therefore, having the invocation there for domains which do not hold cap_kernel
is redundant, incurring unnecessary extra work.

A monitor_cap_identify_remote function is now part of monitor_client.c, through
which callers can identify caprefs through the monitor directly. The old
debug_cap_identify function in debug.c now resorts to this new function if the
kernel invocation fails.

Moreover, userspace apps such as the process manager or spawnd need to identify
caps involved in their RPCs (e.g. domain caps), however they do not hold the
cap_kernel reference. They can thus now use the new function to query the
monitor directly, without attempting to drop in the local kernel first.

Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>


# 83ef5171 12-Jun-2017 Razvan Damachi <razvan.damachi@gmail.com>

Create "ProcessManager" and "Domain" capabilities.

The ProcessManager capability is created by the CPU driver at startup and given
to init, where it will be passed on to the monitor and then the process manager
subsequently.

The Domain capability is an ID-like cap retypeable from the ProcessManager cap
above. The process management server can hence use the ProcessManager cap to
create Domain caps and give them to spawnd instances, to facilitate identifying
domains locally and globally.

Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>


# ef794352 24-Jul-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

Fix various memory leaks and uninitialized variable uses as reported by cppcheck

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


# dde2ba50 19-Jun-2017 Adam Turowski <adam.turowski@inf.ethz.ch>

libc: removing newlib, adding BSD libc
posixcompat: moving gettimeofday to libc
harness: adding a simple math test
lwip, lwip2: moving includes to /include, compiling with BSD headers

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


# 244ab29c 27-Feb-2017 Adam Turowski <adam.turowski@inf.ethz.ch>

flounder: merging rpc client with a binding layer

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


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


# 2874a676 11-Oct-2016 Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>

Removed unused cap type Notify_RCK.

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


# 6ffd5421 11-Oct-2016 Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>

T306: Rename mapping.frame to mapping.cap

Signed-off-by: Moritz Hoffmann <moritz.hoffmann@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>


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


# a2068f06 25-Jul-2016 Adam Turowski <adam.turowski@inf.ethz.ch>

Checking in malloc/free for double frees. Debug printf can now be called from any context.

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


# b8fb3cf6 22-Jul-2016 Reto Achermann <reto.achermann@inf.ethz.ch>

libbarrelfish/libmm: using PRIuGENSIZE in print statements

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


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

T264: Add L1 and L2 CNode cap types

Cannot create new types yet, as implementations for caps_retype() and
check_caps_create_arguments() are missing.

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


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

libbarrelfish: cleanup debug_print_cap format strings

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


# eb42c243 14-Jan-2016 Gerd Zellweger <mail@gerdzellweger.com>

[Improvement] Added KernelControlBlock for Capability identification.

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


# 8b476a65 03-Jun-2016 Moritz Hoffmann <moritz@dhcp-16-111-6-143.labs.hpecorp.net>

caps: Add VNode_AARCH64_l0 and VNode_AARCH64_l0_Mapping capabilities.

Signed-off-by: Moritz Hoffmann <moritz@dhcp-16-111-6-143.labs.hpecorp.net>


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


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


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


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

IRQ: cap stubs

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


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

T187: Update user code to supply extra slot for mapping in vnode_map()

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


# 146e4e08 16-Nov-2015 David Cock <david.cock@inf.ethz.ch>

Clean merge of HP's ARMv8 code

This adds support for an ARMv8 core running in the GEM5 simulator

Signed-off-by: David Cock <david.cock@inf.ethz.ch>


# 4d19b870 21-Sep-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

libbarrelfish: provide list of ORed ObjType_s for cap tracing.

This addresses the issue that we provide a boolean value for the kernel
function that controls whether to trace all operations on physical memory
capabilitites which expects a list of ORed ObjType_s.

Closes T164.

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>


# 4710cdfb 01-Jun-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

32bit: fixup printf format specifiers.

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


# 90b055f4 06-Feb-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

posixcompat: properly handle PTHREAD_MUTEX_RECURSIVE and BF thread id assignment.

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


# e1793932 07-Nov-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

armv5: fixed build errors.


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


# e00b34d8 27-Nov-2013 pravin@inf.ethz.ch <pravin@inf.ethz.ch>

Fixed the dependency issue for e10k card, and also minor modifications to ::
- handle variable type correctly for printing
- handle ``set but not used`` warning.


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


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

Added missing cap types to debug_print_cap in lib/barrelfish and to sprint_cap in the kernel.


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

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


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

Catch null rpc client in barrelfish/debug.c.


# 83ab1e5c 29-Mar-2012 Mark Nevill <nevillm@ethz.ch>

Added and fixed various debug printfs related to cap operations.


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

Colorize debug output.


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

Added code to dump hardware page tables from user space.


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


# cba58299 05-Feb-2012 Kornilios Kourtis <kkourt@inf.ethz.ch>

newlib,x86_32: use PRI{u,x}32, PRI{u,x}PTR, etc in format strings

Again this is needed because newlib defines uint32_t as unsigned long.
(In retrospect, I should just changed newlib's uint32_t to unsigned int)

Checkpoint:
compiles and boots qemu for x86-{32,64}-{newlib,freec}
Also, a couple of tests on real hardware (x86_64 only) work


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

Boots correctly for both freec and newlib


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


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

Initial version of public stable barrelfish repository.