14 Nov, 2008

1 commit


13 Nov, 2008

8 commits

  • …turn-tracer' and 'tracing/urgent' into tracing/core

    Ingo Molnar
     
  • Impact: Optimize a bit the function return tracer

    This patch changes the calling convention of prepare_ftrace_return to
    pass its arguments by register. This will optimize it a bit and
    prepare it to support dynamic tracing.

    Signed-off-by: Frederic Weisbecker
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • Impact: remove spinlocks and irq disabling in function return tracer.

    I've tried to figure out all of the race condition that could happen
    when the tracer pushes or pops a return address trace to/from the
    current thread_info.

    Theory:

    _ One thread can only execute on one cpu at a time. So this code
    doesn't need to be SMP-safe. Just drop the spinlock.

    _ The only race could happen between the current thread and an
    interrupt. If an interrupt is raised, it will increase the index of
    the return stack storage and then execute until the end of the
    tracing to finally free the index it used. We don't need to disable
    irqs.

    This is theorical. In practice, I've tested it with a two-core SMP and
    had no problem at all. Perhaps -tip testing could confirm it.

    Signed-off-by: Frederic Weisbecker
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • Impact: File name change of trace_unlikely.c

    The "unlikely" name for the tracer is quite ugly. We renamed all the
    parts of it to "branch" and now it is time to rename the file too.

    Signed-off-by: Steven Rostedt
    Signed-off-by: Ingo Molnar

    Steven Rostedt
     
  • Impact: added new branch tracer

    Currently the tracing of branch profiling (unlikelys and likelys hit)
    is only activated by the iter_ctrl. This patch adds a tracer called
    "branch" that will just trace the branch profiling. The advantage
    of adding this tracer is that it can be added to the ftrace selftests
    on startup.

    Signed-off-by: Steven Rostedt
    Signed-off-by: Ingo Molnar

    Steven Rostedt
     
  • Impact: rename of iter_ctrl unlikely to branch

    The unlikely name is ugly. This patch converts the iter_ctrl command
    "unlikely" and "nounlikely" to "branch" and "nobranch" respectively.

    It also renames a lot of internal functions to use "branch" instead
    of "unlikely".

    Signed-off-by: Steven Rostedt
    Signed-off-by: Ingo Molnar

    Steven Rostedt
     
  • Impact: name change of unlikely tracer and profiler

    Ingo Molnar suggested changing the config from UNLIKELY_PROFILE
    to BRANCH_PROFILING. I never did like the "unlikely" name so I
    went one step farther, and renamed all the unlikely configurations
    to a "BRANCH" variant.

    Signed-off-by: Steven Rostedt
    Signed-off-by: Ingo Molnar

    Steven Rostedt
     
  • Impact: cleanup

    Fix the following warning from the perl syntax checking tool perlcritic.
    This tool is a lint like tool that checks for perl best practices.

    Loop iterator is not lexical at line 113, column 1.
    See page 108 of PBP. (Severity: 5)

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Ingo Molnar

    Stephen Hemminger
     

12 Nov, 2008

29 commits

  • Steve suggested the to change the output from this:

    > bash-3471 [003] 357.014755: [ MISS ] sched_info_dequeued:sched_stats.h:177
    > bash-3471 [003] 357.014756: [ .... ] update_curr:sched_fair.c:489
    > bash-3471 [003] 357.014758: [ .... ] calc_delta_fair:sched_fair.c:411

    to this:

    > bash-3471 [003] 357.014755: [ MISS ] sched_info_dequeued:sched_stats.h:177
    > bash-3471 [003] 357.014756: [ ok ] update_curr:sched_fair.c:489
    > bash-3471 [003] 357.014758: [ ok ] calc_delta_fair:sched_fair.c:411

    as it makes it clearer to the user what it means exactly.

    Acked-by: Steven Rostedt
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Impact: fix bootup crash

    the branch tracer missed arch/x86/vdso/vclock_gettime.c from
    disabling tracing, which caused such bootup crashes:

    [ 201.840097] init[1]: segfault at 7fffed3fe7c0 ip 00007fffed3fea2e sp 000077

    also clean up the ugly ifdefs in arch/x86/kernel/vsyscall_64.c by
    creating DISABLE_UNLIKELY_PROFILE facility for code to turn off
    instrumentation on a per file basis.

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Impact: modify the tracer output, to make it a bit easier to read

    Change the output from:

    > bash-3471 [003] 357.014755: [INCORRECT] sched_info_dequeued:sched_stats.h:177
    > bash-3471 [003] 357.014756: [correct] update_curr:sched_fair.c:489
    > bash-3471 [003] 357.014758: [correct] calc_delta_fair:sched_fair.c:411

    to:

    > bash-3471 [003] 357.014755: [ MISS ] sched_info_dequeued:sched_stats.h:177
    > bash-3471 [003] 357.014756: [ .... ] update_curr:sched_fair.c:489
    > bash-3471 [003] 357.014758: [ .... ] calc_delta_fair:sched_fair.c:411

    it's good to have fields aligned vertically, and the only important
    information is a prediction miss, so display only that information.

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Impact: new likely/unlikely branch tracer

    This patch adds a way to record the instances of the likely() and unlikely()
    branch condition annotations.

    When "unlikely" is set in /debugfs/tracing/iter_ctrl the unlikely conditions
    will be added to any of the ftrace tracers. The change takes effect when
    a new tracer is passed into the current_tracer file.

    For example:

    bash-3471 [003] 357.014755: [INCORRECT] sched_info_dequeued:sched_stats.h:177
    bash-3471 [003] 357.014756: [correct] update_curr:sched_fair.c:489
    bash-3471 [003] 357.014758: [correct] calc_delta_fair:sched_fair.c:411
    bash-3471 [003] 357.014759: [correct] account_group_exec_runtime:sched_stats.h:356
    bash-3471 [003] 357.014761: [correct] update_curr:sched_fair.c:489
    bash-3471 [003] 357.014763: [INCORRECT] calc_delta_fair:sched_fair.c:411
    bash-3471 [003] 357.014765: [correct] calc_delta_mine:sched.c:1279

    Which shows the normal tracer heading, as well as whether the condition was
    correct "[correct]" or was mistaken "[INCORRECT]", followed by the function,
    file name and line number.

    Signed-off-by: Steven Rostedt
    Signed-off-by: Ingo Molnar

    Steven Rostedt
     
  • Impact: new unlikely/likely profiler

    Andrew Morton recently suggested having an in-kernel way to profile
    likely and unlikely macros. This patch achieves that goal.

    When configured, every(*) likely and unlikely macro gets a counter attached
    to it. When the condition is hit, the hit and misses of that condition
    are recorded. These numbers can later be retrieved by:

    /debugfs/tracing/profile_likely - All likely markers
    /debugfs/tracing/profile_unlikely - All unlikely markers.

    # cat /debug/tracing/profile_unlikely | head
    correct incorrect % Function File Line
    ------- --------- - -------- ---- ----
    2167 0 0 do_arch_prctl process_64.c 832
    0 0 0 do_arch_prctl process_64.c 804
    2670 0 0 IS_ERR err.h 34
    71230 5693 7 __switch_to process_64.c 673
    76919 0 0 __switch_to process_64.c 639
    43184 33743 43 __switch_to process_64.c 624
    12740 64181 83 __switch_to process_64.c 594
    12740 64174 83 __switch_to process_64.c 590

    # cat /debug/tracing/profile_unlikely | \
    awk '{ if ($3 > 25) print $0; }' |head -20
    44963 35259 43 __switch_to process_64.c 624
    12762 67454 84 __switch_to process_64.c 594
    12762 67447 84 __switch_to process_64.c 590
    1478 595 28 syscall_get_error syscall.h 51
    0 2821 100 syscall_trace_leave ptrace.c 1567
    0 1 100 native_smp_prepare_cpus smpboot.c 1237
    86338 265881 75 calc_delta_fair sched_fair.c 408
    210410 108540 34 calc_delta_mine sched.c 1267
    0 54550 100 sched_info_queued sched_stats.h 222
    51899 66435 56 pick_next_task_fair sched_fair.c 1422
    6 10 62 yield_task_fair sched_fair.c 982
    7325 2692 26 rt_policy sched.c 144
    0 1270 100 pre_schedule_rt sched_rt.c 1261
    1268 48073 97 pick_next_task_rt sched_rt.c 884
    0 45181 100 sched_info_dequeued sched_stats.h 177
    0 15 100 sched_move_task sched.c 8700
    0 15 100 sched_move_task sched.c 8690
    53167 33217 38 schedule sched.c 4457
    0 80208 100 sched_info_switch sched_stats.h 270
    30585 49631 61 context_switch sched.c 2619

    # cat /debug/tracing/profile_likely | awk '{ if ($3 > 25) print $0; }'
    39900 36577 47 pick_next_task sched.c 4397
    20824 15233 42 switch_mm mmu_context_64.h 18
    0 7 100 __cancel_work_timer workqueue.c 560
    617 66484 99 clocksource_adjust timekeeping.c 456
    0 346340 100 audit_syscall_exit auditsc.c 1570
    38 347350 99 audit_get_context auditsc.c 732
    0 345244 100 audit_syscall_entry auditsc.c 1541
    38 1017 96 audit_free auditsc.c 1446
    0 1090 100 audit_alloc auditsc.c 862
    2618 1090 29 audit_alloc auditsc.c 858
    0 6 100 move_masked_irq migration.c 9
    1 198 99 probe_sched_wakeup trace_sched_switch.c 58
    2 2 50 probe_wakeup trace_sched_wakeup.c 227
    0 2 100 probe_wakeup_sched_switch trace_sched_wakeup.c 144
    4514 2090 31 __grab_cache_page filemap.c 2149
    12882 228786 94 mapping_unevictable pagemap.h 50
    4 11 73 __flush_cpu_slab slub.c 1466
    627757 330451 34 slab_free slub.c 1731
    2959 61245 95 dentry_lru_del_init dcache.c 153
    946 1217 56 load_elf_binary binfmt_elf.c 904
    102 82 44 disk_put_part genhd.h 206
    1 1 50 dst_gc_task dst.c 82
    0 19 100 tcp_mss_split_point tcp_output.c 1126

    As you can see by the above, there's a bit of work to do in rethinking
    the use of some unlikelys and likelys. Note: the unlikely case had 71 hits
    that were more than 25%.

    Note: After submitting my first version of this patch, Andrew Morton
    showed me a version written by Daniel Walker, where I picked up
    the following ideas from:

    1) Using __builtin_constant_p to avoid profiling fixed values.
    2) Using __FILE__ instead of instruction pointers.
    3) Using the preprocessor to stop all profiling of likely
    annotations from vsyscall_64.c.

    Thanks to Andrew Morton, Arjan van de Ven, Theodore Tso and Ingo Molnar
    for their feed back on this patch.

    (*) Not ever unlikely is recorded, those that are used by vsyscalls
    (a few of them) had to have profiling disabled.

    Signed-off-by: Steven Rostedt
    Cc: Andrew Morton
    Cc: Frederic Weisbecker
    Cc: Theodore Tso
    Cc: Arjan van de Ven
    Cc: Steven Rostedt
    Signed-off-by: Ingo Molnar

    Steven Rostedt
     
  • …/ring-buffer' into tracing/core

    Ingo Molnar
     
  • Impact: deadlock fix in ring_buffer_read_start

    The ring_buffer_iter_reset was called from ring_buffer_read_start
    where both grabbed the reader_lock.

    This patch separates out the internals of ring_buffer_iter_reset
    to its own function so that both APIs may grab the reader_lock.

    Signed-off-by: Steven Rostedt
    Signed-off-by: Ingo Molnar

    Steven Rostedt
     
  • Impact: disable preemption when calling sched_clock()

    The ring_buffer_time_stamp still uses sched_clock as its counter.
    But it is a bug to call it with preemption enabled. This requirement
    should not be pushed to the ring_buffer_time_stamp callers, so
    the ring_buffer_time_stamp needs to disable preemption when calling
    sched_clock.

    Signed-off-by: Steven Rostedt
    Signed-off-by: Ingo Molnar

    Steven Rostedt
     
  • Impact: Split the boot tracer entries in two parts: call and return

    Now that we are using the sched tracer from the boot tracer, we want
    to use the same timestamp than the ring-buffer to have consistent time
    captures between sched events and initcall events.

    So we get rid of the old time capture by the boot tracer and split the
    initcall events in two parts: call and return. This way we have the
    ring buffer timestamp of both.

    An example trace:

    [ 27.904149584] calling net_ns_init+0x0/0x1c0 @ 1
    [ 27.904429624] initcall net_ns_init+0x0/0x1c0 returned 0 after 0 msecs
    [ 27.904575926] calling reboot_init+0x0/0x20 @ 1
    [ 27.904655399] initcall reboot_init+0x0/0x20 returned 0 after 0 msecs
    [ 27.904800228] calling sysctl_init+0x0/0x30 @ 1
    [ 27.905142914] initcall sysctl_init+0x0/0x30 returned 0 after 0 msecs
    [ 27.905287211] calling ksysfs_init+0x0/0xb0 @ 1
    ##### CPU 0 buffer started ####
    init-1 [000] 27.905395: 1:120:R + [001] 11:115:S
    ##### CPU 1 buffer started ####
    -0 [001] 27.905425: 0:140:R ==> [001] 11:115:R
    init-1 [000] 27.905426: 1:120:D ==> [000] 0:140:R
    -0 [000] 27.905431: 0:140:R + [000] 4:115:S
    -0 [000] 27.905451: 0:140:R ==> [000] 4:115:R
    ksoftirqd/0-4 [000] 27.905456: 4:115:S ==> [000] 0:140:R
    udevd-11 [001] 27.905458: 11:115:R + [001] 14:115:R
    -0 [000] 27.905459: 0:140:R + [000] 4:115:S
    -0 [000] 27.905462: 0:140:R ==> [000] 4:115:R
    udevd-11 [001] 27.905462: 11:115:R ==> [001] 14:115:R
    ksoftirqd/0-4 [000] 27.905467: 4:115:S ==> [000] 0:140:R
    -0 [000] 27.905470: 0:140:R + [000] 4:115:S
    -0 [000] 27.905473: 0:140:R ==> [000] 4:115:R
    ksoftirqd/0-4 [000] 27.905476: 4:115:S ==> [000] 0:140:R
    -0 [000] 27.905479: 0:140:R + [000] 4:115:S
    -0 [000] 27.905482: 0:140:R ==> [000] 4:115:R
    ksoftirqd/0-4 [000] 27.905486: 4:115:S ==> [000] 0:140:R
    udevd-14 [001] 27.905499: 14:120:X ==> [001] 11:115:R
    udevd-11 [001] 27.905506: 11:115:R + [000] 1:120:D
    -0 [000] 27.905515: 0:140:R ==> [000] 1:120:R
    udevd-11 [001] 27.905517: 11:115:S ==> [001] 0:140:R
    [ 27.905557107] initcall ksysfs_init+0x0/0xb0 returned 0 after 3906 msecs
    [ 27.905705736] calling init_jiffies_clocksource+0x0/0x10 @ 1
    [ 27.905779239] initcall init_jiffies_clocksource+0x0/0x10 returned 0 after 0 msecs
    [ 27.906769814] calling pm_init+0x0/0x30 @ 1
    [ 27.906853627] initcall pm_init+0x0/0x30 returned 0 after 0 msecs
    [ 27.906997803] calling pm_disk_init+0x0/0x20 @ 1
    [ 27.907076946] initcall pm_disk_init+0x0/0x20 returned 0 after 0 msecs
    [ 27.907222556] calling swsusp_header_init+0x0/0x30 @ 1
    [ 27.907294325] initcall swsusp_header_init+0x0/0x30 returned 0 after 0 msecs
    [ 27.907439620] calling stop_machine_init+0x0/0x50 @ 1
    init-1 [000] 27.907485: 1:120:R + [000] 2:115:S
    init-1 [000] 27.907490: 1:120:D ==> [000] 2:115:R
    kthreadd-2 [000] 27.907507: 2:115:R + [001] 15:115:R
    -0 [001] 27.907517: 0:140:R ==> [001] 15:115:R
    kthreadd-2 [000] 27.907517: 2:115:D ==> [000] 0:140:R
    -0 [000] 27.907521: 0:140:R + [000] 4:115:S
    -0 [000] 27.907524: 0:140:R ==> [000] 4:115:R
    udevd-15 [001] 27.907527: 15:115:D + [000] 2:115:D
    ksoftirqd/0-4 [000] 27.907537: 4:115:S ==> [000] 2:115:R
    udevd-15 [001] 27.907537: 15:115:D ==> [001] 0:140:R
    kthreadd-2 [000] 27.907546: 2:115:R + [000] 1:120:D
    kthreadd-2 [000] 27.907550: 2:115:S ==> [000] 1:120:R
    init-1 [000] 27.907584: 1:120:R + [000] 15: 0:D
    init-1 [000] 27.907589: 1:120:R + [000] 2:115:S
    init-1 [000] 27.907593: 1:120:D ==> [000] 15: 0:R
    udevd-15 [000] 27.907601: 15: 0:S ==> [000] 2:115:R
    ##### CPU 0 buffer started ####
    kthreadd-2 [000] 27.907616: 2:115:R + [001] 16:115:R
    ##### CPU 1 buffer started ####
    -0 [001] 27.907620: 0:140:R ==> [001] 16:115:R
    kthreadd-2 [000] 27.907621: 2:115:D ==> [000] 0:140:R
    udevd-16 [001] 27.907625: 16:115:D + [000] 2:115:D
    -0 [000] 27.907628: 0:140:R + [000] 4:115:S
    udevd-16 [001] 27.907629: 16:115:D ==> [001] 0:140:R
    -0 [000] 27.907631: 0:140:R ==> [000] 4:115:R
    ksoftirqd/0-4 [000] 27.907636: 4:115:S ==> [000] 2:115:R
    kthreadd-2 [000] 27.907644: 2:115:R + [000] 1:120:D
    kthreadd-2 [000] 27.907647: 2:115:S ==> [000] 1:120:R
    init-1 [000] 27.907657: 1:120:R + [001] 16: 0:D
    -0 [001] 27.907666: 0:140:R ==> [001] 16: 0:R
    [ 27.907703862] initcall stop_machine_init+0x0/0x50 returned 0 after 0 msecs
    [ 27.907850704] calling filelock_init+0x0/0x30 @ 1
    [ 27.907926573] initcall filelock_init+0x0/0x30 returned 0 after 0 msecs
    [ 27.908071327] calling init_script_binfmt+0x0/0x10 @ 1
    [ 27.908165195] initcall init_script_binfmt+0x0/0x10 returned 0 after 0 msecs
    [ 27.908309461] calling init_elf_binfmt+0x0/0x10 @ 1

    Signed-off-by: Frederic Weisbecker
    Acked-by: Steven Rostedt
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • Impact: Cleanups on the boot tracer and ftrace

    This patch bring some cleanups about the boot tracer headers. The
    functions and structures of this tracer have nothing related to ftrace
    and should have so their own header file.

    Signed-off-by: Frederic Weisbecker
    Acked-by: Steven Rostedt
    Signed-off-by: Ingo Molnar

    Frederic Weisbecker
     
  • Ingo Molnar
     
  • Conflicts:
    kernel/trace/ring_buffer.c

    Ingo Molnar
     
  • Impact: Restructure WARN_ONs in ring_buffer.c

    The current WARN_ON macros in ring_buffer.c are quite ugly.

    This patch cleans them up and uses a single RB_WARN_ON that returns
    the value of the condition. This allows the caller to abort the
    function if the condition is true.

    Signed-off-by: Steven Rostedt
    Signed-off-by: Ingo Molnar

    Steven Rostedt
     
  • …nux-2.6-trace into tracing/urgent

    Ingo Molnar
     
  • Impact: enable/disable ring buffer recording API added

    Several kernel developers have requested that there be a way to stop
    recording into the ring buffers with a simple switch that can also
    be enabled from userspace. This patch addes a new kernel API to the
    ring buffers called:

    tracing_on()
    tracing_off()

    When tracing_off() is called, all ring buffers will not be able to record
    into their buffers.

    tracing_on() will enable the ring buffers again.

    These two act like an on/off switch. That is, there is no counting of the
    number of times tracing_off or tracing_on has been called.

    A new file is added to the debugfs/tracing directory called

    tracing_on

    This allows for userspace applications to also flip the switch.

    echo 0 > debugfs/tracing/tracing_on

    disables the tracing.

    echo 1 > /debugfs/tracing/tracing_on

    enables it.

    Note, this does not disable or enable any tracers. It only sets or clears
    a flag that needs to be set in order for the ring buffers to write to
    their buffers. It is a global flag, and affects all ring buffers.

    The buffers start out with tracing_on enabled.

    There are now three flags that control recording into the buffers:

    tracing_on: which affects all ring buffer tracers.

    buffer->record_disabled: which affects an allocated buffer, which may be set
    if an anomaly is detected, and tracing is disabled.

    cpu_buffer->record_disabled: which is set by tracing_stop() or if an
    anomaly is detected. tracing_start can not reenable this if
    an anomaly occurred.

    The userspace debugfs/tracing/tracing_enabled is implemented with
    tracing_stop() but the user space code can not enable it if the kernel
    called tracing_stop().

    Userspace can enable the tracing_on even if the kernel disabled it.
    It is just a switch used to stop tracing if a condition was hit.
    tracing_on is not for protecting critical areas in the kernel nor is
    it for stopping tracing if an anomaly occurred. This is because userspace
    can reenable it at any time.

    Side effect: With this patch, I discovered a dead variable in ftrace.c
    called tracing_on. This patch removes it.

    Signed-off-by: Steven Rostedt

    Steven Rostedt
     
  • …el/git/tip/linux-2.6-tip

    * 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    timers: handle HRTIMER_CB_IRQSAFE_UNLOCKED correctly from softirq context
    nohz: disable tick_nohz_kick_tick() for now
    irq: call __irq_enter() before calling the tick_idle_check
    x86: HPET: enter hpet_interrupt_handler with interrupts disabled
    x86: HPET: read from HPET_Tn_CMP() not HPET_T0_CMP
    x86: HPET: convert WARN_ON to WARN_ON_ONCE

    Linus Torvalds
     
  • …l/git/tip/linux-2.6-tip

    * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    sched: release buddies on yield
    fix for account_group_exec_runtime(), make sure ->signal can't be freed under rq->lock
    sched: clean up debug info

    Linus Torvalds
     
  • …nel/git/tip/linux-2.6-tip

    * 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    ring-buffer: prevent infinite looping on time stamping
    ftrace: disable tracing on resize
    ftrace: fix breakage in bin_fmt results
    ftrace: ftrace.txt version update
    ftrace: update txt document

    Linus Torvalds
     
  • Impact: serialize reader accesses to individual CPU ring buffers

    The code in the ring buffer expects only one reader at a time, but currently
    it puts that requirement on the caller. This is not strong enough, and this
    patch adds a "reader_lock" that serializes the access to the reader API
    of the ring buffer.

    Signed-off-by: Steven Rostedt
    Signed-off-by: Ingo Molnar

    Steven Rostedt
     
  • * 'for-linus' of git://oss.sgi.com/xfs/xfs:
    [XFS] XFS: Check for valid transaction headers in recovery
    [XFS] handle memory allocation failures during log initialisation
    [XFS] Account for allocated blocks when expanding directories
    [XFS] Wait for all I/O on truncate to zero file size
    [XFS] Fix use-after-free with log and quotas

    Linus Torvalds
     
  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: (21 commits)
    ocfs2: Check search result in ocfs2_xattr_block_get()
    ocfs2: fix printk related build warnings in xattr.c
    ocfs2: truncate outstanding block after direct io failure
    ocfs2/xattr: Proper hash collision handle in bucket division
    ocfs2: return 0 in page_mkwrite to let VFS retry.
    ocfs2: Set journal descriptor to NULL after journal shutdown
    ocfs2: Fix check of return value of ocfs2_start_trans() in xattr.c.
    ocfs2: Let inode be really deleted when ocfs2_mknod_locked() fails
    ocfs2: Fix checking of return value of new_inode()
    ocfs2: Fix check of return value of ocfs2_start_trans()
    ocfs2: Fix some typos in xattr annotations.
    ocfs2: Remove unused ocfs2_restore_xattr_block().
    ocfs2: Don't repeat ocfs2_xattr_block_find()
    ocfs2: Specify appropriate journal access for new xattr buckets.
    ocfs2: Check errors from ocfs2_xattr_update_xattr_search()
    ocfs2: Don't return -EFAULT from a corrupt xattr entry.
    ocfs2: Check xattr block signatures properly.
    ocfs2: add handler_map array bounds checking
    ocfs2: remove duplicate definition in xattr
    ocfs2: fix function declaration and definition in xattr
    ...

    Linus Torvalds
     
  • Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (35 commits)
    V4L/DVB (9516): cx18: Move DVB buffer transfer handling from irq handler to work_queue
    V4L/DVB (9557): gspca: Small changes for the sensor HV7131B in zc3xx.
    V4L/DVB (9556): gspca: Bad init sequence for sensor HV7131B in zc3xx.
    V4L/DVB (9549): gspca: Fix a typo in one of gspca chips name.
    V4L/DVB (9515): cx18: Use correct Mailbox IRQ Ack values and misc IRQ handling cleanup
    V4L/DVB (9493): kconfig patch
    V4L/DVB (9527): af9015: fix compile warnings
    V4L/DVB (9524): af9013: fix bug in status reading
    V4L/DVB (9511): cx18: Mark CX18_CPU_DE_RELEASE_MDL as a slow API call
    V4L/DVB (9510): cx18: Fix write retries for registers that always change - part 2.
    V4L/DVB (9506): ivtv/cx18: fix test whether modules should be loaded or not.
    V4L/DVB (9499): cx88-mpeg: final fix for analogue only compilation + de-alloc fix
    V4L/DVB (9496): cx88-blackbird: bugfix: cx88-blackbird-mpeg-users
    V4L/DVB (9495): cx88-blackbird: bugfix: cx88-blackbird-poll-fix
    V4L/DVB (9494): anysee: initialize anysee_usb_mutex statically
    V4L/DVB (9492): unplug oops from dvb_frontend_init...
    V4L/DVB (9486): ivtv/ivtvfb: no longer experimental
    V4L/DVB (9485): ivtv: remove incorrect V4L1 & tvaudio dependency
    V4L/DVB (9482): Documentation, especially regarding audio and informational links
    V4L/DVB (9475): cx18: Disable write retries for registers that always change - part 1.
    ...

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
    powerpc: Update desktop/server defconfigs
    powerpc: Fix msr check in compat_sys_swapcontext
    powerpc: Repair device bindings documentation
    powerpc: Updated Freescale PPC related defconfigs
    powerpc: Update QE/CPM2 usb_ctlr structures for USB support
    powerpc/86xx: Correct SOC bus-frequency in GE Fanuc SBC610 DTS
    powerpc: Fix Book-E watchdog timer interval setting
    powerpc/fsl-booke: Fix synchronization bug w/local tlb invalidates

    Linus Torvalds
     
  • * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
    drm/i915: Move legacy breadcrumb out of the reserved status page area
    drm/i915: Filter pci devices based on PCI_CLASS_DISPLAY_VGA
    drm/radeon: map registers at load time
    drm: Remove infrastructure for supporting i915's vblank swapping.
    i915: Remove racy delayed vblank swap ioctl.
    i915: Don't whine when pci_enable_msi() fails.
    i915: Don't attempt to short-circuit object_wait_rendering by checking domains.
    i915: Clean up sarea pointers on leavevt
    i915: Save/restore MCHBAR_RENDER_STANDBY on GM965/GM45

    Linus Torvalds
     
  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    libata: fix last_reset timestamp handling
    libata: Avoid overflow in ata_tf_read_block() when tf->hba_lbal > 127
    [libata] pata_pcmcia: another memory card support
    [libata] pata_sch: notice attached slave devices
    [libata] pata_cs553*.c: cleanup kernel-doc

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
    sparc64: Update defconfig.
    Revert "sparc: correct section of current_pc()"

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    dsa: fix master interface allmulti/promisc handling
    dsa: fix skb->pkt_type when mac address of slave interface differs
    net: fix setting of skb->tail in skb_recycle_check()
    net: fix /proc/net/snmp as memory corruptor
    mac80211: fix a buffer overrun in station debug code
    netfilter: payload_len is be16, add size of struct rather than size of pointer
    ipv6: fix ip6_mr_init error path
    [4/4] dca: fixup initialization dependency
    [3/4] I/OAT: fix async_tx.callback checking
    [2/4] I/OAT: fix dma_pin_iovec_pages() error handling
    [1/4] I/OAT: fix channel resources free for not allocated channels
    ssb: Fix DMA-API compilation for non-PCI systems
    SSB: hide empty sub menu
    vlan: Fix typos in proc output string
    [netdrvr] usb/hso: Cleanup rfkill error handling
    sfc: Correct address of gPXE boot configuration in EEPROM
    el3_common_init() should be __devinit, not __init
    hso: rfkill type should be WWAN
    mlx4_en: Start port error flow bug fix
    af_key: mark policy as dead before destroying

    Linus Torvalds
     

11 Nov, 2008

2 commits

  • fix:

    arch/x86/kernel/ftrace.c: In function 'ftrace_return_to_handler':
    arch/x86/kernel/ftrace.c:112: error: implicit declaration of function 'cpu_clock'

    cpu_clock() is implicitly included via a number of ways, but its real
    location is sched.h. (Build failure is triggerable if enough other
    kernel components are turned off.)

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Clear buddies on yield, so that the buddy rules don't schedule them
    despite them being placed right-most.

    This fixed a performance regression with yield-happy binary JVMs.

    Signed-off-by: Peter Zijlstra
    Signed-off-by: Ingo Molnar
    Tested-by: Lin Ming

    Peter Zijlstra