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 A644846247 for ; Mon, 17 Feb 2025 10:32:32 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2D1F5400D6; Mon, 17 Feb 2025 10:32:32 +0100 (CET) Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by mails.dpdk.org (Postfix) with ESMTP id 56791400D5 for ; Mon, 17 Feb 2025 10:32:30 +0100 (CET) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 51H6tVqZ006375; Mon, 17 Feb 2025 09:32:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2023-11-20; bh=a/K0YPBYMEPutb4Sw8GOD7uoZSq+QWbdOScC7vOtJSE=; b= cAOzmdrNlw1T+D62amMhwKYW/injb9tZLAd4qYZVQ7o6CdogW5mbaDXdmagXoNeJ D3ZPeHMwC/8K0QxyHVz2LlwidnB4M24J1hckGeP/k3Sf6TJ6AWsyKqggF/4voP3Y L3IQ+g+czz33ocq1eGztzZaiXG9M7d1+hQHc25CznMl01dGnxxomRR0WblSrlNkp HlRAokXH5yQO4yCZrcJGue5xRSmK7Cz67Z5IMvQ/hhIHPgQv9wuhlqmy8v9mhhn0 HaGLcbdy132Z5CxBkp0kLEiiEhnjA2SkwQs0YJsuf4C5mW/s3roy/lifEJTB3Au+ khPgYy8f52p9Dxuuvg0GsA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 44tqxh3g46-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 17 Feb 2025 09:32:29 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 51H8MDlL024944; Mon, 17 Feb 2025 09:32:28 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2177.outbound.protection.outlook.com [104.47.57.177]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 44thc7prc4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 17 Feb 2025 09:32:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XZxtXGP7yJCRwvR/Q7frxRuZsnXiyuu/I5hMStDKh1uOf0tx+DqcokKcsCqlZIWt7wT4imRJvx4OsXdpKrzpHUU+VNQoY5eJNMUqSR2DD7wA1KWb8OqnWrFKFkIdD55E7g9RptETXV4yXVx0PCRsEbqu/g6GVuyLjhapvjzZWp7BHiuoF4pXSB2DlPTo32QfiBpQzsPjeZNob5I7OMpm9Y0zJZDr8YzKYZ0gzHDhOnjjv9KCJJFuCPKbuw0NFLOXw28wGfs9q4gU3oPcnO0Qs2Trwj3UPCOsiVdZSmGjpVur2tPBf7VYU+8ZElF7NeVPsFlopSxJVbZezrpbA6lZtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=a/K0YPBYMEPutb4Sw8GOD7uoZSq+QWbdOScC7vOtJSE=; b=AQgqREze6gDuMrGxgz5NnLMVgr2Qjef6qsDY0i9p/SwSUtTdYgqmTwfaug8qtzwWfZ2J7zBjAZljcFvDjqIjDdiQkzfcxTgXsvgCY2XWoKIf13hAvsMCMiLrFjR7aM+w/IsfyAa15hhv6uSzbNys12g0JWV4JZk7vhfZ/rRbWlL15Ljr9hZF2SvyM+QUiLmgNzSZlm4r1uoNUgF9zWOVNyIMBi+QLGdH9KnKAycPVOp73ANP6mc+X7xsxz/M6lbR+/EFJk43enJaigvvcEOSrKrwsqo9+fUaUXng3Ug3LSkZfitNLy5/xUL769cQ81lIAI4wtPNybsS+UkHgTc353A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=a/K0YPBYMEPutb4Sw8GOD7uoZSq+QWbdOScC7vOtJSE=; b=gCCkYQDUkyPQUj27Ov0+dxMZ82Ho9lxSsgG7UlWifLriajaXDO7bKkABxlZLC9fTg0DZF9ad+C+QIlr29keCZIogJPT8w7S7zP5TBDK3B4mS2qouR5M4/n8XedH+6qGY0pWY0RZIo96N0DLMSAMG2G0Zo1cUV7QyXjtCz9ShlLE= Received: from DM6PR10MB4124.namprd10.prod.outlook.com (2603:10b6:5:218::18) by SJ0PR10MB6303.namprd10.prod.outlook.com (2603:10b6:a03:477::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8445.16; Mon, 17 Feb 2025 09:32:26 +0000 Received: from DM6PR10MB4124.namprd10.prod.outlook.com ([fe80::b254:4bfb:b53:233b]) by DM6PR10MB4124.namprd10.prod.outlook.com ([fe80::b254:4bfb:b53:233b%4]) with mapi id 15.20.8445.017; Mon, 17 Feb 2025 09:32:26 +0000 From: NAGENDRA BALAGANI To: Stephen Hemminger , "Van Haaren, Harry" CC: "users@dpdk.org" Subject: RE: [External] : Re: Query Regarding Race Condition Between Packet Reception and Device Stop in DPDK Thread-Topic: [External] : Re: Query Regarding Race Condition Between Packet Reception and Device Stop in DPDK Thread-Index: Adt+vEdloaqObPP2T4u6OUiIi+rKNwAA6AYrAA97oQAAh88fwA== Date: Mon, 17 Feb 2025 09:32:25 +0000 Message-ID: References: <20250214083102.240c8da9@hermes.local> In-Reply-To: <20250214083102.240c8da9@hermes.local> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR10MB4124:EE_|SJ0PR10MB6303:EE_ x-ms-office365-filtering-correlation-id: e4c90d2f-a730-401e-2d7e-08dd4f35fd6b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018; x-microsoft-antispam-message-info: =?us-ascii?Q?H/IiO0j4CUbmMGGfYdRywz4AzjcMxjNET5LX/JoRXsNDeOFj49PMhWvh6dTm?= =?us-ascii?Q?jUdREKxkj2+Yzj/7BgPXbq6WoV30KfTc/HOfRrIQHfWtxUSoCjkZqhXtU5Q+?= =?us-ascii?Q?gAV4zFmoUjfESTQu3ECH/VftnDkBX8tm6oXu1uEazXZ2ab4EXXY3CGKtWo5H?= =?us-ascii?Q?n8pRoFTkpmxWu1B1MLLPAVsY0RDbXpU3qcjghwc+pqgx98Tb7b/jdlWu8vKK?= =?us-ascii?Q?Azz/nVQdvu+dVd9B1cCsUdUvxbtOkZZao6e6OZoTKYqx+c/vWRP+VMkhLVRq?= =?us-ascii?Q?ZnL57yi2/wxc0UtG8i8GMhJcW4cKT1a9DZVkLijjF1A38JI6wUF6Osu2xe3K?= =?us-ascii?Q?+SmSY8mvPGvo/9I5a3kSbG1DuH7kR1PSiDk1mV9aXMENCOe3Crn5A1V8rUs2?= =?us-ascii?Q?j+2vaTZBUzN/hqZ9K8tnEw3H78bLdxGCo8BvQ/jE9qt0Zm0KpwbxqdCDacIB?= =?us-ascii?Q?0HTjbB4OJZF5PIYt+7Ee2S3/gIWu/6vh1Z10R1fIjE1BRlVQ9+0wdJ2rSaX8?= =?us-ascii?Q?ioUixrhxPv592NDmGcmsWMm4Lm/gXEUDyRCO/nlNR6ZoGkTbxi1pEe2LQAVw?= =?us-ascii?Q?3pXg300+TgZAfkzhr3L4BnEI12MFzj57bC1bzxUFHMoeRd/bcFAEFxU7Aj0W?= =?us-ascii?Q?5kzRy9waLIRgdwKSfteAmhFf5pv8etQfxdOU1jCMu0TiCfKP7Izt5kf1z3xo?= =?us-ascii?Q?S8gELjNlm1CyatAzX7ep5OB9rUM9/EZZtIKxILHmY6KpBjgtPyr8JW/6+3dL?= =?us-ascii?Q?LvmUb1cUsCU7wQcyC9YBAB1MuHALY0yJqe+8QyktFuOorw+Ro/7jIwTP0cZf?= =?us-ascii?Q?hMRSCGeCTvKPiPTCS05o645PyiNuLbvTZIL26KmMbcTIQvvjGK9auUGq0J1B?= =?us-ascii?Q?ZmY5A8frQkK+e8xKfbBlj9pyQKILC4hfC3ipRgPINxXFEbGXSZKxsawk6m5w?= =?us-ascii?Q?5AKw9nFpMLgiUSED4suTGuDXyQI5igzJhw+lWz/awWdZbaLGQktqM6VHxCzh?= =?us-ascii?Q?LMajUdBRLfuDkazlqKRnwNmtJsprXc7CIFMp7jJ3Xhe3qqqBlzyU07adj98X?= =?us-ascii?Q?seGEa7bcjzz1KM9xANDSpnTlM9cUdhh80fOcgDLGLhw9/J1BILQhf3r2f9zo?= =?us-ascii?Q?CEi+FWd+yRLoOs83hMzIVezKY1n+v5oSGjIjMHu/1uWWNKXc/0t90pxVecmU?= =?us-ascii?Q?LPTYBC+2R78bgA1zf/GkSjr1sFIemKzKsyaqmXLI4G9GuZ5pFXqp5sqOrmn0?= =?us-ascii?Q?QnLI4/diabJdWfpWRBc66J47kFRoUL48XUCMjMsciPiz67bze/zI9zF4pQSG?= =?us-ascii?Q?au2O2VCyYkMh6sLYlC2STHOhEUgk9AnnKReu0ecLOK9e61moT0jHAdEIWZAw?= =?us-ascii?Q?VhKSC6pEWD6XoIe3d8OsVVBEL+xvNF6eiqVGPfXbFidyMSQ94g=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR10MB4124.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?yfTIoW6wn6wlPa4JmAvnpTND8kzLFtxFK1ywLzxEDDFE5JEFxc+u1LKA8Vi6?= =?us-ascii?Q?20ln1CwEFwChm5ANSvmI4M5HHGRmb9D174Yca9wvvEhi3d0w4XaCA1WIdQzi?= =?us-ascii?Q?DYTDuVdaExu1/xJHSIeH4cdf7zuTcK7jrFN9S98ZmUTxS8jJfCn1upQDlcjI?= =?us-ascii?Q?MT9oXXrjQGWmBL2JUJ9QpZDigIYV8txp2I1pMuSwcBrpVTgQb1eJ1bCf2L0G?= =?us-ascii?Q?yRqtZiM8+79LqqwgVvZP0ZkMwCizp5h452SjJB2WFbDiqBfXWT3nkPAse1Tp?= =?us-ascii?Q?t1nFGtfWJKSRQ46TX/rQn9SwNAZAAoa4j+C3kGeHvUbaQjpQcuCqktbG5LhO?= =?us-ascii?Q?b9fVvcRJRMWuIu5nmTYlMFPJa3J9hTXKO3o0cBMpTucjlWF4rJJYWMVa8sUo?= =?us-ascii?Q?sDcKBwZWbB7/EUVwQ47jHSPgd67GkF0WIbFLOo+30yfqA/8MPIRZ9BfM+Kss?= =?us-ascii?Q?KuyzqYDL7xsnAkuj+vdZ3fP/l6sC1uocC7wmuSsk0k5W8wR7HkwhA5r8y42m?= =?us-ascii?Q?CwhlHEav/Mf4tc9ePaHN6WZvza+qEQD4EKYdf//AtR+ZLO8WpdiVhzaxcwi2?= =?us-ascii?Q?wWsJkFqvCshLsI33YNb+c3maOOXwW4WVRQj07m5Ta9NoPtXoJWhWeJpq+hiX?= =?us-ascii?Q?1ZYrZR8rKYY9acIgbZYaR4QeLM+ld81btnyMD/bvTlhmDdLogwIESrgLOWO1?= =?us-ascii?Q?3aiSbqjvp6Q8yxiBeC0scbg73RgmB3g44oKYhIQJCHG6KQoWMidXM62L29KC?= =?us-ascii?Q?8pUNwuCqQ/BIlVG4a8hrApY62gULP+psbo+iPi/wYl70XFUUiRxL3YqzdLhm?= =?us-ascii?Q?1zI5K2eA996VTwCUvlulQaF/YRNCcA3uwHm6Isgi4jwz5nb7gtm9ktCdZQr/?= =?us-ascii?Q?L0U2tgkbMiw7rBuUaubSZV0NcxhS6/jizr5YArMSCenU+uR6RmV/Wv1KJrkK?= =?us-ascii?Q?GTx3k9MyBQA6zi6iaOA9QyijOBuhO4UdRtCJE+EVqssM+av4DwM1Uv5GdMdh?= =?us-ascii?Q?1e2NR7iGMBKdz9jK4SnVez4nlQYpLRA2c5HgfC7wmRmpTuVnL0+qnCiE4vdb?= =?us-ascii?Q?TddyNjXbvC+NDfOvOqgMXv/Vy2rumMtA7VWRmO5nCOFmGTiBqX+vw70qiLSP?= =?us-ascii?Q?r+EzO+Dy0VkxyoW8BDjA47FPIEDDiECPfE5lLHu8ydh/jzdLCZhM00ZiOL9L?= =?us-ascii?Q?Yhg1xCReKd1wSK5bRuGIuqfhnzy6a72JMbGLzmHU3s9DxT4pckziEhHotIEZ?= =?us-ascii?Q?Kmb9pd7f03S+Y6xs+sPSs9dsLr5KZ/15njhHZi1Tdv+vjpRp6gvdjDmVxHhk?= =?us-ascii?Q?kJNPUJ3Bb8ageFQeMP9Bu74CITxjyd6qlwt8PMLhGIRv5Krnw6U94Rhd9LhH?= =?us-ascii?Q?E8G1GjJIiAFWad04p/67AE2Ad89V7hZqPq6huZkyNnXv7BN0GsWoV110NMZi?= =?us-ascii?Q?As/gXO8NxMa6y4wUJW4B0JW0JW3byiFlltTuVQwMVOw8foRBgNUIjMszNEjb?= =?us-ascii?Q?aVDPeOhQ0zszX0/mt2Xxs756yUOQHtfT9mcv+G5e70eL9ewBK3Z47OX4OF3t?= =?us-ascii?Q?WeB9/9fkP+/NzJaUpT2dRQkNnU8zb7RooM259zKQqgo7QplkeafXV5eEPOcG?= =?us-ascii?Q?lA=3D=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 4KK0brRGsH0p1MBZQR18mhP6+pn9K+CrVaL7FT+ZRCg/zoRQV11UhgIbhNFdnoA1vyHOjKgzhX7oiqKjRyNLXQ1p2QY7CUa0Q6MBbwV1IOed6JXL7KJDxC8E274jf2xuGpksYvUhGmkXbJ4B8vhBjzOSx6m3Q24RW0VoHOsGms/kuaD/YA6HIX4AC8p+zWhX+JtOzm9ot9kirdCle/vzoRf/bmWOCD7kLRHDiWGpFLd9m6JjDm6ceWSgRlE8l9nI0xJwc5n68a1Vy+++64JSdTi7MnKOCnMuQgg4HtzngVbOUAeaC2iY3tU4n2yIELIBPCQNofLPh6nLdlaYjGEQteFrEAlv9zQNWNST+aEaZhXgivzv1lfuxBwn0Rd+M8AmEssgdk5qI35ly2TGMLeOzu9jjOP7zRwoOqTl2i498b3MmSL8Uy4ANmKymbZ1inz0a3dzqHrOYc5B0WC2rRY97O15ayll+Edf5AOUrZBYRKz/SgWqsFIldubpze00LwH0XY8I7froPUeVkXVVCcOEUMLgu9FGepLDbRGken/lsaURhgVx9J2FsL6Qc72v/cBnKXeO8w6nV7UFoxUvPxF8ShcNOI7Bs9nDG/yWhSt/C1s= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR10MB4124.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e4c90d2f-a730-401e-2d7e-08dd4f35fd6b X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Feb 2025 09:32:25.9398 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: JAysP+A+EbIhlIG722xOMxUGd34QDq2TyjX8utzUJ8I/m4PIl8Y6pSpspYHZIPO/EFkJfKo9IgTmMHJ/NME6aehH0hDbv3xGRjllluIxcEE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB6303 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-17_04,2025-02-13_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 spamscore=0 mlxlogscore=999 phishscore=0 bulkscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2501170000 definitions=main-2502170083 X-Proofpoint-ORIG-GUID: zb-8c1gdIJ05m-tOwLW-zxmievLfhrAg X-Proofpoint-GUID: zb-8c1gdIJ05m-tOwLW-zxmievLfhrAg 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 Hi Harry and Stephen, Thank you for the response. your insights were really helpful. I will apply= the required changes and verify. Thanks once again for your time and valuable assistance Regards, Nagendra -----Original Message----- From: Stephen Hemminger =20 Sent: Friday, February 14, 2025 10:01 PM To: Van Haaren, Harry Cc: NAGENDRA BALAGANI ; users@dpdk.org Subject: [External] : Re: Query Regarding Race Condition Between Packet Rec= eption and Device Stop in DPDK On Fri, 14 Feb 2025 09:22:59 +0000 "Van Haaren, Harry" wrote: > > From: NAGENDRA BALAGANI > > Sent: Friday, February 14, 2025 8:43 AM > > To: users@dpdk.org > > Subject: Query Regarding Race Condition Between Packet Reception and=20 > > Device Stop in DPDK > > > > Hi Team, >=20 > Ni Nagendra, >=20 > > We are facing a race condition in our DPDK application where one thread= is reading packets from queue using rte_eth_rx_burst() , while another thr= ead is attempting to stop the device using rte_eth_dev_stop(). This is caus= ing instability, as the reading thread may still be accessing queues while = the device is being stopped. =20 >=20 > This is as expected - it is not valid to stop a device while other cores = are using it. >=20 > > Could you please suggest the best way to mitigate this race condition w= ithout impacting fast path performance? We want to ensure safe synchronizat= ion while maintaining high throughput. =20 >=20 > There are many implementations possible, but the end result of them all i= s "ensure that the dataplane core is NOT polling a device that is stopping"= . >=20 > 1) One implementation is using a "force_quit" boolean value (see dpdk/exa= mples/l2fwd/main.c for example). This approach changes the lcore's "while (= 1)" polling loop, and turns it into a "while (!force_quit)". (Note some nua= nce around "volatile" keyword for the boolean to ensure reloading on each i= teration, but that's off topic). >=20 > 2) Another more flexible/powerful implementation could be some form of me= ssage passing. For example imagine the dataplane thread and control plane (= stopping ethdev) thread are capable of communicating by sending an "event" = to eachother. When a "stop polling" event is recieved by the dataplane thre= ad, it disables polling just that eth device/queue, and responds with a "st= opped polling" reply. On recieving the "stopped polling" event, the thread = that wants to stop the eth device can now safely do so. >=20 > Both of these implementations will have no datapath performance impact: > 1) a single boolean value check (shared state cache-line, likely in=20 > the core's cache) per iteration of polling of the app is super=20 > lightweight > 2) an "event ringbuffer" check (when empty, also shared-state, likely in = cache) per iteration is also super light. >=20 > General notes on the above: > There's even an option to only check the boolean/event-ringbuffer once ev= ery N iterations: this will cause even less overhead, but will increase the= latency of event action/reply on the datapath thread. As almost always, it= depends on what's important for your use-case! >=20 > The main difference between implementation 1) and 2) above can be capture= d by this phrase: "Do not communicate by sharing memory; instead, share mem= ory by communicating.", which I read at the Rust docs here: https://urldefe= nse.com/v3/__https://doc.rust-lang.org/book/ch16-02-message-passing.html__;= !!ACWV5N9M2RV99hQ!LLkVp4x8kIwmmMmSj5_x1okc22KZy_POst8NBV-p1mjSSqJKKldyby3_K= t6E5lXq4JGIQkiqD7v8c5frr0Vmrrh_7TeW$ . 1) literally shares memory (both thr= eads access the force_quit value directly). 2) focusses on communicating: w= hich enables avoiding the race condition in a more powerful/elegant way (an= d future proof too - it allows adding new event types cleanly, which the fo= rce_quit bool value does not.) I like this design-mentality, as it is a goo= d/high-performance/scalable way of interacting between threads, and scales = to future needs too: so I recommend approach 2. One other solution is to reserve the main lcore for control operations. In a couple of projects we had the main lcore spawn the workers then sleep = on epoll to handle control requests from another source (unix domain socket= ). When the stop request came in the main thread would set a flag (atomic v= ariable) and wait for the worker lcore's to finish. Then it would do the st= op and other maintenance operations. It worked out much cleaner than doing = control in the workers.