1. 28 10月, 2021 2 次提交
  2. 22 7月, 2021 1 次提交
  3. 15 5月, 2021 2 次提交
  4. 18 4月, 2021 2 次提交
  5. 24 3月, 2021 1 次提交
  6. 17 3月, 2021 1 次提交
  7. 15 2月, 2021 1 次提交
  8. 11 2月, 2021 2 次提交
  9. 05 2月, 2021 3 次提交
  10. 17 11月, 2020 2 次提交
  11. 28 9月, 2020 3 次提交
  12. 20 6月, 2020 1 次提交
  13. 19 6月, 2020 2 次提交
  14. 23 5月, 2020 1 次提交
    • A
      Drivers: hv: vmbus: Resolve more races involving init_vp_index() · afaa33da
      Andrea Parri (Microsoft) 提交于
      init_vp_index() uses the (per-node) hv_numa_map[] masks to record the
      CPUs allocated for channel interrupts at a given time, and distribute
      the performance-critical channels across the available CPUs: in part.,
      the mask of "candidate" target CPUs in a given NUMA node, for a newly
      offered channel, is determined by XOR-ing the node's CPU mask and the
      node's hv_numa_map.  This operation/mechanism assumes that no offline
      CPUs is set in the hv_numa_map mask, an assumption that does not hold
      since such mask is currently not updated when a channel is removed or
      assigned to a different CPU.
      
      To address the issues described above, this adds hooks in the channel
      removal path (hv_process_channel_removal()) and in target_cpu_store()
      in order to clear, resp. to update, the hv_numa_map[] masks as needed.
      This also adds a (missed) update of the masks in init_vp_index() (cf.,
      e.g., the memory-allocation failure path in this function).
      
      Like in the case of init_vp_index(), such hooks require to determine
      if the given channel is performance critical.  init_vp_index() does
      this by parsing the channel's offer, it can not rely on the device
      data structure (device_obj) to retrieve such information because the
      device data structure has not been allocated/linked with the channel
      by the time that init_vp_index() executes.  A similar situation may
      hold in hv_is_alloced_cpu() (defined below); the adopted approach is
      to "cache" the device type of the channel, as computed by parsing the
      channel's offer, in the channel structure itself.
      
      Fixes: 75278105 ("Drivers: hv: vmbus: Introduce the CHANNELMSG_MODIFYCHANNEL message type")
      Signed-off-by: NAndrea Parri (Microsoft) <parri.andrea@gmail.com>
      Reviewed-by: NMichael Kelley <mikelley@microsoft.com>
      Link: https://lore.kernel.org/r/20200522171901.204127-3-parri.andrea@gmail.comSigned-off-by: NWei Liu <wei.liu@kernel.org>
      afaa33da
  15. 20 5月, 2020 2 次提交
  16. 23 4月, 2020 5 次提交
  17. 27 1月, 2020 1 次提交
    • D
      hv_utils: Add the support of hibernation · 54e19d34
      Dexuan Cui 提交于
      Add util_pre_suspend() and util_pre_resume() for some hv_utils devices
      (e.g. kvp/vss/fcopy), because they need special handling before
      util_suspend() calls vmbus_close().
      
      For kvp, all the possible pending work items should be cancelled.
      
      For vss and fcopy, some extra clean-up needs to be done, i.e. fake a
      THAW message for hv_vss_daemon and fake a CANCEL_FCOPY message for
      hv_fcopy_daemon, otherwise when the VM resums back, the daemons
      can end up in an inconsistent state (i.e. the file systems are
      frozen but will never be thawed; the file transmitted via fcopy
      may not be complete). Note: there is an extra patch for the daemons:
      "Tools: hv: Reopen the devices if read() or write() returns errors",
      because the hv_utils driver can not guarantee the whole transaction
      finishes completely once util_suspend() starts to run (at this time,
      all the userspace processes are frozen).
      
      util_probe() disables channel->callback_event to avoid the race with
      the channel callback.
      Signed-off-by: NDexuan Cui <decui@microsoft.com>
      Reviewed-by: NMichael Kelley <mikelley@microsoft.com>
      Signed-off-by: NSasha Levin <sashal@kernel.org>
      54e19d34
  18. 26 1月, 2020 1 次提交
    • D
      Drivers: hv: vmbus: Ignore CHANNELMSG_TL_CONNECT_RESULT(23) · ddc9d357
      Dexuan Cui 提交于
      When a Linux hv_sock app tries to connect to a Service GUID on which no
      host app is listening, a recent host (RS3+) sends a
      CHANNELMSG_TL_CONNECT_RESULT (23) message to Linux and this triggers such
      a warning:
      
      unknown msgtype=23
      WARNING: CPU: 2 PID: 0 at drivers/hv/vmbus_drv.c:1031 vmbus_on_msg_dpc
      
      Actually Linux can safely ignore the message because the Linux app's
      connect() will time out in 2 seconds: see VSOCK_DEFAULT_CONNECT_TIMEOUT
      and vsock_stream_connect(). We don't bother to make use of the message
      because: 1) it's only supported on recent hosts; 2) a non-trivial effort
      is required to use the message in Linux, but the benefit is small.
      
      So, let's not see the warning by silently ignoring the message.
      Signed-off-by: NDexuan Cui <decui@microsoft.com>
      Reviewed-by: NMichael Kelley <mikelley@microsoft.com>
      Signed-off-by: NSasha Levin <sashal@kernel.org>
      ddc9d357
  19. 22 11月, 2019 3 次提交
  20. 07 9月, 2019 3 次提交
  21. 22 8月, 2019 1 次提交