Re: [Xen-devel] [PATCH v2] xen: xen-pciback: Remove create_workqueue

From: David Vrabel
Date: Wed Jun 01 2016 - 10:53:46 EST


On 01/06/16 15:15, Bhaktipriya Shridhar wrote:
> 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: Bhaktipriya Shridhar <bhaktipriya96@xxxxxxxxx>
> ---
> Changes in v2:
> -Changed cancel_work_sync to flush_work
> -Changed commit description
>
> Feedback to update a comment was received in v1 from David Vrabel. It has not
> be included in v2 since some clarification was required. Will include it in
> v3 once the details about the content and the placement of the comment are
> received.

The comment needed updating iff this continued to use cancel_work_sync()
but since it's using flush_work() the comment is fine.

David