git: 235ed6a48629 - main - mlx5e: Make TLS tag zones unmanaged

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Tue, 15 Feb 2022 14:25:54 UTC
The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=235ed6a48629771e4bc89141fdfe865b71024758

commit 235ed6a48629771e4bc89141fdfe865b71024758
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2022-02-15 14:03:31 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2022-02-15 14:25:34 +0000

    mlx5e: Make TLS tag zones unmanaged
    
    These zones are cache zones used to allocate TLS offload contexts from
    firmware.  Releasing items from the cache is a sleepable operation due
    to the need to await a response from the firmware command freeing the
    tag, so items cannot be reclaimed from the zone in non-sleepable
    contexts.  Since the cache size is limited by firmware limits, avoid
    this by setting UMA_ZONE_UNMANAGED to avoid reclamation by uma_timeout()
    and the low memory handler.
    
    Reviewed by:    hselasky, kib
    MFC after:      3 weeks
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D34142
---
 sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls.c    | 3 ++-
 sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls_rx.c | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls.c b/sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls.c
index f6ac2200f076..056202f814f7 100644
--- a/sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls.c
+++ b/sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls.c
@@ -165,7 +165,8 @@ mlx5e_tls_init(struct mlx5e_priv *priv)
 
 	ptls->zone = uma_zcache_create(ptls->zname,
 	     sizeof(struct mlx5e_tls_tag), NULL, NULL, NULL, NULL,
-	     mlx5e_tls_tag_import, mlx5e_tls_tag_release, priv->mdev, 0);
+	     mlx5e_tls_tag_import, mlx5e_tls_tag_release, priv->mdev,
+	     UMA_ZONE_UNMANAGED);
 
 	/* shared between RX and TX TLS */
 	ptls->max_resources = 1U << (MLX5_CAP_GEN(priv->mdev, log_max_dek) - 1);
diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls_rx.c b/sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls_rx.c
index 5ac60c51a1db..462556bd9d99 100644
--- a/sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls_rx.c
+++ b/sys/dev/mlx5/mlx5_en/mlx5_en_hw_tls_rx.c
@@ -459,7 +459,8 @@ mlx5e_tls_rx_init(struct mlx5e_priv *priv)
 
 	ptls->zone = uma_zcache_create(ptls->zname,
 	    sizeof(struct mlx5e_tls_rx_tag), NULL, NULL, NULL, NULL,
-	    mlx5e_tls_rx_tag_import, mlx5e_tls_rx_tag_release, priv->mdev, 0);
+	    mlx5e_tls_rx_tag_import, mlx5e_tls_rx_tag_release, priv->mdev,
+	    UMA_ZONE_UNMANAGED);
 
 	/* shared between RX and TX TLS */
 	ptls->max_resources = 1U << (MLX5_CAP_GEN(priv->mdev, log_max_dek) - 1);