aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
| | * | | Synchronize plugin switchingAndrea Bastoni2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure the plugin is not used by any CPUs while switching. The CPU performing the switch sends an IPI to all other CPUs forcing them to synchronize on an atomic variable.
| | * | | Measure timer re-arming in the proper locationAndrea Bastoni2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hrtimers are properly rearmed during arm_release_timer() and no longer after rescheduling (with the norqlock mechanism of 2008.3). This commit accordingly updates the locations where measures are taken.
| | * | | Bugfix: PSN-EDF should log job_completion eventsAndrea Bastoni2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | Log task completions in job_completion() for PSN-EDF. This fixes the problem of missing job-completion events for PSN-EDF.
| | * | | Bugfix: PSN-EDF should only requeue tasks that are not scheduledBjoern B. Brandenburg2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Requeue a task that is already scheduled will cause it to be effectively in the runqueue twice since scheduled tasks are conceptually the head of the queue. If a task is still scheduled, then schedule() will do the right thing and do the requeuing if necessary. This fixes crashes reported by Glenn and Andrea.
| | * | | 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.
| | * | | Bugfix: make fdso syscalls 64bit cleanBjoern B. Brandenburg2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a bug found by liblitmus's regression test suite. Before: > ** LITMUS^RT test suite. > ** Running tests for LINUX. > ** Testing: don't open FMLP semaphores if FMLP is not supported... > !! TEST FAILURE open_fmlp_sem(fd, 0) -> -16, Success (expected: EBUSY) > at tests/fdso.c:21 (test_fmlp_not_active) > ** Testing: reject invalid object descriptors... ok. > ** Testing: reject invalid object types... > !! TEST FAILURE od_open(0, -1, 0) -> -22, Bad file descriptor (expected: EINVAL) > at tests/fdso.c:51 (test_invalid_obj_type) > ** Testing: reject invalid rt_task pointers... ok. > ** Result: 2 ok, 2 failed. After: > ** LITMUS^RT test suite. > ** Running tests for LINUX. > ** Testing: don't open FMLP semaphores if FMLP is not supported... ok. > ** Testing: reject invalid object descriptors... ok. > ** Testing: reject invalid object types... ok. > ** Testing: reject invalid rt_task pointers... ok. > ** Result: 4 ok, 0 failed.
| | * | | Bugfix: don't inherit od_table across forksBjoern B. Brandenburg2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The od_table is strictly per-thread and should not be inherited across a fork/clone. This caused memory corruption when a task exited, which ultimately could lead to oopses in unrelated code. Bug and testcase initially reported by Glenn.
| | * | | Bugfix: 1) incorrect FMLP high prio task tracking and 2) race in print statementGlenn Elliott2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) High priority task tied to FMLP semaphore in P-EDF scheduling is incorrectly tracked for tasks acquiring the lock without contention. (HP is always set to CPU 0 instead of proper CPU.) 2) Race in a print statement from P-EDF's pi_block() causes NULL pointer dereference.
| | * | | Use generic preemption function in GSN- and PSN-EDF.Bjoern B. Brandenburg2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | This patch updates non-preemptive section support in GSN- and PSN-EDF.
| | * | | Introduce generic NP-section aware preemption functionBjoern B. Brandenburg2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dealing with preemptions across CPUs in the presence of non-preemptive sections can be tricky and should not be replicated across (event-driven) plugins. This patch introduces a generic preemption function that handles non-preemptive sections (hopefully) correctly.
| | * | | Re-implement non-preemptive section support.Bjoern B. Brandenburg2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Re-introduce NP sections in the configuration and in litmus.h. Remove the old np_flag from rt_param. If CONFIG_NP_SECTION is disabled, then all non-preemptive section checks are constant expressions which should get removed by the dead code elimination during optimization. Instead of re-implementing sys_exit_np(), we simply repurposed sched_yield() for calling into the scheduler to trigger delayed preemptions.
| | * | | Add virtual LITMUS^RT control device.Bjoern B. Brandenburg2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This device only supports mmap()'ing a single page. This page is shared RW between the kernel and userspace. It is inteded to allow near-zero-overhead communication between the kernel and userspace. It's first use will be a proper implementation of user-signaled non-preemptable section support.
| | * | | Bugfix: clear LITMUS^RT state on fork completelyBjoern B. Brandenburg2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a real-time task forks, then its LITMUS^RT-specific fields should be cleared, because we don't want real-time tasks to spawn new real-time tasks that bypass the plugin's admission control (if any). This was broken in three ways: 1) kernel/fork.c did not erase all of tsk->rt_param, only the first few bytes due to a wrong size argument to memset(). 2) It should have been calling litmus_fork() instead anyway. 3) litmus_fork() was _also_ not clearing all of tsk->rt_param, due to another size argument bug. Interestingly, 1) and 2) can be traced back to the 2007->2008 port, whereas 3) was added by Mitchell much later on (to dead code, no less). I'm really surprised that this never blew up before.
| | * | | Add Feather-Trace x86_64 architecture dependent codeAndrea Bastoni2010-05-29
| | | | |
| | * | | [ported from 2008.3] Add Feather-Trace x86_32 architecture dependent codeAndrea Bastoni2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | - [ported from 2008.3] Add x86_32 architecture dependent code. - Add the infrastructure for x86_32 - x86_64 integration.
| | * | | Add support for x86_64 architectureAndrea Bastoni2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add syscall on x86_64 - Refactor __NR_sleep_next_period -> __NR_complete_job for both x86_32 and x86_64
| | * | | Add pull_timers_interrupt() to x86_64Andrea Bastoni2010-05-29
| | | | | | | | | | | | | | | | | | | | Add apic interrupt vector for pull_timers() in x86_64 arch.
| | * | | [ported from 2008.3] Add PSN-EDF PluginAndrea Bastoni2010-05-29
| | | | |
| | * | | [ported from 2008.3] Add PFAIR pluginAndrea Bastoni2010-05-29
| | | | |
| | * | | 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
| | * | | Better explanation of jump-to-CFS optimization removalBjoern B. Brandenburg2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GSN-EDF and friends rely on being called even if there is currently no runnable real-time task on the runqueue for (at least) two reasons: 1) To initiate migrations. LITMUS^RT pull tasks for migrations; this requires plugins to be called even if no task is currently present. 2) To maintain invariants when jobs block.
| | * | | Integrate litmus_tick() in task_tick_litmus()Andrea Bastoni2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - remove the call to litmus_tick() from scheduler_tick() just after having performed the class task_tick() and integrate litmus_tick() in task_tick_litmus() - task_tick_litmus() is the handler for the litmus class task_tick() method. It is called in non-queued mode from scheduler_tick()
| | * | | Turn off GSN-EDF TRACE() spam by default.Bjoern B. Brandenburg2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Having GSN-EDF log so many things each tick is useful when tracking down race conditions, but it also makes it really hard to find anything else. Thus, turn it off by default but leave it in for future debugging fun.
| | * | | Refactor binomial heap names: heap -> bheapAndrea Bastoni2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Binomial heap "heap" names conflicted with priority heap of cgroup in kernel - This patch change binomial heap "heap" names in "bheap"
| | * | | [ported from 2008.3] Add release-master supportAndrea Bastoni2010-05-29
| | | | |
| | * | | [ported from 2008.3] Add hrtimer_start_on() APIAndrea Bastoni2010-05-29
| | | | |
| | * | | [ported from 2008.3] Add send_pull_timers() support for x86_32 archAndrea Bastoni2010-05-29
| | | | |
| | * | | [ported from 2008.3] Add GSN-EDF pluginAndrea Bastoni2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - insert arm_release_timer() in add_relese() path - arm_release_timer() uses __hrtimer_start_range_ns() instead of hrtimer_start() to avoid deadlock on rq->lock.
| | * | | [ported from 2008.3] Add LITRMUS^RT syscalls to x86_32Andrea Bastoni2010-05-29
| | | | |
| | * | | [ported from 2008.3] Add FMLP supportAndrea Bastoni2010-05-29
| | | | |
| | * | | [ported from 2008.3] Add Stack Resource Policy (SRP) supportAndrea Bastoni2010-05-29
| | | | |
| | * | | [ported from 2008.3] Add File Descriptor Attached Shared Objects (FDSO) ↵Andrea Bastoni2010-05-29
| | | | | | | | | | | | | | | | | | | | infrastructure
| | * | | [ported from 2008.3] Add common EDF functionsAndrea Bastoni2010-05-29
| | | | |
| | * | | [ported from 2008.3] Add rt_domain_t supportAndrea Bastoni2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | Still to be merged: - arm_release_timer() with no rq locking
| | * | | [ported from 2008.3] Add support for quantum alignmentAndrea Bastoni2010-05-29
| | | | |
| | * | | [ported from 2008.3] Add synchronous task release APIAndrea Bastoni2010-05-29
| | | | |
| | * | | [ported from 2008.3] Add complete_n() callAndrea Bastoni2010-05-29
| | | | |
| | * | | 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
| | * | | [ported from 2008.3] Add Feather-Trace device file supportAndrea Bastoni2010-05-29
| | | | |
| | * | | [ported from 2008.3] Core LITMUS^RT infrastructureAndrea Bastoni2010-05-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Port 2008.3 Core LITMUS^RT infrastructure to Linux 2.6.32 litmus_sched_class implements 4 new methods: - prio_changed: void - switched_to: void - get_rr_interval: return infinity (i.e., 0) - select_task_rq: return current cpu
* | | | | net: new counter for tx_timeout errors in sysfsdavid decotigny2012-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the /sys/class/net/DEV/queues/Q/tx_timeout attribute containing the total number of timeout events on the given queue. It is always available with CONFIG_SYSFS, independently of CONFIG_RPS/XPS. Credits to Stephen Hemminger for a preliminary version of this patch. Tested: without CONFIG_SYSFS (compilation only) with sysfs and without CONFIG_RPS & CONFIG_XPS with sysfs and without CONFIG_RPS with sysfs and without CONFIG_XPS with defaults Signed-off-by: David Decotigny <david.decotigny@google.com> Signed-off-by: David S. Miller <davem@davemloft.net> Conflicts: include/linux/netdevice.h Signed-off-by: Christopher Kenna <cjk@cs.unc.edu>
* | | | | Update ARM compressed gitignore file.Christopher Kenna2012-09-28
| | | | |
* | | | | Add exynos video header file.Christopher Kenna2012-09-28
| | | | |
* | | | | iosched: prevent aliased requests from starving other I/OJeff Moyer2012-09-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hi, Jens, If you recall, I posted an RFC patch for this back in July of last year: http://lkml.org/lkml/2010/7/13/279 The basic problem is that a process can issue a never-ending stream of async direct I/Os to the same sector on a device, thus starving out other I/O in the system (due to the way the alias handling works in both cfq and deadline). The solution I proposed back then was to start dispatching from the fifo after a certain number of aliases had been dispatched. Vivek asked why we had to treat aliases differently at all, and I never had a good answer. So, I put together a simple patch which allows aliases to be added to the rb tree (it adds them to the right, though that doesn't matter as the order isn't guaranteed anyway). I think this is the preferred solution, as it doesn't break up time slices in CFQ or batches in deadline. I've tested it, and it does solve the starvation issue. Let me know what you think. Cheers, Jeff Signed-off-by: Jeff Moyer <jmoyer@redhat.com> Signed-off-by: Jens Axboe <jaxboe@fusionio.com> Conflicts: block/deadline-iosched.c
* | | | | writeback: remove writeback_control.more_ioWu Fengguang2012-09-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When wbc.more_io was first introduced, it indicates whether there are at least one superblock whose s_more_io contains more IO work. Now with the per-bdi writeback, it can be replaced with a simple b_more_io test. Acked-by: Jan Kara <jack@suse.cz> Acked-by: Mel Gorman <mel@csn.ul.ie> Reviewed-by: Minchan Kim <minchan.kim@gmail.com> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Did not change conflicting files. Conflicts: fs/fs-writeback.c include/trace/events/writeback.h
* | | | | writeback: send work item to queue_io, move_expired_inodesCurt Wohlgemuth2012-09-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of sending ->older_than_this to queue_io() and move_expired_inodes(), send the entire wb_writeback_work structure. There are other fields of a work item that are useful in these routines and in tracepoints. Acked-by: Jan Kara <jack@suse.cz> Signed-off-by: Curt Wohlgemuth <curtw@google.com> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Christopher Kenna <cjk@cs.unc.edu>
* | | | | Fix compilation error when VIDEO_TVOUT is selected.Christopher Kenna2012-09-28
| | | | |
* | | | | Apply k4412 kernel from HardKernel for ODROID-X.Christopher Kenna2012-09-28
| | | | |
* | | | | Linux 3.0.42Greg Kroah-Hartman2012-08-26
| | | | |