mirror of https://github.com/intel/gmmlib.git
SPD Logging enabled for debug and release-internal (#56)
This commit is contained in:
parent
6143502f4e
commit
0ed2639c72
|
@ -481,7 +481,7 @@ bool GmmLib::GmmGen8CachePolicy::GetUsagePTEValue(GMM_CACHE_POLICY_ELEMENT Cache
|
||||||
|
|
||||||
CachePolicyElement.Initialized = 1;
|
CachePolicyElement.Initialized = 1;
|
||||||
|
|
||||||
GMM_DPF(GFXDBG_CRITICAL,
|
GMM_DPF(GFXDBG_NORMAL,
|
||||||
"Cache Policy Init: Degrading PAT settings to UC (uncached) from %s for Element %d\n",
|
"Cache Policy Init: Degrading PAT settings to UC (uncached) from %s for Element %d\n",
|
||||||
MemTypes[GetWantedMemoryType(CachePolicyUsage)], Usage);
|
MemTypes[GetWantedMemoryType(CachePolicyUsage)], Usage);
|
||||||
|
|
||||||
|
|
|
@ -392,6 +392,8 @@ GMM_RESOURCE_INFO *GMM_STDCALL GmmLib::GmmClientContext::CreateResInfoObject(GMM
|
||||||
pClientContextIn = this;
|
pClientContextIn = this;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
GMM_DPF_ENTER;
|
||||||
|
|
||||||
// GMM_RESOURCE_INFO...
|
// GMM_RESOURCE_INFO...
|
||||||
if(pCreateParams->pPreallocatedResInfo)
|
if(pCreateParams->pPreallocatedResInfo)
|
||||||
{
|
{
|
||||||
|
@ -413,6 +415,8 @@ GMM_RESOURCE_INFO *GMM_STDCALL GmmLib::GmmClientContext::CreateResInfoObject(GMM
|
||||||
goto ERROR_CASE;
|
goto ERROR_CASE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GMM_DPF_EXIT;
|
||||||
|
|
||||||
return (pRes);
|
return (pRes);
|
||||||
|
|
||||||
ERROR_CASE:
|
ERROR_CASE:
|
||||||
|
|
|
@ -231,7 +231,7 @@ GMM_STATUS GmmLib::AuxTable::MapNullCCS(GMM_UMD_SYNCCONTEXT *UmdContext, GMM_GFX
|
||||||
//Sync update on CPU
|
//Sync update on CPU
|
||||||
((GMM_AUXTTL1e *)L1CPUAddress)[L1eIdx].Value = Data;
|
((GMM_AUXTTL1e *)L1CPUAddress)[L1eIdx].Value = Data;
|
||||||
|
|
||||||
GMM_DPF(GFXDBG_CRITICAL, "Null-Map | Table Entry: [0x%06x] L2Addr[0x%016llX] Value[0x%016llX] :: [0x%06x] L1Addr[0x%016llX] Value[0x%016llX]\n", L2eIdx, ((GMM_AUXTTL2e *)L2CPUAddress)[L2eIdx], ((GMM_AUXTTL2e *)L2CPUAddress)[L2eIdx].L1GfxAddr << 13, L1eIdx, &((GMM_AUXTTL1e *)L1CPUAddress)[L1eIdx], Data);
|
GMM_DPF(GFXDBG_NORMAL, "Null-Map | Table Entry: [0x%06x] L2Addr[0x%016llX] Value[0x%016llX] :: [0x%06x] L1Addr[0x%016llX] Value[0x%016llX]\n", L2eIdx, ((GMM_AUXTTL2e *)L2CPUAddress)[L2eIdx], ((GMM_AUXTTL2e *)L2CPUAddress)[L2eIdx].L1GfxAddr << 13, L1eIdx, &((GMM_AUXTTL1e *)L1CPUAddress)[L1eIdx], Data);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -482,7 +482,7 @@ GMM_STATUS GmmLib::AuxTable::InvalidateTable(GMM_UMD_SYNCCONTEXT *UmdContext, GM
|
||||||
//Sync update on CPU
|
//Sync update on CPU
|
||||||
((GMM_AUXTTL1e *)L1CPUAddress)[L1eIdx].Value = Data;
|
((GMM_AUXTTL1e *)L1CPUAddress)[L1eIdx].Value = Data;
|
||||||
|
|
||||||
GMM_DPF(GFXDBG_CRITICAL, "UnMap | Table Entry: [0x%06x] L2Addr[0x%016llX] Value[0x%016llX] :: [0x%06x] L1Addr[0x%016llX] Value[0x%016llX]\n", L2eIdx, ((GMM_AUXTTL2e *)L2CPUAddress)[L2eIdx], ((GMM_AUXTTL2e *)L2CPUAddress)[L2eIdx].L1GfxAddr << 13, L1eIdx, &((GMM_AUXTTL1e *)L1CPUAddress)[L1eIdx], Data);
|
GMM_DPF(GFXDBG_NORMAL, "UnMap | Table Entry: [0x%06x] L2Addr[0x%016llX] Value[0x%016llX] :: [0x%06x] L1Addr[0x%016llX] Value[0x%016llX]\n", L2eIdx, ((GMM_AUXTTL2e *)L2CPUAddress)[L2eIdx], ((GMM_AUXTTL2e *)L2CPUAddress)[L2eIdx].L1GfxAddr << 13, L1eIdx, &((GMM_AUXTTL1e *)L1CPUAddress)[L1eIdx], Data);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -616,7 +616,7 @@ GMM_STATUS GmmLib::AuxTable::MapValidEntry(GMM_UMD_SYNCCONTEXT *UmdContext, GMM_
|
||||||
PageTableMgr->TTCb.pfPrologTranslationTable(UmdContext->pCommandQueueHandle);
|
PageTableMgr->TTCb.pfPrologTranslationTable(UmdContext->pCommandQueueHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
GMM_DPF(GFXDBG_CRITICAL, "Mapping surface: GPUVA=0x%016llX Size=0x%08X Aux_GPUVA=0x%016llX\n", BaseAdr, BaseSize, AuxVA);
|
GMM_DPF(GFXDBG_NORMAL, "Mapping surface: GPUVA=0x%016llX Size=0x%08X Aux_GPUVA=0x%016llX\n", BaseAdr, BaseSize, AuxVA);
|
||||||
for(Addr = GFX_ALIGN_FLOOR(BaseAdr, L1TableSize); Addr < BaseAdr + BaseSize; Addr += L1TableSize)
|
for(Addr = GFX_ALIGN_FLOOR(BaseAdr, L1TableSize); Addr < BaseAdr + BaseSize; Addr += L1TableSize)
|
||||||
{
|
{
|
||||||
GMM_GFX_ADDRESS StartAdr, EndAdr, TileAdr;
|
GMM_GFX_ADDRESS StartAdr, EndAdr, TileAdr;
|
||||||
|
@ -732,7 +732,7 @@ GMM_STATUS GmmLib::AuxTable::MapValidEntry(GMM_UMD_SYNCCONTEXT *UmdContext, GMM_
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GMM_DPF(GFXDBG_CRITICAL, "Mapping surface: GPUVA=0x%016llx Size=0x%08x Aux_GPUVA=0x%016llx", StartAdr, BaseSize, CCS$Adr);
|
GMM_DPF(GFXDBG_NORMAL, "Mapping surface: GPUVA=0x%016llx Size=0x%08x Aux_GPUVA=0x%016llx", StartAdr, BaseSize, CCS$Adr);
|
||||||
|
|
||||||
for(TileAdr = StartAdr; TileAdr < EndAdr; TileAdr += (!WA16K(pClientContext->GetLibContext()) ? GMM_KBYTE(64) : GMM_KBYTE(16)),
|
for(TileAdr = StartAdr; TileAdr < EndAdr; TileAdr += (!WA16K(pClientContext->GetLibContext()) ? GMM_KBYTE(64) : GMM_KBYTE(16)),
|
||||||
CCS$Adr += (pClientContext->GetLibContext()->GetSkuTable().FtrLinearCCS ?
|
CCS$Adr += (pClientContext->GetLibContext()->GetSkuTable().FtrLinearCCS ?
|
||||||
|
|
|
@ -449,7 +449,7 @@ GMM_STATUS GmmLib::GmmPageTableMgr::InitContextAuxTableRegister(HANDLE CmdQHandl
|
||||||
|
|
||||||
TTCb.pfWriteL3Adr(CmdQHandle, MaskedL3GfxAddress, RegOffset);
|
TTCb.pfWriteL3Adr(CmdQHandle, MaskedL3GfxAddress, RegOffset);
|
||||||
|
|
||||||
GMM_DPF(GFXDBG_CRITICAL, "AuxTT Map Address: GPUVA=0x%016llX\n", MaskedL3GfxAddress);
|
GMM_DPF(GFXDBG_NORMAL, "AuxTT Map Address: GPUVA=0x%016llX\n", MaskedL3GfxAddress);
|
||||||
|
|
||||||
//TTCb.pfEpilogTranslationTable(CmdQHandle, 0);
|
//TTCb.pfEpilogTranslationTable(CmdQHandle, 0);
|
||||||
|
|
||||||
|
|
|
@ -102,6 +102,8 @@ bool GmmLib::Logger::GmmLogInit()
|
||||||
case Error:
|
case Error:
|
||||||
LogLevel = spdlog::level::err;
|
LogLevel = spdlog::level::err;
|
||||||
break;
|
break;
|
||||||
|
case Critical:
|
||||||
|
LogLevel = spdlog::level::critical;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,8 +166,11 @@ bool GmmLib::Logger::GmmLogInit()
|
||||||
|
|
||||||
// TODO: Multiple GmmLib instance can be running in the same process. In that case, the file name will be
|
// TODO: Multiple GmmLib instance can be running in the same process. In that case, the file name will be
|
||||||
// the same for two instances. Figure out a way to differentiate between the two instances.
|
// the same for two instances. Figure out a way to differentiate between the two instances.
|
||||||
LogFilePath = std::string(GMM_LOG_FILENAME) + "_" + ProcName + "_" + PidStr;
|
#if _WIN32
|
||||||
|
LogFilePath = std::string("c:\\") + std::string(GMM_LOG_FILENAME) + "_" + ProcName + "_" + PidStr;
|
||||||
|
#else
|
||||||
|
LogFilePath = std::string(".//") + std::string(GMM_LOG_FILENAME) + "" + ProcName + "_" + PidStr;
|
||||||
|
#endif
|
||||||
// Create logger
|
// Create logger
|
||||||
SpdLogger = spdlog::rotating_logger_mt(GMM_LOGGER_NAME,
|
SpdLogger = spdlog::rotating_logger_mt(GMM_LOGGER_NAME,
|
||||||
LogFilePath,
|
LogFilePath,
|
||||||
|
|
|
@ -88,6 +88,7 @@ typedef enum GmmLogLevel
|
||||||
Trace,
|
Trace,
|
||||||
Info,
|
Info,
|
||||||
Error, // default
|
Error, // default
|
||||||
|
Critical,
|
||||||
}GmmLogLevel;
|
}GmmLogLevel;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -98,10 +99,10 @@ typedef enum GmmLogLevel
|
||||||
#define GMM_ROTATE_FILE_NUMBER 3 // Once log is full, it'll save old log with .1/.2/.3 in name, and then start with .1
|
#define GMM_ROTATE_FILE_NUMBER 3 // Once log is full, it'll save old log with .1/.2/.3 in name, and then start with .1
|
||||||
#define GMM_LOG_MASSAGE_MAX_SIZE 1024
|
#define GMM_LOG_MASSAGE_MAX_SIZE 1024
|
||||||
#define GMM_LOGGER_NAME "gmm_logger"
|
#define GMM_LOGGER_NAME "gmm_logger"
|
||||||
#define GMM_LOG_FILENAME "./gmm_log"
|
#define GMM_LOG_FILENAME "gmm_log"
|
||||||
#define GMM_LOG_TAG "GmmLib"
|
#define GMM_LOG_TAG "GmmLib"
|
||||||
#define GMM_UNKNOWN_PROCESS "Unknown_Proc"
|
#define GMM_UNKNOWN_PROCESS "Unknown_Proc"
|
||||||
#define GMM_PREFIX_STR "INTC GMM: "
|
#define GMM_PREFIX_STR "INTC GMM SPD: "
|
||||||
|
|
||||||
#if _WIN32
|
#if _WIN32
|
||||||
#define GMM_LOG_REG_KEY_SUB_PATH "SOFTWARE\\Intel\\IGFX\\GMMLOG\\"
|
#define GMM_LOG_REG_KEY_SUB_PATH "SOFTWARE\\Intel\\IGFX\\GMMLOG\\"
|
||||||
|
|
|
@ -58,16 +58,21 @@ OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// Enable GMM_ASSERTS and GMM_DEBUG only for Debug builds similar to what UMD clients used to do earlier
|
// Enable GMM_ASSERTS and GMM_DEBUG only for Debug builds similar to what UMD clients used to do earlier
|
||||||
#if (_DEBUG) //(_DEBUG || _RELEASE_INTERNAL)
|
#if (_DEBUG) //(_DEBUG || _RELEASE_INTERNAL)
|
||||||
#define GMM_DPF GMMDebugMessage //gfxDebug.h
|
|
||||||
#define GMM_ASSERT GMMASSERT //gfxDebug.h
|
#define GMM_ASSERT GMMASSERT //gfxDebug.h
|
||||||
#define GMM_ASSERTPTR GMMASSERTPTR //gfxDebug.h
|
#define GMM_ASSERTPTR GMMASSERTPTR //gfxDebug.h
|
||||||
#else
|
#else
|
||||||
#define GMMDebugMessage(...)
|
#define GMMDebugMessage(...)
|
||||||
#define GMM_DPF GMMDebugMessage
|
|
||||||
#define GMM_ASSERT(expr)
|
#define GMM_ASSERT(expr)
|
||||||
#define GMM_ASSERTPTR(expr, ret)
|
#define GMM_ASSERTPTR(expr, ret)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// GMM_DPF Logging is enabled for Debug and Release_Internal
|
||||||
|
#if (_DEBUG || _RELEASE_INTERNAL)
|
||||||
|
#define GMM_DPF GMMDebugMessage //gfxDebug.h
|
||||||
|
#else
|
||||||
|
#define GMM_DPF GMMDebugMessage
|
||||||
|
#endif // (_DEBUG || _RELEASE_INTERNAL)
|
||||||
|
|
||||||
#define __GMM_ASSERT GMM_ASSERT
|
#define __GMM_ASSERT GMM_ASSERT
|
||||||
#define __GMM_ASSERTPTR GMM_ASSERTPTR
|
#define __GMM_ASSERTPTR GMM_ASSERTPTR
|
||||||
|
|
||||||
|
@ -85,26 +90,6 @@ OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#define GMM_DBG_BREAK assert(0)
|
#define GMM_DBG_BREAK assert(0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define GMMLibDebugMessage(DebugLevel, message, ...) \
|
|
||||||
{ \
|
|
||||||
if(DebugLevel == GFXDBG_CRITICAL) \
|
|
||||||
{ \
|
|
||||||
GMM_LOG_ERROR(message, ##__VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
else if(DebugLevel == GFXDBG_VERBOSE) \
|
|
||||||
{ \
|
|
||||||
GMM_LOG_TRACE(message, ##__VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
else if(DebugLevel == GFXDBG_OFF) \
|
|
||||||
{ \
|
|
||||||
GMM_LOG_TRACE_IF(0, message, ##__VA_ARGS__) \
|
|
||||||
} \
|
|
||||||
else \
|
|
||||||
{ \
|
|
||||||
GMM_LOG_INFO(message, ##__VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define GMM_LIB_ASSERT(expr) \
|
#define GMM_LIB_ASSERT(expr) \
|
||||||
{ \
|
{ \
|
||||||
if(!(expr) ) \
|
if(!(expr) ) \
|
||||||
|
@ -124,7 +109,6 @@ OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define GMMLibDebugMessage(...)
|
|
||||||
#define GMM_LIB_ASSERT(expr)
|
#define GMM_LIB_ASSERT(expr)
|
||||||
#define GMM_LIB_ASSERTPTR(expr, ret) \
|
#define GMM_LIB_ASSERTPTR(expr, ret) \
|
||||||
{ \
|
{ \
|
||||||
|
@ -136,6 +120,31 @@ OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
#endif // (_DEBUG) //_DEBUG || _RELEASE_INTERNAL
|
#endif // (_DEBUG) //_DEBUG || _RELEASE_INTERNAL
|
||||||
|
|
||||||
|
#if (_DEBUG || _RELEASE_INTERNAL)
|
||||||
|
#define GMMLibDebugMessage(DebugLevel, message, ...) \
|
||||||
|
{ \
|
||||||
|
if(DebugLevel == GFXDBG_CRITICAL) \
|
||||||
|
{ \
|
||||||
|
GMM_LOG_ERROR(message, ##__VA_ARGS__); \
|
||||||
|
} \
|
||||||
|
else if(DebugLevel == GFXDBG_VERBOSE) \
|
||||||
|
{ \
|
||||||
|
GMM_LOG_TRACE(message, ##__VA_ARGS__); \
|
||||||
|
} \
|
||||||
|
else if(DebugLevel == GFXDBG_OFF) \
|
||||||
|
{ \
|
||||||
|
GMM_LOG_TRACE_IF(0, message, ##__VA_ARGS__) \
|
||||||
|
} \
|
||||||
|
else \
|
||||||
|
{ \
|
||||||
|
GMM_LOG_INFO(message, ##__VA_ARGS__); \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
#define GMMLibDebugMessage(...)
|
||||||
|
#endif //_DEBUG || _RELEASE_INTERNAL
|
||||||
|
|
||||||
#define GMM_DPF GMMLibDebugMessage
|
#define GMM_DPF GMMLibDebugMessage
|
||||||
#define __GMM_ASSERT GMM_LIB_ASSERT
|
#define __GMM_ASSERT GMM_LIB_ASSERT
|
||||||
#define __GMM_ASSERTPTR GMM_LIB_ASSERTPTR
|
#define __GMM_ASSERTPTR GMM_LIB_ASSERTPTR
|
||||||
|
|
Loading…
Reference in New Issue