1. 29 11月, 2022 2 次提交
  2. 12 5月, 2022 1 次提交
  3. 28 4月, 2022 3 次提交
  4. 25 4月, 2022 4 次提交
  5. 22 4月, 2022 1 次提交
  6. 08 2月, 2022 1 次提交
  7. 21 12月, 2021 2 次提交
  8. 28 10月, 2021 2 次提交
  9. 22 7月, 2021 1 次提交
  10. 15 5月, 2021 2 次提交
  11. 18 4月, 2021 2 次提交
  12. 24 3月, 2021 1 次提交
  13. 17 3月, 2021 1 次提交
  14. 15 2月, 2021 1 次提交
  15. 11 2月, 2021 2 次提交
  16. 05 2月, 2021 3 次提交
  17. 17 11月, 2020 2 次提交
  18. 28 9月, 2020 3 次提交
  19. 20 6月, 2020 1 次提交
  20. 19 6月, 2020 2 次提交
  21. 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
  22. 20 5月, 2020 2 次提交