From patchwork Tue May 21 02:27:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Mezentsev X-Patchwork-Id: 90505 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 148293858D34 for ; Tue, 21 May 2024 02:27:51 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id CDADD3858D1E for ; Tue, 21 May 2024 02:27:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CDADD3858D1E Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CDADD3858D1E Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1716258442; cv=pass; b=ch1+CSWPTMaWll+BqK4Y8JfRqf2tRRnsjtnhmw8L7Mz8ky6G0p8Tul6czzt5cWmza+genH6MHYUzCYCtSrVd60XlF/ro5dT04aApqz3YQVxl2sepo978kTh6yRip1lWmMu1B2XkSypR4IeYvMm6EKc/z/15yCHPYXfHTUBLc3OM= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1716258442; c=relaxed/simple; bh=6lr4XqlokfSs9AQEYaWJUcx3FqKcE3ceVUUNyTPITAU=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-Id: MIME-Version; b=Pkufvcf4aRNIL+DrJbfQAlqO/qGbc5vT//lD4CegSvH303LxNJ6x4mt3xvstkJKT9acsa/GajiFaP1r48y3kqO+BZ+bF1uOXTkgZC1OTBUzW73fy5z2G/xnsnc5P6XEgErSFSDDJgoClH7/uet0dEDF2KRXrlAeJotJISL5GndE= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 44KMxVNm001843 for ; Tue, 21 May 2024 02:27:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=HYuiUDIKW337JKkrBkM3aQqozIP5KCuHjT9KUCRpKSk=; b=fgjRZT6K6blWC8+cQZuNONkeqMZUNEt+q7Q28BfOoiTeGTw5Q+SCnKhvbf+YCchp2hM/ DrkG+8HqcpMF8rQdDVO01lFy860rPWWBtyEt0UI9VG8/sG4WPZfalvbEFn0qKNK17k9u va/P0LgnlbbVAcRqQIJfJgeunHvTu/4KpQSkMCBN8+AwWt8KzOqom6ZtHM8Tj31WLsw4 zk/Wp6oohR+7CtcpdCk4ysWAV1Skdlp7VPyNtbGk4KkqmJhyDu/VIYcxMJ7VrkmPtklf 3uPDtd9larWxcdLkZkCNWn7cUMRUpqn1NTDh+CXPoPrSWcpt0JGZdOaOQezl3H/dvvRx 0w== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3y6mvv40mu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 21 May 2024 02:27:18 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 44L0EXeI004967 for ; Tue, 21 May 2024 02:27:17 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2168.outbound.protection.outlook.com [104.47.55.168]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3y6js77qgu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 21 May 2024 02:27:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WavaDCpLy4hSScIYsc/hn9hjdHWFD/cOtUl3iiSvRxH3co0mu1H2bc28pF+7GNmZiTIERoq55lXK8bUccUsfiMmq6bjFg1InGR4SXSb+xsGuDdKY3fAo7hLQGGH0vg98X/LBIgRRm2c/Ji/1r19IjXtVf9xpPrcYQ6KcEGFyocHQKYudAcgRXl5LA3lkFkV4sqXYWyDD0pZEv5oifP5YfytPlot6Jh0y8mBmABo3FDR/fSqOkxAzl02Krg/B0pbUPscr4/5twOGWRUjJU8S36pQfXBk3Aw3yQEaSJUb0v0seW1xeHXoHxoAil9BF0P3npeTdNunrYP8Uj7Qm1iHlXg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HYuiUDIKW337JKkrBkM3aQqozIP5KCuHjT9KUCRpKSk=; b=OoJCNT/pO7ErQltRxmo38Nwxj+f5wWYMNo9EjWPkWFzMKSf9fQ75EFattzGHczlDUZIZHyf4s5Nsx9PyxixriDLq8iyMsOEFV7bkWDj1S7Nr7/gUUYy3v2ZK8PqyRLvOKhmeANMiDaIlpkm+5E2y7B3E7DAPdZzeHu93/VJbqdiAooORc36nDcGg09E2foLBchBJStO1bUX8oCZGiM0rl51OJgHoUSvun4YQQ2BN4CnpE//EfY1X6Gi5ZX8G5k65kaGd6CB57zpR03ZNaLkXYxiujwekVz9Up8cCrC4lQA7MiyBxZF8kKvpYWDAYcnu3ajv4EZRv0mPwTyJclqXPbA== 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=HYuiUDIKW337JKkrBkM3aQqozIP5KCuHjT9KUCRpKSk=; b=yEPF4SM9dsWHezZjrMqj4SFOvOoyITxdzsFjZHwQPKxI+C/ZER7wS0uBAH664wY+s/bq9VYEySIn8ddu+ecTCpLIYvYZzEj0EdpcL80RPTv/KA6psyoH6aZjPN9dTgsKw1GgoXXWu+RT2L7QNwshvnQ9LwsTeVZ0lhAOX598eWo= Received: from SA2PR10MB4636.namprd10.prod.outlook.com (2603:10b6:806:11e::10) by DS7PR10MB5152.namprd10.prod.outlook.com (2603:10b6:5:3a9::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36; Tue, 21 May 2024 02:27:15 +0000 Received: from SA2PR10MB4636.namprd10.prod.outlook.com ([fe80::1b3d:bd64:9100:c3fb]) by SA2PR10MB4636.namprd10.prod.outlook.com ([fe80::1b3d:bd64:9100:c3fb%7]) with mapi id 15.20.7587.035; Tue, 21 May 2024 02:27:14 +0000 From: vladimir.mezentsev@oracle.com To: binutils@sourceware.org Cc: Vladimir Mezentsev Subject: [PATCH 1/3] gprofng: remove memset() in libcollector Date: Mon, 20 May 2024 19:27:05 -0700 Message-Id: <20240521022705.3876143-1-vladimir.mezentsev@oracle.com> X-Mailer: git-send-email 2.31.1 X-ClientProxiedBy: MN2PR17CA0022.namprd17.prod.outlook.com (2603:10b6:208:15e::35) To SA2PR10MB4636.namprd10.prod.outlook.com (2603:10b6:806:11e::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PR10MB4636:EE_|DS7PR10MB5152:EE_ X-MS-Office365-Filtering-Correlation-Id: b7fa322e-1197-4f53-36d8-08dc793d871d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|366007|376005|1800799015; X-Microsoft-Antispam-Message-Info: Kyu6oD7lDbrfu2jJhG8mlZvFhsIlBZ2dequbm6DGDVsw7wWxs0XmQJv6V08jBlT4zfu134kIm27I//jXkb4aAkopWSwscK3PekpCDsr2Pyakn0jCbANwVpiYPJF5W5neGkin98PEsmzhm09o914E8z33Xhkt5kBtS327oi7KJvCnGmeFllb6WCwsQvWwAheZOiK/WHh4bLskYh8AEQLpJ22fU41tQ3CaneNz3HfCyMJsqAkIQXxDBFee5WmSAzTwDVnDOLehKHm29/+EddCH9j2JQ4oTs+CnzZm0RJtMxsvbkxbOOkr/8bjv8V77ljU0dvVsZLIEu4cbnQnX+Xfmn1vhRg1X2M236J0s4EBVCXIhkWyjqvNdwcWiBX46aricbzvxN9/oqfs+EawqVazgJ0kkmgkNm6GbuuYcEMIS7KEKa3VzjOm1KSxEq1VdWrnQqJ3qSf0KnH+e8wdbAu2JOnzrul++hFx7XwhnXmTNUTK031ruVo39VocG2v4wN7rGmI//F+0SZ9M1FU4AHlaBdbzNw5f1LqnwO1ovXZbOS2nPt8H9o9m54EtGJfjQvd2uaZVXypeoyMtT7MT+RWhjUjydNJMbPTTg8Vo65IHuY7dt7NfE4JOUywOGdVQ79PY4zvJak3STqrUoE73rru4z4c84XovNeZTOvHCL3q9G9mLrMQ6PVX+Htmfp18VS1GmzLLrsB4/H6+QWky4l6GUztcnjdWED6mLJ39/rusVCY6eYLmj/swXp7EPxzzFvj8v3rzi3LolU0CEoqRuVCRGMkxes/FP7f+lLCtmc2OTgDFt2HPbQaBRGGYeCoeb8ns9HClvP+dWLB04ItY7cTrvxFauK/Wa47lD8BJAcV3nPxXBtrHoGFeAHoeW3A/cqop9iHMEaKP+fNjlSdpPFEF/L6SfkE6Pp3ZZ1DygHM9ATwvfax8Kq/erU+aSAJMeUAAV8ZJQxYdqmShtB9PWM9N4olI2aqRVTh59o4W40azOF3zpM6OvX7l10Y6HUOG2M5BzfORwvKskRAarPf/x34ABiL/ghCXxunANyZe3eNuIga2KOpY2m7qD3IBEmm98v2cIMZaRn8PM/6wWxQFwA4ErNyRF+/vm5y0zTBk86vr8LyP7QDW9XABapFL3B64E7WifyBxc50dTwxJqXvGWJm6pVjo8DnvS7LXGb64MlnzyTq8czCf6xmUk8u+L/A6AnNfjKyT0P5PkjC4EZbViAu4yHb2BfcnhAKK1Z4Ttrmpa53Asu50BS9Cnf9R0jb0TOkwpSWmZwgWFhD7KFJUFKVxkPIA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR10MB4636.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366007)(376005)(1800799015); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: I6aMBpZroPnF74ULRTGVJnFjzZwjUprXbiBK6NoOfzX3BCzfVEVt7KGppPvA//tGk7Mzm49dX6tBfffSVAA26bTloLQPPh+/kPAh/6OTPEGCh8NnIdZrscGikkdxn2EDt2o2xVGER+1XzJ0r/q/UrebsDb+6EZxBInw4M7EFSXgHVxv4w9PADZKsBWowQq2HDekM1YZJfPDv/y7unQMOWdAsCQUaproeoqN7ewzpQcRh3cz6STWYOnlGHXVnqomzstISatqM3wIA86uqExZa6q2Tm83z+zZrYjQOpX5+nN6gG3IhO92729Ww3u3XuSzcq4dFNDPLVwinIe8rXZ+95SDA+qtRCfJDeIFVFq7o1/0s6DUEW8KIPaOKQoC/U9V+7snPWRKz04ME73cVsYuvuyHJx3Mgai5tGdcjzIXk2gDNLXk3UmFV6Zg0Axp40Jh/W/27dkxXfIZ0eZr2Z/2QSZHBsrS0cpOQmJvgkS0aLUT8iOQ+0/0BthK5dAcvM7ZcNbNASioBAwlj4Zp3EYtH5HHhMLdx1r8IlaZrE2hfBd3wj1UyI0mKIWo/TcNb2RChNoH5oixmg3D68jfiv9UrXrA06LpHeKd+4R3+rSfWkioFi50Pox2EnIsc0Rb+kYOupue/kQ0A1srpxhHUSkNnqnTZ2v7aU39FtatcssLu7LG78PmXyMKXfbW0bqA+RVc9GiSR4vaFLwdD1rw/qzrlcntn9OrZUBI7IO9iF/NcxXu8XjN2clLShUgYQL6guWq0e2qObbXjwrIUP0EnAH0YETC61yO+CnWTdE8+DcdhAogjPZ6B4JIqEyH+h8f+8CcG1E/wOP3UPLT9I+zfIjjWeSOVfnj6R+uT9RFAsHfrN+DsAUjJxQXPE0cIf7zI3Q3s7sFA3o4ZbpGzOu2jFQn9Mc6eTo7nwSCKxmDGUusV9lsEtCTAJUqLyAl/oC9ZEyc8ZDzD50OOWUB0p1IrbGUaqfL+wa2oieWUoM25xcPSLU+b4whyp6lnFMrAlD1+vmmO6x+IN3KmDLc8Vr08Qpr75AiMeyimWQA+4WTjqL0miLRgWfJojMVorkw/XGhpSzV9bLHlLOgrY+GpsI1GoLmKZmFeEQsO3CAg+uV+wSzRxSB/nzMw5cc0m8rNdEMHmCjnrgtqtQ/UEEPuKYC4bplDHKiMdXzejgk1ioUtzJRzLYoqe8AiGmD4ErUbDzuUNBsgeW4cH7I/cr4NZ8sVI+prARBrM6G+tugoqMsCbkF9ny4ys+DrKca3MF9TnCjWAzRXgZh6O/r4UbgPXfT0oEaPwp8La7ZW30U6caK+Mwgoh66lgR+EBj5p9Dl0aUfXwCAYzF8cS9EmzVVnhItyBk9Brr7OCAte/UirWfUg5v21ruioGX9TckJC9hD2WwAYWpoA2Dnj1al/Pm4D5thJ4DYkQ34ahD+uGWUWjF8xbYCOUWwzDliqCsYXZdNSQjsas5JfvJq1lk6vSZ+P3fBhbKjEmEi9C12i/NEBW3j4RFkXUhcHfF5H2nXkHiJfbe4j/UffZ9emM9JUO6Pen4xh17WkqrA4H5qxvcDeOV8qcIC17LoC5WIECLzGwL7V6IKYvBOjVP/oQdXqjXTONGc8aynV3Y96ukJeGoanLHChycqVIIhbQH520UpRZFyqYnHkCGOq X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: QQLCbk6L4X9cTua33N2ZmbiRjg/Fugn+qPWBFn6NIvtvl0w81MJMmjL55wmCvjHaY289CfKjKRMkvwIMIOnLRaHaWW4oYPxyxAEad7axiODEWtNDdJ+EBiHmOcjSaOl6V+TJbkYAWsUDR4l/okjLz8vWKnG/xEinhZ/+N1LiPyAsk+zdd7zlgkMY9/ArHmXjnYiZHMUGygY9KDeOLo0s5J3KbMC2LM+LPC5j2ZanSwwMqh9aUb5OV6Dsmg4Ox7P/Ydl1yjv1An1zPD/zoPJOua0vtnVviUyUZ0AMbHcny7mwSQUoLUFrSwgA2tZF/1UGmv+KtOc+ZhUpP5oXVHJ7mK8EmmvB3rBQE3wL7k+LeYHmoxqF+D1a1z4f/8K8dhEtrlosDTcQoVv1VHZ2NtCAO+Bu1Tnb5heQtOncSutHBzSfnhHbGSDhyWXOEHv2KutkYt3sD2aGJOZwxLzOBm/0ZbDQVf5BjzcO7aKZqk2dGirJ5qAaFE/k4hFtCR3TwJFfXKniBJxu+8UJyMBnsHRu6naUAh8dZvlS7Lr9lDf3wD70D8J9MM3rzskPl98STX1hLGYYntVdqS5Q+u4wXuTS2szGaq98/ZCLIN0Mghbnq/k= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b7fa322e-1197-4f53-36d8-08dc793d871d X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4636.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2024 02:27:14.8774 (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: mja2XachndVkEQBajrQIsMlrRyp4VTR3zxbGgw21IP+k3QzcYg3c7QJehu1+dk69hKBjCeHAoBneO6KL5INc/kUMrYCHZ/jSLHbY632WKnQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5152 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.650,FMLib:17.12.28.16 definitions=2024-05-21_01,2024-05-17_03,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 suspectscore=0 mlxscore=0 adultscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2405010000 definitions=main-2405210018 X-Proofpoint-ORIG-GUID: UJL0ZVyu8aSRtrqmzCMygFD98gX8nMY4 X-Proofpoint-GUID: UJL0ZVyu8aSRtrqmzCMygFD98gX8nMY4 X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org From: Vladimir Mezentsev ChangeLog 2024-05-20 Vladimir Mezentsev * libcollector/collector.c: Use static initialization instead of memset. * libcollector/dispatcher.c: Likewise. * libcollector/hwprofile.c: Likewise. * libcollector/jprofile.c: Likewise. * libcollector/profile.c: Likewise. * libcollector/synctrace.c: Likewise. --- gprofng/libcollector/collector.c | 10 ++++----- gprofng/libcollector/dispatcher.c | 7 +++---- gprofng/libcollector/hwprofile.c | 12 +++++------ gprofng/libcollector/jprofile.c | 4 ++-- gprofng/libcollector/profile.c | 7 +++---- gprofng/libcollector/synctrace.c | 34 +++++++------------------------ 6 files changed, 24 insertions(+), 50 deletions(-) diff --git a/gprofng/libcollector/collector.c b/gprofng/libcollector/collector.c index 39529758600..3a8f27a719d 100644 --- a/gprofng/libcollector/collector.c +++ b/gprofng/libcollector/collector.c @@ -1344,10 +1344,9 @@ __collector_close_experiment () return; } - struct sigaction sa; - CALL_UTIL (memset)(&sa, 0, sizeof (struct sigaction)); + static struct sigaction sigaction_0 = {.sa_flags = SA_SIGINFO }; + struct sigaction sa = sigaction_0; sa.sa_sigaction = __collector_SIGCHLD_signal_handler; - sa.sa_flags = SA_SIGINFO; __collector_sigaction (SIGCHLD, &sa, &original_sigchld_sigaction); /* linetrace interposition takes care of unsetting Environment variables */ @@ -2319,7 +2318,6 @@ ovw_write () return 0; int fd; int res; - struct prusage usage; struct rusage rusage; hrtime_t hrt, delta; @@ -2335,9 +2333,9 @@ ovw_write () return ( hrt); } - CALL_UTIL (memset)(&usage, 0, sizeof (struct prusage)); + static struct prusage usage_0 = { .pr_count = 1 }; + struct prusage usage = usage_0; usage.pr_lwpid = getpid (); - usage.pr_count = 1; usage.pr_tstamp.tv_sec = hrt / NANOSEC; usage.pr_tstamp.tv_nsec = hrt % NANOSEC; usage.pr_create.tv_sec = starttime / NANOSEC; diff --git a/gprofng/libcollector/dispatcher.c b/gprofng/libcollector/dispatcher.c index d2a4ad0b60b..8b8ad77b5ee 100644 --- a/gprofng/libcollector/dispatcher.c +++ b/gprofng/libcollector/dispatcher.c @@ -109,6 +109,7 @@ enum DISPATCH_TST = 2 /* dispatcher installed, and enabled in testing mode */ }; +static struct sigaction sigaction_0; static int dispatch_mode = DISPATCH_NYI; /* controls SIGPROF dispatching */ static int itimer_period_requested = 0; /* dispatcher itimer period */ static int itimer_period_actual = 0; /* actual dispatcher itimer period */ @@ -263,8 +264,7 @@ __collector_sigprof_install () TprintfT (DBG_LT1, "dispatcher: __collector_ext_dispatcher_install() collector_sigprof_dispatcher already installed\n"); else { - struct sigaction c_act; - CALL_UTIL (memset)(&c_act, 0, sizeof c_act); + struct sigaction c_act = sigaction_0; sigemptyset (&c_act.sa_mask); sigaddset (&c_act.sa_mask, HWCFUNCS_SIGNAL); /* block SIGEMT delivery in handler */ c_act.sa_sigaction = collector_sigprof_dispatcher; @@ -358,8 +358,7 @@ void __collector_SIGDFL_handler (int sig) { /* remove our dispatcher, replacing it with the default disposition */ - struct sigaction act; - CALL_UTIL (memset)(&act, 0, sizeof (act)); + struct sigaction act = sigaction_0; act.sa_handler = SIG_DFL; if (__collector_sigaction (sig, &act, NULL)) { diff --git a/gprofng/libcollector/hwprofile.c b/gprofng/libcollector/hwprofile.c index 364c600968a..cfe0d84dc1e 100644 --- a/gprofng/libcollector/hwprofile.c +++ b/gprofng/libcollector/hwprofile.c @@ -32,7 +32,6 @@ #include #include "gp-defs.h" -#define _STRING_H 1 /* XXX MEZ: temporary workaround */ #include "hwcdrv.h" #include "collector_module.h" #include "gp-experiment.h" @@ -409,8 +408,8 @@ hwc_initialize_handlers (void) else { /* set our signal handler */ - struct sigaction c_act; - CALL_UTIL (memset)(&c_act, 0, sizeof c_act); + static struct sigaction c_act_0 = {.sa_flags = SA_RESTART | SA_SIGINFO}; + struct sigaction c_act = c_act_0; sigemptyset (&c_act.sa_mask); sigaddset (&c_act.sa_mask, SIGPROF); /* block SIGPROF delivery in handler */ /* XXXX should probably also block sample_sig & pause_sig */ @@ -531,8 +530,9 @@ collector_record_counter_internal (ucontext_t *ucp, int timecvt, uint64_t va, uint64_t latency, uint64_t data_source) { - MHwcntr_packet pckt; - CALL_UTIL (memset)(&pckt, 0, sizeof ( MHwcntr_packet)); + static MHwcntr_packet hwc_packet_0 = {.comm.type = HW_PCKT, + .comm.tsize = sizeof (Hwcntr_packet)}; + MHwcntr_packet pckt = hwc_packet_0; pckt.comm.tstamp = time; pckt.tag = tag; if (timecvt > 1) @@ -547,8 +547,6 @@ collector_record_counter_internal (ucontext_t *ucp, int timecvt, value *= timecvt; } pckt.interval = value; - pckt.comm.type = HW_PCKT; - pckt.comm.tsize = sizeof (Hwcntr_packet); TprintfT (DBG_LT4, "hwprofile: %llu sample %lld tag %u recorded\n", (unsigned long long) time, (long long) value, tag); if (ABS_memop == ABST_NOPC) diff --git a/gprofng/libcollector/jprofile.c b/gprofng/libcollector/jprofile.c index 2cabb1a08de..cd498bed0a3 100644 --- a/gprofng/libcollector/jprofile.c +++ b/gprofng/libcollector/jprofile.c @@ -361,8 +361,8 @@ JVM_OnLoad (JavaVM *vm, char *options, void *reserved) err = (*jvmti)->GetPotentialCapabilities (jvmti, &cpblts); if (err == JVMTI_ERROR_NONE) { - jvmtiCapabilities cpblts_set; - CALL_UTIL (memset)(&cpblts_set, 0, sizeof (cpblts_set)); + static jvmtiCapabilities cpblts_set_0; + jvmtiCapabilities cpblts_set = cpblts_set_0; /* Add only those capabilities that are among potential ones */ cpblts_set.can_get_source_file_name = cpblts.can_get_source_file_name; diff --git a/gprofng/libcollector/profile.c b/gprofng/libcollector/profile.c index 127fd6917bb..f6546235365 100644 --- a/gprofng/libcollector/profile.c +++ b/gprofng/libcollector/profile.c @@ -272,10 +272,9 @@ __collector_ext_profile_handler (siginfo_t *info, ucontext_t *context) CALL_UTIL (getcontext) (context); /* initialize dummy context */ SETFUNCTIONCONTEXT (context, &__collector_lost_profile_context); } - ClockPacket pckt; - CALL_UTIL (memset)(&pckt, 0, sizeof ( pckt)); - pckt.comm.tsize = sizeof ( pckt); - pckt.comm.type = CLOCK_TYPE; + static ClockPacket clock_pckt_0 = {.comm.type = CLOCK_TYPE, + .comm.tsize = sizeof (ClockPacket)}; + ClockPacket pckt = clock_pckt_0; pckt.lwp_id = __collector_lwp_self (); pckt.thr_id = __collector_thr_self (); pckt.cpu_id = CALL_UTIL (getcpuid)(); diff --git a/gprofng/libcollector/synctrace.c b/gprofng/libcollector/synctrace.c index a304188e396..2f3097fb4da 100644 --- a/gprofng/libcollector/synctrace.c +++ b/gprofng/libcollector/synctrace.c @@ -75,6 +75,7 @@ static unsigned sync_key = COLLECTOR_TSD_INVALID_KEY; static long sync_threshold = -1; /* calibrate the value */ static int init_thread_intf_started = 0; static int init_thread_intf_finished = 0; +static Sync_packet spacket_0 = { .comm.tsize = sizeof ( Sync_packet) }; #define CHCK_NREENTRANCE(x) (!sync_native || !sync_mode || ((x) = collector_interface->getKey( sync_key )) == NULL || (*(x) != 0)) #define RECHCK_NREENTRANCE(x) (!sync_native || !sync_mode || ((x) = collector_interface->getKey( sync_key )) == NULL || (*(x) == 0)) @@ -137,15 +138,6 @@ static int (*__real_pthread_cond_timedwait_2_0) (pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex, const struct timespec *restrict abstime) = NULL; - -static void -collector_memset (void *s, int c, size_t n) -{ - unsigned char *s1 = s; - while (n--) - *s1++ = (unsigned char) c; -} - void __collector_module_init (CollectorInterface *_collector_interface) { @@ -568,9 +560,7 @@ __collector_jsync_end (hrtime_t reqt, void *object) hrtime_t grnt = gethrtime (); if (grnt - reqt >= sync_threshold) { - Sync_packet spacket; - collector_memset (&spacket, 0, sizeof (Sync_packet)); - spacket.comm.tsize = sizeof (Sync_packet); + Sync_packet spacket = spacket_0; spacket.comm.tstamp = grnt; spacket.requested = reqt; spacket.objp = (intptr_t) object; @@ -600,9 +590,7 @@ gprofng_pthread_mutex_lock (int (real_func) (pthread_mutex_t *), hrtime_t grnt = gethrtime (); if (grnt - reqt >= sync_threshold) { - Sync_packet spacket; - collector_memset (&spacket, 0, sizeof (Sync_packet)); - spacket.comm.tsize = sizeof (Sync_packet); + Sync_packet spacket = spacket_0; spacket.comm.tstamp = grnt; spacket.requested = reqt; spacket.objp = (intptr_t) mp; @@ -647,9 +635,7 @@ gprofng_pthread_cond_wait (int(real_func) (pthread_cond_t *, pthread_mutex_t *), hrtime_t grnt = gethrtime (); if (grnt - reqt >= sync_threshold) { - Sync_packet spacket; - collector_memset (&spacket, 0, sizeof (Sync_packet)); - spacket.comm.tsize = sizeof (Sync_packet); + Sync_packet spacket = spacket_0; spacket.comm.tstamp = grnt; spacket.requested = reqt; spacket.objp = (intptr_t) mutex; @@ -697,9 +683,7 @@ gprofng_pthread_cond_timedwait (int(real_func) (pthread_cond_t *, hrtime_t grnt = gethrtime (); if (grnt - reqt >= sync_threshold) { - Sync_packet spacket; - collector_memset (&spacket, 0, sizeof (Sync_packet)); - spacket.comm.tsize = sizeof (Sync_packet); + Sync_packet spacket = spacket_0; spacket.comm.tstamp = grnt; spacket.requested = reqt; spacket.objp = (intptr_t) mutex; @@ -746,9 +730,7 @@ gprofng_pthread_join (int(real_func) (pthread_t, void **), hrtime_t grnt = gethrtime (); if (grnt - reqt >= sync_threshold) { - Sync_packet spacket; - collector_memset (&spacket, 0, sizeof (Sync_packet)); - spacket.comm.tsize = sizeof (Sync_packet); + Sync_packet spacket = spacket_0; spacket.comm.tstamp = grnt; spacket.requested = reqt; spacket.objp = (Vaddr_type) target_thread; @@ -793,9 +775,7 @@ gprofng_sem_wait (int (real_func) (sem_t *), sem_t *sp) hrtime_t grnt = gethrtime (); if (grnt - reqt >= sync_threshold) { - Sync_packet spacket; - collector_memset (&spacket, 0, sizeof (Sync_packet)); - spacket.comm.tsize = sizeof (Sync_packet); + Sync_packet spacket = spacket_0; spacket.comm.tstamp = grnt; spacket.requested = reqt; spacket.objp = (intptr_t) sp;