| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
| |
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>.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Setting FT_TASK_TRACE_MAJOR, LOG_MAJOR, FT_TRACE_MAJOR to 0
allows to have them automatically assigned by the kernel
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
- fix requesting more than 2^11 pages (MAX_ORDER)
to system allocator
Still to be merged:
- feather-trace generic implementation
|