1. 10 10月, 2011 1 次提交
  2. 17 8月, 2011 1 次提交
  3. 02 8月, 2011 1 次提交
    • M
      oprofile, x86: Convert memory allocation to static array · 1d12d352
      Maarten Lankhorst 提交于
      On -rt, allocators don't work from atomic context any more,
      and the maximum size of the array is known at compile time.
      
      Call trace on a -rt kernel:
      
      oprofile: using NMI interrupt.
      BUG: sleeping function called from invalid context at kernel/rtmutex.c:645
      in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: kworker/0:1
      Pid: 0, comm: kworker/0:1 Tainted: G         C  3.0.0-rt3-patser+ #39
      Call Trace:
       <IRQ>  [<ffffffff8103fc0a>] __might_sleep+0xca/0xf0
       [<ffffffff8160d424>] rt_spin_lock+0x24/0x40
       [<ffffffff811476c7>] __kmalloc+0xc7/0x370
       [<ffffffffa0275c85>] ? ppro_setup_ctrs+0x215/0x260 [oprofile]
       [<ffffffffa0273de0>] ? oprofile_cpu_notifier+0x60/0x60 [oprofile]
       [<ffffffffa0275c85>] ppro_setup_ctrs+0x215/0x260 [oprofile]
       [<ffffffffa0273de0>] ? oprofile_cpu_notifier+0x60/0x60 [oprofile]
       [<ffffffffa0273de0>] ? oprofile_cpu_notifier+0x60/0x60 [oprofile]
       [<ffffffffa0273ea4>] nmi_cpu_setup+0xc4/0x110 [oprofile]
       [<ffffffff81094455>] generic_smp_call_function_interrupt+0x95/0x190
       [<ffffffff8101df77>] smp_call_function_interrupt+0x27/0x40
       [<ffffffff81615093>] call_function_interrupt+0x13/0x20
       <EOI>  [<ffffffff8131d0c4>] ? plist_check_head+0x54/0xc0
       [<ffffffff81371fe8>] ? intel_idle+0xc8/0x120
       [<ffffffff81371fc7>] ? intel_idle+0xa7/0x120
       [<ffffffff814a57b0>] cpuidle_idle_call+0xb0/0x230
       [<ffffffff810011db>] cpu_idle+0x8b/0xe0
       [<ffffffff815fc82f>] start_secondary+0x1d3/0x1d8
      Signed-off-by: NMaarten Lankhorst <m.b.lankhorst@gmail.com>
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      1d12d352
  4. 22 7月, 2011 1 次提交
  5. 15 6月, 2011 2 次提交
    • R
      oprofile, x86: Fix nmi-unsafe callgraph support · a0e3e702
      Robert Richter 提交于
      Current oprofile's x86 callgraph support may trigger page faults
      throwing the BUG_ON(in_nmi()) message below. This patch fixes this by
      using the same nmi-safe copy-from-user code as in perf.
      
      ------------[ cut here ]------------
      kernel BUG at .../arch/x86/kernel/traps.c:436!
      invalid opcode: 0000 [#1] SMP
      last sysfs file: /sys/devices/pci0000:00/0000:00:0a.0/0000:07:00.0/0000:08:04.0/net/eth0/broadcast
      CPU 5
      Modules linked in:
      
      Pid: 8611, comm: opcontrol Not tainted 2.6.39-00007-gfe47ae7f #1 Advanced Micro Device Anaheim/Anaheim
      RIP: 0010:[<ffffffff813e8e35>]  [<ffffffff813e8e35>] do_nmi+0x22/0x1ee
      RSP: 0000:ffff88042fd47f28  EFLAGS: 00010002
      RAX: ffff88042c0a7fd8 RBX: 0000000000000001 RCX: 00000000c0000101
      RDX: 00000000ffff8804 RSI: ffffffffffffffff RDI: ffff88042fd47f58
      RBP: ffff88042fd47f48 R08: 0000000000000004 R09: 0000000000001484
      R10: 0000000000000001 R11: 0000000000000000 R12: ffff88042fd47f58
      R13: 0000000000000000 R14: ffff88042fd47d98 R15: 0000000000000020
      FS:  00007fca25e56700(0000) GS:ffff88042fd40000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 0000000000000074 CR3: 000000042d28b000 CR4: 00000000000006e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Process opcontrol (pid: 8611, threadinfo ffff88042c0a6000, task ffff88042c532310)
      Stack:
       0000000000000000 0000000000000001 ffff88042c0a7fd8 0000000000000000
       ffff88042fd47de8 ffffffff813e897a 0000000000000020 ffff88042fd47d98
       0000000000000000 ffff88042c0a7fd8 ffff88042fd47de8 0000000000000074
      Call Trace:
       <NMI>
       [<ffffffff813e897a>] nmi+0x1a/0x20
       [<ffffffff813f08ab>] ? bad_to_user+0x25/0x771
       <<EOE>>
      Code: ff 59 5b 41 5c 41 5d c9 c3 55 65 48 8b 04 25 88 b5 00 00 48 89 e5 41 55 41 54 49 89 fc 53 48 83 ec 08 f6 80 47 e0 ff ff 04 74 04 <0f> 0b eb fe 81 80 44 e0 ff ff 00 00 01 04 65 ff 04 25 c4 0f 01
      RIP  [<ffffffff813e8e35>] do_nmi+0x22/0x1ee
       RSP <ffff88042fd47f28>
      ---[ end trace ed6752185092104b ]---
      Kernel panic - not syncing: Fatal exception in interrupt
      Pid: 8611, comm: opcontrol Tainted: G      D     2.6.39-00007-gfe47ae7f #1
      Call Trace:
       <NMI>  [<ffffffff813e5e0a>] panic+0x8c/0x188
       [<ffffffff813e915c>] oops_end+0x81/0x8e
       [<ffffffff8100403d>] die+0x55/0x5e
       [<ffffffff813e8c45>] do_trap+0x11c/0x12b
       [<ffffffff810023c8>] do_invalid_op+0x91/0x9a
       [<ffffffff813e8e35>] ? do_nmi+0x22/0x1ee
       [<ffffffff8131e6fa>] ? oprofile_add_sample+0x83/0x95
       [<ffffffff81321670>] ? op_amd_check_ctrs+0x4f/0x2cf
       [<ffffffff813ee4d5>] invalid_op+0x15/0x20
       [<ffffffff813e8e35>] ? do_nmi+0x22/0x1ee
       [<ffffffff813e8e7a>] ? do_nmi+0x67/0x1ee
       [<ffffffff813e897a>] nmi+0x1a/0x20
       [<ffffffff813f08ab>] ? bad_to_user+0x25/0x771
       <<EOE>>
      
      Cc: John Lumby <johnlumby@hotmail.com>
      Cc: Maynard Johnson <maynardj@us.ibm.com>
      Cc: <stable@kernel.org> # .37+
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      a0e3e702
    • R
      oprofile, x86: Fix race in nmi handler while starting counters · 8fe7e94e
      Robert Richter 提交于
      In some rare cases, nmis are generated immediately after the nmi
      handler of the cpu was started. This causes the counter not to be
      enabled. Before enabling the nmi handlers we need to set variable
      ctr_running first and make sure its value is written to memory.
      
      Also, the patch makes all existing barriers a memory barrier instead
      of a compiler barrier only.
      Reported-by: NSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
      Cc: <stable@kernel.org> # .35+
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      8fe7e94e
  6. 30 5月, 2011 1 次提交
  7. 20 5月, 2011 1 次提交
    • R
      oprofile, x86: Enable preemption during pci device setup in IBS init · 3d2606f4
      Robert Richter 提交于
      IBS initialization is a mix of per-core register access and per-node
      pci device setup. Register access should be pinned to the cpu, but pci
      setup must run with preemption enabled.
      
      This patch better separates the code into non-/preemptible sections
      and fixes sleeping with preemption disabled. See bug message below.
      
      Fixes also freeing the eilvt entry by introducing put_eilvt().
      
      BUG: sleeping function called from invalid context at mm/slub.c:824
      in_atomic(): 1, irqs_disabled(): 0, pid: 32357, name: modprobe
      INFO: lockdep is turned off.
      Pid: 32357, comm: modprobe Not tainted 2.6.39-rc7+ #14
      Call Trace:
       [<ffffffff8104bdc8>] __might_sleep+0x112/0x117
       [<ffffffff81129693>] kmem_cache_alloc_trace+0x4b/0xe7
       [<ffffffff81278f14>] kzalloc.constprop.0+0x29/0x2b
       [<ffffffff81278f4c>] pci_get_subsys+0x36/0x78
       [<ffffffff81022689>] ? setup_APIC_eilvt+0xfb/0x139
       [<ffffffff81278fa4>] pci_get_device+0x16/0x18
       [<ffffffffa06c8b5d>] op_amd_init+0xd3/0x211 [oprofile]
       [<ffffffffa064d000>] ? 0xffffffffa064cfff
       [<ffffffffa064d298>] op_nmi_init+0x21e/0x26a [oprofile]
       [<ffffffffa064d062>] oprofile_arch_init+0xe/0x26 [oprofile]
       [<ffffffffa064d010>] oprofile_init+0x10/0x42 [oprofile]
       [<ffffffff81002099>] do_one_initcall+0x7f/0x13a
       [<ffffffff81096524>] sys_init_module+0x132/0x281
       [<ffffffff814cc682>] system_call_fastpath+0x16/0x1b
      Reported-by: NDave Jones <davej@redhat.com>
      Cc: <stable@kernel.org>         [2.6.37.x]
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      3d2606f4
  8. 12 5月, 2011 1 次提交
  9. 25 3月, 2011 1 次提交
    • A
      oprofile, x86: Allow setting EDGE/INV/CMASK for counter events · 914a76ca
      Andi Kleen 提交于
      For some performance events it's useful to set the EDGE and INV
      bits and the CMASK mask in the counter control register. The list
      of predefined events Intel releases for each CPU has some events which
      require these settings to get more "natural" to use higher level events.
      
      oprofile currently doesn't allow this.
      
      This patch adds new extra configuration fields for them, so that
      they can be specified in oprofilefs.
      
      An updated oprofile daemon can then make use of this to set them.
      
      v2: Write back masked extra value to variable.
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      914a76ca
  10. 24 3月, 2011 1 次提交
    • R
      x86: Use syscore_ops instead of sysdev classes and sysdevs · f3c6ea1b
      Rafael J. Wysocki 提交于
      Some subsystems in the x86 tree need to carry out suspend/resume and
      shutdown operations with one CPU on-line and interrupts disabled and
      they define sysdev classes and sysdevs or sysdev drivers for this
      purpose.  This leads to unnecessarily complicated code and excessive
      memory usage, so switch them to using struct syscore_ops objects for
      this purpose instead.
      
      Generally, there are three categories of subsystems that use
      sysdevs for implementing PM operations: (1) subsystems whose
      suspend/resume callbacks ignore their arguments entirely (the
      majority), (2) subsystems whose suspend/resume callbacks use their
      struct sys_device argument, but don't really need to do that,
      because they can be implemented differently in an arguably simpler
      way (io_apic.c), and (3) subsystems whose suspend/resume callbacks
      use their struct sys_device argument, but the value of that argument
      is always the same and could be ignored (microcode_core.c).  In all
      of these cases the subsystems in question may be readily converted to
      using struct syscore_ops objects for power management and shutdown.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Reviewed-by: NThomas Gleixner <tglx@linutronix.de>
      Acked-by: NIngo Molnar <mingo@elte.hu>
      f3c6ea1b
  11. 18 3月, 2011 1 次提交
    • N
      x86, dumpstack: Correct stack dump info when frame pointer is available · e8e999cf
      Namhyung Kim 提交于
      Current stack dump code scans entire stack and check each entry
      contains a pointer to kernel code. If CONFIG_FRAME_POINTER=y it
      could mark whether the pointer is valid or not based on value of
      the frame pointer. Invalid entries could be preceded by '?' sign.
      
      However this was not going to happen because scan start point
      was always higher than the frame pointer so that they could not
      meet.
      
      Commit 9c0729dc ("x86: Eliminate bp argument from the stack
      tracing routines") delayed bp acquisition point, so the bp was
      read in lower frame, thus all of the entries were marked
      invalid.
      
      This patch fixes this by reverting above commit while retaining
      stack_frame() helper as suggested by Frederic Weisbecker.
      
      End result looks like below:
      
      before:
      
       [    3.508329] Call Trace:
       [    3.508551]  [<ffffffff814f35c9>] ? panic+0x91/0x199
       [    3.508662]  [<ffffffff814f3739>] ? printk+0x68/0x6a
       [    3.508770]  [<ffffffff81a981b2>] ? mount_block_root+0x257/0x26e
       [    3.508876]  [<ffffffff81a9821f>] ? mount_root+0x56/0x5a
       [    3.508975]  [<ffffffff81a98393>] ? prepare_namespace+0x170/0x1a9
       [    3.509216]  [<ffffffff81a9772b>] ? kernel_init+0x1d2/0x1e2
       [    3.509335]  [<ffffffff81003894>] ? kernel_thread_helper+0x4/0x10
       [    3.509442]  [<ffffffff814f6880>] ? restore_args+0x0/0x30
       [    3.509542]  [<ffffffff81a97559>] ? kernel_init+0x0/0x1e2
       [    3.509641]  [<ffffffff81003890>] ? kernel_thread_helper+0x0/0x10
      
      after:
      
       [    3.522991] Call Trace:
       [    3.523351]  [<ffffffff814f35b9>] panic+0x91/0x199
       [    3.523468]  [<ffffffff814f3729>] ? printk+0x68/0x6a
       [    3.523576]  [<ffffffff81a981b2>] mount_block_root+0x257/0x26e
       [    3.523681]  [<ffffffff81a9821f>] mount_root+0x56/0x5a
       [    3.523780]  [<ffffffff81a98393>] prepare_namespace+0x170/0x1a9
       [    3.523885]  [<ffffffff81a9772b>] kernel_init+0x1d2/0x1e2
       [    3.523987]  [<ffffffff81003894>] kernel_thread_helper+0x4/0x10
       [    3.524228]  [<ffffffff814f6880>] ? restore_args+0x0/0x30
       [    3.524345]  [<ffffffff81a97559>] ? kernel_init+0x0/0x1e2
       [    3.524445]  [<ffffffff81003890>] ? kernel_thread_helper+0x0/0x10
      
       -v5:
         * fix build breakage with oprofile
      
       -v4:
         * use 0 instead of regs->bp
         * separate out printk changes
      
       -v3:
         * apply comment from Frederic
         * add a couple of printk fixes
      Signed-off-by: NNamhyung Kim <namhyung@gmail.com>
      Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Acked-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Soren Sandmann <ssp@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Robert Richter <robert.richter@amd.com>
      LKML-Reference: <1300416006-3163-1-git-send-email-namhyung@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e8e999cf
  12. 19 1月, 2011 1 次提交
  13. 07 1月, 2011 2 次提交
    • D
      x86, NMI: Remove DIE_NMI_IPI · c410b830
      Don Zickus 提交于
      With priorities in place and no one really understanding the difference between
      DIE_NMI and DIE_NMI_IPI, just remove DIE_NMI_IPI and convert everyone to DIE_NMI.
      
      This also simplifies default_do_nmi() a little bit.  Instead of calling the
      die_notifier in both the if and else part, just pull it out and call it before
      the if-statement.  This has the side benefit of avoiding a call to the ioport
      to see if there is an external NMI sitting around until after the (more frequent)
      internal NMIs are dealt with.
      Patch-Inspired-by: NHuang Ying <ying.huang@intel.com>
      Signed-off-by: NDon Zickus <dzickus@redhat.com>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <1294348732-15030-5-git-send-email-dzickus@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c410b830
    • D
      x86, NMI: Add priorities to handlers · 166d7514
      Don Zickus 提交于
      In order to consolidate the NMI die_chain events, we need to setup the priorities
      for the die notifiers.
      
      I started by defining a bunch of common priorities that can be used by the
      notifier blocks.  Then I modified the notifier blocks to use the newly created
      priorities.
      
      Now that the priorities are straightened out, it should be easier to remove the
      event DIE_NMI_IPI.
      Signed-off-by: NDon Zickus <dzickus@redhat.com>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <1294348732-15030-4-git-send-email-dzickus@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      166d7514
  14. 03 1月, 2011 1 次提交
    • R
      arch/x86/oprofile/op_model_amd.c: Perform initialisation on a single CPU · c7c25802
      Robert Richter 提交于
      Disable preemption in init_ibs(). The function only checks the
      ibs capabilities and sets up pci devices (if necessary). It runs
      only on one cpu but operates with the local APIC and some MSRs,
      thus it is better to disable preemption.
      
      [    7.034377] BUG: using smp_processor_id() in preemptible [00000000] code: modprobe/483
      [    7.034385] caller is setup_APIC_eilvt+0x155/0x180
      [    7.034389] Pid: 483, comm: modprobe Not tainted 2.6.37-rc1-20101110+ #1
      [    7.034392] Call Trace:
      [    7.034400]  [<ffffffff812a2b72>] debug_smp_processor_id+0xd2/0xf0
      [    7.034404]  [<ffffffff8101e985>] setup_APIC_eilvt+0x155/0x180
      [ ... ]
      
      Addresses https://bugzilla.kernel.org/show_bug.cgi?id=22812
      
      Reported-by: <atswartz@gmail.com>
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      Cc: oprofile-list@lists.sourceforge.net <oprofile-list@lists.sourceforge.net>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Rafael J. Wysocki <rjw@sisk.pl>
      Cc: Dan Carpenter <error27@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: <stable@kernel.org>         [2.6.37.x]
      LKML-Reference: <20110103111514.GM4739@erda.amd.com>
      [ small cleanups ]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c7c25802
  15. 30 12月, 2010 2 次提交
  16. 23 12月, 2010 1 次提交
    • D
      x86, nmi_watchdog: Remove ARCH_HAS_NMI_WATCHDOG and rely on CONFIG_HARDLOCKUP_DETECTOR · 4a7863cc
      Don Zickus 提交于
      The x86 arch has shifted its use of the nmi_watchdog from a
      local implementation to the global one provide by
      kernel/watchdog.c.  This shift has caused a whole bunch of
      compile problems under different config options.  I attempt to
      simplify things with the patch below.
      
      In order to simplify things, I had to come to terms with the
      meaning of two terms ARCH_HAS_NMI_WATCHDOG and
      CONFIG_HARDLOCKUP_DETECTOR.  Basically they mean the same thing,
      the former on a local level and the latter on a global level.
      
      With the old x86 nmi watchdog gone, there is no need to rely on
      defining the ARCH_HAS_NMI_WATCHDOG variable because it doesn't
      make sense any more.  x86 will now use the global
      implementation.
      
      The changes below do a few things.  First it changes the few
      places that relied on ARCH_HAS_NMI_WATCHDOG to use
      CONFIG_X86_LOCAL_APIC (the former was an alias for the latter
      anyway, so nothing unusual here).  Those pieces of code were
      relying more on local apic functionality the nmi watchdog
      functionality, so the change should make sense.
      
      Second, I removed the x86 implementation of
      touch_nmi_watchdog().  It isn't need now, instead x86 will rely
      on kernel/watchdog.c's implementation.
      
      Third, I removed the #define ARCH_HAS_NMI_WATCHDOG itself from
      x86.  And tweaked the include/linux/nmi.h file to tell users to
      look for an externally defined touch_nmi_watchdog in the case of
      ARCH_HAS_NMI_WATCHDOG _or_ CONFIG_HARDLOCKUP_DETECTOR. This
      changes removes some of the ugliness in that file.
      
      Finally, I added a Kconfig dependency for
      CONFIG_HARDLOCKUP_DETECTOR that said you can't have
      ARCH_HAS_NMI_WATCHDOG _and_ CONFIG_HARDLOCKUP_DETECTOR.  You can
      only have one nmi_watchdog.
      
      Tested with
      ARCH=i386: allnoconfig, defconfig, allyesconfig, (various broken
      configs) ARCH=x86_64: allnoconfig, defconfig, allyesconfig,
      (various broken configs)
      
      Hopefully, after this patch I won't get any more compile broken
      emails. :-)
      
      v3:
        changed a couple of 'linux/nmi.h' -> 'asm/nmi.h' to pick-up correct function
        prototypes when CONFIG_HARDLOCKUP_DETECTOR is not set.
      Signed-off-by: NDon Zickus <dzickus@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: fweisbec@gmail.com
      LKML-Reference: <1293044403-14117-1-git-send-email-dzickus@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4a7863cc
  17. 19 12月, 2010 2 次提交
  18. 18 11月, 2010 2 次提交
    • S
      x86: Eliminate bp argument from the stack tracing routines · 9c0729dc
      Soeren Sandmann Pedersen 提交于
      The various stack tracing routines take a 'bp' argument in which the
      caller is supposed to provide the base pointer to use, or 0 if doesn't
      have one. Since bp is garbage whenever CONFIG_FRAME_POINTER is not
      defined, this means all callers in principle should either always pass
      0, or be conditional on CONFIG_FRAME_POINTER.
      
      However, there are only really three use cases for stack tracing:
      
      (a) Trace the current task, including IRQ stack if any
      (b) Trace the current task, but skip IRQ stack
      (c) Trace some other task
      
      In all cases, if CONFIG_FRAME_POINTER is not defined, bp should just
      be 0.  If it _is_ defined, then
      
      - in case (a) bp should be gotten directly from the CPU's register, so
        the caller should pass NULL for regs,
      
      - in case (b) the caller should should pass the IRQ registers to
        dump_trace(),
      
      - in case (c) bp should be gotten from the top of the task's stack, so
        the caller should pass NULL for regs.
      
      Hence, the bp argument is not necessary because the combination of
      task and regs is sufficient to determine an appropriate value for bp.
      
      This patch introduces a new inline function stack_frame(task, regs)
      that computes the desired bp. This function is then called from the
      two versions of dump_stack().
      Signed-off-by: NSoren Sandmann <ssp@redhat.com>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Arjan van de Ven <arjan@infradead.org>,
      Cc: Frederic Weisbecker <fweisbec@gmail.com>,
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>,
      LKML-Reference: <m3oc9rop28.fsf@dhcp-100-3-82.bos.redhat.com>>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      9c0729dc
    • D
      x86, nmi_watchdog: Remove all stub function calls from old nmi_watchdog · 072b198a
      Don Zickus 提交于
      Now that the bulk of the old nmi_watchdog is gone, remove all
      the stub variables and hooks associated with it.
      
      This touches lots of files mainly because of how the io_apic
      nmi_watchdog was implemented.  Now that the io_apic nmi_watchdog
      is forever gone, remove all its fingers.
      
      Most of this code was not being exercised by virtue of
      nmi_watchdog != NMI_IO_APIC, so there shouldn't be anything to
      risky here.
      Signed-off-by: NDon Zickus <dzickus@redhat.com>
      Cc: fweisbec@gmail.com
      Cc: gorcunov@openvz.org
      LKML-Reference: <1289578944-28564-3-git-send-email-dzickus@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      072b198a
  19. 26 10月, 2010 1 次提交
  20. 25 10月, 2010 1 次提交
    • I
      x86/oprofile: Fix uninitialized variable use in debug printk · 2c78ffec
      Ingo Molnar 提交于
      Stephen Rothwell reported this build warning:
      
        arch/x86/oprofile/op_model_amd.c: In function 'ibs_eilvt_valid':
        arch/x86/oprofile/op_model_amd.c:289: warning: 'offset' may be used uninitialized in this function
      
      And correctly observed that indeed the variable is used uninitialized in
      this function. The result of this bug can be a debug printk with a bogus
      value.
      
      Also fix a few more small details that made this function hard to read
      and which probably contributed to the bug being introduced to begin with:
      
       - Use more symmetric error conditions
      
       - Remove the !0 obfuscation
      
       - Add newlines to the printk output
      
       - Remove bogus linebreaks in printk strings and elsewhere
      Reported-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Cc: Robert Richter <robert.richter@amd.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <20101025115736.41d51abe.sfr@canb.auug.org.au>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2c78ffec
  21. 20 10月, 2010 1 次提交
    • R
      apic, x86: Use BIOS settings for IBS and MCE threshold interrupt LVT offsets · 27afdf20
      Robert Richter 提交于
      We want the BIOS to setup the EILVT APIC registers. The offsets
      were hardcoded and BIOS settings were overwritten by the OS.
      Now, the subsystems for MCE threshold and IBS determine the LVT
      offset from the registers the BIOS has setup. If the BIOS setup
      is buggy on a family 10h system, a workaround enables IBS. If
      the OS determines an invalid register setup, a "[Firmware Bug]:
      " error message is reported.
      
      We need this change also for upcomming cpu families.
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      LKML-Reference: <1286360874-1471-3-git-send-email-robert.richter@amd.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      27afdf20
  22. 15 10月, 2010 7 次提交
  23. 01 10月, 2010 3 次提交
  24. 21 9月, 2010 1 次提交
  25. 16 9月, 2010 1 次提交
  26. 02 9月, 2010 1 次提交
    • R
      oprofile, x86: fix init_sysfs() function stub · 269f45c2
      Robert Richter 提交于
      The use of the return value of init_sysfs() with commit
      
       10f0412f oprofile, x86: fix init_sysfs error handling
      
      discovered the following build error for !CONFIG_PM:
      
       .../linux/arch/x86/oprofile/nmi_int.c: In function ‘op_nmi_init’:
       .../linux/arch/x86/oprofile/nmi_int.c:784: error: expected expression before ‘do’
       make[2]: *** [arch/x86/oprofile/nmi_int.o] Error 1
       make[1]: *** [arch/x86/oprofile] Error 2
      
      This patch fixes this.
      Reported-by: NIngo Molnar <mingo@elte.hu>
      Cc: stable@kernel.org
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      269f45c2
  27. 31 8月, 2010 1 次提交