mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2026-03-14 17:47:23 +00:00
525.53
This commit is contained in:
3
src/nvidia/inc/kernel/gpu/mem_mgr/mem_mapper.h
Normal file
3
src/nvidia/inc/kernel/gpu/mem_mgr/mem_mapper.h
Normal file
@@ -0,0 +1,3 @@
|
||||
|
||||
#include "g_mem_mapper_nvoc.h"
|
||||
|
||||
@@ -156,11 +156,20 @@ typedef struct _RANGELISTTYPE
|
||||
struct _RANGELISTTYPE *pNext;
|
||||
} RANGELISTTYPE, *PRANGELISTTYPE;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
MEMORY_PROTECTION_UNPROTECTED = 0,
|
||||
MEMORY_PROTECTION_PROTECTED = 1
|
||||
} MEMORY_PROTECTION;
|
||||
|
||||
/*!
|
||||
* @brief Callbacks to UVM for eviction
|
||||
*/
|
||||
typedef NV_STATUS (*pmaEvictPagesCb_t)(void *ctxPtr, NvU32 pageSize, NvU64 *pPages, NvU32 count, NvU64 physBegin, NvU64 physEnd);
|
||||
typedef NV_STATUS (*pmaEvictRangeCb_t)(void *ctxPtr, NvU64 physBegin, NvU64 physEnd);
|
||||
typedef NV_STATUS (*pmaEvictPagesCb_t)(void *ctxPtr, NvU32 pageSize, NvU64 *pPages,
|
||||
NvU32 count, NvU64 physBegin, NvU64 physEnd,
|
||||
MEMORY_PROTECTION prot);
|
||||
typedef NV_STATUS (*pmaEvictRangeCb_t)(void *ctxPtr, NvU64 physBegin, NvU64 physEnd,
|
||||
MEMORY_PROTECTION prot);
|
||||
|
||||
/*!
|
||||
* @brief Pluggable data structure management. Currently we have regmap and address tree.
|
||||
|
||||
@@ -42,10 +42,11 @@ void pmaRegionPrint(PMA *pPma, PMA_REGION_DESCRIPTOR *pRegion, void *pMap);
|
||||
NvBool pmaStateCheck(PMA *pPma);
|
||||
|
||||
// Temporary putting these here. TODO refactor them in the next CL.
|
||||
NV_STATUS _pmaEvictContiguous(PMA *pPma, void *pMap, NvU64 evictStart, NvU64 evictEnd);
|
||||
NV_STATUS _pmaEvictContiguous(PMA *pPma, void *pMap, NvU64 evictStart, NvU64 evictEnd,
|
||||
MEMORY_PROTECTION prot);
|
||||
NV_STATUS _pmaEvictPages(PMA *pPma, void *pMap, NvU64 *evictPages, NvU64 evictPageCount,
|
||||
NvU64 *allocPages, NvU64 allocPageCount, NvU32 pageSize, NvU64 physBegin,
|
||||
NvU64 physEnd);
|
||||
NvU64 *allocPages, NvU64 allocPageCount, NvU32 pageSize,
|
||||
NvU64 physBegin, NvU64 physEnd, MEMORY_PROTECTION prot);
|
||||
void _pmaClearScrubBit(PMA *pPma, SCRUB_NODE *pPmaScrubList, NvU64 count);
|
||||
NV_STATUS _pmaCheckScrubbedPages(PMA *pPma, NvU64 chunkSize, NvU64 *pPages, NvU32 pageCount);
|
||||
NV_STATUS _pmaPredictOutOfMemory(PMA *pPma, NvLength allocationCount, NvU32 pageSize,
|
||||
|
||||
@@ -53,6 +53,7 @@ typedef struct EVENTNOTIFICATION EVENTNOTIFICATION;
|
||||
#define RM_PAGE_MASK 0x0FFF
|
||||
#define RM_PAGE_SHIFT 12
|
||||
#define RM_PAGE_SHIFT_64K 16
|
||||
#define RM_PAGE_SHIFT_128K 17
|
||||
|
||||
// Huge page size is 2 MB
|
||||
#define RM_PAGE_SHIFT_HUGE 21
|
||||
|
||||
Reference in New Issue
Block a user