1. 17 5月, 2010 2 次提交
    • W
      ARM: 6073/1: oprofile: remove old files and update KConfig · fe166148
      Will Deacon 提交于
      Enable hardware perf-events if CPU_HAS_PMU and select
      HAVE_OPROFILE if HAVE_PERF_EVENTS. If no hardware support
      is present, OProfile will fall back to timer mode.
      
      This patch also removes the old OProfile drivers in favour
      of the code implemented by perf.
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      fe166148
    • W
      ARM: 6072/1: oprofile: use perf-events framework as backend · 8c1fc96f
      Will Deacon 提交于
      There are currently two hardware performance monitoring subsystems in
      the kernel for ARM: OProfile and perf-events. This creates the
      following problems:
      
      1.) Duplicate PMU accessor code. Inevitable code drift may lead to
      bugs in one framework that are fixed in the other.
      
      2.) Locking issues. OProfile doesn't reprogram hardware counters
      between profiling runs if the events to be monitored have not been
      changed. This means that other profiling frameworks cannot use the
      counters if OProfile is in use.
      
      3.) Due to differences in the two frameworks, it may not be possible to
      compare the results obtained by OProfile with those obtained by perf.
      
      This patch removes the OProfile PMU driver code and replaces it with
      calls to perf, therefore solving the issues mentioned above.
      
      The only userspace-visible change is the lack of SCU counter support
      for 11MPCore. This is currently unsupported by OProfile userspace tools anyway and therefore shouldn't cause any problems.
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Robert Richter <robert.richter@amd.com>
      Cc: Jamie Iles <jamie.iles@picochip.com>
      Cc: Jean Pihet <jpihet@mvista.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      8c1fc96f
  2. 13 2月, 2010 1 次提交
  3. 22 12月, 2009 1 次提交
  4. 18 10月, 2009 1 次提交
  5. 30 5月, 2009 1 次提交
  6. 12 2月, 2009 1 次提交
  7. 13 1月, 2009 1 次提交
  8. 13 12月, 2008 1 次提交
  9. 06 9月, 2008 2 次提交
  10. 01 9月, 2008 2 次提交
  11. 07 8月, 2008 2 次提交
  12. 26 6月, 2008 1 次提交
  13. 29 4月, 2008 1 次提交
  14. 25 1月, 2008 1 次提交
  15. 20 10月, 2007 1 次提交
  16. 03 6月, 2007 1 次提交
  17. 30 5月, 2007 1 次提交
    • R
      [ARM] oprofile: avoid lockdep warnings on mpcore oprofile init · 28c670cb
      Russell King 提交于
      Fix lockdep warnings, caused by 'set_affinity' being called without
      the correct locks taken and local interrupts disabled:
      
      =================================
      [ INFO: inconsistent lock state ]
      2.6.22-rc2 #1
      ---------------------------------
      inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
      swapper/1 [HC0[0]:SC0[0]:HE1:SE1] takes:
      (irq_controller_lock){++..}, at: [<c002be50>] gic_set_cpu+0x60/0xa0
      {in-hardirq-W} state was registered at:
       [<c005d9a8>] lock_acquire+0x58/0x6c
       [<c0233068>] _spin_lock+0x40/0x50
       [<c002c020>] gic_mask_irq+0x2c/0x6c
       [<c0069c64>] handle_level_irq+0x11c/0x14c
       [<c0020060>] asm_do_IRQ+0x60/0x84
       [<c0020d2c>] __irq_svc+0x4c/0xc0
       [<c000ed84>] __alloc_bootmem_nopanic+0x74/0x88
       [<c000edb0>] __alloc_bootmem+0x18/0x3c
       [<c000fa00>] alloc_large_system_hash+0x16c/0x200
       [<c00108dc>] inode_init_early+0x5c/0xa4
       [<c00106dc>] vfs_caches_init_early+0x24/0xa0
       [<c0008e54>] start_kernel+0x220/0x2fc
       [<00008078>] 0x8078
      irq event stamp: 88438
      hardirqs last  enabled at (88438): [<c0020dc0>] preempt_return+0x20/0x2c
      hardirqs last disabled at (88436): [<c00417bc>] __do_softirq+0xb0/0x138
      softirqs last  enabled at (88437): [<c0041810>] __do_softirq+0x104/0x138
      softirqs last disabled at (88428): [<c0041d9c>] irq_exit+0x68/0x7c
      
      other info that might help us debug this:
      no locks held by swapper/1.
      
      stack backtrace:
      [<c0025ecc>] (dump_stack+0x0/0x14) from [<c005b1e4>] (print_usage_bug+0x138/0x168)
      [<c005b0ac>] (print_usage_bug+0x0/0x168) from [<c005be80>] (mark_lock+0x484/0x6a0)
      [<c005b9fc>] (mark_lock+0x0/0x6a0) from [<c005cc48>] (__lock_acquire+0x3c0/0x10c8)
      [<c005c888>] (__lock_acquire+0x0/0x10c8) from [<c005d9a8>] (lock_acquire+0x58/0x6c)
      [<c005d950>] (lock_acquire+0x0/0x6c) from [<c0233068>] (_spin_lock+0x40/0x50)
      [<c0233028>] (_spin_lock+0x0/0x50) from [<c002be50>] (gic_set_cpu+0x60/0xa0)
      [<c002bdf0>] (gic_set_cpu+0x0/0xa0) from [<c01b04cc>] (em_route_irq+0x38/0x40)
      [<c01b0494>] (em_route_irq+0x0/0x40) from [<c01b04ec>] (em_setup+0x18/0xa4)
      [<c01b04d4>] (em_setup+0x0/0xa4) from [<c001570c>] (oprofile_arch_init+0x24/0xe8)
      [<c00156e8>] (oprofile_arch_init+0x0/0xe8) from [<c0015640>] (oprofile_init+0x1c/0x64)
      [<c0015624>] (oprofile_init+0x0/0x64) from [<c0008a20>] (kernel_init+0x154/0x368)
      [<c00088cc>] (kernel_init+0x0/0x368) from [<c003ef34>] (do_exit+0x0/0x904)
      oprofile: using arm/mpcore
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      28c670cb
  18. 28 4月, 2007 1 次提交
  19. 02 3月, 2007 1 次提交
  20. 07 2月, 2007 3 次提交
  21. 14 11月, 2006 1 次提交
  22. 15 10月, 2006 1 次提交
  23. 07 10月, 2006 1 次提交
  24. 30 9月, 2006 1 次提交
  25. 25 9月, 2006 2 次提交
  26. 03 7月, 2006 1 次提交
  27. 22 3月, 2006 3 次提交
  28. 02 2月, 2006 1 次提交
  29. 30 10月, 2005 1 次提交
    • H
      [PATCH] mm: kill check_user_page_readable · c34d1b4d
      Hugh Dickins 提交于
      check_user_page_readable is a problematic variant of follow_page.  It's used
      only by oprofile's i386 and arm backtrace code, at interrupt time, to
      establish whether a userspace stackframe is currently readable.
      
      This is problematic, because we want to push the page_table_lock down inside
      follow_page, and later split it; whereas oprofile is doing a spin_trylock on
      it (in the i386 case, forgotten in the arm case), and needs that to pin
      perhaps two pages spanned by the stackframe (which might be covered by
      different locks when we split).
      
      I think oprofile is going about this in the wrong way: it doesn't need to know
      the area is readable (neither i386 nor arm uses read protection of user
      pages), it doesn't need to pin the memory, it should simply
      __copy_from_user_inatomic, and see if that succeeds or not.  Sorry, but I've
      not got around to devising the sparse __user annotations for this.
      
      Then we can eliminate check_user_page_readable, and return to a single
      follow_page without the __follow_page variants.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      c34d1b4d
  30. 28 10月, 2005 2 次提交