1. 17 8月, 2017 4 次提交
  2. 10 8月, 2017 3 次提交
  3. 17 7月, 2017 3 次提交
  4. 13 6月, 2017 1 次提交
  5. 17 3月, 2017 3 次提交
  6. 16 3月, 2017 2 次提交
    • D
      vmbus: remove hv_event_tasklet_disable/enable · dad72a1d
      Dexuan Cui 提交于
      With the recent introduction of per-channel tasklet, we need to update
      the way we handle the 3 concurrency issues:
      
      1. hv_process_channel_removal -> percpu_channel_deq vs.
         vmbus_chan_sched -> list_for_each_entry(..., percpu_list);
      
      2. vmbus_process_offer -> percpu_channel_enq/deq vs. vmbus_chan_sched.
      
      3. vmbus_close_internal vs. the per-channel tasklet vmbus_on_event;
      
      The first 2 issues can be handled by Stephen's recent patch
      "vmbus: use rcu for per-cpu channel list", and the third issue
      can be handled by calling tasklet_disable in vmbus_close_internal here.
      
      We don't need the original hv_event_tasklet_disable/enable since we
      now use per-channel tasklet instead of the previous per-CPU tasklet,
      and actually we must remove them due to the side effect now:
      vmbus_process_offer -> hv_event_tasklet_enable -> tasklet_schedule will
      start the per-channel callback prematurely, cauing NULL dereferencing
      (the channel may haven't been properly configured to run the callback yet).
      
      Fixes: 631e63a9 ("vmbus: change to per channel tasklet")
      Signed-off-by: NDexuan Cui <decui@microsoft.com>
      Cc: "K. Y. Srinivasan" <kys@microsoft.com>
      Cc: Haiyang Zhang <haiyangz@microsoft.com>
      Cc: Stephen Hemminger <sthemmin@microsoft.com>
      Tested-by: NVitaly Kuznetsov <vkuznets@redhat.com>
      Signed-off-by: NK. Y. Srinivasan <kys@microsoft.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      dad72a1d
    • S
      vmbus: use rcu for per-cpu channel list · 8200f208
      Stephen Hemminger 提交于
      The per-cpu channel list is now referred to in the interrupt
      routine. This is mostly safe since the host will not normally generate
      an interrupt when channel is being deleted but if it did then there
      would be a use after free problem.
      
      To solve, this use RCU protection on ther per-cpu list.
      
      Fixes: 631e63a9 ("vmbus: change to per channel tasklet")
      Signed-off-by: NStephen Hemminger <sthemmin@microsoft.com>
      Signed-off-by: NK. Y. Srinivasan <kys@microsoft.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8200f208
  7. 07 3月, 2017 1 次提交
  8. 15 2月, 2017 6 次提交
  9. 10 2月, 2017 2 次提交
  10. 31 1月, 2017 2 次提交
  11. 11 1月, 2017 1 次提交
  12. 06 12月, 2016 2 次提交
  13. 07 11月, 2016 3 次提交
  14. 30 10月, 2016 1 次提交
  15. 27 9月, 2016 1 次提交
  16. 11 9月, 2016 1 次提交
  17. 08 9月, 2016 1 次提交
  18. 07 9月, 2016 2 次提交
  19. 02 9月, 2016 1 次提交
    • K
      Drivers: hv: Introduce a policy for controlling channel affinity · 509879bd
      K. Y. Srinivasan 提交于
      Introduce a mechanism to control how channels will be affinitized. We will
      support two policies:
      
      1. HV_BALANCED: All performance critical channels will be dstributed
      evenly amongst all the available NUMA nodes. Once the Node is assigned,
      we will assign the CPU based on a simple round robin scheme.
      
      2. HV_LOCALIZED: Only the primary channels are distributed across all
      NUMA nodes. Sub-channels will be in the same NUMA node as the primary
      channel. This is the current behaviour.
      
      The default policy will be the HV_BALANCED as it can minimize the remote
      memory access on NUMA machines with applications that span NUMA nodes.
      Signed-off-by: NK. Y. Srinivasan <kys@microsoft.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      509879bd