summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-07-06actually, it didn't work, but does nowbasic_pagingRichard Braun
2013-07-06page fault handling works !Richard Braun
2013-07-06another set of small structural changesRichard Braun
2013-07-06update kernel testRichard Braun
2013-07-06entry lookupRichard Braun
2013-07-06x86 page fault handlingRichard Braun
2013-07-06vm/vm_map: fix map entry mergingRichard Braun
2013-07-06a bit more but unfinishedRichard Braun
2013-07-06Initial object implementationRichard Braun
2013-07-06x86/pmap: use per processor mappings to zero pagesRichard Braun
2013-07-06x86/pmap: rework temporary mappingsRichard Braun
Define a new struct pmap_tmp_mapping to associate a lock with each region reserved for temporary mappings.
2013-07-05kern/rdxtree: specify tree as const when looking upRichard Braun
2013-07-05kern/work: update rdxtree calls for 64-bit keysRichard Braun
2013-07-05kern/rdxtree: use 64-bit keysRichard Braun
2013-07-05kern/rdxtree: minor comment updatesRichard Braun
2013-07-05kern/rdxtree: change definition of rdxtree_bm_tRichard Braun
When the radix value is 6, always typedef to unsigned long long.
2013-07-05x86/biosmem: don't load physically unreachable memoryRichard Braun
2013-07-05x86/cpu: obtain physical/virtual address widthsRichard Braun
2013-07-03x86/pmap: new pmap_enter functionRichard Braun
2013-07-03vm/vm_kmem: fix mention to multiple kernel mapsRichard Braun
There is currently one kernel map only.
2013-07-03x86/pmap: change pmap_kenter to pass protectionRichard Braun
2013-07-02kern/macros: fix structofRichard Braun
2013-07-02x86/pmap: use per processor data for TLB updatesRichard Braun
2013-07-01x86/pmap: improve TLB invalidationRichard Braun
Add a processor bitmap per physical map to determine processors on which a pmap is loaded, so that only those processors receive update IPIs. In addition, implement lazy TLB invalidation by not loading page tables when switching to a kernel thread. To finish with, the thread module now calls pmap_load unconditionally without making assumptions about pmap optimizations.
2013-06-28x86/pmap: simplify pmap_kgrowRichard Braun
Reduce the amount of pmap updates by performing one global update once page tables have been changed.
2013-06-28x86/pmap: improve TLB range flushesRichard Braun
Use a threshold to determine whether TLB entries should be invalidated indivudally or through a global TLB flush.
2013-06-28x86/cpu: new cpu_tlb_flush_all functionRichard Braun
This function completely flushes the TLB, including global pages.
2013-06-28x86/pmap: replace pmap_kupdate with pmap_updateRichard Braun
Similar to pmap_protect and pmap_extract, pmap_update is meant to handle both kernel and regular pmap updates.
2013-06-28x86/pmap: replace pmap_kextract with pmap_extractRichard Braun
As it was done for pmap_protect, replace a kernel-specific call with one that can handle both the kernel and regular pmaps. The new function isn't complete yet and cannot handle physical maps that aren't the kernel pmap or the currently loaded pmap.
2013-06-28x86/pmap: replace pmap_kprotect with pmap_protectRichard Braun
This change is merely a slight interface modification to get rid of a function that shouldn't be exported and replace it with the true entry point for setting physical mapping protection. The new function isn't complete yet and cannot handle physical maps that aren't the kernel pmap or the currently loaded pmap.
2013-06-15vm/vm_map: rework flagsRichard Braun
Add vm/vm_adv.h for VM_ADV_xxx advice macros, and directly use VM_{ADV,INHERIT,PROT}_xxx macros in the "packed" format used for mapping requests and in map entries. This allows simpler comparisons between stored flags and user provided values.
2013-06-15vm/vm_map: advice macros updateRichard Braun
Use slightly shorter names, add WILLNEED and DONTNEED, and update users.
2013-06-15vm/vm_map: fix typoRichard Braun
2013-06-14vm/vm_setup: declare vm_setup as an init functionRichard Braun
2013-06-14kern/llsync: rename read-side critical section functionsRichard Braun
Including "lock" in the name of these functions is misleading, since there is no lock object per se.
2013-06-14vm/vm_map: fix map entry mergingRichard Braun
Map entry merging would not consider requests with objects, but it would merge two neighbor entries without checking their object. Make checking the object of both entries and requests part of the generic compatibility test.
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/rdxtree: use a constructor for internal nodesRichard Braun
A tree node is larger than 512 bytes on a 64-bit machine. Initializing it on each allocation can get noticeably slow in case there is hysteresis.
2013-06-09kern/kmem: rename constructor typeRichard Braun
2013-06-09kern/kmem: fix object construction bugRichard Braun
2013-06-09kern/work: use a radix tree for worker ID allocationRichard Braun
2013-06-09kern/rdxtree: new moduleRichard Braun
This module implements radix trees, a data structure consisting of a tree of arrays which can store many items while guaranteeing a small maximum tree height.
2013-06-04x86/{cpu,tcb}: move scheduling interrupts handlingRichard Braun
Move scheduling interrupt functions from the tcb module to the cpu module. In addition, rename the related trap and functions to avoid mentioning "rescheduling", as it just makes descriptions more confusing. Instead, include the name of the module that makes use of this interrupt.
2013-06-03kern/llsync: use the work module for deferred processingRichard Braun
This change slightly affects the interface by making users directly pass work objects.
2013-06-03kern/work: new moduleRichard Braun
This module implements thread pools to concurrently process queues of deferred works.
2013-06-03x86/tcb: new tcb_trace functionRichard Braun
This function dumps the stack trace of a thread from its TCB. In order to do that, the base pointer is now included in the TCB, along with the stack and instruction pointers.
2013-06-03kern/task: include thread addresses in the outputRichard Braun
2013-06-03kern/thread: fix thread creationRichard Braun
2013-06-02kern/kmem: fix locking error in kmem_cache_freeRichard Braun
2013-06-01kern/thread: update creation attributes handlingRichard Braun
Make passing attributes and passing a thread name mandatory.