Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1452152
| From | Saeed Mahameed <saeedm@dev.mellanox.co.il> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [RFC] net/mlx5_core/en_main: Remove deprecated create_workqueue |
| Date | 2016-07-29 00:40 +0200 |
| Message-ID | <s0289-48Q-3@gated-at.bofh.it> (permalink) |
| References | <rZqme-49K-9@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Wed, Jul 27, 2016 at 9:12 AM, Bhaktipriya Shridhar
<bhaktipriya96@gmail.com> wrote:
> alloc_ordered_workqueue() with WQ_MEM_RECLAIM set replaces
> deprecated create_singlethread_workqueue(). This is the identity
> conversion.
>
> A dedicated workqueue has been used since mlx5e workqueue was created to
> handle all mlx5e specific tasks. This is in preparation for vxlan using
> the mlx5e workqueue in order to schedule port add/remove operations.
> WQ_MEM_RECLAIM has been set to guarantee forward progress under memory
> pressure.
>
> Can the workitems be executed concurrently?
well, the work items that currently using the mlx5e WQ are:
priv->update_carrier_work : Read hardware link state and update netdev carrier
priv->update_stats_work: a periodic task that runs once every 1/4 sec
to update netdev statistics.
priv->set_rx_mode_work: A task queued from netdev set_rx_mdoe/set_mac
NDOs and sometimes explicitly from driver to update netdev RX mode and
filters.
mlx5e_vxlan_queue_work: Queue a _dynamically_ created workitem to
add/rem vxlan port, those tasks must not be executed concurrently
-since they are dynamically- allocated to gurantee add/remove
ordering.
bottom line, I wouldn't change concurrency of the mlx5e work queue.
> Are the workitems being used on a memory reclaim path?
do you mean they need to allocate memory ?
> Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
> ---
> drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> index fd43929..1a96445 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> @@ -3042,7 +3042,7 @@ static void *mlx5e_create_netdev(struct mlx5_core_dev *mdev)
>
> priv = netdev_priv(netdev);
>
> - priv->wq = create_singlethread_workqueue("mlx5e");
> + priv->wq = alloc_ordered_workqueue("mlx5e", WQ_MEM_RECLAIM);
> if (!priv->wq)
> goto err_free_netdev;
>
> --
> 2.1.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[RFC] net/mlx5_core/en_main: Remove deprecated create_workqueue Bhaktipriya Shridhar <bhaktipriya96@gmail.com> - 2016-07-27 08:20 +0200
Re: [RFC] net/mlx5_core/en_main: Remove deprecated create_workqueue Saeed Mahameed <saeedm@dev.mellanox.co.il> - 2016-07-29 00:40 +0200
Re: [RFC] net/mlx5_core/en_main: Remove deprecated create_workqueue Tejun Heo <tj@kernel.org> - 2016-07-29 14:30 +0200
csiph-web