aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/sched_trace.c
Commit message (Collapse)AuthorAge
* Make TRACE() buffer size configurableBjoern B. Brandenburg2010-11-16
| | | | | | | | | | | Let the user choose an appropriate buffer size (instead of scaling with NR_CPUS). The kfifo api requires the buffer to be a power of two, so enforce this constraint in the configuration. This fixes a previously-existing compile-time error for values of NR_CPU that are not a power of two. Based on a patch by Mac Mollison <mollison@cs.unc.edu>.
* Cleanup TRACE() implementationBjoern B. Brandenburg2010-11-11
| | | | | | | | | | | | | | Since the intial rebased from .24 to .32, the TRACE() implementation was a hybrid between our old ringbuffer implementation and the new generic kfifo API. This was a) ugly and b) not save for TRACE() invoctations during early boot. This patch rips out the old parts and replaces the actual buffer with a static kfifo. This also increases TRACE() buffer size considerably. As we avoid a dynamic allocation, this a larger size is less problematic for debug builds. This helps a bit with holes in the debug log if the buffer-flushing task is starved.
* Merge commit 'v2.6.36' into wip-merge-2.6.36Andrea Bastoni2010-10-23
| | | | | | | | | | | | | | | | | | | | | | | Conflicts: Makefile arch/x86/include/asm/unistd_32.h arch/x86/kernel/syscall_table_32.S kernel/sched.c kernel/time/tick-sched.c Relevant API and functions changes (solved in this commit): - (API) .enqueue_task() (enqueue_task_litmus), dequeue_task() (dequeue_task_litmus), [litmus/sched_litmus.c] - (API) .select_task_rq() (select_task_rq_litmus) [litmus/sched_litmus.c] - (API) sysrq_dump_trace_buffer() and sysrq_handle_kill_rt_tasks() [litmus/sched_trace.c] - struct kfifo internal buffer name changed (buffer -> buf) [litmus/sched_trace.c] - add_wait_queue_exclusive_locked -> __add_wait_queue_tail_exclusive [litmus/fmlp.c] - syscall numbers for both x86_32 and x86_64
* Update kfifo and spinlock_t in sched_trace.cAndrea Bastoni2010-05-29
| | | | | | | | | - kfifo needs to be defined and used differently (see include/linux/kfifo.h) - spinlock -> raw_spinlock - include slab.h when using kmalloc and friends This commit compiles and is the logical end of the merge of Litmus and 2.6.34.
* Used miscdevice API for sched_traceBjoern B. Brandenburg2010-05-29
| | | | | | | | | This patch changes sched_trace.c to use the miscdevice API instead of doing all the cdev management ourselves. This remove a chunk of code and we get sysfs / udev integration for free. On systems with default udev rules, this will result in a /dev/litmus/log device being created automatically.
* Add optional dynamic assignment of tracing devices major nrAndrea Bastoni2010-05-29
| | | | | Setting FT_TASK_TRACE_MAJOR, LOG_MAJOR, FT_TRACE_MAJOR to 0 allows to have them automatically assigned by the kernel
* Move sched_trace ring buffer to kfifo implementationAndrea Bastoni2010-05-29
| | | | | | | | | | | | Use kfifo [kernel/kfifo.c] to implement the ring buffer used for sched_trace (TRACE() and TRACE_TASK() macros) This patch also includes some reorganization of sched_trace.c code and some fixes: - 1c39c59b3 Fix GFP_KERNEL in rb_alloc_buf with interrupt disabled. - 193ad2688 Let TRACE() log buffer size and comment converge. - 6195e2ae8 re-enable capturing of printk() messages in TRACE() logs.
* [ported from 2008.3] Add tracing support and hook up Litmus KConfig for x86Andrea Bastoni2010-05-29
- fix requesting more than 2^11 pages (MAX_ORDER) to system allocator Still to be merged: - feather-trace generic implementation