From 39ce3d8ecf06c4c04d245a6107daa73611767c5f Mon Sep 17 00:00:00 2001 From: Adam Muhle Date: Wed, 6 Jun 2012 08:48:08 -0500 Subject: Fix FSIDD mutex issue, misc memory tweaks -Fixed Mutex issue in FSIDD -Remove FSIDD workaround for a perceived simcis bug which we now think was just the mutex issue. -Cleaned up some traces in scom.C -Temporarily disabled testCastOutPages() to avoid memory issues -Tweaked periodics in cpumgr.H Change-Id: Ic34193cc2f81a40530214cd3338dfb405d1e8198 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1171 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III --- src/include/kernel/cpumgr.H | 49 ++++++++++++++++---------------- src/usr/fsi/fsidd.C | 53 ++++++++++++++++++----------------- src/usr/scom/scom.C | 53 ++++++++++++++++++----------------- src/usr/testcore/kernel/vmmbasetest.H | 53 ++++++++++++++++++++--------------- 4 files changed, 109 insertions(+), 99 deletions(-) diff --git a/src/include/kernel/cpumgr.H b/src/include/kernel/cpumgr.H index 589eb385c..93dbba9df 100644 --- a/src/include/kernel/cpumgr.H +++ b/src/include/kernel/cpumgr.H @@ -1,25 +1,26 @@ -// IBM_PROLOG_BEGIN_TAG -// This is an automatically generated prolog. -// -// $Source: src/include/kernel/cpumgr.H $ -// -// 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 +/* IBM_PROLOG_BEGIN_TAG + * This is an automatically generated prolog. + * + * $Source: src/include/kernel/cpumgr.H $ + * + * IBM CONFIDENTIAL + * + * COPYRIGHT International Business Machines Corp. 2010-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_TAG + */ #ifndef __KERNEL_CPUMGR_H #define __KERNEL_CPUMGR_H @@ -34,8 +35,8 @@ class CpuManager enum { MAXCPUS = KERNEL_MAX_SUPPORTED_CPUS, - CPU_PERIODIC_CHECK_MEMORY = 16, - CPU_PERIODIC_FLUSH_PAGETABLE = 256, + CPU_PERIODIC_CHECK_MEMORY = 8, + CPU_PERIODIC_FLUSH_PAGETABLE = 128, CPU_PERIODIC_DEFRAG = 949, // TODO Any bigger not currently hit }; diff --git a/src/usr/fsi/fsidd.C b/src/usr/fsi/fsidd.C index e870411c5..1c6a8094d 100644 --- a/src/usr/fsi/fsidd.C +++ b/src/usr/fsi/fsidd.C @@ -1,25 +1,26 @@ -// IBM_PROLOG_BEGIN_TAG -// This is an automatically generated prolog. -// -// $Source: src/usr/fsi/fsidd.C $ -// -// IBM CONFIDENTIAL -// -// COPYRIGHT International Business Machines Corp. 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 +/* IBM_PROLOG_BEGIN_TAG + * This is an automatically generated prolog. + * + * $Source: src/usr/fsi/fsidd.C $ + * + * IBM CONFIDENTIAL + * + * COPYRIGHT International Business Machines Corp. 2011-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_TAG + */ /** * @file fsidd.C * @@ -693,8 +694,8 @@ errlHndl_t FsiDD::read(const FsiAddrInfo_t& i_addrInfo, l_mutex = (i_addrInfo.opbTarg)->getHbMutexAttr(); - if( (iv_ffdcTask != 0) // performance hack for typical case - && (iv_ffdcTask != task_gettid()) ) + if( (iv_ffdcTask == 0) // performance hack for typical case + || (iv_ffdcTask != task_gettid()) ) { mutex_lock(l_mutex); need_unlock = true; @@ -771,8 +772,8 @@ errlHndl_t FsiDD::write(const FsiAddrInfo_t& i_addrInfo, l_mutex = (i_addrInfo.opbTarg)->getHbMutexAttr(); - if( (iv_ffdcTask != 0) // performance hack for typical case - && (iv_ffdcTask != task_gettid()) ) + if( (iv_ffdcTask == 0) // performance hack for typical case + || (iv_ffdcTask != task_gettid()) ) { mutex_lock(l_mutex); need_unlock = true; diff --git a/src/usr/scom/scom.C b/src/usr/scom/scom.C index d4cabd173..798b3f18a 100644 --- a/src/usr/scom/scom.C +++ b/src/usr/scom/scom.C @@ -1,25 +1,26 @@ -// IBM_PROLOG_BEGIN_TAG -// This is an automatically generated prolog. -// -// $Source: src/usr/scom/scom.C $ -// -// IBM CONFIDENTIAL -// -// COPYRIGHT International Business Machines Corp. 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 +/* IBM_PROLOG_BEGIN_TAG + * This is an automatically generated prolog. + * + * $Source: src/usr/scom/scom.C $ + * + * IBM CONFIDENTIAL + * + * COPYRIGHT International Business Machines Corp. 2011-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_TAG + */ /** * @file scom.C * @@ -227,7 +228,7 @@ errlHndl_t checkIndirectAndDoScom(DeviceFW::OperationType i_opType, // got an indirect read error // the data buffer is in tempIoData TRACFCOMP(g_trac_scom, - "INDIRECT SCOM READ= ERROR valid bits are not on.. scomreg=0x%X", + "INDIRECT SCOM READ= ERROR valid bits are not on.. scomreg=0x%.16X", *((uint64_t *)io_buffer)); /*@ @@ -254,7 +255,7 @@ errlHndl_t checkIndirectAndDoScom(DeviceFW::OperationType i_opType, { // got an indirect read timeout TRACFCOMP(g_trac_scom, - "INDIRECT SCOM READ=indirect read timout .. scomreg=0x%X", + "INDIRECT SCOM READ=indirect read timout .. scomreg=0x%.16X", *((uint64_t *)io_buffer)); @@ -346,7 +347,7 @@ errlHndl_t checkIndirectAndDoScom(DeviceFW::OperationType i_opType, if (l_indScomError == true) { // got an indirect write error - TRACFCOMP(g_trac_scom, "INDIRECT SCOM WRITE= ERROR valid bits are not on.. scomreg=0x%X", temp_io_buffer); + TRACFCOMP(g_trac_scom, "INDIRECT SCOM WRITE= ERROR valid bits are not on.. scomreg=0x%.16X", temp_io_buffer); /*@ * @errortype @@ -372,7 +373,7 @@ errlHndl_t checkIndirectAndDoScom(DeviceFW::OperationType i_opType, { // got an indirect write timeout TRACFCOMP(g_trac_scom, - "INDIRECT SCOM READ=indirect write timout .. scomreg=0x%X", + "INDIRECT SCOM WRITE=indirect write timeout .. scomreg=0x%.16X", temp_io_buffer); diff --git a/src/usr/testcore/kernel/vmmbasetest.H b/src/usr/testcore/kernel/vmmbasetest.H index 153b6c461..3587c1e85 100644 --- a/src/usr/testcore/kernel/vmmbasetest.H +++ b/src/usr/testcore/kernel/vmmbasetest.H @@ -1,25 +1,26 @@ -// IBM_PROLOG_BEGIN_TAG -// This is an automatically generated prolog. -// -// $Source: src/usr/testcore/kernel/vmmbasetest.H $ -// -// IBM CONFIDENTIAL -// -// COPYRIGHT International Business Machines Corp. 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 +/* IBM_PROLOG_BEGIN_TAG + * This is an automatically generated prolog. + * + * $Source: src/usr/testcore/kernel/vmmbasetest.H $ + * + * IBM CONFIDENTIAL + * + * COPYRIGHT International Business Machines Corp. 2011-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_TAG + */ /** @file vmmbasetest.H * @brief Test cases for permission settings on the base block of the VMM. */ @@ -92,7 +93,13 @@ class VmmBaseTest : public CxxTest::TestSuite void testCastOutPages() { - uint64_t l_testAddr = VMM_VADDR_RMVPAGE_TEST; + + //Disabled until page management issues are fixed. + //RTC: 43209 (task) created to track reenable of this test case. + printk("testCastOutPages: Disabled until page management issues are fixed. "); + return; + + uint64_t l_testAddr = VMM_VADDR_RMVPAGE_TEST; uint64_t l_testSize = VMM_SIZE_RMVPAGE_TEST; uint64_t vaddr = l_testAddr+l_testSize; uint64_t vsize = PageManager::availPages()*PAGESIZE; -- cgit v1.2.1