From d0d62de3f4812dde764595e41dc9c5d062e8f127 Mon Sep 17 00:00:00 2001 From: Horst Schirmeier Date: Thu, 22 Sep 2016 17:45:20 +0200 Subject: [PATCH] sal: remove perf dependency to watchpoints/breakpoints This change removes the hard compile-time dependency from the performance-improving dedicated listener-list implementation (core/sal/perf/) to basic watchpoints / breakpoints being enabled in the cmake config. This allows to keep the CONFIG_FAST_* switches enabled in practically every experiment. The primary reason for this change was the recent insight that enabled breakpoints with disabled CONFIG_FAST_BREAKPOINTS can massively slow down an experiment even if the latter does not use a single breakpoint itself. Change-Id: I5e3f5c1632ed1ee98a3ec887f18b174fa0e15773 --- src/core/config/CMakeLists.txt | 4 ++-- src/core/sal/perf/FastBreakpoints.ah | 4 ---- src/core/sal/perf/FastWatchpoints.ah | 4 ---- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/src/core/config/CMakeLists.txt b/src/core/config/CMakeLists.txt index c731d2b1..b17dbdf4 100644 --- a/src/core/config/CMakeLists.txt +++ b/src/core/config/CMakeLists.txt @@ -21,8 +21,8 @@ OPTION(CONFIG_SUPPRESS_INTERRUPTS "Target backend: Suppress interrupts" ON OPTION(CONFIG_FIRE_INTERRUPTS "Target backend: Fire interrupts" ON) OPTION(CONFIG_DISABLE_KEYB_INTERRUPTS "Target backend: Suppress keyboard interrupts" OFF) OPTION(SERVER_PERFORMANCE_MEASURE "Performance measurement in job-server" OFF) -OPTION(CONFIG_FAST_BREAKPOINTS "Enable fast breakpoints (requires breakpoint events to be enabled)" ON) -OPTION(CONFIG_FAST_WATCHPOINTS "Enable fast watchpoints (requires memory access events to be enabled)" ON) +OPTION(CONFIG_FAST_BREAKPOINTS "Enable fast breakpoints (only effective with breakpoints enabled; keep this ON unless you have a good reason not to)" ON) +OPTION(CONFIG_FAST_WATCHPOINTS "Enable fast watchpoints (only effective with memory events enabled; keep this ON unless you have a good reason not to)" ON) OPTION(CONFIG_INJECTIONPOINT_HOPS "Enable hop chain trace navigation to injection point" OFF) SET(SERVER_COMM_HOSTNAME "localhost" CACHE STRING "Job-server hostname or IP") SET(SERVER_COMM_TCP_PORT "1111" CACHE STRING "Job-server TCP port") diff --git a/src/core/sal/perf/FastBreakpoints.ah b/src/core/sal/perf/FastBreakpoints.ah index 27e25f5a..9e1b4835 100644 --- a/src/core/sal/perf/FastBreakpoints.ah +++ b/src/core/sal/perf/FastBreakpoints.ah @@ -5,10 +5,6 @@ #ifdef CONFIG_FAST_BREAKPOINTS -#ifndef CONFIG_EVENT_BREAKPOINTS -#error Breakpoint events are required for fast breakpoints! -#endif - #include "BreakpointManagerSlice.ah" // slice class "BreakpointManagerSlice" #include "BreakpointControllerSlice.ah" // slice class "BreakpointControllerSlice" #include "../ListenerManager.hpp" diff --git a/src/core/sal/perf/FastWatchpoints.ah b/src/core/sal/perf/FastWatchpoints.ah index ce2a2876..dc7b9d98 100644 --- a/src/core/sal/perf/FastWatchpoints.ah +++ b/src/core/sal/perf/FastWatchpoints.ah @@ -5,10 +5,6 @@ #ifdef CONFIG_FAST_WATCHPOINTS -#if !defined(CONFIG_EVENT_MEMREAD) && !defined(CONFIG_EVENT_MEMWRITE) -#error Watchpoint events (i.e. memory read or write accesses) are required for fast watchpoints! -#endif - #include "WatchpointManagerSlice.ah" // slice class "WatchpointManagerSlice" #include "WatchpointControllerSlice.ah" // slice class "WatchpointControllerSlice" #include "../ListenerManager.hpp"