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 97831458BC for ; Sat, 31 Aug 2024 19:10:51 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 925B8402D6; Sat, 31 Aug 2024 19:10:51 +0200 (CEST) Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by mails.dpdk.org (Postfix) with ESMTP id 14CAC40272 for ; Sat, 31 Aug 2024 19:10:50 +0200 (CEST) Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-201d5af11a4so25631375ad.3 for ; Sat, 31 Aug 2024 10:10:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20230601.gappssmtp.com; s=20230601; t=1725124249; x=1725729049; 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=kMNKC9tjKGPdi3jXJ9nXyxeb2WoRZZuGipR6XSewZZI=; b=mDYBq61exsJn7pVrE7iclBrFrmQao8f2jw+iwxNXUxlBGYj+KV55VC/WfTilp8ZnhT hCtBULyrtiR2QVrHGs6OEU1h2k07siHDOgCoFBa2l4v3hJHalK1kniOicQru6rAPeYYU 7kTxDLMPWXSol/lOMM0kBo7yingqYz1U5o7EDpJarnw/fxwULALzgMpQTa8dp2O1hfpn 71RhCAfTCutlSfG+U1BAl6k7Slpz012HwFd1xXwzpvpSB5bYHAYbRsoa5uj1PKUZvb89 YeyRNvroldUAFT3Qamva5UXcWBukpzOqNqyb2HigAmbvv887fud5I8x4RABTfqU0plZl I5kQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725124249; x=1725729049; 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=kMNKC9tjKGPdi3jXJ9nXyxeb2WoRZZuGipR6XSewZZI=; b=RmYaIqI6BWFRpSHw5JZT/IIe0nBaImzVeqKgrV5d303kTTHucT3QXtNajxFMPMyHJO HcV7EIflDTWTcdeqMmsTRg7rTGK5Pxm0jW1y5srjsz03A9batSe+JTWUSSKdFxs+bgqR jek9BpbTojiWt71VBermc/ro4A6RAGw73EOqSur6JXm7LUA80w+VCgBshCzAbbm/YmsX n/h/8nyu8UCVCl+Ac5whoTBMeLWqml4Bb2dO9TW5kP6h4JlZvDr4GslmnkB4+PBucEiZ yMTl0bXB9e1iDAM+jL7GFm9+qm+IWhfJVh1Goo1qG3XeU2XuvQKm+YMquJgdILZyqZdm mYUg== X-Forwarded-Encrypted: i=1; AJvYcCVbHKO2Dsv3loImLjP1sk7qYh4GI/9r0qfsWVB1Ub6/6vxWXRTdqfe77Cy+po6rBiCqrC1uR80=@dpdk.org X-Gm-Message-State: AOJu0YzmH4xyWdO4Bsl2k8z0MkHi7gt1YGCOiamCDt2Tm+klqyBhs88j Nk9h2ctnnOTgkdD0TCxfOfXZP8aeYWAYyekJV8nj/IgyBs5xTeSDgHf9prXpX3gOaUTHsLnye9Q r/Iw= X-Google-Smtp-Source: AGHT+IFTgkekGgFPUAsShI2zV6vDNLxMuzDDE9tWVyDoFe345nTDwkmvVXtD1P5a8PZMrQZGQrYG8g== X-Received: by 2002:a17:903:32d1:b0:203:8b7c:c8d0 with SMTP id d9443c01a7336-20546b35a41mr31428185ad.40.1725124249247; Sat, 31 Aug 2024 10:10:49 -0700 (PDT) Received: from hermes.local (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-205152cf12bsm43141735ad.83.2024.08.31.10.10.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 31 Aug 2024 10:10:48 -0700 (PDT) From: Stephen Hemminger To: Kevin Traynor Cc: Stephen Hemminger , stable@dpdk.org, Ferruh Yigit , David Marchand Subject: [PATCH 4/5] app/testpmd: fix early exit from signal Date: Sat, 31 Aug 2024 10:09:28 -0700 Message-ID: <20240831171035.27505-5-stephen@networkplumber.org> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240831171035.27505-1-stephen@networkplumber.org> References: <20240831171035.27505-1-stephen@networkplumber.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Other signals may occur causing read to get interrupted. Loop until quit flag is set by signal, a character is entered, or end of file. This fixes bug where testpmd would exit early because of signal used by TAP device. Bugzilla ID: 1305 Fixes: 0fd1386c30c3 ("app/testpmd: cleanup cleanly from signal") Cc: stable@dpdk.org Signed-off-by: Stephen Hemminger Acked-by: Ferruh Yigit Reviewed-by: David Marchand (cherry picked from commit a996cd04aeeaeca88e6313174101a1229349fb47) --- app/test-pmd/testpmd.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 40dff96e5c..1760dd79b8 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -11,7 +11,6 @@ #include #ifndef RTE_EXEC_ENV_WINDOWS #include -#include #endif #include #include @@ -4264,25 +4263,17 @@ main(int argc, char** argv) } } else { char c; - fd_set fds; printf("Press enter to exit\n"); - - FD_ZERO(&fds); - FD_SET(0, &fds); - - /* wait for signal or enter */ - ret = select(1, &fds, NULL, NULL, NULL); - if (ret < 0 && errno != EINTR) - rte_exit(EXIT_FAILURE, - "Select failed: %s\n", - strerror(errno)); - - /* if got enter then consume it */ - if (ret == 1 && read(0, &c, 1) < 0) - rte_exit(EXIT_FAILURE, - "Read failed: %s\n", + while (f_quit == 0) { + /* end-of-file or any character exits loop */ + if (read(0, &c, 1) >= 0) + break; + if (errno == EINTR) + continue; + rte_exit(EXIT_FAILURE, "Read failed: %s\n", strerror(errno)); + } } } -- 2.45.2