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 2201FA0C4B; Tue, 9 Nov 2021 11:00:50 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0FC6740E28; Tue, 9 Nov 2021 11:00:50 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 3619E40E03 for ; Tue, 9 Nov 2021 11:00:48 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 1A93ClVU014212; Tue, 9 Nov 2021 02:00:44 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=UhNtFglkvu2TrvaorbyD4xroTTR8jdXKY6e0lVmxGQs=; b=QuaPdKW5Q9flzjhx/opS/AMlAb79OuOM6F3EsKToDiXGoyFNncZP/gfZo6vZLNVToE5t IyH+ea9M5xZ6rYzA7HPFnsGeJHqJeDIukmqnCmeUR9KmPGZMjOtWEHgD3AQvQtwx9Sva RDYMtInc0OCkkTFzvhewtSmHzdDldOLY14gwVhWWcX1fflMQ9JzOI0v0fXvp2yQDnsvz qFZu/8BkOkEKUYiHRHmFJGkIzwqsHITYAggvVpjALgeTO2+F5wGesaPODcVPSVRqssG4 GqY/adhtr4bxlHaXoiVEa4b4i2jEWxOAunT3i8+DmUmwmwWF8wDn8PsjzN3HDXfKcDGW HQ== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3c7gvg1mpp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 09 Nov 2021 02:00:44 -0800 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Tue, 9 Nov 2021 02:00:43 -0800 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.18 via Frontend Transport; Tue, 9 Nov 2021 02:00:43 -0800 Received: from localhost.localdomain (unknown [10.28.34.39]) by maili.marvell.com (Postfix) with ESMTP id 44E3C3F7074; Tue, 9 Nov 2021 02:00:41 -0800 (PST) From: Volodymyr Fialko To: , Bruce Richardson , "Anatoly Burakov" CC: , Volodymyr Fialko , "David Marchand" , Ruifeng Wang Date: Tue, 9 Nov 2021 10:59:52 +0100 Message-ID: <20211109095952.762109-1-vfialko@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211108134547.3286191-1-vfialko@marvell.com> References: <20211108134547.3286191-1-vfialko@marvell.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-GUID: RXaz_BDAUol_m0dShTBWpzLNUDIAQG0I X-Proofpoint-ORIG-GUID: RXaz_BDAUol_m0dShTBWpzLNUDIAQG0I X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475 definitions=2021-11-09_03,2021-11-08_02,2020-04-07_01 Subject: [dpdk-dev] [PATCH v3] eal/arm64: support ASan X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" This patch defines ASAN_SHADOW_OFFSET for arm64 according to the ASan documentation. This offset should cover all arm64 VMAs supported by ASan. Signed-off-by: Volodymyr Fialko Reviewed-by: David Marchand Acked-by: Jerin Jacob Acked-by: Ruifeng Wang --- Changes since v2: - added a comment that describes origin of the ASan shadow offset Changes since v1: - changed the subject - rewrite checks in "elif" manner --- config/meson.build | 2 +- doc/guides/prog_guide/asan.rst | 2 +- lib/eal/common/malloc_elem.h | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/config/meson.build b/config/meson.build index 17b5bec406..7eb710c08d 100644 --- a/config/meson.build +++ b/config/meson.build @@ -428,7 +428,7 @@ if get_option('b_sanitize') == 'address' or get_option('b_sanitize') == 'address dpdk_extra_ldflags += '-lasan' endif - if is_linux and arch_subdir == 'x86' and dpdk_conf.get('RTE_ARCH_64') + if is_linux and arch_subdir in ['x86', 'arm'] and dpdk_conf.get('RTE_ARCH_64') dpdk_conf.set10('RTE_MALLOC_ASAN', true) endif endif diff --git a/doc/guides/prog_guide/asan.rst b/doc/guides/prog_guide/asan.rst index 6d1b871c93..28b2382fc7 100644 --- a/doc/guides/prog_guide/asan.rst +++ b/doc/guides/prog_guide/asan.rst @@ -33,7 +33,7 @@ Example:: "stty echo" command when an error occurs. ASan is aware of DPDK memory allocations, thanks to added instrumentation. -This is only enabled on x86_64 at the moment. +This is enabled on x86_64 and arm64 at the moment. Other architectures may have to define ASAN_SHADOW_OFFSET. Example heap-buffer-overflow error diff --git a/lib/eal/common/malloc_elem.h b/lib/eal/common/malloc_elem.h index 262d69bb3e..de14d22a62 100644 --- a/lib/eal/common/malloc_elem.h +++ b/lib/eal/common/malloc_elem.h @@ -104,8 +104,14 @@ malloc_elem_cookies_ok(const struct malloc_elem *elem) #ifdef RTE_MALLOC_ASAN +/* + * ASAN_SHADOW_OFFSET should match to the corresponding + * value defined in gcc/libsanitizer/asan/asan_mapping.h + */ #ifdef RTE_ARCH_X86_64 #define ASAN_SHADOW_OFFSET 0x00007fff8000 +#elif defined(RTE_ARCH_ARM64) +#define ASAN_SHADOW_OFFSET 0x001000000000 #endif #define ASAN_SHADOW_GRAIN_SIZE 8 -- 2.25.1