From 8cb9e23b499f04e65cd71b1d3e78b3f2763c1159 Mon Sep 17 00:00:00 2001 From: Peng Fei GOU Date: Wed, 11 Jan 2017 21:40:24 -0500 Subject: p9_l2err_extract -- Fix bugs and tight up output formats 1) when error is not found for an EX, the procedure will continue parse other EXs. 2) tight up the output formats. Change-Id: I33af9dbc1a5ac83b2a09ce06ee757425127ee063 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/34774 Tested-by: Jenkins Server Reviewed-by: Kevin F. Reick Reviewed-by: Joseph J. McGill Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40874 Tested-by: Jenkins OP Build CI Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell --- .../chips/p9/procedures/hwp/cache/p9_l2err_extract.C | 17 +++++++++-------- .../chips/p9/procedures/hwp/cache/p9_l2err_extract.H | 15 +++++++++------ 2 files changed, 18 insertions(+), 14 deletions(-) (limited to 'src/import/chips/p9/procedures/hwp/cache') diff --git a/src/import/chips/p9/procedures/hwp/cache/p9_l2err_extract.C b/src/import/chips/p9/procedures/hwp/cache/p9_l2err_extract.C index 65c36ac6c..d3b9ab6d7 100644 --- a/src/import/chips/p9/procedures/hwp/cache/p9_l2err_extract.C +++ b/src/import/chips/p9/procedures/hwp/cache/p9_l2err_extract.C @@ -71,7 +71,8 @@ extern "C" fapi2::ReturnCode p9_l2err_extract(const fapi2::Target& i_target, const fapi2::variable_buffer& i_ta_data, p9_l2err_extract_err_type i_err_type, - p9_l2err_extract_err_data& o_err_data) + p9_l2err_extract_err_data& o_err_data, + bool& o_error_found) { uint32_t rc_ecmd = 0; // other vars @@ -231,14 +232,14 @@ extern "C" FAPI_DBG("Found UE or CE: error_found = %i", error_found); - //log an error if nothing was found based on what the user was looking for - FAPI_ASSERT(error_found, - fapi2::P9_L2ERR_EXTRACT_NO_CEUE_FOUND() - .set_TARGET(i_target) - .set_TA_DATA(i_ta_data) - .set_ERR_REQ_TYPE(i_err_type), - "No CE or UE found in trace array."); + o_error_found = error_found; + // Don't panic if error is not found. + if (!error_found) + { + FAPI_DBG("No error is found!"); + return fapi2::current_err; + } //generate compression indexes, we will use these to look back for data l_ce_trace_index = trace_index; diff --git a/src/import/chips/p9/procedures/hwp/cache/p9_l2err_extract.H b/src/import/chips/p9/procedures/hwp/cache/p9_l2err_extract.H index 6449a993d..c40ce6a73 100644 --- a/src/import/chips/p9/procedures/hwp/cache/p9_l2err_extract.H +++ b/src/import/chips/p9/procedures/hwp/cache/p9_l2err_extract.H @@ -85,7 +85,8 @@ typedef fapi2::ReturnCode (*p9_l2err_extract_FP_t) (const fapi2::Target&, const fapi2::variable_buffer&, p9_l2err_extract_err_type, - p9_l2err_extract_err_data&); + p9_l2err_extract_err_data&, + bool&); extern "C" { @@ -97,15 +98,17 @@ extern "C" // function: FAPI2 p9_l2err_extract HWP entry point // Parse and extract L2 error information from provided // L2_T0 trace array that has been stopped on an L2 CE or UE. -// parameters: i_target => chiplet target for callouts -// i_ta_data => ecmdDataBufferBase that contains the trace data -// i_err_type => type of error that is to be extracted (CE,UE,both) -// o_err_data => failing location information for CE or UE +// parameters: i_target => chiplet target for callouts +// i_ta_data => ecmdDataBufferBase that contains the trace data +// i_err_type => type of error that is to be extracted (CE,UE,both) +// o_err_data => failing location information for CE or UE +// o_error_found => error is found fapi2::ReturnCode p9_l2err_extract(const fapi2::Target& i_target, const fapi2::variable_buffer& i_ta_data, p9_l2err_extract_err_type i_err_type, - p9_l2err_extract_err_data& o_err_data); + p9_l2err_extract_err_data& o_err_data, + bool& o_error_found); } // extern "C" -- cgit v1.2.1