History log of /barrelfish-master/lib/barrelfish/threads.c
Revision Date Author Comments
# ea058d37 08-Aug-2019 Daniel Schwyn <daniel.schwyn@inf.ethz.ch>

libbarrelfish: Store thread state at aligned address

Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>


# 7d9ce1be 17-Jul-2019 Reto Achermann <reto.achermann@inf.ethz.ch>

libbarrelfish: pass the fault type int he first argument

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


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

libbarrelfish,threads: print core and thread id when exception undeliverable

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


# e3d90413 01-Mar-2017 Simon Gerber <simon.gerber@inf.ethz.ch>

Fix VA layout so that thread slabs are <4GB

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


# e7880d4d 19-Oct-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

libbarrelfish: threads: add thread_exited() query

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


# 5c4a6b8c 19-Feb-2015 Gerd Zellweger <mail@gerdzellweger.com>

Expose stack_top address in thread API.

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


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


# ee35f685 04-Sep-2017 Adam Turowski <adam.turowski@inf.ethz.ch>

mlx4: import of Vlad's Mellanox ConnectX InfiniBand driver

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


# 986afa82 26-Sep-2017 Adam Turowski <adam.turowski@inf.ethz.ch>

flounder: moving receiving cap slots from a thread to a dispatcher

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


# f0d121ee 27-Aug-2017 Razvan Damachi <razvan.damachi@gmail.com>

Clean up and document the process management code.

* clean up benchmarking code from spawnd and the process manager;
* document the process management functions in usr/proc_mgmt;
* remove dangling prints from lib/barrelfish/domain.c and threads.c.

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


# 626764cf 02-Aug-2017 Razvan Damachi <razvan.damachi@gmail.com>

DIRTY benchmark commit

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>


# 628bb6bd 21-Dec-2016 Adam Turowski <adam.turowski@inf.ethz.ch>

flounder,waitsets: adding chanstate dependency in order to wait for a specific chanstate with minimal side effects

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


# ef17c8e8 14-Oct-2016 Moritz Hoffmann <moritz.hoffmann@inf.ethz.ch>

libbarrelfish/threads: Provide thread_set_status to set return status of a thread

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


# f904b66f 21-Sep-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T284: reduce number of queue slots for receive capslots to 4 and remove magic constants

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


# 8109ab5a 26-Aug-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T284: Fix thread_{get,set}_recv_slot()

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


# b1af954a 24-Aug-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T284: T285: Store RPC recv slots in thread struct

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


# b0e04368 20-Sep-2016 Adam Turowski <adam.turowski@inf.ethz.ch>

mt-waitset: adding masking of channels so a thread won't handle two messages at the same time

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


# bace12c6 31-Aug-2016 Adam Turowski <adam.turowski@inf.ethz.ch>

mt-waitset: fixing the token generator which under special circumstances could generate token 0 (which is bad)

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


# 44f445db 27-Jul-2016 Adam Turowski <adam.turowski@inf.ethz.ch>

New conditional dispatcher disabling function.

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


# 8727f887 26-Jul-2016 David Cock <david.cock@inf.ethz.ch>

Waitsets: Various *_disabled functions were calling thread_self()

thread_self() disables the dispatcher, so I've added a thread_self_disabled()
for this case.

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


# d328987d 26-Jul-2016 Adam Turowski <adam.turowski@inf.ethz.ch>

Multi-threaded waitsets, tokens added to IPC messages.

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


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

Variable renamings, fixing event_mutex locking and thread_unblock_one.

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


# 914bfd94 06-Aug-2015 Reto Achermann <reto.achermann@inf.ethz.ch>

morecore: fixing leaking slot allocator.(closes T153

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


# 792d0d8a 24-Feb-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T65: implement proper x-core join.

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


# 8f1a278a 23-Feb-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

T65: properly implement x-core thread creation.

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>


# 3a8c1998 02-Feb-2015 Simon Gerber <simon.gerber@inf.ethz.ch>

Rename struct slab_alloc to struct slab_allocator.

We have a function with the following signature:

void *slab_alloc(struct slab_alloc *);

which produces the following error message with g++:

error: ‘void* slab_alloc(slab_alloc*)’ hides constructor for ‘struct
slab_alloc’ [-Werror=shadow]

The two easy ways out are 1) renaming the function or 2) renaming the struct.
For clarity (and consistency with malloc and co) I've chosen to rename the
struct to "struct slab_allocator".

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


# 3732e05a 29-Jul-2014 Reto Achermann <acreto@student.ethz.ch>

added ifdef for k1om in barrelfish/threads.c


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


# 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


# 7cdde588 08-Feb-2013 Zaheer Chothia <zchothia@student.ethz.ch>

thread: fix condition for stack overflow warning.

thread_check_stack_bounds() has a very odd condition. It will always return
true because bottom <= top. This results in a warning regardless of whether
the stack pointer is valid or not, for instance:
Error: stack bounds exceeded: sp = 0x880b00 but [bottom, top] = [0x873000, 0x883000]

We cannot simply patch the condition to instead read:
return sp > (lvaddr_t)thread->stack &&
sp <= (lvaddr_t)thread->stack_top;

because that results in failures during bootup:
>> INFO: stack bounds exceeded: sp = 0x5c1a50 but [bottom, top] = [0x592000, 0x5a2000]
Dispatcher warning in kernel 0: user trap #13 WHILE DISABLED in 'acpi': IP 477be8, error 0
skb.0: waiting for: all_spawnds_up
>> INFO: stack bounds exceeded: sp = 0x631a50 but [bottom, top] = [0x602000, 0x612000]
Dispatcher warning in kernel 0: user trap #13 WHILE DISABLED in 'kaluga': IP 4a4368, error 0


# bd46fbc9 08-Feb-2013 Zaheer Chothia <zchothia@student.ethz.ch>

thread: on unhandled exceptions warn if stack pointer is out-of-bounds.


# dffaedf8 25-Oct-2012 Raphael Fuchs <raphaelfuchs@student.ethz.ch>

libbarrelfish: Rename the header lib/barrelfish/include/threads.h to
lib/barrelfish/include/threads_priv.h.

To avoid confusion between the public and the private thread header, rename
the libbarrelfish-private thread header to threads_priv.h.

--HG--
rename : lib/barrelfish/include/threads.h => lib/barrelfish/include/threads_priv.h


# b88f14b4 04-Aug-2012 pravin@inf.ethz.ch <pravin@inf.ethz.ch>

Userspace is working now.
There was an issue with stack pointer not restored properly,
but now it is fixed by restoring sp separately with help of temporary register.

Currently code stops somewhere in mem_serv with complain MM_ERR_OUT_OF_BOUNDS


# f8512ecf 31-Jul-2012 Stefan Kästle <stefan.kaestle@inf.ethz.ch>

Steps towards going to user-level.

The first sys_print works (from within the dispatcher of init), but
the state does not seem to be restored properly. The infinite-loop
after this sys_print is never reached. I assume the code to restore
the registers in swi_done is broken.

This code is not stable. A lot of things are disabled, e.g. caching,
interrupts. Also, there are some infinite loops in there.


# 9dbbc190 11-May-2012 Samuel Hitz <hitzs@student.ethz.ch>

- kernel ready
- added 3 new devices for development board
- temporary added debug printfs


# d39d080a 13-Sep-2011 Jana Giceva <gicevaj@inf.ethz.ch>

added thread_debug_regs function implemenation


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