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 C1D214624C for ; Fri, 21 Feb 2025 19:46:11 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 52E5E410E8; Fri, 21 Feb 2025 19:46:11 +0100 (CET) Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by mails.dpdk.org (Postfix) with ESMTP id 4E56E410E6 for ; Fri, 21 Feb 2025 19:46:09 +0100 (CET) Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2211cd4463cso50958555ad.2 for ; Fri, 21 Feb 2025 10:46:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1740163568; x=1740768368; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=pZSViUM6MaKlOFHTJUioMzaQHJxIx9KbxGajv+gFqZo=; b=C6pDj8E/rTJehMpaQvn28k7DmVv4paK7G9V/UmdwMA6czziarBIhkGOiJuZIUtC+Vc 52Ehfuwu+d8TsTLgZ469Kn49laGkH9vdWaGdr087M4t2rENrP5xeVuB1PJAY02ZgzB6t /ib2OM2Iz7q85BV5OCEko/g0rxtK/4KzKMPKgiQAAdOstwCBZVdlVZc0HA2Ve45bAAWm sK79jyqWd2n3B4gqyFA5k8um2oImFwh2Y4KefggqdOZEM4Bpt+5yo0QWNQ6pvYfrYYO/ +prFCGKR7wkIuSuvjF7dxapb19lT2gEi4MPswJoTheXcMyWuuEc4hlT+G+gH/s0vYqr7 0Q7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740163568; x=1740768368; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pZSViUM6MaKlOFHTJUioMzaQHJxIx9KbxGajv+gFqZo=; b=UQ9ip5359JrbLvb1yLrKMYyx5hcjob1K+Y1pZUOuKKVPJNvdZIqRnyC0Pn+8gAvAdz FE08Caf3PWXNtT5lh/0ChWpcHXtylgWNwqzn31kipop4i3La3ZYhINK8Cia/yGHHHc0b C+UW3xjcosUAaYLQiFtOskIK6fo7NAwYLgLXt48rwd5y3m/X6xYA0Gt9cWezAxaLtOTt 8m7eIQG0H8oyulRv0VftjkNbvfRrmZHKUB68D4X1UtzloWc9QpR3EQu3kN4g8EUbhn22 VR1XLaroGo0FzYDpuXy2Tt/mKBqa+NPKK64GQt9Atj04UZXDghSgonf4e6HUgKuoSkiM ubSw== X-Gm-Message-State: AOJu0Yzl2EVVIlwDmOY2iThmTLXmh4bFmyp7o9OqU7hCx+bgistIZNL7 te/ooYMI3I6AOMIHy4BwuGK3sv/UuJFUfN0dvUVV9SOwuXhEobx2JTxWQm5a8mI= X-Gm-Gg: ASbGncuhiiTK5Q7/aMtw4F8LPwHfOWrPCVGIli/NzjM2ody7woFuKJBUJVzGV64dNhc rVTcyI8QHfkoNvWx96DY3V0qzQOTKteCctwb1pkna78uvsu4306kMIe9DS+X5fp8MoffAkDAAC7 WofaaYX9NNpG1Ti7WNFoVuVVyXNHmF3z2G670RvqRBgaUkfi+6cyiAQfvPV+jdC++1kKwPyVJc9 aOTktL9DM0UZeJ2P/lR8jTruCY3JfR6u5zW+isCL4/glMyT2F9kMFveHGpPG0Bvx4QLiuNDN/tM FqEpzAbZdFErl7BkHizX5uhBPuMZpe1AAH9ySoGzIDkYZvKtoHhHyeFql9xMsF0KmVcM9a02SL2 /Ku8= X-Google-Smtp-Source: AGHT+IHaB7zQlj0sy2/HzokMJZj2dkRMStEqXyhHtt5knOL4EPgbwmP3+p51PzIu74GnUH7HfgiFsw== X-Received: by 2002:a17:902:ea11:b0:21f:6885:2b0b with SMTP id d9443c01a7336-2219ff6362fmr60355505ad.26.1740163568311; Fri, 21 Feb 2025 10:46:08 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d537d0f2sm141122285ad.105.2025.02.21.10.46.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2025 10:46:08 -0800 (PST) Date: Fri, 21 Feb 2025 10:46:06 -0800 From: Stephen Hemminger To: Lokesh Chakka Cc: users Subject: Re: mbuf validity in conjunction with ref cnt Message-ID: <20250221104606.60dafc66@hermes.local> In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org On Fri, 21 Feb 2025 13:09:34 +0530 Lokesh Chakka wrote: > Hello, > > I've created mbuf using rte_pktmbuf_alloc. > Just after creating mbuf rte_mbuf_refcnt_read is giving 1. > > After rte_eth_tx_burst, rte_mbuf_refcnt_read is giving 1. > > Even > rte_eth_tx_burst > sleep(10); > rte_mbuf_refcnt_read > is still giving 1 > > Even > rte_eth_tx_burst > sleep(10); > rte_mbuf_refcnt_read // is still giving 1 > rte_pktmbuf_free > sleep(10); > rte_mbuf_refcnt_read // is still giving 1 > > Does it mean mbuf can be reused like > while(1) > { > rte_eth_tx_burst > } > > > Thanks & Regards > -- > Lokesh Chakka. Once you gave the mbuf to the driver, with a refcnt of 1 it means the driver will free it. Any later reference is a use after free. The driver will free it at an undetermined time after sending. Some drivers defer the free until a later reclaim cycle (next send). When mbuf is freed, the refcnt does not go to zero, it just moves into the mbuf free pool. Read the the source for more details. There is no callback in DPDK for when mbuf is actually sent or freed.