From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 417FF1B539 for ; Wed, 24 Apr 2019 22:02:56 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x3OJfFV4021751; Wed, 24 Apr 2019 13:02:52 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=bxmS5LcOdS7LPMRIcEVCGl2FVjbMF9xKyYAKUoIbvbA=; b=Tqt4pxICo+jwfBmLm7xnH8N4g+fJ0gXA0oiIro40obM222QP1R53yvozwKhlSp4InukA eyvHne8jk0CazcZENkZ4CNEQ0CVjsZJKrHcJq95yqDNRH/7F45ichGLnbKlufJNMd6Lb k0ob158DJIy+BOJdc22ul1YESfxTav0b0hXYFnM8uPr/WrpswTYxK9/InUJSfoPchZA0 wW5Yqj8zlSahTbYWxZp5MOUeAISSJp1ab5lKWhyzzyN3wwls5NaInuq58bRD+1a8RzWp um2Gsg7o1SugQ3OOwUAjzlUljUwcsUATxQXNk2Gj4IeiUYD0UUsNkAekkbE0vVqlP3B8 GA== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0b-0016f401.pphosted.com with ESMTP id 2s2nnjj38v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 24 Apr 2019 13:02:52 -0700 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 24 Apr 2019 13:02:50 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (104.47.40.58) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Wed, 24 Apr 2019 13:02:50 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bxmS5LcOdS7LPMRIcEVCGl2FVjbMF9xKyYAKUoIbvbA=; b=fPs5MaZyr3nzeQiWYm3anCAnUJkTNO2yUObgYK5gKhEqdcMUxsC+MLdVd73vQLJQRPuHXgK6QfsXTinwSR1jsQDC6LVeswwjsWoxhmLTcOPTlV6QTw1+bgz7vbBsynAP7szAZapqhSinbNmdLxWitm8v35Ku2FkywwKB3Ju55uI= Received: from BYAPR18MB2424.namprd18.prod.outlook.com (20.179.91.149) by BYAPR18MB2486.namprd18.prod.outlook.com (20.179.92.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.13; Wed, 24 Apr 2019 20:02:45 +0000 Received: from BYAPR18MB2424.namprd18.prod.outlook.com ([fe80::6dd3:c056:b23b:ab4e]) by BYAPR18MB2424.namprd18.prod.outlook.com ([fe80::6dd3:c056:b23b:ab4e%7]) with mapi id 15.20.1813.017; Wed, 24 Apr 2019 20:02:45 +0000 From: Jerin Jacob Kollanukkaran To: Honnappa Nagarahalli , "paulmck@linux.ibm.com" CC: "konstantin.ananyev@intel.com" , "stephen@networkplumber.org" , "marko.kovacevic@intel.com" , "dev@dpdk.org" , "Gavin Hu (Arm Technology China)" , "Dharmik Thakkar" , Malvika Gupta , "bruce.richardson@intel.com" , nd , "thomas@monjalon.net" , nd Thread-Topic: [dpdk-dev] [PATCH v7 1/3] rcu: add RCU library supporting QSBR mechanism Thread-Index: AQHU+Y2CyaVgsf563kq64VDDU9M3eKZKQXDQgAF12QA= Date: Wed, 24 Apr 2019 20:02:45 +0000 Message-ID: References: <20181122033055.3431-1-honnappa.nagarahalli@arm.com> <20190423043130.18153-1-honnappa.nagarahalli@arm.com> <20190423043130.18153-2-honnappa.nagarahalli@arm.com> <20190423081048.GD3923@linux.ibm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [116.68.105.17] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b18306c9-4d51-4c52-a447-08d6c8efd161 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:BYAPR18MB2486; x-ms-traffictypediagnostic: BYAPR18MB2486: x-microsoft-antispam-prvs: x-forefront-prvs: 00179089FD x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39850400004)(366004)(136003)(396003)(376002)(346002)(13464003)(189003)(199004)(14454004)(76176011)(11346002)(71200400001)(71190400001)(446003)(110136005)(54906003)(476003)(102836004)(26005)(55236004)(53546011)(6506007)(52536014)(66946007)(66476007)(76116006)(2906002)(64756008)(66556008)(66446008)(73956011)(5660300002)(186003)(478600001)(86362001)(486006)(25786009)(9686003)(74316002)(81156014)(55016002)(4326008)(7416002)(229853002)(305945005)(6246003)(81166006)(8936002)(6436002)(7736002)(53936002)(33656002)(316002)(99286004)(14444005)(256004)(97736004)(6116002)(3846002)(93886005)(66066001)(2501003)(68736007)(7696005); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR18MB2486; H:BYAPR18MB2424.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: JdCo1LH3Z2jQSkzDCpkhu/mHxYgaYBp58lRxCBeGgF8Yt+Hm6PBHd/gu+lq/ao/TMQiCEKRPegGf3koCSu9PwKBnpNzHFUOGzpIDSEjFC2ZNXpDdFio11kUHlItMnhM7rUsuBCQ8s84oeIa6A5W4J6EWMD+EJ3MwFqGmW6wtMk0yuw0LHi/YZhxox223EDKa+bYWgwR1qgRuO34+Xmc7cI8JwikCEhTiBYQ7ZwKnPj39uEoUjljzWTbC8xRoMfV9GfF++qFfpwt5L+IO9Z4D5Wi86Tc8exLAeIDvzR75puw+glsbajsNSMAIUVXzTIYR3lU9SUueLr7N9wsTYkCilfJCk3S1zH9Flc/gQIMTAN5UGaG9VMSVGAjyE3ZGvEAivbs7xCkcHBahUBA9yd+s5S538h4ENcQpVU6d9sBBeV4= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: b18306c9-4d51-4c52-a447-08d6c8efd161 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Apr 2019 20:02:45.3288 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR18MB2486 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-24_12:, , signatures=0 Subject: Re: [dpdk-dev] [PATCH v7 1/3] rcu: add RCU library supporting QSBR mechanism X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Apr 2019 20:02:56 -0000 > -----Original Message----- > From: dev On Behalf Of Honnappa Nagarahalli > Sent: Wednesday, April 24, 2019 2:53 AM > To: paulmck@linux.ibm.com > Cc: konstantin.ananyev@intel.com; stephen@networkplumber.org; > marko.kovacevic@intel.com; dev@dpdk.org; Gavin Hu (Arm Technology China) > ; Dharmik Thakkar ; > Malvika Gupta ; Honnappa Nagarahalli > ; bruce.richardson@intel.com; nd > ; thomas@monjalon.net; nd > Subject: Re: [dpdk-dev] [PATCH v7 1/3] rcu: add RCU library supporting QS= BR > mechanism >=20 > > > > On Mon, Apr 22, 2019 at 11:31:28PM -0500, Honnappa Nagarahalli wrote: > > > Add RCU library supporting quiescent state based memory reclamation > > method. > > > This library helps identify the quiescent state of the reader > > > threads so that the writers can free the memory associated with the > > > lock less data structures. > > > > > > Signed-off-by: Honnappa Nagarahalli > > > Reviewed-by: Steve Capper > > > Reviewed-by: Gavin Hu > > > Reviewed-by: Ola Liljedahl > > > Acked-by: Konstantin Ananyev > > > > Much better! > > > > Acked-by: Paul E. McKenney > > > Thanks a lot, appreciate your feedback. >=20 > Any views from maintainers on including this library into RC3? IMO, this = library is > independent and should not affect existing code. Tested rcu_qsbr_autotest and rcu_qsbr_perf_autotest UT on a armv8.2 machine= (octeontx2). Found rcu_qsbr_perf_autotest() runs successfully on 24 cores. There is come issue with rcu_qsbr_autotest on 24 cores. It works fine upto = 20 cores. Please find below the success log, failure log and core dump. [master][dpdk.org] $ echo "rcu_qsbr_autotest" | sudo ./build/app/test -c 0x= fffff0 EAL: Detected 24 lcore(s) EAL: Detected 1 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: No available hugepages reported in hugepages-2048kB EAL: Probing VFIO support... EAL: VFIO support initialized APP: HPET is not enabled, using TSC as default timer RTE>>rcu_qsbr_autotest Test rte_rcu_qsbr_thread_register() rte_rcu_qsbr_get_memsize(): Invalid max_threads 0 Test rte_rcu_qsbr_init() rte_rcu_qsbr_init(): Invalid input parameter Test rte_rcu_qsbr_thread_register() rte_rcu_qsbr_thread_register(): Invalid input parameter rte_rcu_qsbr_thread_register(): Invalid input parameter rte_rcu_qsbr_thread_register(): Invalid input parameter Test rte_rcu_qsbr_thread_unregister() rte_rcu_qsbr_thread_unregister(): Invalid input parameter rte_rcu_qsbr_thread_unregister(): Invalid input parameter rte_rcu_qsbr_thread_unregister(): Invalid input parameter Test rte_rcu_qsbr_start() Test rte_rcu_qsbr_check() Test rte_rcu_qsbr_synchronize() Test rte_rcu_qsbr_dump() rte_rcu_qsbr_dump(): Invalid input parameter rte_rcu_qsbr_dump(): Invalid input parameter rte_rcu_qsbr_dump(): Invalid input parameter Quiescent State Variable @0x13ff94100 QS variable memory size =3D 16768 Given # max threads =3D 128 Current # threads =3D 0 Registered thread ID mask =3D 0x00 Token =3D 1 Quiescent State Counts for readers: Quiescent State Variable @0x13ff94100 QS variable memory size =3D 16768 Given # max threads =3D 128 Current # threads =3D 1 Registered thread ID mask =3D 0x200 Token =3D 1 Quiescent State Counts for readers: thread ID =3D 5, count =3D 0, lock count =3D 0 Quiescent State Variable @0x13ff8ff00 QS variable memory size =3D 16768 Given # max threads =3D 128 Current # threads =3D 2 Registered thread ID mask =3D 0xc00 Token =3D 1 Quiescent State Counts for readers: thread ID =3D 6, count =3D 0, lock count =3D 0 thread ID =3D 7, count =3D 0, lock count =3D 0 Test rte_rcu_qsbr_thread_online() Test rte_rcu_qsbr_thread_offline() Functional tests Test: 1 writer, 1 QSBR variable, simultaneous QSBR queries Test: 8 writers, 4 QSBR variable, simultaneous QSBR queries Test OK [master] [dpdk.org] $ echo "rcu_qsbr_autotest" | sudo ./build/app/test -c 0= xffffff EAL: Detected 24 lcore(s) EAL: Detected 1 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: No available hugepages reported in hugepages-2048kB EAL: Probing VFIO support... EAL: VFIO support initialized APP: HPET is not enabled, using TSC as default timer RTE>>rcu_qsbr_autotest Test rte_rcu_qsbr_thread_register() rte_rcu_qsbr_get_memsize(): Invalid max_threads 0 Test rte_rcu_qsbr_init() rte_rcu_qsbr_init(): Invalid input parameter Test rte_rcu_qsbr_thread_register() rte_rcu_qsbr_thread_register(): Invalid input parameter rte_rcu_qsbr_thread_register(): Invalid input parameter rte_rcu_qsbr_thread_register(): Invalid input parameter Test rte_rcu_qsbr_thread_unregister() rte_rcu_qsbr_thread_unregister(): Invalid input parameter rte_rcu_qsbr_thread_unregister(): Invalid input parameter rte_rcu_qsbr_thread_unregister(): Invalid input parameter Test rte_rcu_qsbr_start() Test rte_rcu_qsbr_check() Test rte_rcu_qsbr_synchronize() Test rte_rcu_qsbr_dump() rte_rcu_qsbr_dump(): Invalid input parameter rte_rcu_qsbr_dump(): Invalid input parameter rte_rcu_qsbr_dump(): Invalid input parameter Quiescent State Variable @0x13ff94100 QS variable memory size =3D 16768 Given # max threads =3D 128 Current # threads =3D 0 Registered thread ID mask =3D 0x00 Token =3D 1 Quiescent State Counts for readers: Quiescent State Variable @0x13ff94100 QS variable memory size =3D 16768 Given # max threads =3D 128 Current # threads =3D 1 Registered thread ID mask =3D 0x20 Token =3D 1 Quiescent State Counts for readers: thread ID =3D 1, count =3D 0, lock count =3D 0 Quiescent State Variable @0x13ff8ff00 QS variable memory size =3D 16768 Given # max threads =3D 128 Current # threads =3D 2 Registered thread ID mask =3D 0xc0 Token =3D 1 Quiescent State Counts for readers: thread ID =3D 2, count =3D 0, lock count =3D 0 thread ID =3D 3, count =3D 0, lock count =3D 0 Test rte_rcu_qsbr_thread_online() Test rte_rcu_qsbr_thread_offline() Functional tests Test: 1 writer, 1 QSBR variable, simultaneous QSBR queries Test: 10 writers, 5 QSBR variable, simultaneous QSBR queries rte_rcu_qsbr_init(): Invalid input parameter rte_rcu_qsbr_thread_register(): Invalid input parameter rte_rcu_qsbr_thread_register(): Invalid input parameter Segmentation fault [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib/libthread_db.so.1". Core was generated by `./build/app/test -c 0xffffff'. Program terminated with signal SIGSEGV, Segmentation fault. #0 rte_rcu_qsbr_thread_online (thread_id=3D, v=3D0x0) at /h= ome/jerin/dpdk.org/build/include/rte_rcu_qsbr.h:238 /home/jerin/dpdk.org/lib/librte_rcu/rte_rcu_qsbr.h:238:7712:beg:0x564df4 [Current thread is 1 (Thread 0xffff9c06d900 (LWP 1938))] (gdb) bt #0 rte_rcu_qsbr_thread_online (thread_id=3D, v=3D0x0) at /h= ome/jerin/dpdk.org/build/include/rte_rcu_qsbr.h:238 #1 test_rcu_qsbr_reader (arg=3D) at /home/jerin/dpdk.org/ap= p/test/test_rcu_qsbr.c:641 #2 0x0000000000652430 in eal_thread_loop (arg=3D) at /home/= jerin/dpdk.org/lib/librte_eal/linux/eal/eal_thread.c:153 #3 0x0000ffffa13a756c in start_thread () from /usr/lib/libpthread.so.0 #4 0x0000ffffa11e301c in thread_start () from /usr/lib/libc.so.6 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id E1211A05D3 for ; Wed, 24 Apr 2019 22:02:58 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9B1B11B54B; Wed, 24 Apr 2019 22:02:57 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 417FF1B539 for ; Wed, 24 Apr 2019 22:02:56 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x3OJfFV4021751; Wed, 24 Apr 2019 13:02:52 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=bxmS5LcOdS7LPMRIcEVCGl2FVjbMF9xKyYAKUoIbvbA=; b=Tqt4pxICo+jwfBmLm7xnH8N4g+fJ0gXA0oiIro40obM222QP1R53yvozwKhlSp4InukA eyvHne8jk0CazcZENkZ4CNEQ0CVjsZJKrHcJq95yqDNRH/7F45ichGLnbKlufJNMd6Lb k0ob158DJIy+BOJdc22ul1YESfxTav0b0hXYFnM8uPr/WrpswTYxK9/InUJSfoPchZA0 wW5Yqj8zlSahTbYWxZp5MOUeAISSJp1ab5lKWhyzzyN3wwls5NaInuq58bRD+1a8RzWp um2Gsg7o1SugQ3OOwUAjzlUljUwcsUATxQXNk2Gj4IeiUYD0UUsNkAekkbE0vVqlP3B8 GA== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0b-0016f401.pphosted.com with ESMTP id 2s2nnjj38v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 24 Apr 2019 13:02:52 -0700 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 24 Apr 2019 13:02:50 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (104.47.40.58) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Wed, 24 Apr 2019 13:02:50 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bxmS5LcOdS7LPMRIcEVCGl2FVjbMF9xKyYAKUoIbvbA=; b=fPs5MaZyr3nzeQiWYm3anCAnUJkTNO2yUObgYK5gKhEqdcMUxsC+MLdVd73vQLJQRPuHXgK6QfsXTinwSR1jsQDC6LVeswwjsWoxhmLTcOPTlV6QTw1+bgz7vbBsynAP7szAZapqhSinbNmdLxWitm8v35Ku2FkywwKB3Ju55uI= Received: from BYAPR18MB2424.namprd18.prod.outlook.com (20.179.91.149) by BYAPR18MB2486.namprd18.prod.outlook.com (20.179.92.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.13; Wed, 24 Apr 2019 20:02:45 +0000 Received: from BYAPR18MB2424.namprd18.prod.outlook.com ([fe80::6dd3:c056:b23b:ab4e]) by BYAPR18MB2424.namprd18.prod.outlook.com ([fe80::6dd3:c056:b23b:ab4e%7]) with mapi id 15.20.1813.017; Wed, 24 Apr 2019 20:02:45 +0000 From: Jerin Jacob Kollanukkaran To: Honnappa Nagarahalli , "paulmck@linux.ibm.com" CC: "konstantin.ananyev@intel.com" , "stephen@networkplumber.org" , "marko.kovacevic@intel.com" , "dev@dpdk.org" , "Gavin Hu (Arm Technology China)" , "Dharmik Thakkar" , Malvika Gupta , "bruce.richardson@intel.com" , nd , "thomas@monjalon.net" , nd Thread-Topic: [dpdk-dev] [PATCH v7 1/3] rcu: add RCU library supporting QSBR mechanism Thread-Index: AQHU+Y2CyaVgsf563kq64VDDU9M3eKZKQXDQgAF12QA= Date: Wed, 24 Apr 2019 20:02:45 +0000 Message-ID: References: <20181122033055.3431-1-honnappa.nagarahalli@arm.com> <20190423043130.18153-1-honnappa.nagarahalli@arm.com> <20190423043130.18153-2-honnappa.nagarahalli@arm.com> <20190423081048.GD3923@linux.ibm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [116.68.105.17] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b18306c9-4d51-4c52-a447-08d6c8efd161 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:BYAPR18MB2486; x-ms-traffictypediagnostic: BYAPR18MB2486: x-microsoft-antispam-prvs: x-forefront-prvs: 00179089FD x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39850400004)(366004)(136003)(396003)(376002)(346002)(13464003)(189003)(199004)(14454004)(76176011)(11346002)(71200400001)(71190400001)(446003)(110136005)(54906003)(476003)(102836004)(26005)(55236004)(53546011)(6506007)(52536014)(66946007)(66476007)(76116006)(2906002)(64756008)(66556008)(66446008)(73956011)(5660300002)(186003)(478600001)(86362001)(486006)(25786009)(9686003)(74316002)(81156014)(55016002)(4326008)(7416002)(229853002)(305945005)(6246003)(81166006)(8936002)(6436002)(7736002)(53936002)(33656002)(316002)(99286004)(14444005)(256004)(97736004)(6116002)(3846002)(93886005)(66066001)(2501003)(68736007)(7696005); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR18MB2486; H:BYAPR18MB2424.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: JdCo1LH3Z2jQSkzDCpkhu/mHxYgaYBp58lRxCBeGgF8Yt+Hm6PBHd/gu+lq/ao/TMQiCEKRPegGf3koCSu9PwKBnpNzHFUOGzpIDSEjFC2ZNXpDdFio11kUHlItMnhM7rUsuBCQ8s84oeIa6A5W4J6EWMD+EJ3MwFqGmW6wtMk0yuw0LHi/YZhxox223EDKa+bYWgwR1qgRuO34+Xmc7cI8JwikCEhTiBYQ7ZwKnPj39uEoUjljzWTbC8xRoMfV9GfF++qFfpwt5L+IO9Z4D5Wi86Tc8exLAeIDvzR75puw+glsbajsNSMAIUVXzTIYR3lU9SUueLr7N9wsTYkCilfJCk3S1zH9Flc/gQIMTAN5UGaG9VMSVGAjyE3ZGvEAivbs7xCkcHBahUBA9yd+s5S538h4ENcQpVU6d9sBBeV4= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: b18306c9-4d51-4c52-a447-08d6c8efd161 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Apr 2019 20:02:45.3288 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR18MB2486 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-24_12:, , signatures=0 Subject: Re: [dpdk-dev] [PATCH v7 1/3] rcu: add RCU library supporting QSBR mechanism X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Message-ID: <20190424200245.CczLh7exwTB90vqYu4BPDDxPgqMGdK2Oj1toFnrcPh4@z> > -----Original Message----- > From: dev On Behalf Of Honnappa Nagarahalli > Sent: Wednesday, April 24, 2019 2:53 AM > To: paulmck@linux.ibm.com > Cc: konstantin.ananyev@intel.com; stephen@networkplumber.org; > marko.kovacevic@intel.com; dev@dpdk.org; Gavin Hu (Arm Technology China) > ; Dharmik Thakkar ; > Malvika Gupta ; Honnappa Nagarahalli > ; bruce.richardson@intel.com; nd > ; thomas@monjalon.net; nd > Subject: Re: [dpdk-dev] [PATCH v7 1/3] rcu: add RCU library supporting QS= BR > mechanism >=20 > > > > On Mon, Apr 22, 2019 at 11:31:28PM -0500, Honnappa Nagarahalli wrote: > > > Add RCU library supporting quiescent state based memory reclamation > > method. > > > This library helps identify the quiescent state of the reader > > > threads so that the writers can free the memory associated with the > > > lock less data structures. > > > > > > Signed-off-by: Honnappa Nagarahalli > > > Reviewed-by: Steve Capper > > > Reviewed-by: Gavin Hu > > > Reviewed-by: Ola Liljedahl > > > Acked-by: Konstantin Ananyev > > > > Much better! > > > > Acked-by: Paul E. McKenney > > > Thanks a lot, appreciate your feedback. >=20 > Any views from maintainers on including this library into RC3? IMO, this = library is > independent and should not affect existing code. Tested rcu_qsbr_autotest and rcu_qsbr_perf_autotest UT on a armv8.2 machine= (octeontx2). Found rcu_qsbr_perf_autotest() runs successfully on 24 cores. There is come issue with rcu_qsbr_autotest on 24 cores. It works fine upto = 20 cores. Please find below the success log, failure log and core dump. [master][dpdk.org] $ echo "rcu_qsbr_autotest" | sudo ./build/app/test -c 0x= fffff0 EAL: Detected 24 lcore(s) EAL: Detected 1 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: No available hugepages reported in hugepages-2048kB EAL: Probing VFIO support... EAL: VFIO support initialized APP: HPET is not enabled, using TSC as default timer RTE>>rcu_qsbr_autotest Test rte_rcu_qsbr_thread_register() rte_rcu_qsbr_get_memsize(): Invalid max_threads 0 Test rte_rcu_qsbr_init() rte_rcu_qsbr_init(): Invalid input parameter Test rte_rcu_qsbr_thread_register() rte_rcu_qsbr_thread_register(): Invalid input parameter rte_rcu_qsbr_thread_register(): Invalid input parameter rte_rcu_qsbr_thread_register(): Invalid input parameter Test rte_rcu_qsbr_thread_unregister() rte_rcu_qsbr_thread_unregister(): Invalid input parameter rte_rcu_qsbr_thread_unregister(): Invalid input parameter rte_rcu_qsbr_thread_unregister(): Invalid input parameter Test rte_rcu_qsbr_start() Test rte_rcu_qsbr_check() Test rte_rcu_qsbr_synchronize() Test rte_rcu_qsbr_dump() rte_rcu_qsbr_dump(): Invalid input parameter rte_rcu_qsbr_dump(): Invalid input parameter rte_rcu_qsbr_dump(): Invalid input parameter Quiescent State Variable @0x13ff94100 QS variable memory size =3D 16768 Given # max threads =3D 128 Current # threads =3D 0 Registered thread ID mask =3D 0x00 Token =3D 1 Quiescent State Counts for readers: Quiescent State Variable @0x13ff94100 QS variable memory size =3D 16768 Given # max threads =3D 128 Current # threads =3D 1 Registered thread ID mask =3D 0x200 Token =3D 1 Quiescent State Counts for readers: thread ID =3D 5, count =3D 0, lock count =3D 0 Quiescent State Variable @0x13ff8ff00 QS variable memory size =3D 16768 Given # max threads =3D 128 Current # threads =3D 2 Registered thread ID mask =3D 0xc00 Token =3D 1 Quiescent State Counts for readers: thread ID =3D 6, count =3D 0, lock count =3D 0 thread ID =3D 7, count =3D 0, lock count =3D 0 Test rte_rcu_qsbr_thread_online() Test rte_rcu_qsbr_thread_offline() Functional tests Test: 1 writer, 1 QSBR variable, simultaneous QSBR queries Test: 8 writers, 4 QSBR variable, simultaneous QSBR queries Test OK [master] [dpdk.org] $ echo "rcu_qsbr_autotest" | sudo ./build/app/test -c 0= xffffff EAL: Detected 24 lcore(s) EAL: Detected 1 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: No available hugepages reported in hugepages-2048kB EAL: Probing VFIO support... EAL: VFIO support initialized APP: HPET is not enabled, using TSC as default timer RTE>>rcu_qsbr_autotest Test rte_rcu_qsbr_thread_register() rte_rcu_qsbr_get_memsize(): Invalid max_threads 0 Test rte_rcu_qsbr_init() rte_rcu_qsbr_init(): Invalid input parameter Test rte_rcu_qsbr_thread_register() rte_rcu_qsbr_thread_register(): Invalid input parameter rte_rcu_qsbr_thread_register(): Invalid input parameter rte_rcu_qsbr_thread_register(): Invalid input parameter Test rte_rcu_qsbr_thread_unregister() rte_rcu_qsbr_thread_unregister(): Invalid input parameter rte_rcu_qsbr_thread_unregister(): Invalid input parameter rte_rcu_qsbr_thread_unregister(): Invalid input parameter Test rte_rcu_qsbr_start() Test rte_rcu_qsbr_check() Test rte_rcu_qsbr_synchronize() Test rte_rcu_qsbr_dump() rte_rcu_qsbr_dump(): Invalid input parameter rte_rcu_qsbr_dump(): Invalid input parameter rte_rcu_qsbr_dump(): Invalid input parameter Quiescent State Variable @0x13ff94100 QS variable memory size =3D 16768 Given # max threads =3D 128 Current # threads =3D 0 Registered thread ID mask =3D 0x00 Token =3D 1 Quiescent State Counts for readers: Quiescent State Variable @0x13ff94100 QS variable memory size =3D 16768 Given # max threads =3D 128 Current # threads =3D 1 Registered thread ID mask =3D 0x20 Token =3D 1 Quiescent State Counts for readers: thread ID =3D 1, count =3D 0, lock count =3D 0 Quiescent State Variable @0x13ff8ff00 QS variable memory size =3D 16768 Given # max threads =3D 128 Current # threads =3D 2 Registered thread ID mask =3D 0xc0 Token =3D 1 Quiescent State Counts for readers: thread ID =3D 2, count =3D 0, lock count =3D 0 thread ID =3D 3, count =3D 0, lock count =3D 0 Test rte_rcu_qsbr_thread_online() Test rte_rcu_qsbr_thread_offline() Functional tests Test: 1 writer, 1 QSBR variable, simultaneous QSBR queries Test: 10 writers, 5 QSBR variable, simultaneous QSBR queries rte_rcu_qsbr_init(): Invalid input parameter rte_rcu_qsbr_thread_register(): Invalid input parameter rte_rcu_qsbr_thread_register(): Invalid input parameter Segmentation fault [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib/libthread_db.so.1". Core was generated by `./build/app/test -c 0xffffff'. Program terminated with signal SIGSEGV, Segmentation fault. #0 rte_rcu_qsbr_thread_online (thread_id=3D, v=3D0x0) at /h= ome/jerin/dpdk.org/build/include/rte_rcu_qsbr.h:238 /home/jerin/dpdk.org/lib/librte_rcu/rte_rcu_qsbr.h:238:7712:beg:0x564df4 [Current thread is 1 (Thread 0xffff9c06d900 (LWP 1938))] (gdb) bt #0 rte_rcu_qsbr_thread_online (thread_id=3D, v=3D0x0) at /h= ome/jerin/dpdk.org/build/include/rte_rcu_qsbr.h:238 #1 test_rcu_qsbr_reader (arg=3D) at /home/jerin/dpdk.org/ap= p/test/test_rcu_qsbr.c:641 #2 0x0000000000652430 in eal_thread_loop (arg=3D) at /home/= jerin/dpdk.org/lib/librte_eal/linux/eal/eal_thread.c:153 #3 0x0000ffffa13a756c in start_thread () from /usr/lib/libpthread.so.0 #4 0x0000ffffa11e301c in thread_start () from /usr/lib/libc.so.6