(cherry picked from commit af77e083a2)
This commit is contained in:
Milos Tijanic
2024-06-27 19:21:59 +02:00
committed by Gaurav Juvekar
parent 74ee05e160
commit 171c735e57
20 changed files with 693 additions and 71 deletions

View File

@@ -17,9 +17,9 @@ extern const PRB_MSG_DESC prb_messages_dcl[];
// Message maximum lengths
// Does not include repeated fields, strings and byte arrays.
#define DCL_ENGINES_LEN 130
#define DCL_DCLMSG_LEN 567
#define DCL_ERRORBLOCK_LEN 571
#define DCL_ENGINES_LEN 136
#define DCL_DCLMSG_LEN 573
#define DCL_ERRORBLOCK_LEN 577
extern const PRB_FIELD_DESC prb_fields_dcl_engines[];
@@ -28,7 +28,7 @@ extern const PRB_FIELD_DESC prb_fields_dcl_engines[];
#define DCL_ENGINES_ENG_MC (&prb_fields_dcl_engines[1])
// 'Engines' field lengths
#define DCL_ENGINES_ENG_GPU_LEN 59
#define DCL_ENGINES_ENG_GPU_LEN 65
#define DCL_ENGINES_ENG_MC_LEN 69
extern const PRB_FIELD_DESC prb_fields_dcl_dclmsg[];
@@ -49,7 +49,7 @@ extern const PRB_FIELD_DESC prb_fields_dcl_dclmsg[];
#define DCL_DCLMSG_JOURNAL_BADREAD_LEN 70
#define DCL_DCLMSG_JOURNAL_BUGCHECK_LEN 69
#define DCL_DCLMSG_RCCOUNTER_LEN 64
#define DCL_DCLMSG_ENGINE_LEN 133
#define DCL_DCLMSG_ENGINE_LEN 139
extern const PRB_FIELD_DESC prb_fields_dcl_errorblock[];
@@ -57,7 +57,7 @@ extern const PRB_FIELD_DESC prb_fields_dcl_errorblock[];
#define DCL_ERRORBLOCK_DATA (&prb_fields_dcl_errorblock[0])
// 'ErrorBlock' field lengths
#define DCL_ERRORBLOCK_DATA_LEN 570
#define DCL_ERRORBLOCK_DATA_LEN 576
extern const PRB_SERVICE_DESC prb_services_dcl[];

View File

@@ -194,6 +194,18 @@ const PRB_FIELD_DESC prb_fields_nvdebug_eng_gpu[] = {
PRB_MAYBE_FIELD_NAME("regs")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
39,
{
PRB_OPTIONAL,
PRB_UINT32,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("rusd_mask")
PRB_MAYBE_FIELD_DEFAULT(0)
},
};
// 'Nvd' field defaults
@@ -214,6 +226,36 @@ const PRB_FIELD_DESC prb_fields_nvdebug_eng_nvd[] = {
},
};
// 'KGsp' field defaults
// 'KGsp' field descriptors
const PRB_FIELD_DESC prb_fields_nvdebug_eng_kgsp[] = {
{
1,
{
PRB_REPEATED,
PRB_MESSAGE,
0,
},
NVDEBUG_ENG_KGSP_RPCINFO,
0,
PRB_MAYBE_FIELD_NAME("rpc_history")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
2,
{
PRB_REPEATED,
PRB_MESSAGE,
0,
},
NVDEBUG_ENG_KGSP_RPCINFO,
0,
PRB_MAYBE_FIELD_NAME("event_history")
PRB_MAYBE_FIELD_DEFAULT(0)
},
};
// 'RmData' field defaults
// 'RmData' field descriptors
@@ -262,6 +304,72 @@ const PRB_FIELD_DESC prb_fields_nvdebug_eng_mc_pcibarinfo[] = {
},
};
// 'RpcInfo' field defaults
// 'RpcInfo' field descriptors
const PRB_FIELD_DESC prb_fields_nvdebug_eng_kgsp_rpcinfo[] = {
{
1,
{
PRB_REQUIRED,
PRB_UINT32,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("function")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
2,
{
PRB_REQUIRED,
PRB_UINT64,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("ts_start")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
3,
{
PRB_REQUIRED,
PRB_UINT64,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("ts_end")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
4,
{
PRB_OPTIONAL,
PRB_UINT32,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("data0")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
5,
{
PRB_OPTIONAL,
PRB_UINT32,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("data1")
PRB_MAYBE_FIELD_DEFAULT(0)
},
};
// Message descriptors
const PRB_MSG_DESC prb_messages_nvdebug_eng[] = {
{
@@ -270,7 +378,7 @@ const PRB_MSG_DESC prb_messages_nvdebug_eng[] = {
PRB_MAYBE_MESSAGE_NAME("NvDebug.Eng.Mc")
},
{
12,
13,
prb_fields_nvdebug_eng_gpu,
PRB_MAYBE_MESSAGE_NAME("NvDebug.Eng.Gpu")
},
@@ -279,6 +387,11 @@ const PRB_MSG_DESC prb_messages_nvdebug_eng[] = {
prb_fields_nvdebug_eng_nvd,
PRB_MAYBE_MESSAGE_NAME("NvDebug.Eng.Nvd")
},
{
2,
prb_fields_nvdebug_eng_kgsp,
PRB_MAYBE_MESSAGE_NAME("NvDebug.Eng.KGsp")
},
{
1,
prb_fields_nvdebug_eng_mc_rmdata,
@@ -289,6 +402,11 @@ const PRB_MSG_DESC prb_messages_nvdebug_eng[] = {
prb_fields_nvdebug_eng_mc_pcibarinfo,
PRB_MAYBE_MESSAGE_NAME("NvDebug.Eng.Mc.PciBarInfo")
},
{
5,
prb_fields_nvdebug_eng_kgsp_rpcinfo,
PRB_MAYBE_MESSAGE_NAME("NvDebug.Eng.KGsp.RpcInfo")
},
};
// Service descriptors

View File

@@ -11,16 +11,20 @@ extern const PRB_MSG_DESC prb_messages_nvdebug_eng[];
#define NVDEBUG_ENG_MC (&prb_messages_nvdebug_eng[0])
#define NVDEBUG_ENG_GPU (&prb_messages_nvdebug_eng[1])
#define NVDEBUG_ENG_NVD (&prb_messages_nvdebug_eng[2])
#define NVDEBUG_ENG_MC_RMDATA (&prb_messages_nvdebug_eng[3])
#define NVDEBUG_ENG_MC_PCIBARINFO (&prb_messages_nvdebug_eng[4])
#define NVDEBUG_ENG_KGSP (&prb_messages_nvdebug_eng[3])
#define NVDEBUG_ENG_MC_RMDATA (&prb_messages_nvdebug_eng[4])
#define NVDEBUG_ENG_MC_PCIBARINFO (&prb_messages_nvdebug_eng[5])
#define NVDEBUG_ENG_KGSP_RPCINFO (&prb_messages_nvdebug_eng[6])
// Message maximum lengths
// Does not include repeated fields, strings and byte arrays.
#define NVDEBUG_ENG_MC_LEN 66
#define NVDEBUG_ENG_GPU_LEN 56
#define NVDEBUG_ENG_GPU_LEN 62
#define NVDEBUG_ENG_NVD_LEN 30
#define NVDEBUG_ENG_KGSP_LEN 88
#define NVDEBUG_ENG_MC_RMDATA_LEN 6
#define NVDEBUG_ENG_MC_PCIBARINFO_LEN 22
#define NVDEBUG_ENG_KGSP_RPCINFO_LEN 40
extern const PRB_FIELD_DESC prb_fields_nvdebug_eng_mc[];
@@ -49,6 +53,7 @@ extern const PRB_FIELD_DESC prb_fields_nvdebug_eng_gpu[];
#define NVDEBUG_ENG_GPU_IS_LOST (&prb_fields_nvdebug_eng_gpu[9])
#define NVDEBUG_ENG_GPU_IS_ACCESSIBLE (&prb_fields_nvdebug_eng_gpu[10])
#define NVDEBUG_ENG_GPU_REGS (&prb_fields_nvdebug_eng_gpu[11])
#define NVDEBUG_ENG_GPU_RUSD_MASK (&prb_fields_nvdebug_eng_gpu[12])
// 'Gpu' field lengths
#define NVDEBUG_ENG_GPU_GPU_ID_LEN 5
@@ -63,6 +68,7 @@ extern const PRB_FIELD_DESC prb_fields_nvdebug_eng_gpu[];
#define NVDEBUG_ENG_GPU_IS_LOST_LEN 1
#define NVDEBUG_ENG_GPU_IS_ACCESSIBLE_LEN 1
#define NVDEBUG_ENG_GPU_REGS_LEN 29
#define NVDEBUG_ENG_GPU_RUSD_MASK_LEN 5
extern const PRB_FIELD_DESC prb_fields_nvdebug_eng_nvd[];
@@ -72,6 +78,16 @@ extern const PRB_FIELD_DESC prb_fields_nvdebug_eng_nvd[];
// 'Nvd' field lengths
#define NVDEBUG_ENG_NVD_REGS_LEN 29
extern const PRB_FIELD_DESC prb_fields_nvdebug_eng_kgsp[];
// 'KGsp' field descriptor pointers
#define NVDEBUG_ENG_KGSP_RPC_HISTORY (&prb_fields_nvdebug_eng_kgsp[0])
#define NVDEBUG_ENG_KGSP_EVENT_HISTORY (&prb_fields_nvdebug_eng_kgsp[1])
// 'KGsp' field lengths
#define NVDEBUG_ENG_KGSP_RPC_HISTORY_LEN 43
#define NVDEBUG_ENG_KGSP_EVENT_HISTORY_LEN 43
extern const PRB_FIELD_DESC prb_fields_nvdebug_eng_mc_rmdata[];
// 'RmData' field descriptor pointers
@@ -90,6 +106,22 @@ extern const PRB_FIELD_DESC prb_fields_nvdebug_eng_mc_pcibarinfo[];
#define NVDEBUG_ENG_MC_PCIBARINFO_OFFSET_LEN 10
#define NVDEBUG_ENG_MC_PCIBARINFO_LENGTH_LEN 10
extern const PRB_FIELD_DESC prb_fields_nvdebug_eng_kgsp_rpcinfo[];
// 'RpcInfo' field descriptor pointers
#define NVDEBUG_ENG_KGSP_RPCINFO_FUNCTION (&prb_fields_nvdebug_eng_kgsp_rpcinfo[0])
#define NVDEBUG_ENG_KGSP_RPCINFO_TS_START (&prb_fields_nvdebug_eng_kgsp_rpcinfo[1])
#define NVDEBUG_ENG_KGSP_RPCINFO_TS_END (&prb_fields_nvdebug_eng_kgsp_rpcinfo[2])
#define NVDEBUG_ENG_KGSP_RPCINFO_DATA0 (&prb_fields_nvdebug_eng_kgsp_rpcinfo[3])
#define NVDEBUG_ENG_KGSP_RPCINFO_DATA1 (&prb_fields_nvdebug_eng_kgsp_rpcinfo[4])
// 'RpcInfo' field lengths
#define NVDEBUG_ENG_KGSP_RPCINFO_FUNCTION_LEN 5
#define NVDEBUG_ENG_KGSP_RPCINFO_TS_START_LEN 10
#define NVDEBUG_ENG_KGSP_RPCINFO_TS_END_LEN 10
#define NVDEBUG_ENG_KGSP_RPCINFO_DATA0_LEN 5
#define NVDEBUG_ENG_KGSP_RPCINFO_DATA1_LEN 5
extern const PRB_SERVICE_DESC prb_services_nvdebug_eng[];
// Service descriptor pointers

View File

@@ -102,13 +102,18 @@ const struct NVOC_CLASS_DEF __nvoc_class_def_KernelGsp =
/*pExportInfo=*/ &__nvoc_export_info_KernelGsp
};
// 5 down-thunk(s) defined to bridge methods in KernelGsp from superclasses
// 6 down-thunk(s) defined to bridge methods in KernelGsp from superclasses
// kgspConstructEngine: virtual override (engstate) base (engstate)
static NV_STATUS __nvoc_down_thunk_KernelGsp_engstateConstructEngine(struct OBJGPU *pGpu, struct OBJENGSTATE *pKernelGsp, ENGDESCRIPTOR arg3) {
return kgspConstructEngine(pGpu, (struct KernelGsp *)(((unsigned char *) pKernelGsp) - __nvoc_rtti_KernelGsp_OBJENGSTATE.offset), arg3);
}
// kgspStateInitLocked: virtual override (engstate) base (engstate)
static NV_STATUS __nvoc_down_thunk_KernelGsp_engstateStateInitLocked(struct OBJGPU *pGpu, struct OBJENGSTATE *pKernelGsp) {
return kgspStateInitLocked(pGpu, (struct KernelGsp *)(((unsigned char *) pKernelGsp) - __nvoc_rtti_KernelGsp_OBJENGSTATE.offset));
}
// kgspRegisterIntrService: virtual override (intrserv) base (intrserv)
static void __nvoc_down_thunk_KernelGsp_intrservRegisterIntrService(struct OBJGPU *pGpu, struct IntrService *pKernelGsp, IntrServiceRecord pRecords[175]) {
kgspRegisterIntrService(pGpu, (struct KernelGsp *)(((unsigned char *) pKernelGsp) - __nvoc_rtti_KernelGsp_IntrService.offset), pRecords);
@@ -130,7 +135,7 @@ static void __nvoc_down_thunk_KernelGsp_kcrashcatEngineReadEmem(struct KernelCra
}
// 29 up-thunk(s) defined to bridge methods in KernelGsp to superclasses
// 28 up-thunk(s) defined to bridge methods in KernelGsp to superclasses
// kgspInitMissing: virtual inherited (engstate) base (engstate)
static void __nvoc_up_thunk_OBJENGSTATE_kgspInitMissing(POBJGPU pGpu, struct KernelGsp *pEngstate) {
@@ -147,11 +152,6 @@ static NV_STATUS __nvoc_up_thunk_OBJENGSTATE_kgspStatePreInitUnlocked(POBJGPU pG
return engstateStatePreInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *) pEngstate) + __nvoc_rtti_KernelGsp_OBJENGSTATE.offset));
}
// kgspStateInitLocked: virtual inherited (engstate) base (engstate)
static NV_STATUS __nvoc_up_thunk_OBJENGSTATE_kgspStateInitLocked(POBJGPU pGpu, struct KernelGsp *pEngstate) {
return engstateStateInitLocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *) pEngstate) + __nvoc_rtti_KernelGsp_OBJENGSTATE.offset));
}
// kgspStateInitUnlocked: virtual inherited (engstate) base (engstate)
static NV_STATUS __nvoc_up_thunk_OBJENGSTATE_kgspStateInitUnlocked(POBJGPU pGpu, struct KernelGsp *pEngstate) {
return engstateStateInitUnlocked(pGpu, (struct OBJENGSTATE *)(((unsigned char *) pEngstate) + __nvoc_rtti_KernelGsp_OBJENGSTATE.offset));
@@ -407,6 +407,10 @@ static void __nvoc_init_funcTable_KernelGsp_1(KernelGsp *pThis, RmHalspecOwner *
pThis->__kgspConstructEngine__ = &kgspConstructEngine_IMPL;
pThis->__nvoc_base_OBJENGSTATE.__engstateConstructEngine__ = &__nvoc_down_thunk_KernelGsp_engstateConstructEngine;
// kgspStateInitLocked -- virtual override (engstate) base (engstate)
pThis->__kgspStateInitLocked__ = &kgspStateInitLocked_IMPL;
pThis->__nvoc_base_OBJENGSTATE.__engstateStateInitLocked__ = &__nvoc_down_thunk_KernelGsp_engstateStateInitLocked;
// kgspRegisterIntrService -- virtual override (intrserv) base (intrserv)
pThis->__kgspRegisterIntrService__ = &kgspRegisterIntrService_IMPL;
pThis->__nvoc_base_IntrService.__intrservRegisterIntrService__ = &__nvoc_down_thunk_KernelGsp_intrservRegisterIntrService;
@@ -1272,9 +1276,6 @@ static void __nvoc_init_funcTable_KernelGsp_1(KernelGsp *pThis, RmHalspecOwner *
// kgspStatePreInitUnlocked -- virtual inherited (engstate) base (engstate)
pThis->__kgspStatePreInitUnlocked__ = &__nvoc_up_thunk_OBJENGSTATE_kgspStatePreInitUnlocked;
// kgspStateInitLocked -- virtual inherited (engstate) base (engstate)
pThis->__kgspStateInitLocked__ = &__nvoc_up_thunk_OBJENGSTATE_kgspStateInitLocked;
// kgspStateInitUnlocked -- virtual inherited (engstate) base (engstate)
pThis->__kgspStateInitUnlocked__ = &__nvoc_up_thunk_OBJENGSTATE_kgspStateInitUnlocked;
@@ -1349,7 +1350,7 @@ static void __nvoc_init_funcTable_KernelGsp_1(KernelGsp *pThis, RmHalspecOwner *
// kgspGetWFL0Offset -- virtual halified (singleton optimized) inherited (kcrashcatEngine) base (kflcn)
pThis->__kgspGetWFL0Offset__ = &__nvoc_up_thunk_KernelCrashCatEngine_kgspGetWFL0Offset;
} // End __nvoc_init_funcTable_KernelGsp_1 with approximately 195 basic block(s).
} // End __nvoc_init_funcTable_KernelGsp_1 with approximately 196 basic block(s).
// Initialize vtable(s) for 82 virtual method(s).

View File

@@ -332,6 +332,7 @@ struct KernelGsp {
// Vtable with 82 per-object function pointers
NV_STATUS (*__kgspConstructEngine__)(struct OBJGPU *, struct KernelGsp * /*this*/, ENGDESCRIPTOR); // virtual override (engstate) base (engstate)
NV_STATUS (*__kgspStateInitLocked__)(struct OBJGPU *, struct KernelGsp * /*this*/); // virtual override (engstate) base (engstate)
void (*__kgspRegisterIntrService__)(struct OBJGPU *, struct KernelGsp * /*this*/, IntrServiceRecord *); // virtual override (intrserv) base (intrserv)
NvU32 (*__kgspServiceInterrupt__)(struct OBJGPU *, struct KernelGsp * /*this*/, IntrServiceServiceInterruptArguments *); // virtual override (intrserv) base (intrserv)
void (*__kgspConfigureFalcon__)(struct OBJGPU *, struct KernelGsp * /*this*/); // halified (3 hals) body
@@ -387,7 +388,6 @@ struct KernelGsp {
void (*__kgspInitMissing__)(POBJGPU, struct KernelGsp * /*this*/); // virtual inherited (engstate) base (engstate)
NV_STATUS (*__kgspStatePreInitLocked__)(POBJGPU, struct KernelGsp * /*this*/); // virtual inherited (engstate) base (engstate)
NV_STATUS (*__kgspStatePreInitUnlocked__)(POBJGPU, struct KernelGsp * /*this*/); // virtual inherited (engstate) base (engstate)
NV_STATUS (*__kgspStateInitLocked__)(POBJGPU, struct KernelGsp * /*this*/); // virtual inherited (engstate) base (engstate)
NV_STATUS (*__kgspStateInitUnlocked__)(POBJGPU, struct KernelGsp * /*this*/); // virtual inherited (engstate) base (engstate)
NV_STATUS (*__kgspStatePreLoad__)(POBJGPU, struct KernelGsp * /*this*/, NvU32); // virtual inherited (engstate) base (engstate)
NV_STATUS (*__kgspStateLoad__)(POBJGPU, struct KernelGsp * /*this*/, NvU32); // virtual inherited (engstate) base (engstate)
@@ -512,6 +512,8 @@ NV_STATUS __nvoc_objCreate_KernelGsp(KernelGsp**, Dynamic*, NvU32);
// Wrapper macros
#define kgspConstructEngine_FNPTR(pKernelGsp) pKernelGsp->__kgspConstructEngine__
#define kgspConstructEngine(pGpu, pKernelGsp, arg3) kgspConstructEngine_DISPATCH(pGpu, pKernelGsp, arg3)
#define kgspStateInitLocked_FNPTR(pKernelGsp) pKernelGsp->__kgspStateInitLocked__
#define kgspStateInitLocked(pGpu, pKernelGsp) kgspStateInitLocked_DISPATCH(pGpu, pKernelGsp)
#define kgspRegisterIntrService_FNPTR(pKernelGsp) pKernelGsp->__kgspRegisterIntrService__
#define kgspRegisterIntrService(pGpu, pKernelGsp, pRecords) kgspRegisterIntrService_DISPATCH(pGpu, pKernelGsp, pRecords)
#define kgspServiceInterrupt_FNPTR(pKernelGsp) pKernelGsp->__kgspServiceInterrupt__
@@ -672,8 +674,6 @@ NV_STATUS __nvoc_objCreate_KernelGsp(KernelGsp**, Dynamic*, NvU32);
#define kgspStatePreInitLocked(pGpu, pEngstate) kgspStatePreInitLocked_DISPATCH(pGpu, pEngstate)
#define kgspStatePreInitUnlocked_FNPTR(pEngstate) pEngstate->__nvoc_base_OBJENGSTATE.__engstateStatePreInitUnlocked__
#define kgspStatePreInitUnlocked(pGpu, pEngstate) kgspStatePreInitUnlocked_DISPATCH(pGpu, pEngstate)
#define kgspStateInitLocked_FNPTR(pEngstate) pEngstate->__nvoc_base_OBJENGSTATE.__engstateStateInitLocked__
#define kgspStateInitLocked(pGpu, pEngstate) kgspStateInitLocked_DISPATCH(pGpu, pEngstate)
#define kgspStateInitUnlocked_FNPTR(pEngstate) pEngstate->__nvoc_base_OBJENGSTATE.__engstateStateInitUnlocked__
#define kgspStateInitUnlocked(pGpu, pEngstate) kgspStateInitUnlocked_DISPATCH(pGpu, pEngstate)
#define kgspStatePreLoad_FNPTR(pEngstate) pEngstate->__nvoc_base_OBJENGSTATE.__engstateStatePreLoad__
@@ -736,6 +736,10 @@ static inline NV_STATUS kgspConstructEngine_DISPATCH(struct OBJGPU *pGpu, struct
return pKernelGsp->__kgspConstructEngine__(pGpu, pKernelGsp, arg3);
}
static inline NV_STATUS kgspStateInitLocked_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp) {
return pKernelGsp->__kgspStateInitLocked__(pGpu, pKernelGsp);
}
static inline void kgspRegisterIntrService_DISPATCH(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, IntrServiceRecord pRecords[175]) {
pKernelGsp->__kgspRegisterIntrService__(pGpu, pKernelGsp, pRecords);
}
@@ -956,10 +960,6 @@ static inline NV_STATUS kgspStatePreInitUnlocked_DISPATCH(POBJGPU pGpu, struct K
return pEngstate->__kgspStatePreInitUnlocked__(pGpu, pEngstate);
}
static inline NV_STATUS kgspStateInitLocked_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) {
return pEngstate->__kgspStateInitLocked__(pGpu, pEngstate);
}
static inline NV_STATUS kgspStateInitUnlocked_DISPATCH(POBJGPU pGpu, struct KernelGsp *pEngstate) {
return pEngstate->__kgspStateInitUnlocked__(pGpu, pEngstate);
}
@@ -1062,6 +1062,8 @@ static inline NvU32 kgspGetWFL0Offset_DISPATCH(struct KernelGsp *arg_this) {
NV_STATUS kgspConstructEngine_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, ENGDESCRIPTOR arg3);
NV_STATUS kgspStateInitLocked_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp);
void kgspRegisterIntrService_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, IntrServiceRecord pRecords[175]);
NvU32 kgspServiceInterrupt_IMPL(struct OBJGPU *pGpu, struct KernelGsp *pKernelGsp, IntrServiceServiceInterruptArguments *pParams);

View File

@@ -194,6 +194,18 @@ const PRB_FIELD_DESC prb_fields_nvdebug_systeminfo[] = {
PRB_MAYBE_FIELD_NAME("bugcheck_count")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
13,
{
PRB_OPTIONAL,
PRB_MESSAGE,
0,
},
NVDEBUG_SYSTEMINFO_RESOURCESERVER,
0,
PRB_MAYBE_FIELD_NAME("resserv_info")
PRB_MAYBE_FIELD_DEFAULT(0)
},
};
// 'GpuInfo' field defaults
@@ -236,6 +248,18 @@ const PRB_FIELD_DESC prb_fields_nvdebug_gpuinfo[] = {
PRB_MAYBE_FIELD_NAME("eng_nvd")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
24,
{
PRB_REPEATED,
PRB_MESSAGE,
0,
},
NVDEBUG_ENG_KGSP,
0,
PRB_MAYBE_FIELD_NAME("eng_kgsp")
PRB_MAYBE_FIELD_DEFAULT(0)
},
};
// 'NvDump' field defaults
@@ -838,15 +862,189 @@ const PRB_FIELD_DESC prb_fields_nvdebug_systeminfo_timeinfo[] = {
},
};
// 'ResourceServer' field defaults
// 'ResourceServer' field descriptors
const PRB_FIELD_DESC prb_fields_nvdebug_systeminfo_resourceserver[] = {
{
1,
{
PRB_REQUIRED,
PRB_UINT32,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("num_clients")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
2,
{
PRB_REQUIRED,
PRB_UINT64,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("num_resources")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
3,
{
PRB_REPEATED,
PRB_MESSAGE,
0,
},
NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO,
0,
PRB_MAYBE_FIELD_NAME("client_info")
PRB_MAYBE_FIELD_DEFAULT(0)
},
};
// 'ClientInfo' field defaults
// 'ClientInfo' field descriptors
const PRB_FIELD_DESC prb_fields_nvdebug_systeminfo_resourceserver_clientinfo[] = {
{
1,
{
PRB_REQUIRED,
PRB_UINT32,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("client_handle")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
2,
{
PRB_REQUIRED,
PRB_UINT32,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("process_id")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
3,
{
PRB_REQUIRED,
PRB_STRING,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("process_name")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
4,
{
PRB_REQUIRED,
PRB_UINT32,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("flags")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
5,
{
PRB_REQUIRED,
PRB_UINT32,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("priv_level")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
6,
{
PRB_REPEATED,
PRB_MESSAGE,
0,
},
NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_CLIENTALLOCATION,
0,
PRB_MAYBE_FIELD_NAME("allocations")
PRB_MAYBE_FIELD_DEFAULT(0)
},
};
// 'ClientAllocation' field defaults
// 'ClientAllocation' field descriptors
const PRB_FIELD_DESC prb_fields_nvdebug_systeminfo_resourceserver_clientinfo_clientallocation[] = {
{
1,
{
PRB_REQUIRED,
PRB_UINT32,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("object_handle")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
2,
{
PRB_REQUIRED,
PRB_UINT32,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("object_class_id")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
3,
{
PRB_REQUIRED,
PRB_UINT32,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("parent_handle")
PRB_MAYBE_FIELD_DEFAULT(0)
},
{
4,
{
PRB_OPTIONAL,
PRB_UINT32,
0,
},
0,
0,
PRB_MAYBE_FIELD_NAME("gpu_instance")
PRB_MAYBE_FIELD_DEFAULT(0)
},
};
// Message descriptors
const PRB_MSG_DESC prb_messages_nvdebug[] = {
{
12,
13,
prb_fields_nvdebug_systeminfo,
PRB_MAYBE_MESSAGE_NAME("NvDebug.SystemInfo")
},
{
3,
4,
prb_fields_nvdebug_gpuinfo,
PRB_MAYBE_MESSAGE_NAME("NvDebug.GpuInfo")
},
@@ -900,6 +1098,21 @@ const PRB_MSG_DESC prb_messages_nvdebug[] = {
prb_fields_nvdebug_systeminfo_timeinfo,
PRB_MAYBE_MESSAGE_NAME("NvDebug.SystemInfo.TimeInfo")
},
{
3,
prb_fields_nvdebug_systeminfo_resourceserver,
PRB_MAYBE_MESSAGE_NAME("NvDebug.SystemInfo.ResourceServer")
},
{
6,
prb_fields_nvdebug_systeminfo_resourceserver_clientinfo,
PRB_MAYBE_MESSAGE_NAME("NvDebug.SystemInfo.ResourceServer.ClientInfo")
},
{
4,
prb_fields_nvdebug_systeminfo_resourceserver_clientinfo_clientallocation,
PRB_MAYBE_MESSAGE_NAME("NvDebug.SystemInfo.ResourceServer.ClientInfo.ClientAllocation")
},
};
// Service descriptors

View File

@@ -35,12 +35,15 @@ extern const PRB_MSG_DESC prb_messages_nvdebug[];
#define NVDEBUG_SYSTEMINFO_CONFIG (&prb_messages_nvdebug[9])
#define NVDEBUG_SYSTEMINFO_ERRORSTATE (&prb_messages_nvdebug[10])
#define NVDEBUG_SYSTEMINFO_TIMEINFO (&prb_messages_nvdebug[11])
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER (&prb_messages_nvdebug[12])
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO (&prb_messages_nvdebug[13])
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_CLIENTALLOCATION (&prb_messages_nvdebug[14])
// Message maximum lengths
// Does not include repeated fields, strings and byte arrays.
#define NVDEBUG_SYSTEMINFO_LEN 275
#define NVDEBUG_GPUINFO_LEN 164
#define NVDEBUG_NVDUMP_LEN 1308
#define NVDEBUG_SYSTEMINFO_LEN 354
#define NVDEBUG_GPUINFO_LEN 262
#define NVDEBUG_NVDUMP_LEN 1570
#define NVDEBUG_SYSTEMINFO_NORTHBRIDGEINFO_LEN 12
#define NVDEBUG_SYSTEMINFO_SOCINFO_LEN 12
#define NVDEBUG_SYSTEMINFO_CPUINFO_LEN 24
@@ -50,6 +53,9 @@ extern const PRB_MSG_DESC prb_messages_nvdebug[];
#define NVDEBUG_SYSTEMINFO_CONFIG_LEN 12
#define NVDEBUG_SYSTEMINFO_ERRORSTATE_LEN 14
#define NVDEBUG_SYSTEMINFO_TIMEINFO_LEN 45
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_LEN 75
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_LEN 54
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_CLIENTALLOCATION_LEN 24
extern const PRB_FIELD_DESC prb_fields_nvdebug_systeminfo[];
@@ -66,6 +72,7 @@ extern const PRB_FIELD_DESC prb_fields_nvdebug_systeminfo[];
#define NVDEBUG_SYSTEMINFO_TIME_SINCE_BOOT (&prb_fields_nvdebug_systeminfo[9])
#define NVDEBUG_SYSTEMINFO_TIME_INFO (&prb_fields_nvdebug_systeminfo[10])
#define NVDEBUG_SYSTEMINFO_BUGCHECK_COUNT (&prb_fields_nvdebug_systeminfo[11])
#define NVDEBUG_SYSTEMINFO_RESSERV_INFO (&prb_fields_nvdebug_systeminfo[12])
// 'SystemInfo' field lengths
#define NVDEBUG_SYSTEMINFO_TIMESTAMP_LEN 10
@@ -80,6 +87,7 @@ extern const PRB_FIELD_DESC prb_fields_nvdebug_systeminfo[];
#define NVDEBUG_SYSTEMINFO_TIME_SINCE_BOOT_LEN 5
#define NVDEBUG_SYSTEMINFO_TIME_INFO_LEN 48
#define NVDEBUG_SYSTEMINFO_BUGCHECK_COUNT_LEN 5
#define NVDEBUG_SYSTEMINFO_RESSERV_INFO_LEN 78
extern const PRB_FIELD_DESC prb_fields_nvdebug_gpuinfo[];
@@ -87,11 +95,13 @@ extern const PRB_FIELD_DESC prb_fields_nvdebug_gpuinfo[];
#define NVDEBUG_GPUINFO_ENG_GPU (&prb_fields_nvdebug_gpuinfo[0])
#define NVDEBUG_GPUINFO_ENG_MC (&prb_fields_nvdebug_gpuinfo[1])
#define NVDEBUG_GPUINFO_ENG_NVD (&prb_fields_nvdebug_gpuinfo[2])
#define NVDEBUG_GPUINFO_ENG_KGSP (&prb_fields_nvdebug_gpuinfo[3])
// 'GpuInfo' field lengths
#define NVDEBUG_GPUINFO_ENG_GPU_LEN 59
#define NVDEBUG_GPUINFO_ENG_GPU_LEN 65
#define NVDEBUG_GPUINFO_ENG_MC_LEN 69
#define NVDEBUG_GPUINFO_ENG_NVD_LEN 33
#define NVDEBUG_GPUINFO_ENG_KGSP_LEN 91
extern const PRB_FIELD_DESC prb_fields_nvdebug_nvdump[];
@@ -103,11 +113,11 @@ extern const PRB_FIELD_DESC prb_fields_nvdebug_nvdump[];
#define NVDEBUG_NVDUMP_SYSTEM_INFO_GSPRM (&prb_fields_nvdebug_nvdump[4])
// 'NvDump' field lengths
#define NVDEBUG_NVDUMP_SYSTEM_INFO_LEN 278
#define NVDEBUG_NVDUMP_DCL_MSG_LEN 570
#define NVDEBUG_NVDUMP_GPU_INFO_LEN 167
#define NVDEBUG_NVDUMP_SYSTEM_INFO_LEN 357
#define NVDEBUG_NVDUMP_DCL_MSG_LEN 576
#define NVDEBUG_NVDUMP_GPU_INFO_LEN 265
#define NVDEBUG_NVDUMP_EXCEPTION_ADDRESS_LEN 10
#define NVDEBUG_NVDUMP_SYSTEM_INFO_GSPRM_LEN 278
#define NVDEBUG_NVDUMP_SYSTEM_INFO_GSPRM_LEN 357
extern const PRB_FIELD_DESC prb_fields_nvdebug_systeminfo_northbridgeinfo[];
@@ -243,6 +253,50 @@ extern const PRB_FIELD_DESC prb_fields_nvdebug_systeminfo_timeinfo[];
#define NVDEBUG_SYSTEMINFO_TIMEINFO_TIME_SINCE_BOOT_US_LEN 5
#define NVDEBUG_SYSTEMINFO_TIMEINFO_TIME_SINCE_BOOT_SEC_LEN 5
extern const PRB_FIELD_DESC prb_fields_nvdebug_systeminfo_resourceserver[];
// 'ResourceServer' field descriptor pointers
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_NUM_CLIENTS (&prb_fields_nvdebug_systeminfo_resourceserver[0])
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_NUM_RESOURCES (&prb_fields_nvdebug_systeminfo_resourceserver[1])
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENT_INFO (&prb_fields_nvdebug_systeminfo_resourceserver[2])
// 'ResourceServer' field lengths
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_NUM_CLIENTS_LEN 5
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_NUM_RESOURCES_LEN 10
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENT_INFO_LEN 57
extern const PRB_FIELD_DESC prb_fields_nvdebug_systeminfo_resourceserver_clientinfo[];
// 'ClientInfo' field descriptor pointers
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_CLIENT_HANDLE (&prb_fields_nvdebug_systeminfo_resourceserver_clientinfo[0])
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_PROCESS_ID (&prb_fields_nvdebug_systeminfo_resourceserver_clientinfo[1])
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_PROCESS_NAME (&prb_fields_nvdebug_systeminfo_resourceserver_clientinfo[2])
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_FLAGS (&prb_fields_nvdebug_systeminfo_resourceserver_clientinfo[3])
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_PRIV_LEVEL (&prb_fields_nvdebug_systeminfo_resourceserver_clientinfo[4])
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_ALLOCATIONS (&prb_fields_nvdebug_systeminfo_resourceserver_clientinfo[5])
// 'ClientInfo' field lengths
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_CLIENT_HANDLE_LEN 5
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_PROCESS_ID_LEN 5
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_PROCESS_NAME_LEN 1
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_FLAGS_LEN 5
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_PRIV_LEVEL_LEN 5
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_ALLOCATIONS_LEN 27
extern const PRB_FIELD_DESC prb_fields_nvdebug_systeminfo_resourceserver_clientinfo_clientallocation[];
// 'ClientAllocation' field descriptor pointers
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_CLIENTALLOCATION_OBJECT_HANDLE (&prb_fields_nvdebug_systeminfo_resourceserver_clientinfo_clientallocation[0])
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_CLIENTALLOCATION_OBJECT_CLASS_ID (&prb_fields_nvdebug_systeminfo_resourceserver_clientinfo_clientallocation[1])
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_CLIENTALLOCATION_PARENT_HANDLE (&prb_fields_nvdebug_systeminfo_resourceserver_clientinfo_clientallocation[2])
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_CLIENTALLOCATION_GPU_INSTANCE (&prb_fields_nvdebug_systeminfo_resourceserver_clientinfo_clientallocation[3])
// 'ClientAllocation' field lengths
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_CLIENTALLOCATION_OBJECT_HANDLE_LEN 5
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_CLIENTALLOCATION_OBJECT_CLASS_ID_LEN 5
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_CLIENTALLOCATION_PARENT_HANDLE_LEN 5
#define NVDEBUG_SYSTEMINFO_RESOURCESERVER_CLIENTINFO_CLIENTALLOCATION_GPU_INSTANCE_LEN 5
extern const PRB_SERVICE_DESC prb_services_nvdebug[];
// Service descriptor pointers