1. 03 6月, 2009 5 次提交
  2. 15 5月, 2009 2 次提交
    • J
      kgdb,i386: use address that SP register points to in the exception frame · 33ab1979
      Jason Wessel 提交于
      The treatment of the SP register is different on x86_64 and i386.
      This is a regression fix that lived outside the mainline kernel from
      2.6.27 to now.  The regression was a result of the original merge
      consolidation of the i386 and x86_64 archs to x86.
      
      The incorrectly reported SP on i386 prevented stack tracebacks from
      working correctly in gdb.
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      33ab1979
    • S
      x86/stacktrace: return 0 instead of -1 for stack ops · 29a67975
      Steven Rostedt 提交于
      If we return -1 in the ops->stack for the stacktrace saving, we end up
      breaking out of the loop if the stack we are tracing is in the exception
      stack. This causes traces like:
      
                <idle>-0     [002] 34263.745825: raise_softirq_irqoff <-__blk_complete_request
                <idle>-0     [002] 34263.745826:
       <= 0
       <= 0
       <= 0
       <= 0
       <= 0
       <= 0
       <= 0
      
      By returning "0" instead, the irq stack is saved as well, and we see:
      
                <idle>-0     [003]   883.280992: raise_softirq_irqoff <-__hrtimer_star
      t_range_ns
                <idle>-0     [003]   883.280992:
       <= hrtimer_start_range_ns
       <= tick_nohz_restart_sched_tick
       <= cpu_idle
       <= start_secondary
       <=
       <= 0
       <= 0
      
      [ Impact: record stacks from interrupts ]
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      29a67975
  3. 11 5月, 2009 4 次提交
  4. 08 5月, 2009 5 次提交
  5. 06 5月, 2009 2 次提交
  6. 05 5月, 2009 1 次提交
    • A
      x86: show number of core_siblings instead of thread_siblings in /proc/cpuinfo · 35d11680
      Andreas Herrmann 提交于
      Commit 7ad728f9
      (cpumask: x86: convert cpu_sibling_map/cpu_core_map to cpumask_var_t)
      changed the output of /proc/cpuinfo for siblings:
      
      Example on an AMD Phenom:
      
        physical id   : 0
        siblings : 1
        core id	   : 3
        cpu cores  : 4
      
      Before that commit it was:
      
        physical id	: 0
        siblings : 4
        core id	   : 3
        cpu cores  : 4
      
      Instead of cpu_core_mask it now uses cpu_sibling_mask to count siblings.
      This is due to the following hunk of above commit:
      
      |  --- a/arch/x86/kernel/cpu/proc.c
      |  +++ b/arch/x86/kernel/cpu/proc.c
      |  @@ -14,7 +14,7 @@ static void show_cpuinfo_core(struct seq_file *m, struct cpuinf
      |          if (c->x86_max_cores * smp_num_siblings > 1) {
      |                  seq_printf(m, "physical id\t: %d\n", c->phys_proc_id);
      |                  seq_printf(m, "siblings\t: %d\n",
      |  -                          cpus_weight(per_cpu(cpu_core_map, cpu)));
      |  +                          cpumask_weight(cpu_sibling_mask(cpu)));
      |                  seq_printf(m, "core id\t\t: %d\n", c->cpu_core_id);
      |                  seq_printf(m, "cpu cores\t: %d\n", c->booted_cores);
      |                  seq_printf(m, "apicid\t\t: %d\n", c->apicid);
      
      This was a mistake, because the impact line shows that this side-effect
      was not anticipated:
      
         Impact: reduce per-cpu size for CONFIG_CPUMASK_OFFSTACK=y
      
      So revert the respective hunk to restore the old behavior.
      
      [ Impact: fix sibling-info regression in /proc/cpuinfo ]
      Signed-off-by: NAndreas Herrmann <andreas.herrmann3@amd.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      LKML-Reference: <20090504182859.GA29045@alberich.amd.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      35d11680
  7. 04 5月, 2009 1 次提交
  8. 02 5月, 2009 1 次提交
  9. 30 4月, 2009 1 次提交
    • J
      x86: gettimeofday() vDSO: fix segfault when tv == NULL · 2f65dd47
      John Wright 提交于
      According to the gettimeofday(2) manual:
      
             If either tv or tz is NULL, the corresponding structure is not
             set or returned.
      
      Since it is legal to give NULL as the tv argument, the code should make
      sure tv is not NULL before trying to dereference it.
      
      This issue manifests itself on x86_64 when vdso=0 is not on the kernel
      command-line and libc uses the vDSO for gettimeofday() (e.g. glibc >=
      2.7).  A simple reproducer:
      
        #include <stdio.h>
        #include <sys/time.h>
      
        int main(void)
        {
            struct timezone tz;
      
            gettimeofday(NULL, &tz);
      
            return 0;
        }
      
      See http://bugs.debian.org/466491 for more details.
      
      [ Impact: fix gettimeofday(NULL, &tz) segfault ]
      Signed-off-by: NJohn Wright <john.wright@hp.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: John Wright <john.wright@hp.com>
      LKML-Reference: <1241037121-14805-1-git-send-email-john.wright@hp.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2f65dd47
  10. 29 4月, 2009 4 次提交
  11. 24 4月, 2009 5 次提交
  12. 23 4月, 2009 7 次提交
  13. 22 4月, 2009 2 次提交
    • C
      uv_time: add parameter to uv_read_rtc() · c5428e95
      Coly Li 提交于
      uv_read_rtc() is referenced by read member of struct clocksource clocksource_uv.
      In include/linux/clocksource.h, read of struct clocksource is declared as:
      cycle_t (*read)(struct clocksource *cs)
      
      This got introduced recently in:
      
         8e19608e: clocksource: pass clocksource to read() callback
      
      But arch/x86/kernel/uv_time.c was not properly converted by that pach.
      
      This patch adds a dummy parameter (struct clocksource type) to uv_read_rtc() to
      fix the incompatible reference in clocksource_uv, and add a NULL parameter in
      all places where uv_read_rtc() gets called.
      
      [ Impact: cleanup, address compiler warning ]
      Signed-off-by: NColy Li <coly.li@suse.de>
      Cc: Dimitri Sivanich <sivanich@sgi.com>
      Cc: Magnus Damm <damm@igel.co.jp>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Hugh Dickins <hugh@veritas.com>
      LKML-Reference: <49EF3614.1050806@suse.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Cc: Dimitri Sivanich <sivanich@sgi.com>
      c5428e95
    • A
      x86: hpet: fix periodic mode programming on AMD 81xx · 7a6f9cbb
      Andreas Herrmann 提交于
      (See http://bugzilla.kernel.org/show_bug.cgi?id=12961)
      
      It partially reverts commit c23e253e
      (x86: hpet: stop HPET_COUNTER when programming periodic mode)
      
      HPET on AMD 81xx chipset needs a second write (with HPET_TN_SETVAL
      cleared) to T0_CMP register to set the period in periodic mode.
      
      With this patch HPET_COUNTER is still stopped but not reset when HPET
      is programmed in periodic mode. This should help to avoid races when
      HPET is programmed in periodic mode and fixes a boot time hang that
      I've observed on a machine when using 1000HZ.
      
      [ Impact: fix boot time hang on machines with AMD 81xx chipset ]
      Reported-by: NJeff Mahoney <jeffm@suse.com>
      Signed-off-by: NAndreas Herrmann <andreas.herrmann3@amd.com>
      Tested-by: NJeff Mahoney <jeffm@suse.com>
      LKML-Reference: <20090421180037.GA2763@alberich.amd.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      7a6f9cbb