From patchwork Mon Nov 18 07:43:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Harman Kalra X-Patchwork-Id: 63075 X-Patchwork-Delegate: david.marchand@redhat.com 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 A7FEEA04B3; Mon, 18 Nov 2019 08:43:32 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E3DB9B62; Mon, 18 Nov 2019 08:43:30 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id B34199E4 for ; Mon, 18 Nov 2019 08:43:29 +0100 (CET) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xAI7eEJS029284; Sun, 17 Nov 2019 23:43:28 -0800 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=684Aoxs8d0IjYDf+SIdm4yjBt5AyS/OW56Ub+ZV/b+4=; b=IDs2EfcalB9mMv4WOv332ytS1ePMHrgrgFpjgmEJe5lIezxYwEFxZ01CfcTm2DbcSFa3 hv6tbEdYHhaS5osvUDmesusA309NNrVz7feQa9B3PiG5pk64lxbjxKJjlC8D4a/O0SlW /92QQaQJmfJBclhkkhNbkoG2UyYi/NiWJ5A1X1y6/l/80h7cT68kLGuiDHr2sEJ253bW 4oqTd3Q08p6lf0LFchgvzrr0/8tBfZJ1ov/+oW5vgj7HNufmX4b1n78os3eFvA94HxT3 Fgkw6YvjC9T5A95l6+d6HMymorrcXJDO6VMn3HTweX2hAWkLn/nHfwVvqGKm6j/jW3MQ qQ== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0b-0016f401.pphosted.com with ESMTP id 2wahgs5anx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sun, 17 Nov 2019 23:43:28 -0800 Received: from SC-EXCH04.marvell.com (10.93.176.84) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sun, 17 Nov 2019 23:43:26 -0800 Received: from NAM03-DM3-obe.outbound.protection.outlook.com (104.47.41.52) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Sun, 17 Nov 2019 23:43:26 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fmx0Spd8SZo7kf/3aVyfCTXR33lTMe5HU8mvc0yydiGDpYF9ggtem5zhFN1qOH8VznkdWlyCwIL7LlwRZxDtePvRxZFHcHaRMQMSiUiO9XtQ3bcs/6nyIrjTSzIjEavybKbrMccWIxh6eF4etaQCOZ4sF3mhDGTZgEkxuwQzBlE0/9lM9mNYH2tkJPvXd99yztY8wnWvl3/gwdJyRvExBEdtR2rfUmNE4a89vu7FSMRvzbHlNj69TClnDlXD7oyKcv2mTALClxxPeARYDIzatcudbCiDbvRBiEfasi/wseiizsgnzWpcmXZRjaAXVHdGYOGIehMkqPAlP5a/n1zl6Q== 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=684Aoxs8d0IjYDf+SIdm4yjBt5AyS/OW56Ub+ZV/b+4=; b=ZIdkCU+bNt3FVnywpmJVAsSWQxXu6b5kCzFlZ9txcNlG+svh7VNwAj9S6Diy1P9tKnBjvjy9REn/qm42C+wDus/tPfKFNoLlVYuOgpOZYJOZN9FTjyY2lNIh8RIYzjybM71IKqlGB9l+D46C6mGcLDecQzp21bbzR1HADE6Kr6+7xIouKYwLoLcTiX2D3HcsdYeaGIRJU1w3d+zp8d9vlQ7HfkrjtNjnZQTFc0vV4AmoJ3PfNDtj0zsF0uJ0NSSU+lfGkN4yhoJY9o0uPmevsO8Mx7moUqWOYhr4FePoJL/O5VZufBKuWyu8WLXY9xHf98GD1xWOdjTuZ64EsuHXyg== 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=684Aoxs8d0IjYDf+SIdm4yjBt5AyS/OW56Ub+ZV/b+4=; b=Nc0I/wmpgwUF/9Vr5Lkrnn5J6Sc8bBkua52+d5yqgxXj8krrVTn3RkJdJ6GG1bwmxezzg0zHb4tyV0Evyj/jwXT1NwBudwnOQmEMJkLcprGfMwAa0pLoWcV6juUxLWxF38mFGEEgPuOKdQZ/ifu70RF4amMvx3yiKU/yMhq2mgY= Received: from MN2PR18MB2848.namprd18.prod.outlook.com (20.179.21.149) by MN2PR18MB2640.namprd18.prod.outlook.com (20.179.81.96) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2451.30; Mon, 18 Nov 2019 07:43:25 +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; Mon, 18 Nov 2019 07:43:25 +0000 From: Harman Kalra To: "stephen@networkplumber.org" , "Bruce Richardson" CC: "dev@dpdk.org" , Harman Kalra Thread-Topic: [PATCH v2] eal: add API to check if its interrupt context Thread-Index: AQHVnePbcmBbmttqMUW4gxMcLhHkFQ== Date: Mon, 18 Nov 2019 07:43:24 +0000 Message-ID: <1574062926-14099-1-git-send-email-hkalra@marvell.com> References: <20191117120351.0f9b24d0@hermes.lan> In-Reply-To: <20191117120351.0f9b24d0@hermes.lan> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: PN1PR01CA0095.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c00::11) 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: 207287ed-5667-4f1f-bfab-08d76bfafe29 x-ms-traffictypediagnostic: MN2PR18MB2640: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3276; x-forefront-prvs: 0225B0D5BC x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(346002)(376002)(39850400004)(136003)(396003)(366004)(199004)(189003)(256004)(14444005)(478600001)(99286004)(107886003)(486006)(76176011)(66446008)(66556008)(64756008)(6512007)(476003)(2616005)(11346002)(446003)(14454004)(52116002)(6486002)(6436002)(86362001)(66476007)(66946007)(54906003)(110136005)(386003)(5660300002)(2501003)(55236004)(71200400001)(71190400001)(305945005)(81166006)(8676002)(7736002)(316002)(50226002)(6506007)(8936002)(102836004)(81156014)(4326008)(25786009)(26005)(36756003)(2906002)(66066001)(6116002)(3846002)(186003); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR18MB2640; H:MN2PR18MB2848.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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: RxiS9Fh6vrdWPLhd2qVkwF2ZqGsrhZ4qnkxfGKf/w8xSMab8B2Z0QmUFnrXSGOizq/48VgJASrExqsoqpQmMePbw9hU7wx4+PXr7rJ+9K7f42txKr5CpNmM5G19xgdBxi8k51+1ENxNi5Hx28Ks4C2HyOn7Ssj3il3e84bKCHuinvl6xoK7p9HFhjK8180lZ50Ev1+m5N/vNM1lScK0xGDroCAZvDVdyYWyeSkKoh3W5TnFXNiiZfa3iyqffNf2U7tjxPGbnS4rs6OpSwjva0jBeVP+iPwI4mhTVRc+RfWAJCOQqtJYu1+MukWTSSx4ybpZI+dciC8E31s3fxJHkzehj5pQJX+/Isk0bNy6NCUlIRR0FfgtZoBdnuHQGyv1RfdnqTTO5yisrbwlggFiX3JMudHKDiZLvUZjB5OTLMel6ld7hBvUBUzvbkZYqhXqz MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 207287ed-5667-4f1f-bfab-08d76bfafe29 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Nov 2019 07:43:24.9417 (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: Ghc22IE023iROFVljpzPC9y+SKhS65P3XPuGIzi48XJ0Fta8U0PbYNeizdW5rdorIVpUtlN5TLtjLiOsg1eRHw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB2640 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,18.0.572 definitions=2019-11-18_01:2019-11-15,2019-11-17 signatures=0 Subject: [dpdk-dev] [PATCH v2] eal: add API to check if its 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 --- V2: * Removed unnecessary if statement. * Reworded subject line * Updated return values of API lib/librte_eal/common/include/rte_interrupts.h | 15 +++++++++++++++ lib/librte_eal/freebsd/eal/eal_interrupts.c | 5 +++++ lib/librte_eal/linux/eal/eal_interrupts.c | 5 +++++ lib/librte_eal/rte_eal_version.map | 1 + 4 files changed, 26 insertions(+) diff --git a/lib/librte_eal/common/include/rte_interrupts.h b/lib/librte_eal/common/include/rte_interrupts.h index e3b406abc..0a82e28a8 100644 --- a/lib/librte_eal/common/include/rte_interrupts.h +++ b/lib/librte_eal/common/include/rte_interrupts.h @@ -138,6 +138,21 @@ 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 + * - positive in case of interrupt context + * - zero in case of process context + * - negative if unsuccessful + */ +__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..ce2a27b4a 100644 --- a/lib/librte_eal/freebsd/eal/eal_interrupts.c +++ b/lib/librte_eal/freebsd/eal/eal_interrupts.c @@ -671,3 +671,8 @@ rte_intr_free_epoll_fd(struct rte_intr_handle *intr_handle) { RTE_SET_USED(intr_handle); } + +int rte_thread_is_intr(void) +{ + return pthread_equal(intr_thread, pthread_self()); +} diff --git a/lib/librte_eal/linux/eal/eal_interrupts.c b/lib/librte_eal/linux/eal/eal_interrupts.c index 1955324d3..c00f5a575 100644 --- a/lib/librte_eal/linux/eal/eal_interrupts.c +++ b/lib/librte_eal/linux/eal/eal_interrupts.c @@ -1487,3 +1487,8 @@ rte_intr_cap_multiple(struct rte_intr_handle *intr_handle) return 0; } + +int rte_thread_is_intr(void) +{ + return pthread_equal(intr_thread, pthread_self()); +} 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; };