From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D422F45BFE; Mon, 28 Oct 2024 17:34:01 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 61D76427BC; Mon, 28 Oct 2024 17:33:45 +0100 (CET) Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) by mails.dpdk.org (Postfix) with ESMTP id B0E634278A for ; Mon, 28 Oct 2024 17:33:38 +0100 (CET) Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-20ce65c8e13so38892215ad.1 for ; Mon, 28 Oct 2024 09:33:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1730133218; x=1730738018; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lgOQ0ITsfmQoMz1Ervq8bo27MxdlvVgv6p82eTjJtSg=; b=VoZxAQx396CxGhIDD0qW8499HUDPI0J8x3w+qa2L2slXezOJlAGOJHHdtWKfdhb06Y bCZNOyUbwuYllSEHbnjXQg7d3fkNEoMnLReenMU26yTRl7QXgFr+V0Y3Lj4LaELaZMeR r5gEOLV2DeUQ0kWicOVzCNtmpWMJBdIMzwIBNTzPteSZMvpE2pje0r5Le3KKT7+5Pm2c +EVkm0LZVDIFP1ZzXFMH6aVNfSYJ9hOXLp6qKtlm+JayKIFzgqm744wazPQ0rN+guEEU gEinPsft4vME4E3ydJjIfJzP0yDCkyEK9vF/2tJ8MKGW+8MsimDNX7NSzO3ChOIiWjk3 iC2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730133218; x=1730738018; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lgOQ0ITsfmQoMz1Ervq8bo27MxdlvVgv6p82eTjJtSg=; b=wLiDaUM+llHBtbD1yn7mLl1nV5WztEw9F71f3rB0/vp1AHE0FJu/7F0sYTT2W2HfkO bhiw4bHCdeiVhUh3fXjqoCY2p3w0vYpii0Wmmz3G2eMmye+eSH2tYoFe7gD/UMwo62ac 2qf6O/zvEe/fjwlmjHpBuSWG0yMICk1G2q5MDHKgKXmI5qpKktc0S3wbV4MwghYHv5C0 1+CZgAXHndxO5t6LEy0nngt7TaS4ObBrKKzy5CKomuEo4hFt9daO+mj1YY7oI6+uaCGl 2Xq3IMKcTOYQPk5oUm29CnmWE3FeCEEwPRtTxLN53tHIpoQsaY+np9CGc9Cb9nIr44WV CvnA== X-Gm-Message-State: AOJu0YzqsAFyApbfT5jPzCrDokHePCb9GJ65fSvmxd5FbebDKO/abig5 z6LmQBFcWUGrXWiDM05KcqRPI+vZUUpHEscl/B5SBErjB3wR0t4f25ZjoAz88o16B079E2RX9T+ / X-Google-Smtp-Source: AGHT+IGFfOK0GL1KdgnE6RpTx8BQsAXj3FH3x2o9PQTep8y6m73kovxtCvlPFRKMkdWw3zePHoiW4g== X-Received: by 2002:a17:902:f681:b0:20c:80d9:9982 with SMTP id d9443c01a7336-210c6cf10a6mr121358985ad.47.1730133217822; Mon, 28 Oct 2024 09:33:37 -0700 (PDT) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-210bbf43460sm52709895ad.23.2024.10.28.09.33.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Oct 2024 09:33:37 -0700 (PDT) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger Subject: [PATCH 4/4] net/tap: do not use rte_malloc for process private data Date: Mon, 28 Oct 2024 09:32:12 -0700 Message-ID: <20241028163324.193338-5-stephen@networkplumber.org> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20241028163324.193338-1-stephen@networkplumber.org> References: <20241028163324.193338-1-stephen@networkplumber.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The process private data is local to the process and does not have to come from global shared memory. Using malloc() gets more coverage with tools and has better caching. Signed-off-by: Stephen Hemminger --- drivers/net/tap/rte_eth_tap.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index da45610665..650ddbd706 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c @@ -1109,7 +1109,8 @@ tap_dev_close(struct rte_eth_dev *dev) struct pmd_process_private *process_private = dev->process_private; if (rte_eal_process_type() != RTE_PROC_PRIMARY) { - rte_free(dev->process_private); + free(dev->process_private); + dev->process_private = NULL; if (tap_devices_count == 1) rte_mp_action_unregister(TAP_MP_REQ_START_RXTX); tap_devices_count--; @@ -1170,7 +1171,9 @@ tap_dev_close(struct rte_eth_dev *dev) close(internals->ioctl_sock); internals->ioctl_sock = -1; } - rte_free(dev->process_private); + free(dev->process_private); + dev->process_private = NULL; + if (tap_devices_count == 1) rte_mp_action_unregister(TAP_MP_KEY); tap_devices_count--; @@ -1923,14 +1926,13 @@ eth_dev_tap_create(struct rte_vdev_device *vdev, const char *tap_name, goto error_exit_nodev; } - process_private = (struct pmd_process_private *) - rte_zmalloc_socket(tap_name, sizeof(struct pmd_process_private), - RTE_CACHE_LINE_SIZE, dev->device->numa_node); - + process_private = malloc(sizeof(struct pmd_process_private)); if (process_private == NULL) { TAP_LOG(ERR, "Failed to alloc memory for process private"); return -1; } + memset(process_private, 0, sizeof(struct pmd_process_private)); + pmd = dev->data->dev_private; dev->process_private = process_private; pmd->dev = dev; @@ -2435,16 +2437,13 @@ rte_pmd_tap_probe(struct rte_vdev_device *dev) TAP_LOG(ERR, "Primary process is missing"); return -1; } - eth_dev->process_private = (struct pmd_process_private *) - rte_zmalloc_socket(name, - sizeof(struct pmd_process_private), - RTE_CACHE_LINE_SIZE, - eth_dev->device->numa_node); + eth_dev->process_private = malloc(sizeof(struct pmd_process_private)); if (eth_dev->process_private == NULL) { TAP_LOG(ERR, "Failed to alloc memory for process private"); return -1; } + memset(eth_dev->process_private, 0, sizeof(struct pmd_process_private)); ret = tap_mp_attach_queues(name, eth_dev); if (ret != 0) -- 2.45.2