DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jake Freeland <jfree@FreeBSD.org>
To: Chenbo Xia <chenbox@nvidia.com>,
	Nipun Gupta <nipun.gupta@amd.com>,
	Tyler Retzlaff <roretzla@linux.microsoft.com>,
	Bruce Richardson <bruce.richardson@intel.com>
Cc: Jake Freeland <jfree@FreeBSD.org>, dev@dpdk.org
Subject: [PATCH 2/4] bus/pci/bsd: Map resources at EAL baseaddr
Date: Tue,  6 May 2025 12:40:42 -0500	[thread overview]
Message-ID: <20250506174046.1136711-3-jfree@FreeBSD.org> (raw)
In-Reply-To: <20250506174046.1136711-1-jfree@FreeBSD.org>

Provide the EAL base address as a hint to mmap(2), so device resources
are not mapped where malloc(3) et al. make allocations.

This makes mapping conflicts less likely for secondary processes that
make memory allocations before initializing EAL.

Signed-off-by: Jake Freeland <jfree@FreeBSD.org>
---
 drivers/bus/pci/bsd/pci.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/bus/pci/bsd/pci.c b/drivers/bus/pci/bsd/pci.c
index 5e2e09d5a4..0581daf130 100644
--- a/drivers/bus/pci/bsd/pci.c
+++ b/drivers/bus/pci/bsd/pci.c
@@ -182,7 +182,15 @@ pci_uio_map_resource_by_index(struct rte_pci_device *dev, int res_idx,
 
 	/* if matching map is found, then use it */
 	offset = res_idx * pagesz;
-	mapaddr = pci_map_resource(NULL, fd, (off_t)offset,
+
+	/*
+	 * Use baseaddr as a hint to avoid mapping resources where
+	 * malloc(3) et al. usually make allocations. This reduces
+	 * mapping conflicts in secondary processes that make
+	 * memory allocations before initializing EAL.
+	 */
+	mapaddr = pci_map_resource((void *)rte_eal_get_baseaddr(),
+			fd, (off_t)offset,
 			(size_t)dev->mem_resource[res_idx].len, 0);
 	close(fd);
 	if (mapaddr == NULL)
-- 
2.47.2


  parent reply	other threads:[~2025-05-06 17:41 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-06 17:40 [PATCH 0/4] BSD PCI Fixes Jake Freeland
2025-05-06 17:40 ` [PATCH 1/4] bus/pci: Use force-noreplace flag when mapping PCI resources Jake Freeland
2025-05-08 11:32   ` Burakov, Anatoly
2025-05-06 17:40 ` Jake Freeland [this message]
2025-05-08 11:31   ` [PATCH 2/4] bus/pci/bsd: Map resources at EAL baseaddr Burakov, Anatoly
2025-05-06 17:40 ` [PATCH 3/4] bus/pci/bsd: Eliminate potential overflow Jake Freeland
2025-05-08 11:28   ` Burakov, Anatoly
2025-05-06 17:40 ` [PATCH 4/4] bus/pci/bsd: Fix device existence check Jake Freeland
2025-05-08 11:27   ` Burakov, Anatoly

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250506174046.1136711-3-jfree@FreeBSD.org \
    --to=jfree@freebsd.org \
    --cc=bruce.richardson@intel.com \
    --cc=chenbox@nvidia.com \
    --cc=dev@dpdk.org \
    --cc=nipun.gupta@amd.com \
    --cc=roretzla@linux.microsoft.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).