summaryrefslogtreecommitdiff
path: root/kern/work.c
AgeCommit message (Collapse)Author
2018-07-10kern/panic: remove initialization operationRichard Braun
Maintaining correct dependencies for the panic function is too complicated. It may be used very early, but would depend on the console, which is normally available quite late during initialization. Instead, the behavior of panic is now "best effort", i.e. if called at a time where it works, good, otherwise, the behavior is undefined, but should result in a freeze or a reset most of the time.
2018-02-24New errno.h standard headerRichard Braun
Use standard errno codes. This change also adds strerror to string.h.
2018-02-20Rework the initialization operations of some kernel modulesRichard Braun
In order to avoid workarounds that check whether a module is ready or not, break the initialization of some core modules into a bootstrap step for basic BSP initialization, and a setup step that completes initialization. Most users only need the bootstrap operation as a dependency, especially since scheduling isn't enabled yet.
2017-10-04Fix some header inclusionsRichard Braun
2017-09-21Merge branch 'xbuild'Richard Braun
2017-09-21New build systemRichard Braun
The new build system, called xbuild, is a minimalistic kbuild-like make-based build system, also using kconfig for scalable configurations.
2017-09-20kern/work: fix work_setup dependenciesRichard Braun
2017-09-06Use new thread_check_intr_context function consistentlyRichard Braun
2017-09-02kern/thread: new preemption control macrosRichard Braun
These new macros take care of disabling/restoring interrupts in the appropriate order.
2017-08-06Fix dependencies on percpu_setupRichard Braun
2017-07-13Switch to initialization operationsRichard Braun
2017-06-25Use the C11 alignas and noreturn macrosRichard Braun
2017-06-24Move the CPU_L1_SIZE macro to x86/cpu moduleRichard Braun
2017-06-10Use log functions where appropriateRichard Braun
2017-06-09kern/work: fix manager wakeupRichard Braun
Commit 1b902346ce502870329bda19d92d317a21cab56e introduced a minor regression by also removing a check on the manager of a work pool, which is a pointer to a work_thread, and not directly a thread structure.
2017-06-03kern/thread: improve thread_wakeup robustnessRichard Braun
2017-05-30Move assert.h to the include directoryRichard Braun
This turns assert.h into a standard header.
2017-04-29New stdio.h standard headerRichard Braun
Make kernel code obtain definitions for the printf family of functions through the inclusion of the standard stdio.h header.
2017-04-29kern/printk: rename to printfRichard Braun
The printk functions are close enough to the printf ones to bear the same names.
2017-03-16Update system counter namesRichard Braun
Now that event counters have been replaced with system counters, drop the convention of naming the counter as the event it tracks.
2017-03-15kern/work: move work_pool_init and work_setup to the .init sectionRichard Braun
2017-03-15kern/syscnt: replace the evcnt moduleRichard Braun
The syscnt module supports more generic counters, in addition to atomic access from any context on any architecture.
2017-03-14Use the X15 namespace consistently for macros defined by autoconfRichard Braun
2017-02-08kern/thread: add wait channelsRichard Braun
2017-02-04Clean up compilationRichard Braun
Instead of mixing standard headers and internal redefinitions of standard types, completely rely on the compiler for what is guaranteed for a free standing environment. This results in the removal of kern/stddef.h and kern/stdint.h. The kern/types.h header is reintroduced for the different (and saner) purpose of defining types not specified in standard C, namely ssize_t for now.
2017-01-29kern/thread: rename "time-sharing" to "fair-scheduling"Richard Braun
2017-01-24kern/thread: add the THREAD_KERNEL_PREFIX macroRichard Braun
This macro is used to build kernel thread names.
2016-12-09Force brackets around one-line conditional statementsRichard Braun
This change was done using astyle, with a few manual editing here and there.
2014-12-10kern/work: update call to kmem_cache_initRichard Braun
2014-09-05kern/work: use percpu variablesRichard Braun
2014-06-19kern/work: synchronously destroy worker threadsRichard Braun
2014-06-18Set threads as detached where applicableRichard Braun
2014-06-18kern/work: improve per-processor pools synchronizationRichard Braun
Rely on disabling preemption only instead of a spin lock when accessing per-processor pools.
2014-06-17kern/work: don't name work poolsRichard Braun
2014-06-17kern/work: per-processor work poolsRichard Braun
2014-06-07kern/work: add a comment backRichard Braun
That comment contains a TODO item that was removed by mistake.
2014-05-24kern/work: rework worker id allocationRichard Braun
Replace the radix tree with a bitmap and adjust ID allocation. The use of a radix tree was overkill for this, and initially intended only as an example of how to use the data structure in the kernel.
2014-04-26kern/work: use thread creation attributes accessorsRichard Braun
2014-01-02Declare variables as read mostly where appropriateRichard Braun
2013-07-05kern/work: update rdxtree calls for 64-bit keysRichard Braun
2013-06-10kern/work: fix radix tree usageRichard Braun
Radix tree operations must be done with preemption enabled since they might allocate memory. Use a separate mutex to synchronize access to the tree.
2013-06-09kern/work: use a radix tree for worker ID allocationRichard Braun
2013-06-03kern/work: new moduleRichard Braun
This module implements thread pools to concurrently process queues of deferred works.