Branch | Commit message | Author | Age |
archive/unc-master-3.0 | P-FP: fix BUG_ON releated to priority inheritance | Bjoern Brandenburg | 13 years |
archived-2013.1 | uncachedev: mmap memory that is not cached by CPUs | Glenn Elliott | 12 years |
archived-private-master | Merge branch 'wip-2.6.34' into old-private-master | Andrea Bastoni | 15 years |
archived-semi-part | Merge branch 'wip-semi-part' of ssh://cvs/cvs/proj/litmus/repo/litmus2010 int... | Andrea Bastoni | 15 years |
demo | Further refinements | Jonathan Herman | 14 years |
ecrts-pgm-final | Merge branch 'wip-ecrts14-pgm' of ssh://rtsrv.cs.unc.edu/home/litmus/litmus-r... | Glenn Elliott | 12 years |
ecrts14-pgm-final | Merge branch 'wip-ecrts14-pgm' of ssh://rtsrv.cs.unc.edu/home/litmus/litmus-r... | Glenn Elliott | 12 years |
gpusync-rtss12 | Final GPUSync implementation. | Glenn Elliott | 12 years |
gpusync/staging | Rename IKGLP R2DGLP. | Glenn Elliott | 12 years |
linux-tip | Merge branch 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/p... | Linus Torvalds | 15 years |
litmus2008-patch-series | add i386 feather-trace implementation | Bjoern B. Brandenburg | 16 years |
master | PSN-EDF: use inferred_sporadic_job_release_at | Bjoern Brandenburg | 9 years |
pgm | make it compile | Glenn Elliott | 12 years |
prop/litmus-signals | Infrastructure for Litmus signals. | Glenn Elliott | 13 years |
prop/robust-tie-break | Fixed bug in edf_higher_prio(). | Glenn Elliott | 13 years |
staging | Fix tracepoint compilation error | Felipe Cerqueira | 13 years |
test | 9/23/2016 | Namhoon Kim | 9 years |
tracing-devel | Test kernel tracing events capabilities | Andrea Bastoni | 16 years |
v2.6.34-with-arm-patches | smsc911x: Add spinlocks around registers access | Catalin Marinas | 15 years |
v2015.1 | Add ARM syscall def for get_current_budget | Bjoern Brandenburg | 10 years |
wip-2011.2-bbb | Litmus core: simplify np-section protocol | Bjoern B. Brandenburg | 14 years |
wip-2011.2-bbb-trace | Refactor sched_trace_log_message() -> debug_trace_log_message() | Andrea Bastoni | 14 years |
wip-2012.3-gpu | SOBLIV draining support for C-EDF. | Glenn Elliott | 12 years |
wip-2012.3-gpu-preport | pick up last C-RM file | Glenn Elliott | 12 years |
wip-2012.3-gpu-rtss13 | Fix critical bug in GPU tracker. | Glenn Elliott | 12 years |
wip-2012.3-gpu-sobliv-budget-w-kshark | Proper sobliv draining and many bug fixes. | Glenn Elliott | 12 years |
wip-aedzl-final | Make it easier to compile AEDZL interfaces in liblitmus. | Glenn Elliott | 15 years |
wip-aedzl-revised | Add sched_trace data for Apative EDZL | Glenn Elliott | 15 years |
wip-arbit-deadline | Fix compilation bug. | Glenn Elliott | 13 years |
wip-aux-tasks | Description of refined aux task inheritance. | Glenn Elliott | 13 years |
wip-bbb | GSN-EDF & Core: improve debug TRACE'ing for NP sections | Bjoern B. Brandenburg | 14 years |
wip-bbb-prio-don | use correct timestamp | Bjoern B. Brandenburg | 14 years |
wip-better-break | Implement hash-based EDF tie-breaking. | Glenn Elliott | 13 years |
wip-binary-heap | Make C-EDF work with simplified binheap_delete | Glenn Elliott | 13 years |
wip-budget | Added support for choices in budget policy enforcement. | Glenn Elliott | 15 years |
wip-color | Summarize schedulability with final record | Jonathan Herman | 13 years |
wip-color-jlh | sched_color: Fixed two bugs causing crashing on experiment restart and a rare... | Jonathan Herman | 13 years |
wip-d10-hz1000 | Enable HZ=1000 on District 10 | Bjoern B. Brandenburg | 15 years |
wip-default-clustering | Feature: Make default C-EDF clustering compile-time configurable. | Glenn Elliott | 15 years |
wip-dissipation-jerickso | Update from 2.6.36 to 2.6.36.4 | Jeremy Erickson | 11 years |
wip-dissipation2-jerickso | Update 2.6.36 to 2.6.36.4 | Jeremy Erickson | 11 years |
wip-ecrts14-pgm | Merge branch 'wip-ecrts14-pgm' of ssh://rtsrv.cs.unc.edu/home/litmus/litmus-r... | Glenn Elliott | 12 years |
wip-edf-hsb | last tested version | Jonathan Herman | 14 years |
wip-edf-os | Lookup table EDF-os | Jeremy Erickson | 12 years |
wip-edf-tie-break | Merge branch 'wip-edf-tie-break' of ssh://rtsrv.cs.unc.edu/home/litmus/litmus... | Glenn Elliott | 13 years |
wip-edzl-critique | Use hr_timer's active checks instead of having own flag. | Glenn Elliott | 15 years |
wip-edzl-final | Implementation of the EDZL scheduler. | Glenn Elliott | 15 years |
wip-edzl-revised | Clean up comments. | Glenn Elliott | 15 years |
wip-events | Added support for tracing arbitrary actions. | Jonathan Herman | 15 years |
wip-extra-debug | DBG: add additional tracing | Bjoern B. Brandenburg | 15 years |
wip-fix-switch-jerickso | Attempt to fix race condition with plugin switching | Jeremy Erickson | 15 years |
wip-fix3 | sched: show length of runqueue clock deactivation in /proc/sched_debug | Bjoern B. Brandenburg | 15 years |
wip-fmlp-dequeue | Improve FMLP queue management. | Glenn Elliott | 14 years |
wip-ft-irq-flag | Feather-Trace: keep track of interrupt-related interference. | Bjoern B. Brandenburg | 14 years |
wip-gpu-cleanup | Enable sched_trace log injection from userspace | Glenn Elliott | 13 years |
wip-gpu-interrupts | Remove option for threading of all softirqs. | Glenn Elliott | 14 years |
wip-gpu-rtas12 | Generalized GPU cost predictors + EWMA. (untested) | Glenn Elliott | 13 years |
wip-gpu-rtss12 | Final GPUSync implementation. | Glenn Elliott | 13 years |
wip-gpu-rtss12-srp | experimental changes to support GPUs under SRP | Glenn Elliott | 13 years |
wip-gpusync-merge | Cleanup priority tracking for budget enforcement. | Glenn Elliott | 11 years |
wip-ikglp | Move RSM and IKGLP imp. to own .c files | Glenn Elliott | 13 years |
wip-k-fmlp | Merge branch 'mpi-master' into wip-k-fmlp | Glenn Elliott | 14 years |
wip-kernel-coloring | Added recolor syscall | Namhoon Kim | 7 years |
wip-kernthreads | Kludge work-queue processing into klitirqd. | Glenn Elliott | 15 years |
wip-klmirqd-to-aux | Allow klmirqd threads to be given names. | Glenn Elliott | 13 years |
wip-kshark | Merge branch 'mpi-staging' into wip-kshark | Jonathan Herman | 13 years |
wip-litmus-3.2 | Merge commit 'v3.2' into litmus-staging | Andrea Bastoni | 13 years |
wip-litmus2011.2 | Cleanup: Coding conformance for affinity stuff. | Glenn Elliott | 14 years |
wip-litmus3.0-2011.2 | Feather-Trace: keep track of interrupt-related interference. | Bjoern B. Brandenburg | 14 years |
wip-master-2.6.33-rt | Avoid deadlock when switching task policy to BACKGROUND (ugly) | Andrea Bastoni | 15 years |
wip-mc | Removed ARM-specific hacks which disabled less common mixed-criticality featu... | Jonathan Herman | 12 years |
wip-mc-bipasa | MC-EDF added | bipasa chattopadhyay | 13 years |
wip-mc-jerickso | Split C/D queues | Jeremy Erickson | 15 years |
wip-mc2-cache-slack | Manually patched mc^2 related code | Ming Yang | 10 years |
wip-mcrit-mac | cosmetic | Mac Mollison | 15 years |
wip-merge-3.0 | Prevent Linux to send IPI and queue tasks on remote CPUs. | Andrea Bastoni | 14 years |
wip-merge-v3.0 | Prevent Linux to send IPI and queue tasks on remote CPUs. | Andrea Bastoni | 14 years |
wip-migration-affinity | NULL affinity dereference in C-EDF. | Glenn Elliott | 14 years |
wip-mmap-uncache | share branch with others | Glenn Elliott | 13 years |
wip-modechange |
struct list_head *first = list->next;
struct list_head *last = list->prev;
struct list_head *at = head->next;
if (list_empty(head))
return;
/* "first" and "last" tracking list, so initialize it. */
INIT_LIST_HEAD(list);
/*
* At this point, the list body still points to the source list.
* Wait for any readers to finish using the list before splicing
* the list body into the new list. Any new readers will see
* an empty list.
*/
sync();
/*
* Readers are finished with the source list, so perform splice.
* The order is important if the new list is global and accessible
* to concurrent RCU readers. Note that RCU readers are not
* permitted to traverse the prev pointers without excluding
* this function.
*/
last->next = at;
rcu_assign_pointer(list_next_rcu(head), first);
first->prev = head;
at->prev = last;
}
/**
* list_entry_rcu - get the struct for this entry
* @ptr: the &struct list_head pointer.
* @type: the type of the struct this is embedded in.
* @member: the name of the list_struct within the struct.
*
* This primitive may safely run concurrently with the _rcu list-mutation
* primitives such as list_add_rcu() as long as it's guarded by rcu_read_lock().
*/
#define list_entry_rcu(ptr, type, member) \
({typeof (*ptr) __rcu *__ptr = (typeof (*ptr) __rcu __force *)ptr; \
container_of((typeof(ptr))rcu_dereference_raw(__ptr), type, member); \
})
/**
* list_first_entry_rcu - get the first element from a list
* @ptr: the list head to take the element from.
* @type: the type of the struct this is embedded in.
* @member: the name of the list_struct within the struct.
*
* Note, that list is expected to be not empty.
*
* This primitive may safely run concurrently with the _rcu list-mutation
* primitives such as list_add_rcu() as long as it's guarded by rcu_read_lock().
*/
#define list_first_entry_rcu(ptr, type, member) \
list_entry_rcu((ptr)->next, type, member)
/**
* list_for_each_entry_rcu - iterate over rcu list of given type
* @pos: the type * to use as a loop cursor.
* @head: the head for your list.
* @member: the name of the list_struct within the struct.
*
* This list-traversal primitive may safely run concurrently with
* the _rcu list-mutation primitives such as list_add_rcu()
* as long as the traversal is guarded by rcu_read_lock().
*/
#define list_for_each_entry_rcu(pos, head, member) \
for (pos = list_entry_rcu((head)->next, typeof(*pos), member); \
&pos->member != (head); \
pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
/**
* list_for_each_continue_rcu
* @pos: the &struct list_head to use as a loop cursor.
* @head: the head for your list.
*
* Iterate over an rcu-protected list, continuing after current point.
*
* This list-traversal primitive may safely run concurrently with
* the _rcu list-mutation primitives such as list_add_rcu()
* as long as the traversal is guarded by rcu_read_lock().
*/
#define list_for_each_continue_rcu(pos, head) \
for ((pos) = rcu_dereference_raw(list_next_rcu(pos)); \
(pos) != (head); \
(pos) = rcu_dereference_raw(list_next_rcu(pos)))
/**
* list_for_each_entry_continue_rcu - continue iteration over list of given type
* @pos: the type * to use as a loop cursor.
* @head: the head for your list.
* @member: the name of the list_struct within the struct.
*
* Continue to iterate over list of given type, continuing after
* the current position.
*/
#define list_for_each_entry_continue_rcu(pos, head, member) \
for (pos = list_entry_rcu(pos->member.next, typeof(*pos), member); \
&pos->member != (head); \
pos = list_entry_rcu(pos->member.next, typeof(*pos), member))
/**
* hlist_del_rcu - deletes entry from hash list without re-initialization
* @n: the element to delete from the hash list.
*
* Note: list_unhashed() on entry does not return true after this,
* the entry is in an undefined state. It is useful for RCU based
* lockfree traversal.
*
* In particular, it means that we can not poison the forward
* pointers that may still be used for walking the hash list.
*
* The caller must take whatever precautions are necessary
* (such as holding appropriate locks) to avoid racing
* with another list-mutation primitive, such as hlist_add_head_rcu()
* or hlist_del_rcu(), running on this same list.
* However, it is perfectly legal to run concurrently with
* the _rcu list-traversal primitives, such as
* hlist_for_each_entry().
*/
static inline void hlist_del_rcu(struct hlist_node *n)
|