From nobody Wed Sep 16 14:12:55 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hlLSl71Ysz6rWsW for ; Wed, 16 Sep 2026 14:12:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hlLSl60k3z3M0c for ; Wed, 16 Sep 2026 14:12:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789567975; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mBBEgRMkNMMjd9g6PWqTcUIimk+2W1Cb7wkTU0eAqew=; b=d5Su2MTO3OSZh7qpCklDzbIIt0cawuHihR0/b9eEUBYaJi9LQbR0IovFc/mh8swDidtUoW ZU90a8NFRv/iFZGOrXZkst+YKbbrft3BiWO9u40TOgZg2SzOY413UgXjUjWvKT3pvujPTv OURMzJWx5pivHZR4AlNZnr9oQr2A2aGqyet7TDFtrsR+bH0+X6iyTXLg89VNMpMA35+/dQ 46aBOdj0Yhe53Mts8aP0Xo9U12sLTuRhiVkICRN3cDVDcQSIUz4o7EtkYdjkn+AmlXuaxI 4uwlaSmLCh2Zp4XmJE4gS7I75HCwAnq2DZMuSJ4iCqbGeUqvLaOpx4K5dw/A7A== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1789567975; b=bwoJOd7bzsdj3L0t0umF0j+D7iM9mzFcZ4/q0ZnkZ1UA3kqGGw0qVFEkc4iqrqEg4b5dFq AGkdn960hTvyFiXqPQX5pYuANjjG7Ra5bnGSWps5m3tIGCcBcc3pOB9CNRfa6yIIjyHvh2 y9juz34J8hWHjbahfTjWS2R6U++lQaE+1e0MmSSshSdHuR6ZMkb3q8SRuGbaYwUsBx3mbB mN/rpb/OhKQN3eNbOuyfHPVSraw/Mszt1oDqKTgHXvtuAB4/s3dEWnINUgqduFoB0kc9oW KiCxHwdoECdpB5q5RnviClZm1LyfraPRzZVlTQC2FAUHopTnb43HsQHKW+15jg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789567975; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mBBEgRMkNMMjd9g6PWqTcUIimk+2W1Cb7wkTU0eAqew=; b=LYgNasCyW2MZHIb9fKJf0X/x7i1A5ZcbXpVItIxZLf7J17d+jeheKGYJbARX6fJKxlnlBF NyZHWrJL1T5Xvi72Y2UIqAZBfnGfaabKGpsNjYdoDgoyEi4DAvgEeVF0Ujc3WpYA6l7SWe TBoOYvmfN7h033HHbCZPidxdEWJNnna7Rm3U17egJfQZmLN7BahPfQYQmjJvSL2UmfmHRn KDbQJmErE19Cela0i8FlddWA/334w8tlHIokAHTz5ARxjJ2cRXLuKN5tIHmDmZTvojfsqA A5uOR9HsqshgynlQlGliFwxxheaho3QuBgMMKpI8eHvHwotkt0HDY7ODSYmfAQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hlLSl545wzqWj for ; Wed, 16 Sep 2026 14:12:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 35f58 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 16 Sep 2026 14:12:55 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Vag Singh From: Konstantin Belousov Subject: git: cafc8b1c41b0 - main - mlx5ib: Avoid system crash when enabling many VFs List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: cafc8b1c41b0898b8f9b01288736aaaa6dc5dddc Auto-Submitted: auto-generated Date: Wed, 16 Sep 2026 14:12:55 +0000 Message-Id: <6aaaa3e7.35f58.74dc9f3f@gitrepo.freebsd.org> The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=cafc8b1c41b0898b8f9b01288736aaaa6dc5dddc commit cafc8b1c41b0898b8f9b01288736aaaa6dc5dddc Author: Vag Singh AuthorDate: 2025-08-14 06:07:53 +0000 Commit: Konstantin Belousov CommitDate: 2026-09-16 14:12:07 +0000 mlx5ib: Avoid system crash when enabling many VFs [PATCH 12/31] FreeBSD OFED support for DPDK MLX5 PMD a) When enabling many VFs, the total amount of DMA mappings increase significantly. This causes DMA allocations to take a lot of time since they are serialized in the kernel. As a result the driver enters into fatal condition due to timeout and the system hangs. To recover from this we disable MR cache for VFs. This also resolves Rx-Error MLX5 PMD issue. PFs will still have a full cache and VFs cache can be manipulated as usual after driver load. b) The fast_registration length is used to convey length for memory registrations through UMR which can be of any size up to 2^64. Change the length type to be u64. Differential revision: https://reviews.freebsd.org/D32186 MFC after: 1 month --- sys/dev/mlx5/mlx5_ib/mlx5_ib.h | 2 +- sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/sys/dev/mlx5/mlx5_ib/mlx5_ib.h b/sys/dev/mlx5/mlx5_ib/mlx5_ib.h index 1b4ace772c26..b869fcb96d49 100644 --- a/sys/dev/mlx5/mlx5_ib/mlx5_ib.h +++ b/sys/dev/mlx5/mlx5_ib/mlx5_ib.h @@ -465,7 +465,7 @@ struct mlx5_umr_wr { struct ib_pd *pd; unsigned int page_shift; unsigned int npages; - u32 length; + u64 length; int access_flags; u32 mkey; }; diff --git a/sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c b/sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c index d28ecb4a1761..ae979d2fb7a2 100644 --- a/sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c +++ b/sys/dev/mlx5/mlx5_ib/mlx5_ib_mr.c @@ -443,7 +443,8 @@ int mlx5_mr_cache_init(struct mlx5_ib_dev *dev) ent->order = i + 2; ent->dev = dev; - if (dev->mdev->profile->mask & MLX5_PROF_MASK_MR_CACHE) + if ((dev->mdev->profile->mask & MLX5_PROF_MASK_MR_CACHE) && + (mlx5_core_is_pf(dev->mdev))) limit = dev->mdev->profile->mr_cache[i].limit; else limit = 0; @@ -682,7 +683,7 @@ static struct mlx5_ib_mr *reg_umr(struct ib_pd *pd, struct ib_umem *umem, for (i = 0; i < 1; i++) { mr = alloc_cached_mr(dev, order); - if (mr) + if (mr || !mlx5_core_is_pf(dev->mdev)) break; err = add_keys(dev, order2idx(dev, order), 1);