From patchwork Sun Nov 17 19:36:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harman Kalra X-Patchwork-Id: 63067 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id DE01DA04C0; Sun, 17 Nov 2019 20:36:18 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E9068CF3; Sun, 17 Nov 2019 20:36:17 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id C34D2B62 for ; Sun, 17 Nov 2019 20:36:15 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xAHJZGCS024193; Sun, 17 Nov 2019 11:36:14 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=1TD44pEaD5O6P4bbRD+ARlTKAbxw69JmIzk8oGs32rE=; b=f85w7V46mYAeTfAp9njysumVvg2dfjUI0sMNLMvhxS6Vo8SvauxopFBSLiqGjF+3chX/ s9D1XGNXZOq9HZYOFl35aw7W4nYRq2oBEAr/roYX3OPKkp5qCLw4hSGX3J9INm2u6+j8 NWNFzVnjnWGwu5gboiI7eg4AbmYzbdpUX0hU6LaORjfG1vuNXY+KKNWfc0iX9Xd0PYZE 11h4a6njYXWgDgHQckr7PR8yqLsQmIo3wV08gAeqeCuR/XRDRemhn7LtkVb50DYZl8om qQjwsU0K28O6vniH7xNT9tq71DBsucPJxH4YnQ2P9StN4mEGMtvAseAXvEYD4vk9bXVz ag== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0a-0016f401.pphosted.com with ESMTP id 2wafbv43rh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 17 Nov 2019 11:36:14 -0800 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sun, 17 Nov 2019 11:36:13 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.36.55) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Sun, 17 Nov 2019 11:36:13 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fj+0MmdLbnWJhZxX8ZGef7uMaDl8ShMhGEYTlnjGG8+lvxcqUX4GuYAtwgJaeoYlJDFS3zkdcUAhfhso7sIPBLpwMidyuL7KgQz6Q4qaczLv/8UuR1xPBGD3hOjCRPVyKNUjvsTg4sdszf3eYQQhuACwMCRthtAL7Y87yDJ9p5o0NX9UgMWRAndwZK4orhnJyU37m+rTF2rAFjNZ6cvK9SrljEFOt4PhTcOnuoQLQDyUA70mXDgsjwhCR9qunAA0I4U4P3I/vUbCeKapcDh6wSt1Il3BAqTAIsoohUguTtJVa5RStlGZzWf4DAxGm8ap9vuzM41xiEErv2H/E8JZNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1TD44pEaD5O6P4bbRD+ARlTKAbxw69JmIzk8oGs32rE=; b=P8rfL+xNXsu2I5+kqgxrCqf1QAmShJMBRwGklPzLAfMNqjXe5hebXGyF2lBiR9oemFp0n+Ukk8j6n3POnZwxnQ7EInGq1DYBttTSK7J98EXGuyoZZduSRzNRDuQZXSlj9n5AXcmFOQcni/AAskn7g+aXO18phpA3cEFn1if3Z3cElM5Gqd1fLn7E+s1oZUH9wpYHh3Zq3jHWA2bpmiLDM+GQCws04N868ZMnCcjEvYkw7y0lRz75ymJ2y+h8eg0PwYEMP8brC8jPnjCdWEle97Vb5QJpGvE4ObkMFSXSTqRCqYjrPJUmFPO7ichW1r0T22LIaDJPuP5+BnvD8fz2rw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1TD44pEaD5O6P4bbRD+ARlTKAbxw69JmIzk8oGs32rE=; b=X/T6wmkVink57gBdKJ7VfOSDaZzwfJZfOiq510I9/xyLcSYuFDyY5VROh0q3u2yQcAukwg3kQy8fpM6JrIuKmqg+x6Qs9DclBYDRyVJgQznCgZQowEBGPeLYSWUigARxalYoWa/1TDpXWXQknfZpmw31QSQZFs5gfHFOsC8KHmw= Received: from MN2PR18MB2848.namprd18.prod.outlook.com (20.179.21.149) by MN2PR18MB2461.namprd18.prod.outlook.com (20.179.81.211) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2430.25; Sun, 17 Nov 2019 19:36:11 +0000 Received: from MN2PR18MB2848.namprd18.prod.outlook.com ([fe80::a8a7:cb5b:a6a6:9693]) by MN2PR18MB2848.namprd18.prod.outlook.com ([fe80::a8a7:cb5b:a6a6:9693%7]) with mapi id 15.20.2451.029; Sun, 17 Nov 2019 19:36:11 +0000 From: Harman Kalra To: Bruce Richardson CC: "dev@dpdk.org" , Harman Kalra Thread-Topic: [PATCH] eal: check for interrupt context Thread-Index: AQHVnX5EKluFIBHTE0CR9675rgLs2w== Date: Sun, 17 Nov 2019 19:36:11 +0000 Message-ID: <1574019355-27695-1-git-send-email-hkalra@marvell.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BM1PR0101CA0033.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:1a::19) To MN2PR18MB2848.namprd18.prod.outlook.com (2603:10b6:208:3e::21) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.7.4 x-originating-ip: [115.113.156.2] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f0ac9e0d-0a24-4d27-ec6e-08d76b956683 x-ms-traffictypediagnostic: MN2PR18MB2461: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2958; x-forefront-prvs: 02243C58C6 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(366004)(396003)(39850400004)(376002)(346002)(189003)(199004)(52116002)(6116002)(66066001)(66946007)(3846002)(86362001)(36756003)(64756008)(14444005)(256004)(66446008)(2906002)(316002)(5660300002)(102836004)(55236004)(2616005)(486006)(66556008)(54906003)(476003)(478600001)(186003)(6916009)(6506007)(386003)(26005)(14454004)(8676002)(81156014)(81166006)(99286004)(71190400001)(71200400001)(50226002)(66476007)(4326008)(8936002)(305945005)(7736002)(6512007)(25786009)(6436002)(107886003)(6486002); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR18MB2461; H:MN2PR18MB2848.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: BCL:0; x-microsoft-antispam-message-info: klLfVDXsJWevOwcxgSLOrBR80swhEZrE/RWf0IL8xEXwaGDNJMm+gOnuRZohEb2yspEoxIZ0kHtOjHgrFrPmRSDYnRdQ19zwW6b03RfeBCuCnUjY3IXlonUl5caGAY5MS4/sMugL4W5yGK1gWojRF8OkM42WDX7knWB8r93FVWKrZeOMu7PkBPjelUX5nRP7/6NRLK3R4GPcCrRghoRXoJ46w/gdB2r/0/nimEGgW4VYzGm+/zEUvUJ+V2uiUqd6rgKrl2YU3ZatLTV3sPLKRSXjZRqnEjCQhvYnLQkEWrCvGloXplqERVdMr+jXU93SiV59tssTBzHGwv1lT5Kp4RsdXc5xqSNrFhd16lkN5jhmfbuof43uMw4pEhfhCK4eiTGPHkXSpTHlSbHtEb++V6ogBg2jN+3X+52WMYcM3H9e1SRtz+LO5QTp4ul1RzIW MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: f0ac9e0d-0a24-4d27-ec6e-08d76b956683 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Nov 2019 19:36:11.2044 (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-CrossTenant-userprincipalname: 9NqUi2R5T/+K2Hyp81sVbUDXXQsHrii/OZSsbgPGshPMCOvlmWknOj/UGtyvGs4710AQIPdY8S7aaRFwoQzGKw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB2461 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,18.0.572 definitions=2019-11-17_05:2019-11-15,2019-11-17 signatures=0 Subject: [dpdk-dev] [PATCH] eal: check for interrupt context 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" Added an API to check if current execution is in interrupt context. This will be helpful to handle nested interrupt cases. Signed-off-by: Harman Kalra --- lib/librte_eal/common/include/rte_interrupts.h | 13 +++++++++++++ lib/librte_eal/freebsd/eal/eal_interrupts.c | 8 ++++++++ lib/librte_eal/linux/eal/eal_interrupts.c | 8 ++++++++ lib/librte_eal/rte_eal_version.map | 1 + 4 files changed, 30 insertions(+) diff --git a/lib/librte_eal/common/include/rte_interrupts.h b/lib/librte_eal/common/include/rte_interrupts.h index e3b406abc..1e64f5329 100644 --- a/lib/librte_eal/common/include/rte_interrupts.h +++ b/lib/librte_eal/common/include/rte_interrupts.h @@ -138,6 +138,19 @@ int rte_intr_disable(const struct rte_intr_handle *intr_handle); __rte_experimental int rte_intr_ack(const struct rte_intr_handle *intr_handle); +/** + * @warning + * @b EXPERIMENTAL: this API may change without prior notice + * + * Check if currently executing in interrupt context + * + * @return + * On success, returns 1, else 0 + */ +__rte_experimental +int +rte_thread_is_intr(void); + #ifdef __cplusplus } #endif diff --git a/lib/librte_eal/freebsd/eal/eal_interrupts.c b/lib/librte_eal/freebsd/eal/eal_interrupts.c index f6831b790..c60fd782a 100644 --- a/lib/librte_eal/freebsd/eal/eal_interrupts.c +++ b/lib/librte_eal/freebsd/eal/eal_interrupts.c @@ -671,3 +671,11 @@ rte_intr_free_epoll_fd(struct rte_intr_handle *intr_handle) { RTE_SET_USED(intr_handle); } + +int rte_thread_is_intr(void) +{ + if (pthread_equal(intr_thread, pthread_self())) + return true; + else + return false; +} diff --git a/lib/librte_eal/linux/eal/eal_interrupts.c b/lib/librte_eal/linux/eal/eal_interrupts.c index 1955324d3..516cbbfa8 100644 --- a/lib/librte_eal/linux/eal/eal_interrupts.c +++ b/lib/librte_eal/linux/eal/eal_interrupts.c @@ -1487,3 +1487,11 @@ rte_intr_cap_multiple(struct rte_intr_handle *intr_handle) return 0; } + +int rte_thread_is_intr(void) +{ + if (pthread_equal(intr_thread, pthread_self())) + return true; + else + return false; +} diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map index f1982f2f7..ab5dd5b47 100644 --- a/lib/librte_eal/rte_eal_version.map +++ b/lib/librte_eal/rte_eal_version.map @@ -427,4 +427,5 @@ EXPERIMENTAL { # added in 19.11 rte_log_get_stream; + rte_thread_is_intr; };