Skip to content

Commit cf68bfd

Browse files
Brian Stegmillerzane131
authored andcommitted
PRD: Remove secondary filter
Change-Id: I5d719d7b2fdbfd13b77d0a383e013cb9da687c68 RTC: 159411 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/38717 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com> Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/38833 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
1 parent c4ede09 commit cf68bfd

File tree

10 files changed

+2
-166
lines changed

10 files changed

+2
-166
lines changed

src/usr/diag/prdf/common/framework/resolution/prdfResolutionMap.C

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
/* */
66
/* OpenPOWER HostBoot Project */
77
/* */
8-
/* Contributors Listed Below - COPYRIGHT 2012,2015 */
8+
/* Contributors Listed Below - COPYRIGHT 2012,2017 */
99
/* [+] International Business Machines Corp. */
1010
/* */
1111
/* */
@@ -270,7 +270,7 @@ int32_t ResolutionMap::LookUp( ResolutionList & o_list,
270270
// function, one bit set or multiple bit set make little
271271
// difference. In both cases, it has to do same set of actions.
272272
// We need to treat case 0 separately. It is because we want to
273-
// know the outcome of action of secondary filter. If secondary
273+
// know the outcome of action of csRootCause filter. If csRootCause
274274
// filter yields 0xdd02, we know we need to launch one more pass
275275
// with filter turned off.
276276
case 0:

src/usr/diag/prdf/common/rule/prdfRuleMetaData.C

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1047,29 +1047,6 @@ void RuleMetaData::createGroup(Group * i_group,
10471047

10481048
// Do flags. ---
10491049

1050-
// For idea of secondary bit filter to work, it must be the first filter
1051-
// applicable on register data. To manage this, first of all, we must push
1052-
// secondary filter to group.
1053-
// We are supporting the concept of cascaded filter where one filter works
1054-
// after other in harmony. When secondary filter acts, it shall make
1055-
// all the secondary bits( which are ON ) as "DON'T CARE" during primary
1056-
// pass. So, the intent is to filter out secondary bits or in other words
1057-
// analyze only primary bits in primary pass.
1058-
1059-
if ( i_data.cv_loadChip->cv_groupFlags[i_groupId] &
1060-
Prdr::PRDR_GROUP_FILTER_SECONDARY )
1061-
{
1062-
// Add secondary filter to find out if any secondary bit
1063-
// is on.
1064-
std::vector<uint8_t> l_bits;
1065-
CreateBitString::execute(l_bits,
1066-
i_data.cv_loadChip->cv_groupSecondaryBits[i_groupId]);
1067-
1068-
FilterClass * l_filter = new SecondaryBitsFilter( l_bits );
1069-
i_group->AddFilter( l_filter, true );
1070-
1071-
}
1072-
10731050
std::vector<uint8_t> l_bits;
10741051
CreateBitString::execute(l_bits,
10751052
i_data.cv_loadChip->cv_groupCsRootCauseBits[i_groupId]);

src/usr/diag/prdf/common/rule/prdrCommon.H

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,6 @@ namespace Prdr
8686
PRDR_GROUP_FILTER_SINGLE_BIT = 0x1,
8787
/** Priority Bit Filter */
8888
PRDR_GROUP_FILTER_PRIORITY = 0x2,
89-
/** Secondary Bit Filter */
90-
PRDR_GROUP_FILTER_SECONDARY = 0x4,
9189
/** CS Root Cause Filter */
9290
PRDR_GROUP_FILTER_CS_ROOT_CAUSE = 0x8,
9391
/** CS Root Cause Null Filter */

src/usr/diag/prdf/common/rule/prdrCompile.lex

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,6 @@ day { return PRDR_TIME_DAY; }
149149
filter { return PRDR_FILTER; }
150150
singlebit { return PRDR_FILTER_SINGLE_BIT; }
151151
priority { return PRDR_FILTER_PRIORITY; }
152-
secondarybits { return PRDR_FILTER_SECONDARY; }
153152
cs_root_cause { return PRDR_FILTER_CS_ROOT_CAUSE; }
154153

155154
"\<\<" { return PRDR_OP_LEFTSHIFT; }

src/usr/diag/prdf/common/rule/prdrCompile.y

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,6 @@ using namespace PRDR_COMPILER;
160160

161161
%token PRDR_FILTER_SINGLE_BIT
162162
%token PRDR_FILTER_PRIORITY
163-
%token PRDR_FILTER_SECONDARY
164163
%token PRDR_FILTER_CS_ROOT_CAUSE
165164

166165
/* Terminal tokens for Doxygen-style comments */
@@ -601,13 +600,6 @@ grpfilt_item: PRDR_FILTER_PRIORITY '(' bitandlist ')'
601600
}
602601
;
603602

604-
grpfilt_item: PRDR_FILTER_SECONDARY '(' bitandlist ')'
605-
{
606-
$$ = new std::list<Group_Filter *>;
607-
$$->push_back(new Group_Filter_Secondary($3));
608-
}
609-
;
610-
611603
grpfilt_item: PRDR_FILTER_CS_ROOT_CAUSE '(' bitandlist ')'
612604
{
613605
$$ = new std::list<Group_Filter *>;

src/usr/diag/prdf/common/rule/prdrGroup.H

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ class Group
4646
public:
4747
std::list<Expr *> cv_rules;
4848
Expr * cv_priorityList;
49-
Expr * cv_secondaryList;
5049
Expr * cv_csRootCauseList;
5150

5251
char cv_op;
@@ -55,14 +54,12 @@ class Group
5554

5655
Group() :
5756
cv_priorityList(NULL),
58-
cv_secondaryList(NULL),
5957
cv_csRootCauseList(NULL),
6058
cv_op(Prdr::GROUP),
6159
cv_flags(0),
6260
cv_doxcomment() {};
6361
Group(char o) :
6462
cv_priorityList(NULL),
65-
cv_secondaryList(NULL),
6663
cv_csRootCauseList(NULL),
6764
cv_op(o),
6865
cv_flags(0),
@@ -82,12 +79,6 @@ class Group
8279
if (NULL != i_l->cv_priorityList)
8380
i_r->cv_priorityList = i_l->cv_priorityList;
8481

85-
// Set Secondary bit list.
86-
if ( NULL != i_l->cv_secondaryList )
87-
{
88-
i_r->cv_secondaryList = i_l->cv_secondaryList;
89-
}
90-
9182
// Set CS root cause bit list
9283
if ( NULL != i_l->cv_csRootCauseList )
9384
{
@@ -204,10 +195,6 @@ class Group
204195
{
205196
cv_priorityList->output( i_file );
206197
}
207-
if ( Prdr::PRDR_GROUP_FILTER_SECONDARY & cv_flags )
208-
{
209-
cv_secondaryList->output( i_file );
210-
}
211198
if ( Prdr::PRDR_GROUP_FILTER_CS_ROOT_CAUSE & cv_flags)
212199
{
213200
if ( NULL != cv_csRootCauseList )
@@ -265,21 +252,6 @@ class Group_Filter_Priority : public Group_Filter
265252
Expr * iv_list;
266253
};
267254

268-
class Group_Filter_Secondary : public Group_Filter
269-
{
270-
public:
271-
Group_Filter_Secondary( Expr * i_list ) : iv_secList( i_list ) {};
272-
273-
void AddFilter( Group * i_group )
274-
{
275-
i_group->cv_flags |= Prdr::PRDR_GROUP_FILTER_SECONDARY;
276-
i_group->cv_secondaryList = iv_secList;
277-
};
278-
279-
private:
280-
Expr * iv_secList;
281-
};
282-
283255
class Group_Filter_CS_Root_Cause : public Group_Filter
284256
{
285257
public:

src/usr/diag/prdf/common/rule/prdrLoadChip.C

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,6 @@ errlHndl_t LoadChip(UtilStream & i_stream, Chip & o_chip)
231231
o_chip.cv_groupSize = new uint16_t[o_chip.cv_groupCount];
232232
o_chip.cv_groupFlags = new uint8_t[o_chip.cv_groupCount];
233233
o_chip.cv_groupPriorityBits = new Expr * [o_chip.cv_groupCount];
234-
o_chip.cv_groupSecondaryBits = new Expr * [o_chip.cv_groupCount];
235234
o_chip.cv_groupCsRootCauseBits = new Expr * [o_chip.cv_groupCount];
236235
for (uint32_t i = 0; i < o_chip.cv_groupCount; i++)
237236
{
@@ -250,17 +249,6 @@ errlHndl_t LoadChip(UtilStream & i_stream, Chip & o_chip)
250249
o_chip.cv_groupPriorityBits[i] = nullptr;
251250
}
252251

253-
//check if secondary filter has been specified
254-
if( PRDR_GROUP_FILTER_SECONDARY & o_chip.cv_groupFlags[i] )
255-
{
256-
o_chip.cv_groupSecondaryBits[i] = new Expr();
257-
ReadExpr(i_stream, *o_chip.cv_groupSecondaryBits[i]);
258-
}
259-
else
260-
{
261-
o_chip.cv_groupSecondaryBits[i] = nullptr;
262-
}
263-
264252
//check if cs_root_cause filter has been specified
265253
if( PRDR_GROUP_FILTER_CS_ROOT_CAUSE & o_chip.cv_groupFlags[i] )
266254
{

src/usr/diag/prdf/common/rule/prdrLoadChip.H

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,6 @@ namespace Prdr
201201
uint16_t * cv_groupSize;
202202
uint8_t * cv_groupFlags;
203203
Expr ** cv_groupPriorityBits;
204-
Expr ** cv_groupSecondaryBits;
205204
Expr ** cv_groupCsRootCauseBits;
206205
Expr ** cv_groups;
207206
uint16_t cv_actionCount;
@@ -212,7 +211,6 @@ namespace Prdr
212211
cv_ruleCount(0), cv_rules(NULL),
213212
cv_groupCount(0), cv_groupSize(NULL),
214213
cv_groupFlags(NULL), cv_groupPriorityBits(NULL),
215-
cv_groupSecondaryBits(NULL),
216214
cv_groupCsRootCauseBits(NULL), cv_groups(NULL),
217215
cv_actionCount(0), cv_actionSize(NULL),
218216
cv_actions(NULL)
@@ -228,9 +226,6 @@ namespace Prdr
228226
if (NULL != cv_groupPriorityBits[i])
229227
delete cv_groupPriorityBits[i];
230228

231-
if ( NULL != cv_groupSecondaryBits[i] )
232-
delete cv_groupSecondaryBits[i];
233-
234229
if ( NULL != cv_groupCsRootCauseBits[i] )
235230
delete cv_groupCsRootCauseBits[i];
236231

@@ -241,8 +236,6 @@ namespace Prdr
241236
if (NULL != cv_groupSize) delete[] cv_groupSize;
242237
if (NULL != cv_groupFlags) delete[] cv_groupFlags;
243238
if (NULL != cv_groupPriorityBits) delete[] cv_groupPriorityBits;
244-
if ( NULL != cv_groupSecondaryBits )
245-
delete[] cv_groupSecondaryBits;
246239
if ( NULL != cv_groupCsRootCauseBits )
247240
delete[] cv_groupCsRootCauseBits;
248241
for (int i = 0; i < cv_actionCount; i++)

src/usr/diag/prdf/common/util/prdfFilters.C

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -184,48 +184,6 @@ bool FilterLink::Undo( BitKey & bit_list )
184184

185185
//------------------------------------------------------------------------------
186186

187-
bool SecondaryBitsFilter::Apply( BitKey & io_bitList,
188-
STEP_CODE_DATA_STRUCT & io_sdc )
189-
{
190-
#define PRDF_FUNC "[SecondaryBitsFilter::Apply] "
191-
bool l_modified = false;
192-
do
193-
{
194-
// This filter should only be applied on the primary passs.
195-
if ( !io_sdc.service_data->isPrimaryPass() ) break;
196-
197-
// This filter should only be applied if the primary attention type is
198-
// CHECK_STOP.
199-
if ( CHECK_STOP != io_sdc.service_data->getPrimaryAttnType() ) break;
200-
201-
// This filter should only be applied if the the secondary attention
202-
// type is RECOVERABLE.
203-
if ( RECOVERABLE != io_sdc.service_data->getSecondaryAttnType()) break;
204-
205-
//if there is no secondary bit position to flip or if no bit is set in
206-
//bit key then let us skip this apply.
207-
if( ( 0 == iv_secBitList.size() ) || ( 0 == io_bitList.size()) ) break;
208-
209-
BitKey l_key ( iv_secBitList );
210-
io_bitList.removeBits( l_key );
211-
l_modified = true;
212-
213-
if( 0 == io_bitList.size() )
214-
{
215-
// So, we have no primary bits on. We have one or more secondary bit
216-
// on.
217-
io_sdc.service_data->setSecondaryErrFlag();
218-
}
219-
220-
}while(0);
221-
222-
return l_modified;
223-
224-
#undef PRDF_FUNC
225-
}
226-
227-
//------------------------------------------------------------------------------
228-
229187
bool CsRootCauseFilter::Apply( BitKey & io_bitList,
230188
STEP_CODE_DATA_STRUCT & io_sdc )
231189
{

src/usr/diag/prdf/common/util/prdfFilters.H

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -364,47 +364,6 @@ class FilterLink: public FilterClass
364364
inline FilterLink::FilterLink(FilterClass & f1, FilterClass & f2)
365365
: xFilter1(f1), xFilter2(f2) {}
366366

367-
class SecondaryBitsFilter: public FilterClass
368-
{
369-
370-
public:
371-
372-
/**
373-
* @brief constructor
374-
* @param i_bitList list of bits identified as secondary in a FIR.
375-
* @note This filter maintains a list of bits which it
376-
* considers it as secondary. PRDF analysis is broken in to two
377-
* steps. The first pass is known as primary pass and second pass
378-
* is known as secondary pass. In first pass, secondary filter
379-
* gets activiated but in secondary pass it remains inactive.
380-
* In primary pass, filter ignores all the secondary bits for
381-
* analysis. If primary bits are on, due to action of
382-
* secondary filter, primary pass ends up with return code 0xdd02.
383-
* Inorder to make sure there are really no bits on, secondary
384-
* pass is launched. In this pass, secondary filter doesn't
385-
* operate so analysis continues as usual. Intention of this
386-
* pass is to identify and analyze secondary error bits which were
387-
* ignored during primary pass due to action of this filter.
388-
*/
389-
SecondaryBitsFilter( const std::vector<uint8_t> & i_bitList )
390-
{
391-
iv_secBitList = i_bitList;
392-
}
393-
394-
/**
395-
* @brief clears all the bits identified as secondary in the given BitKey.
396-
* @param i_bitList bitkey on which seondary filter need to act.
397-
* @param io_sdc reference to STEP_CODE_DATA struct.
398-
* @return true if bit key is modified false otherwise.
399-
*/
400-
virtual bool Apply( BitKey & io_bitList, STEP_CODE_DATA_STRUCT & io_sdc );
401-
402-
private: // data
403-
404-
std::vector<uint8_t> iv_secBitList; // list of bit pos marked as secondary
405-
406-
};
407-
408367
class CsRootCauseFilter: public FilterClass
409368
{
410369
public:

0 commit comments

Comments
 (0)