• Bhaktipriya Shridhar's avatar
    xen: xen-pciback: Remove create_workqueue · 429eafe6
    Bhaktipriya Shridhar authored
    System workqueues have been able to handle high level of concurrency
    for a long time now and there's no reason to use dedicated workqueues
    just to gain concurrency.  Replace dedicated xen_pcibk_wq with the
    use of system_wq.
    
    Unlike a dedicated per-cpu workqueue created with create_workqueue(),
    system_wq allows multiple work items to overlap executions even on
    the same CPU; however, a per-cpu workqueue doesn't have any CPU
    locality or global ordering guarantees unless the target CPU is
    explicitly specified and thus the increase of local concurrency shouldn't
    make any difference.
    
    Since the work items could be pending, flush_work() has been used in
    xen_pcibk_disconnect(). xen_pcibk_xenbus_remove() calls free_pdev()
    which in turn calls xen_pcibk_disconnect() for every pdev to ensure that
    there is no pending task while disconnecting the driver.
    Signed-off-by: default avatarBhaktipriya Shridhar <bhaktipriya96@gmail.com>
    Acked-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
    429eafe6
xenbus.c 18.3 KB