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 EC04546388 for ; Mon, 10 Mar 2025 17:29:21 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9276740279; Mon, 10 Mar 2025 17:29:21 +0100 (CET) Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by mails.dpdk.org (Postfix) with ESMTP id 2D95040270 for ; Mon, 10 Mar 2025 17:29:21 +0100 (CET) Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-ac2a089fbbdso221034066b.1 for ; Mon, 10 Mar 2025 09:29:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741624160; x=1742228960; darn=dpdk.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=GDz35OQoodqhunzfmG3T/VJ+8PusGfwQCxl2SfLLhsU=; b=OHiJHP4u72/ErHOhEd0SGMkEjoibx1yfFOdsPMfX8uka6Vk0dCBZGC0ZRJtpafCtpe oH6z6KMJkhcS5Drz9rsGSQ6fpS1gZh1w7xiiMdBptjFQJ4t+xrnSCD/yIZGqkrXPQ2dK Jh1zXeGUG+Rm1yxJ4QS+YOg8phNsEyfMUx5HgrBXm2S3GZDDkzu1nnHF4sWrUteZ2Www 6AJkWcicl/4JSSRj5LXTICP9U1Zw3OxjOp0j0iNXdw7GRsq/rUweYfUbaFtnQHJEmKAD PeFMBWAW067SoQx35VKwq5x1Z4Nab9LRw6Fg5WabxH+LUmwmI/iVglJGjyUlMLIKXXYU A6+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741624160; x=1742228960; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=GDz35OQoodqhunzfmG3T/VJ+8PusGfwQCxl2SfLLhsU=; b=jkylgMXeez3gB8lJltyh+7n6V+fZ1oYbvwZfVVEGsgt1NDjCCcp3ZUYdtdxSo/4D8N 9jyuSP0Bh48wfCJtjzNth+YxBGF4HkQxRZFjQSVCVw4aqv4NAV19eI9VOyJx2D41gT7l zAF0bqk8F9xVi+jh/RJVz4icOn4KgRqoNVeQ7xy/zz96h+q9ByMi4+Br0FKS1fXOJYoC xgwKRy0x6umUaYmoE3A5xPUklZkUEoUoyp9k3RY5K8AP7XTo6vIW0beHtWIi72P84+B2 +S78CD0mnvLjcFBkPwkuxQuPDRMgEGxkYXvVgmRVWbzXYtIDOCqQRhDvDEUznip6AS2/ 86HQ== X-Gm-Message-State: AOJu0Yw6Tl0jx0nrmKfHBkBBFzRujjSPdAzZlm1qTAAVjM2+/z3ESm66 KsVJCCTCGJMLjpz6iqQleZBB1+smntA9Oaq0f/70kMEUvOP2I5OWm/dOoqj3Sw9CLaMKwSsou48 moSmOKf5K6+Tk2n6gnB+R3worLGr3TGu99Rg= X-Gm-Gg: ASbGncukUX/sT/uKtaXnfhKWQE+7S3htjsy4aXOfo8RBtxw6/Zs+W02uCf0dZu6o5rA UzjF8ezK5QE3Keq5KaGgOfYmjIkIqYWnBdc5Ss9Wv+JlX/VjVGN9YQBeV7uj6ViC3nBFKnG2tEk iWN+7z8hDVqK8mLuE8eld1mzKcy0oXK7B47Q== X-Google-Smtp-Source: AGHT+IF7P5p0ozOC3bOzk3sO1IFd0SMWwNd2cqgjS+xmYEFarJfR/GfbIwR+C9WT6Tqw5SvF/1Pbbqbm3SOwCdpiigQ= X-Received: by 2002:a17:907:9349:b0:abf:641a:571e with SMTP id a640c23a62f3a-ac2ba56a4b8mr19419066b.30.1741624159920; Mon, 10 Mar 2025 09:29:19 -0700 (PDT) MIME-Version: 1.0 From: Mikhail Malofeev Date: Mon, 10 Mar 2025 17:29:09 +0100 X-Gm-Features: AQ5f1JrAM-YF20nj_ijnGp_yyPcAWdSuX8anQL-5H996ILwnlJnTBS3yav6aN50 Message-ID: Subject: DPDK multiprocessing issue: what if primary process dies To: users@dpdk.org Content-Type: multipart/alternative; boundary="000000000000626b4f062fff791a" 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 --000000000000626b4f062fff791a Content-Type: text/plain; charset="UTF-8" Hello everyone, I am new to DPDK and I am implementing a DPDK-based application which might be running as a multi-process application. My understanding is that one of the processes should be the primary one, responsible for initializing and managing the hugepages. All the other processes should be secondary, meaning that they are connected to the primary process during DPDK initialization to get information about hugepages (please correct me if I am mistaken here). I am interested in the scenario where there are multiple DPDK processes, and the primary process dies. As far as I understand, existing secondary processes will continue running; however, I will not be able to start new DPDK processes: 1) I cannot start a new primary process because it will try to initialize hugepages and this will fail since some of them are in use by existing secondary processes (source: https://stackoverflow.com/questions/74602244/dpdk-multi-process-kill-a-primary-process-and-restart-as-a-secondary-doesnt-wo ) 2) I cannot start a new secondary process because there is no primary process to connect to and get the hugepages info, so the secondary process won't be able to complete the initialization. Hence, if my primary process terminates, what should I do in order to start it again? I have come up with two possible solutions: 1) If the primary process dies, I will have to kill all the secondary processes and restart everything. This solution is not ideal because I want to minimize the amount of time when processes are not running. 2) Have a dummy primary process that does not contain any critical business logic and is solely responsible for DPDK initialization. Then, all the business-critical applications must be secondary processes. If one of them dies, I can simply restart it without interrupting other processes. This solution sounds better than the first, but it is still not perfect as it requires running an additional dummy process which I would prefer to avoid. Could anyone please advise me on the idiomatic way of dealing with these multiprocessing issues? Thank you in advance! Best regards, Mikhail Malofeev --000000000000626b4f062fff791a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello everyone,=C2=A0

I am new to DPDK = and I am implementing a DPDK-based application which might be running as a = multi-process application. My understanding is that one of the processes sh= ould be the primary one, responsible for initializing and managing the huge= pages. All the other processes should be secondary, meaning that they are c= onnected to the primary process during DPDK initialization to get informati= on about hugepages (please correct me if I am mistaken here).=C2=A0

I am interested in the scenario where there are multiple = DPDK processes, and the primary process dies. As far as I understand, exist= ing secondary processes will continue running; however, I will not be able = to start new DPDK processes:=C2=A0
1) I cannot start a new primar= y process because it will try to initialize hugepages and this will fail si= nce some of them are in use by existing secondary processes (source: https://stackoverflo= w.com/questions/74602244/dpdk-multi-process-kill-a-primary-process-and-rest= art-as-a-secondary-doesnt-wo)=C2=A0
2) I cannot start a new s= econdary process because there is no primary process to connect to and get = the hugepages info, so the secondary process won't be able to complete = the initialization.=C2=A0

Hence, if my primary pro= cess terminates, what should I do in order to start it again?=C2=A0

I have come up with two possible solutions:=C2=A0
1) If the primary process dies, I will have to kill all the secondary pr= ocesses and restart everything. This solution is not ideal because I want t= o minimize the amount of time when processes are not running.=C2=A02) Have a dummy primary process that does not contain any critical busin= ess logic and is solely responsible for DPDK initialization. Then, all the = business-critical applications must be secondary processes. If one of them = dies, I can simply restart it without interrupting other processes. This so= lution sounds better than the first, but it is still not perfect as it requ= ires running an additional dummy process which I would prefer to avoid.=C2= =A0

Could anyone please advise me on the idiomatic= way of dealing with these multiprocessing issues?=C2=A0

Thank you in advance!=C2=A0

Best regards,= =C2=A0
Mikhail Malofeev
--000000000000626b4f062fff791a--