aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
Commit message (Collapse)AuthorAge
...
* | Added necessary kernel support for zone-based locking.John M. Calandrino2007-03-29
| | | | | | | | | | | | | | | | Added two system calls, one to check if we are in the blocking zone, and one to wait until we exit the blocking zone. Both calls rely on some additional support from the local timer interrupt handler. Everything still needs to be tested with the zone-lock implemention in user space, especially under many different types of race conditions.
* | Worked out some bugs so now it *really* compiles OK.John M. Calandrino2007-03-29
| | | | | | | | | | | | | | System calls and user-level code in libso related to zone-based locking still needs to be tested. Additionally, need to fix an issue getting the time of day within an interrupt handler --- the current method will compile but it will not run because of the need to claim a lock in the handler.
* | Checkpoint: almost all support added. Compiles.John M. Calandrino2007-03-29
| |
* | sys_wait_for_zone_exit system call has been implemented.John M. Calandrino2007-03-29
| | | | | | | | | | | | | | | | sys_wait_for_zone_exit waits on a flag which is cleared during the local timer interrupt. Yet more race conditions have been avoided by performing zone checks before waiting for the flag, and by setting the flag *before* performing the zone check, so that if we enter the loop immediately after leaving the blocking zone, we are still okay.
* | Skeletons of system calls written. Still need to finish.John M. Calandrino2007-03-27
| |
* | Committing some initial changes to implement system calls related toJohn M. Calandrino2007-03-27
|/ | | | zone-based locking.
* Merge with git+ssh://swan/playpen/bbb/litmusBjoern B. Brandenburg2007-02-22
|\ | | | | | | Pulled in the queue lock implementation.
| * Merge with git+ssh://cvs.cs.unc.edu/cvs/proj/litmus/repo/litmusBjoern Brandenburg2007-02-20
| |\ | | | | | | | | | Pulled in john's quantum alignment updates
| * | remove second, unneeded parameter of queue_lock_init()Bjoern Brandenburg2007-02-19
| | | | | | | | | | | | | | | Queue locks in LTMUS always must allow for NR_CPUS processes. Therefore, it is redundant to specify that int queue_lock_init().
* | | use same variable as standard Linux for checking task stateBjoern B. Brandenburg2007-02-22
| | |
* | | always call mode change callbackBjoern B. Brandenburg2007-02-22
| |/ |/| | | | | | | The current plugin's mode change callback was not being called when switching from RT mode to NON-RT mode.
* | Fixed code according to Bjoern's suggestions.John M. Calandrino2007-02-19
| | | | | | | | | | | | | | | | | | Renamed function in timer.c, removed personal EXTRAVERSION from Makefile, changed some other small things. Aligned and staggered quanta are now working properly, Use quanta=staggered as a boot option to get staggered quanta, and no boot option (or quanta=aligned) to get aligned quanta. In most cases, quantum alignments are even more precise now than they were previously (less than 5 microseconds versus 10-20 microseconds).
* | Local commit of current state of my attempt to log quantum sync info.John M. Calandrino2007-02-15
|/ | | | | | Tried to read the amount of time since the last global timer interrupt occurred and log that time on all processors using TRACE, but I think locks are causing me grief, because the system instead hangs.
* finishing touches for TRACE() implementationBjoern Brandenburg2007-02-15
| | | | | Remove some stale comments and prevent NULL bytes from being copied into the TRACE ring-buffer.
* implement LITMUS TRACE() macroBjoern Brandenburg2007-02-07
| | | | | | Implements the LITMUS TRACE() macro by having it emmit formatted text into the global log_buffer. Access is synchronized using log_buffer_lock, which is a queue lock. The maximum message size is 255 bytes.
* add ring buffer for log messagesBjoern Brandenburg2007-02-07
| | | | | This patch adds the file operations structure and the necessary initialization for the ring-buffer that will be used for LITMUS TRACE() logging.
* fix possible crash in trace_openBjoern Brandenburg2007-02-07
| | | | | In case a CPU is not online the kernel should not access its data structures.
* Update base version to the final relesae of 2.6.20.Bjoern B. Brandenburg2007-02-05
|\ | | | | | | Merge with git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
| * [PATCH] fork_idle() should be __cpuinit, not __devinitAl Viro2007-02-01
| | | | | | | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | Comment printk's in the scheduling code.Bjoern B. Brandenburg2007-02-05
| | | | | | | | Printk's in the scheduling code still seem to cause deadlocks.
* | Fix a bunch of bugs that crept in while porting.Bjoern Brandenburg2007-02-05
| | | | | | | | | | | | | | | | * Our old clone flag is already taken in 2.6.20. * Fix wrong is_running() macro. * Remove double ->finish_switch() call. * Move sched_trace_scheduled to non-preemtible section. * Allow next = idle task in RT mode.
* | patched up schedule()Bjoern B. Brandenburg2007-02-02
| | | | | | | | | | | | As we currently do not support direct switching, I removed the DIRECT_SWITCH option. Migration is still supported but only if not in RT mode. This may have to be checked again.
* | scheduler_tick patched upBjoern B. Brandenburg2007-02-02
| |
* | patched up sched.c except for scheduler_tick and scheduleBjoern B. Brandenburg2007-02-02
| |
* | resolve problems with conflicting function definitions inBjoern B. Brandenburg2007-02-02
| | | | | | | | sched.c
* | ported edf_hsb, compilesBjoern Brandenburg2007-02-01
| |
* | here comes partitioned edfBjoern Brandenburg2007-02-01
| |
* | ported first pluginBjoern Brandenburg2007-02-01
| | | | | | | | doesn't work yet, no hooks in sched.c yet
* | Added fifo and made it compileBjoern Brandenburg2007-02-01
| |
* | added edf_common and sched_traceBjoern Brandenburg2007-02-01
| |
* | got some cruft out of litmus.cBjoern B. Brandenburg2007-02-01
| |
* | Added litmus.c, made it compile.Bjoern B. Brandenburg2007-02-01
| |
* | Use names that make more sense.Bjoern B. Brandenburg2007-02-01
| |
* | cleaned out sched_plugin.hBjoern B. Brandenburg2007-02-01
| |
* | Removed unneeded includesBjoern B. Brandenburg2007-02-01
| |
* | plugin driver filesBjoern B. Brandenburg2007-02-01
| |
* | plugin driver added and compilesBjoern B. Brandenburg2007-02-01
|/
* [PATCH] kprobes: replace magic numbers with enumMasami Hiramatsu2007-01-30
| | | | | | | | | | | | | Replace the magic numbers with an enum, and gets rid of a warning on the specific architectures (ex. powerpc) on which the compiler considers 'char' as 'unsigned char'. Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Prasanna S Panchamukhi <prasanna@in.ibm.com> Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com> Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [PATCH] namespaces: fix task exit disasterSerge E. Hallyn2007-01-30
| | | | | | | | | | | | | | | | | | | | This is based on a patch by Eric W. Biederman, who pointed out that pid namespaces are still fake, and we only have one ever active. So for the time being, we can modify any code which could access tsk->nsproxy->pid_ns during task exit to just use &init_pid_ns instead, and move the exit_task_namespaces call in do_exit() back above exit_notify(), so that an exiting nfs server has a valid tsk->sighand to work with. Long term, pulling pid_ns out of nsproxy might be the cleanest solution. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> [ Eric's patch fixed to take care of free_pid() too ] Signed-off-by: Serge E. Hallyn <serue@us.ibm.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Revert "[PATCH] namespaces: fix exit race by splitting exit"Linus Torvalds2007-01-30
| | | | | | | | | This reverts commit 7a238fcba0629b6f2edbcd37458bae56fcf36be5 in preparation for a better and simpler fix proposed by Eric Biederman (and fixed up by Serge Hallyn) Acked-by: Serge E. Hallyn <serue@us.ibm.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [PATCH] namespaces: fix exit race by splitting exitSerge E. Hallyn2007-01-30
| | | | | | | | | | | | | | | | | | | | | Fix exit race by splitting the nsproxy putting into two pieces. First piece reduces the nsproxy refcount. If we dropped the last reference, then it puts the mnt_ns, and returns the nsproxy as a hint to the caller. Else it returns NULL. The second piece of exiting task namespaces sets tsk->nsproxy to NULL, and drops the references to other namespaces and frees the nsproxy only if an nsproxy was passed in. A little awkward and should probably be reworked, but hopefully it fixes the NFS oops. Signed-off-by: Serge E. Hallyn <serue@us.ibm.com> Cc: Herbert Poetzl <herbert@13thfloor.at> Cc: Oleg Nesterov <oleg@tv-sign.ru> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Cedric Le Goater <clg@fr.ibm.com> Cc: Daniel Hokka Zakrisson <daniel@hozac.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Clear spurious irq stat information when adding irq handlerLinus Torvalds2007-01-23
| | | | | | | | | | | | | Any newly added irq handler may obviously make any old spurious irq status invalid, since the new handler may well be the thing that is supposed to handle any interrupts that came in. So just clear the statistics when adding handlers. Pointed-out-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Acked-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [PATCH] notifiers: fix blocking_notifier_call_chain() scalabilityIngo Molnar2007-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | while lock-profiling the -rt kernel i noticed weird contention during mmap-intense workloads, and the tracer showed the following gem, in one of our MM hotpaths: threaded-2771 1.... 65us : sys_munmap (sysenter_do_call) threaded-2771 1.... 66us : profile_munmap (sys_munmap) threaded-2771 1.... 66us : blocking_notifier_call_chain (profile_munmap) threaded-2771 1.... 66us : rt_down_read (blocking_notifier_call_chain) ouch! a global rw-semaphore taken in one of the most performance- sensitive codepaths of the kernel. And i dont even have oprofile enabled! All distro kernels have CONFIG_PROFILING enabled, so this scalability problem affects the majority of Linux users. The fix is to enhance blocking_notifier_call_chain() to only take the lock if there appears to be work on the call-chain. With this patch applied i get nicely saturated system, and much higher munmap performance, on SMP systems. And as a bonus this also fixes a similar scalability bottleneck in the thread-exit codepath: profile_task_exit() ... Signed-off-by: Ingo Molnar <mingo@elte.hu> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Acked-by: Nick Piggin <nickpiggin@yahoo.com.au> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [PATCH] fix "kvm: add vm exit profiling"Andrew Morton2007-01-23
| | | | | | | | | export profile_hits() on !SMP too. Cc: Ingo Molnar <mingo@elte.hu> Cc: Avi Kivity <avi@qumranet.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [PATCH] KVM: add VM-exit profilingIngo Molnar2007-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the profile=kvm boot option, which enables KVM to profile VM exits. Use: "readprofile -m ./System.map | sort -n" to see the resulting output: [...] 18246 serial_out 148.3415 18945 native_flush_tlb 378.9000 23618 serial_in 212.7748 29279 __spin_unlock_irq 622.9574 43447 native_apic_write 2068.9048 52702 enable_8259A_irq 742.2817 54250 vgacon_scroll 89.3740 67394 ide_inb 6126.7273 79514 copy_page_range 98.1654 84868 do_wp_page 86.6000 140266 pit_read 783.6089 151436 ide_outb 25239.3333 152668 native_io_delay 21809.7143 174783 mask_and_ack_8259A 783.7803 362404 native_set_pte_at 36240.4000 1688747 total 0.5009 Signed-off-by: Ingo Molnar <mingo@elte.hu> Acked-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Change cpu_up and co from __devinit to __cpuinitGautham R Shenoy2007-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compiling the kernel with CONFIG_HOTPLUG = y and CONFIG_HOTPLUG_CPU = n with CONFIG_RELOCATABLE = y generates the following modpost warnings WARNING: vmlinux - Section mismatch: reference to .init.data: from .text between '_cpu_up' (at offset 0xc0141b7d) and 'cpu_up' WARNING: vmlinux - Section mismatch: reference to .init.data: from .text between '_cpu_up' (at offset 0xc0141b9c) and 'cpu_up' WARNING: vmlinux - Section mismatch: reference to .init.text:__cpu_up from .text between '_cpu_up' (at offset 0xc0141bd8) and 'cpu_up' WARNING: vmlinux - Section mismatch: reference to .init.data: from .text between '_cpu_up' (at offset 0xc0141c05) and 'cpu_up' WARNING: vmlinux - Section mismatch: reference to .init.data: from .text between '_cpu_up' (at offset 0xc0141c26) and 'cpu_up' WARNING: vmlinux - Section mismatch: reference to .init.data: from .text between '_cpu_up' (at offset 0xc0141c37) and 'cpu_up' This is because cpu_up, _cpu_up and __cpu_up (in some architectures) are defined as __devinit AND __cpu_up calls some __cpuinit functions. Since __cpuinit would map to __init with this kind of a configuration, we get a .text refering .init.data warning. This patch solves the problem by converting all of __cpu_up, _cpu_up and cpu_up from __devinit to __cpuinit. The approach is justified since the callers of cpu_up are either dependent on CONFIG_HOTPLUG_CPU or are of __init type. Thus when CONFIG_HOTPLUG_CPU=y, all these cpu up functions would land up in .text section, and when CONFIG_HOTPLUG_CPU=n, all these functions would land up in .init section. Tested on a i386 SMP machine running linux-2.6.20-rc3-mm1. Signed-off-by: Gautham R Shenoy <ego@in.ibm.com> Cc: Vivek Goyal <vgoyal@in.ibm.com> Cc: Mikael Starvik <starvik@axis.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Kyle McMartin <kyle@mcmartin.ca> Cc: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: "David S. Miller" <davem@davemloft.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] sched: tasks cannot run on cpus onlined after bootNathan Lynch2007-01-11
| | | | | | | | | | | | | | | | | | | | | Commit 5c1e176781f43bc902a51e5832f789756bff911b ("sched: force /sbin/init off isolated cpus") sets init's cpus_allowed to a subset of cpu_online_map at boot time, which means that tasks won't be scheduled on cpus that are added to the system later. Make init's cpus_allowed a subset of cpu_possible_map instead. This should still preserve the behavior that Nick's change intended. Thanks to Giuliano Pochini for reporting this and testing the fix: http://ozlabs.org/pipermail/linuxppc-dev/2006-December/029397.html Signed-off-by: Nathan Lynch <ntl@pobox.com> Acked-by: Ingo Molnar <mingo@elte.hu> Cc: Nick Piggin <nickpiggin@yahoo.com.au> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] x86-64: Make noirqdebug_setup function non init to fix modpost warningVivek Goyal2007-01-10
| | | | | | | | | | | | | | | | o noirqdebug_setup() is __init but it is being called by quirk_intel_irqbalance() which if of type __devinit. If CONFIG_HOTPLUG=y, quirk_intel_irqbalance() is put into text section and it is wrong to call a function in __init section. o MODPOST flags this on i386 if CONFIG_RELOCATABLE=y WARNING: vmlinux - Section mismatch: reference to .init.text:noirqdebug_setup from .text between 'quirk_intel_irqbalance' (at offset 0xc010969e) and 'i8237A_suspend' o Make noirqdebug_setup() non-init. Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andi Kleen <ak@suse.de>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6Linus Torvalds2007-01-06
|\ | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6: [PATCH] Driver core: Fix prefix driver links in /sys/module by bus-name
| * [PATCH] Driver core: Fix prefix driver links in /sys/module by bus-nameKay Sievers2007-01-05
| | | | | | | | | | | | | | | | Modules may have drivers with the same name on different buses. This patch fixes this problem. Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>