From e457b5df08897236374bd8851d8169188e9dc1f8 Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Tue, 10 Jan 2012 18:10:40 -0600 Subject: GCOV support Change-Id: I73a446754cd03178055459eb75c7b2f87b51b0f3 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/635 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III --- src/sys/prof/gcov.C | 24 ++++++++++++++++++++++++ src/sys/prof/idletask.C | 41 +++++++++++++++++++++++++++++++++++++++++ src/sys/prof/makefile | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 104 insertions(+) create mode 100644 src/sys/prof/gcov.C create mode 100644 src/sys/prof/idletask.C create mode 100644 src/sys/prof/makefile (limited to 'src/sys/prof') diff --git a/src/sys/prof/gcov.C b/src/sys/prof/gcov.C new file mode 100644 index 000000000..7f011d51f --- /dev/null +++ b/src/sys/prof/gcov.C @@ -0,0 +1,24 @@ +// IBM_PROLOG_BEGIN_TAG +// This is an automatically generated prolog. +// +// $Source: src/sys/prof/gcov.C $ +// +// IBM CONFIDENTIAL +// +// COPYRIGHT International Business Machines Corp. 2012 +// +// p1 +// +// Object Code Only (OCO) source materials +// Licensed Internal Code Source Materials +// IBM HostBoot Licensed Internal Code +// +// The source code for this program is not published or other- +// wise divested of its trade secrets, irrespective of what has +// been deposited with the U.S. Copyright Office. +// +// Origin: 30 +// +// IBM_PROLOG_END + +#include diff --git a/src/sys/prof/idletask.C b/src/sys/prof/idletask.C new file mode 100644 index 000000000..843f26628 --- /dev/null +++ b/src/sys/prof/idletask.C @@ -0,0 +1,41 @@ +// IBM_PROLOG_BEGIN_TAG +// This is an automatically generated prolog. +// +// $Source: src/sys/prof/idletask.C $ +// +// IBM CONFIDENTIAL +// +// COPYRIGHT International Business Machines Corp. 2012 +// +// p1 +// +// Object Code Only (OCO) source materials +// Licensed Internal Code Source Materials +// IBM HostBoot Licensed Internal Code +// +// The source code for this program is not published or other- +// wise divested of its trade secrets, irrespective of what has +// been deposited with the U.S. Copyright Office. +// +// Origin: 30 +// +// IBM_PROLOG_END + +/** @file idletask.C + * @brief Code for the kernel idle-loop. + * + * This code exists here under the sys/prof directory to ensure that it does + * not get instrumented with code coverage. The idle threads run stack-less + * and bad things happen if they have been instrumented. + */ + +#include +#include + +void TaskManager::idleTaskLoop(void* unused) +{ + while(1) + { + setThreadPriorityLow(); + } +} diff --git a/src/sys/prof/makefile b/src/sys/prof/makefile new file mode 100644 index 000000000..ee42459e4 --- /dev/null +++ b/src/sys/prof/makefile @@ -0,0 +1,39 @@ +# IBM_PROLOG_BEGIN_TAG +# This is an automatically generated prolog. +# +# $Source: src/sys/vfs/makefile $ +# +# IBM CONFIDENTIAL +# +# COPYRIGHT International Business Machines Corp. 2010 - 2011 +# +# p1 +# +# Object Code Only (OCO) source materials +# Licensed Internal Code Source Materials +# IBM HostBoot Licensed Internal Code +# +# The source code for this program is not published or other- +# wise divested of its trade secrets, irrespective of what has +# been deposited with the U.S. Copyright Office. +# +# Origin: 30 +# +# IBM_PROLOG_END + +ROOTPATH = ../../.. + +# If code coverage profiling is enabled we need to add the gcov object to the +# build list. This is triggered via the HOSTBOOT_PROFILE variable. We then +# undefine that variable to ensure that none of the code in this directory is +# instrumented itself. This is the directory where code which is unsafe to +# instrument should go. + +ifdef HOSTBOOT_PROFILE +OBJS = gcov.o +undefine HOSTBOOT_PROFILE +endif + +OBJS += idletask.o + +include ${ROOTPATH}/config.mk -- cgit v1.2.1