1. 01 11月, 2016 1 次提交
  2. 27 9月, 2016 1 次提交
  3. 07 9月, 2016 1 次提交
  4. 31 8月, 2016 1 次提交
  5. 13 6月, 2016 1 次提交
  6. 02 5月, 2016 1 次提交
    • V
      Drivers: hv: vmbus: handle various crash scenarios · cd95aad5
      Vitaly Kuznetsov 提交于
      Kdump keeps biting. Turns out CHANNELMSG_UNLOAD_RESPONSE is always
      delivered to the CPU which was used for initial contact or to CPU0
      depending on host version. vmbus_wait_for_unload() doesn't account for
      the fact that in case we're crashing on some other CPU we won't get the
      CHANNELMSG_UNLOAD_RESPONSE message and our wait on the current CPU will
      never end.
      
      Do the following:
      1) Check for completion_done() in the loop. In case interrupt handler is
         still alive we'll get the confirmation we need.
      
      2) Read message pages for all CPUs message page as we're unsure where
         CHANNELMSG_UNLOAD_RESPONSE is going to be delivered to. We can race with
         still-alive interrupt handler doing the same, add cmpxchg() to
         vmbus_signal_eom() to not lose CHANNELMSG_UNLOAD_RESPONSE message.
      
      3) Cleanup message pages on all CPUs. This is required (at least for the
         current CPU as we're clearing CPU0 messages now but we may want to bring
         up additional CPUs on crash) as new messages won't be delivered till we
         consume what's pending. On boot we'll place message pages somewhere else
         and we won't be able to read stale messages.
      Signed-off-by: NVitaly Kuznetsov <vkuznets@redhat.com>
      Signed-off-by: NK. Y. Srinivasan <kys@microsoft.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      cd95aad5
  7. 01 5月, 2016 6 次提交
  8. 02 3月, 2016 4 次提交
  9. 08 2月, 2016 2 次提交
  10. 15 12月, 2015 7 次提交
  11. 06 8月, 2015 4 次提交
  12. 05 8月, 2015 5 次提交
  13. 25 5月, 2015 4 次提交
  14. 03 4月, 2015 1 次提交
    • D
      hv: run non-blocking message handlers in the dispatch tasklet · 652594c7
      Dexuan Cui 提交于
      A work item in vmbus_connection.work_queue can sleep, waiting for a new
      host message (usually it is some kind of "completion" message). Currently
      the new message will be handled in the same workqueue, but since work items
      in the workqueue is serialized, we actually have no chance to handle
      the new message if the current work item is sleeping -- as as result, the
      current work item will hang forever.
      
      K. Y. has posted the below fix to resolve the issue:
      Drivers: hv: vmbus: Perform device register in the per-channel work element
      
      Actually we can simplify the fix by directly running non-blocking message
      handlers in the dispatch tasklet (inspired by K. Y.).
      
      This patch is the fundamental change. The following 2 patches will simplify
      the message offering and rescind-offering handling a lot.
      Signed-off-by: NDexuan Cui <decui@microsoft.com>
      Cc: K. Y. Srinivasan <kys@microsoft.com>
      Signed-off-by: NK. Y. Srinivasan <kys@microsoft.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      652594c7
  15. 02 3月, 2015 1 次提交
    • K
      mei: bus: () can be static · ed99d846
      kbuild test robot 提交于
      drivers/hv/vmbus_drv.c:51:5: sparse: symbol 'hyperv_panic_event' was not declared. Should it be static?
      drivers/hv/vmbus_drv.c:51:5: sparse: symbol 'hyperv_panic_event' was not declared. Should it be static?
      drivers/hv/vmbus_drv.c:51:5: sparse: symbol 'hyperv_panic_event' was not declared. Should it be static?
      drivers/hv/vmbus_drv.c:51:5: sparse: symbol 'hyperv_panic_event' was not declared. Should it be static?
      Signed-off-by: NFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ed99d846