1. 08 Aug, 2012 3 commits
    • David Teigland's avatar
      dlm: fix unlock balance warnings · 475f230c
      David Teigland authored
      The in_recovery rw_semaphore has always been acquired and
      released by different threads by design.  To work around
      the "BUG: bad unlock balance detected!" messages, adjust
      things so the dlm_recoverd thread always does both down_write
      and up_write.
      Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
      475f230c
    • David Teigland's avatar
      dlm: fix uninitialized spinlock · 6ad22916
      David Teigland authored
      Use DEFINE_SPINLOCK for global dlm_cb_seq_spin.
      Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
      6ad22916
    • David Teigland's avatar
      dlm: fix deadlock between dlm_send and dlm_controld · 36b71a8b
      David Teigland authored
      A deadlock sometimes occurs between dlm_controld closing
      a lowcomms connection through configfs and dlm_send looking
      up the address for a new connection in configfs.
      
      dlm_controld does a configfs rmdir which calls
      dlm_lowcomms_close which waits for dlm_send to
      cancel work on the workqueues.
      
      The dlm_send workqueue thread has called
      tcp_connect_to_sock which calls dlm_nodeid_to_addr
      which does a configfs lookup and blocks on a lock
      held by dlm_controld in the rmdir path.
      
      The solution here is to save the node addresses within
      the lowcomms code so that the lowcomms workqueue does
      not need to step through configfs to get a node address.
      
      dlm_controld:
      wait_for_completion+0x1d/0x20
      __cancel_work_timer+0x1b3/0x1e0
      cancel_work_sync+0x10/0x20
      dlm_lowcomms_close+0x4c/0xb0 [dlm]
      drop_comm+0x22/0x60 [dlm]
      client_drop_item+0x26/0x50 [configfs]
      configfs_rmdir+0x180/0x230 [configfs]
      vfs_rmdir+0xbd/0xf0
      do_rmdir+0x103/0x120
      sys_rmdir+0x16/0x20
      
      dlm_send:
      mutex_lock+0x2b/0x50
      get_comm+0x34/0x140 [dlm]
      dlm_nodeid_to_addr+0x18/0xd0 [dlm]
      tcp_connect_to_sock+0xf4/0x2d0 [dlm]
      process_send_sockets+0x1d2/0x260 [dlm]
      worker_thread+0x170/0x2a0
      Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
      36b71a8b
  2. 05 Aug, 2012 3 commits
    • Linus Torvalds's avatar
      Merge branches 'timers-urgent-for-linus' and 'perf-urgent-for-linus' of... · 42a579a0
      Linus Torvalds authored
      Merge branches 'timers-urgent-for-linus' and 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
      
      Pull timers and perf fixes from Ingo Molnar:
       "Timers:
       - Fix another timekeeping bug
      
       Pef:
         - Make clean brace expansion fix for some shells, from Palmer Cox
      
         - Warn user just once per guest kernel when not finding kernel info,
           from David Ahern
      
         - perf test fix from Jiri Olsa
      
         - Fix error handling on event creation in perf top, from David Ahern
      
         - Fix check on perf_target__strnerror, from Namhyung Kim
      
         - Save the whole cmdline, from David Ahern
      
        There's this infrastructure change:
      
         - Prep work for the DWARF CFI post unwinder, so that it doesn't use
           perf_session in lots of places, just evlist/evsel is enough.
      
        which is a late infrastructure change that prepare for future feature
        work - we wanted it upstream to simplify the fixes/development patch
        flows."
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        time: Fix adjustment cleanup bug in timekeeping_adjust()
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf tools: Remove brace expansion from clean target
        perf kvm top: Limit guest kernel info message to once
        perf tools: Introduce intlist
        perf tools: Change strlist to use the new rblist
        perf tools: Introducing rblist
        perf kvm: Use strtol for walking guestmount directory
        perf tool: Save cmdline from user in file header vs what is passed to record
        perf top: Error handling for counter creation should parallel perf-record
        perf session: Remove no longer used synthesize_sample method
        perf evsel: Adopt parse_sample method from perf_event
        perf evlist: Introduce perf_evlist__parse_sample
        perf session: Use perf_evlist__id_hdr_size more extensively
        perf session: Use perf_evlist__sample_id_all more extensively
        perf session: Use perf_evlist__sample_type more extensively
        perf evsel: Precalculate the sample size
        perf target: Fix check on buffer size
        perf symbols: Fix array sizes for binary types arrays
        perf test: Fix parse events automated tests
      42a579a0
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo' of... · 8a06bf14
      Ingo Molnar authored
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
      
      Pull perf/core fixes and some late updates from Arnaldo Carvalho de Melo:
      
       * Make clean brace expansion fix for some shells, from Palmer Cox
      
       * Warn user just once per guest kernel when not finding kernel info,
         from David Ahern
      
       * perf test fix from Jiri Olsa
      
       * Fix error handling on event creation in perf top, from David Ahern
      
       * Fix check on perf_target__strnerror, from Namhyung Kim
      
       * Save the whole cmdline, from David Ahern
      
       * Prep work for the DWARF CFI post unwinder, so that it doesn't
         uses perf_session in lots of places, just evlist/evsel is enough.
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      8a06bf14
    • Ingo Molnar's avatar
      time: Fix adjustment cleanup bug in timekeeping_adjust() · 1d17d174
      Ingo Molnar authored
      Tetsuo Handa reported that sporadically the system clock starts
      counting up too quickly which is enough to confuse the hangcheck
      timer to print a bogus stall warning.
      
      Commit 2a8c0883 "time: Move xtime_nsec adjustment underflow handling
      timekeeping_adjust" overlooked this exit path:
      
              } else
                      return;
      
      which should really be a proper exit sequence, fixing the bug as a
      side effect.
      
      Also make the flow more readable by properly balancing curly
      braces.
      
      Reported-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> wrote:
      Tested-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> wrote:
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Cc: john.stultz@linaro.org
      Cc: a.p.zijlstra@chello.nl
      Cc: richardcochran@gmail.com
      Cc: prarit@redhat.com
      Link: http://lkml.kernel.org/r/20120804192114.GA28347@gmail.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      1d17d174
  3. 04 Aug, 2012 15 commits
  4. 03 Aug, 2012 19 commits