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 028174627C for ; Sat, 22 Feb 2025 17:18:31 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7DB9141143; Sat, 22 Feb 2025 17:18:31 +0100 (CET) Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by mails.dpdk.org (Postfix) with ESMTP id 67226402B7 for ; Sat, 22 Feb 2025 17:18:30 +0100 (CET) Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-220c92c857aso54711275ad.0 for ; Sat, 22 Feb 2025 08:18:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1740241109; x=1740845909; 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=G6pacjNJFHruugLLODniiZRpQX6gQWlLv0QsfTo3i3w=; b=FwloMRlOC0BkQ2PDjTgsBfFHIxnxu9vOAB6BoNNmIn8Uq0mvNv9Zi8GhGU/nkD2E0Y EWV5vCeGrwG4Sb/DXCH8AwHBWRaFSwIjh++k3382Gt4uCxFcnT7m8hVKATkwWAnSPVbW rmY79hptqCkGB4xD0VpBx/JhwnofgYNzI1PRjrbwuolZ004eeAXos2/XvwJT1cjQMYjw QMORfSsPQ+3RHvSHxKgiuovcIoY61rgRqr8bSPXn3nME0sOjnw+xEi/SDzdAYPEy50xZ N6lFforRkaZ83hoUdV/Zu5lpBK04+m0jH8EpRz9L7zDOKOd4oLGQ8f9UU1cTXx19GR31 f61w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740241109; x=1740845909; 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=G6pacjNJFHruugLLODniiZRpQX6gQWlLv0QsfTo3i3w=; b=M4zt1J72myqeXm+5v1TsxhBIY2xBQbKZCqumvEuS/aUV/ZxYBwK1Cz+irH1ySpNyms m3EPikBJh40hqA1I8vx/dw948HdZRKSRzw5sIDCV4Q1covwYchYRWavxalD95H3qAxio kdwCDcNc+ibQpjW4WpAGm/kRUqzppDOZ/G6Z5GJv/qyoCFfFySg+uiX08x1i5Jg8ca7n WPShSgXumThkolkHn5SffaNZfbao8CdGc7WKPh177hswYO89bfZCbEdKSbJ2QMSoLYin 2oAt5GcA+52I1W7x1nHv2v+07vlcnXXnRDD29kltmU/sxiftbrxMVfEjVwUDMogAp3UP L8Ag== X-Gm-Message-State: AOJu0Yy01WxPdRRg84roYE0jnEJ+DHVy+Uc2slNKq2i77NNjTzKW9tts mjXAj/q+50NwAptWYnoZJhHnTuYiEEydMH9ezyew/h4JonVPsk+ptDEnqqrf6ZI= X-Gm-Gg: ASbGncvJLhYKtq51tVwzoF9euK6L0eiPBR2wav2ANeFbG93NuYMs9jIGER6Y2Kqv3ZG DD3/l4ns5FtGbC9XJ86AkWVgAKmgwPJ6FhGi0C1OLg3l8b8QG6HNf6IuKK/dJKM7zOcNMZSdj5h 52st+R4WcP7+t6n1BvaSvJCibXx+Rno+myryyEz1J4U4CY16AEGeVXKU1Y9T3tv420jvN8Tmdoh uhs2ROc0mjPbT17YkbSEMihdfslDYJZjjP8ouQRrE7Z5UUkzWzDeO8AqOBCJ7TmVf4yKzJ/RIgp xkF3bJDhux4YLvZ7Y+YdZBv+lTN2yTApoqqlFM1fr6fKkwha5X5Fa4rupaZdEd+eXyW/9N2cs4a MiaE= X-Google-Smtp-Source: AGHT+IFiQ9qnSn5A9rO2TLRfbyFAi3UUrkcyJ5gd6Fw4reDuPoSV8EIZAirufpqhum8u01aOX3xK7g== X-Received: by 2002:a17:902:f547:b0:215:6c5f:d142 with SMTP id d9443c01a7336-2219fff87c0mr130167505ad.20.1740241109404; Sat, 22 Feb 2025 08:18:29 -0800 (PST) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220f8682181sm131613705ad.209.2025.02.22.08.18.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Feb 2025 08:18:29 -0800 (PST) Date: Sat, 22 Feb 2025 08:18:27 -0800 From: Stephen Hemminger To: Lokesh Chakka Cc: users Subject: Re: mbuf validity in conjunction with ref cnt Message-ID: <20250222081827.20e992d5@hermes.local> In-Reply-To: References: <20250221104606.60dafc66@hermes.local> 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 Sat, 22 Feb 2025 10:22:51 +0530 Lokesh Chakka wrote: > My objective is to reuse mbuf unlimited number of times for a configurable > amount of time. > > rte_pktmbuf_alloc // after here refcnt is 1 > refcnt_update ( , 1) //after here refcnt is 2 > while( time still exists ) > { > tx_burst > } > > Will this approach work with all drivers/cards ? For that kind of flood you need to get reference before tx_burst. The driver will see mbuf with refcnt of 2 and decrement it to 1 when done. mb = rte_pktmbuf_alloc(); // setup the mbuf while (!stopped) { rte_mbuf_ref_update(mb, 1); // retain original ... tx_burst } rte_pktmbuf_free(mb); // release original