1*f16adbafSJames Morse /* SPDX-License-Identifier: GPL-2.0 */ 2*f16adbafSJames Morse /* 3*f16adbafSJames Morse * Copyright (C) 2025 Arm Ltd. 4*f16adbafSJames Morse * Based on arch/x86/kernel/cpu/resctrl/internal.h 5*f16adbafSJames Morse */ 6*f16adbafSJames Morse 7*f16adbafSJames Morse #ifndef __LINUX_RESCTRL_TYPES_H 8*f16adbafSJames Morse #define __LINUX_RESCTRL_TYPES_H 9*f16adbafSJames Morse 10*f16adbafSJames Morse /* Reads to Local DRAM Memory */ 11*f16adbafSJames Morse #define READS_TO_LOCAL_MEM BIT(0) 12*f16adbafSJames Morse 13*f16adbafSJames Morse /* Reads to Remote DRAM Memory */ 14*f16adbafSJames Morse #define READS_TO_REMOTE_MEM BIT(1) 15*f16adbafSJames Morse 16*f16adbafSJames Morse /* Non-Temporal Writes to Local Memory */ 17*f16adbafSJames Morse #define NON_TEMP_WRITE_TO_LOCAL_MEM BIT(2) 18*f16adbafSJames Morse 19*f16adbafSJames Morse /* Non-Temporal Writes to Remote Memory */ 20*f16adbafSJames Morse #define NON_TEMP_WRITE_TO_REMOTE_MEM BIT(3) 21*f16adbafSJames Morse 22*f16adbafSJames Morse /* Reads to Local Memory the system identifies as "Slow Memory" */ 23*f16adbafSJames Morse #define READS_TO_LOCAL_S_MEM BIT(4) 24*f16adbafSJames Morse 25*f16adbafSJames Morse /* Reads to Remote Memory the system identifies as "Slow Memory" */ 26*f16adbafSJames Morse #define READS_TO_REMOTE_S_MEM BIT(5) 27*f16adbafSJames Morse 28*f16adbafSJames Morse /* Dirty Victims to All Types of Memory */ 29*f16adbafSJames Morse #define DIRTY_VICTIMS_TO_ALL_MEM BIT(6) 30*f16adbafSJames Morse 31*f16adbafSJames Morse /* Max event bits supported */ 32*f16adbafSJames Morse #define MAX_EVT_CONFIG_BITS GENMASK(6, 0) 33*f16adbafSJames Morse 34*f16adbafSJames Morse enum resctrl_res_level { 35*f16adbafSJames Morse RDT_RESOURCE_L3, 36*f16adbafSJames Morse RDT_RESOURCE_L2, 37*f16adbafSJames Morse RDT_RESOURCE_MBA, 38*f16adbafSJames Morse RDT_RESOURCE_SMBA, 39*f16adbafSJames Morse 40*f16adbafSJames Morse /* Must be the last */ 41*f16adbafSJames Morse RDT_NUM_RESOURCES, 42*f16adbafSJames Morse }; 43*f16adbafSJames Morse 44*f16adbafSJames Morse /* 45*f16adbafSJames Morse * Event IDs, the values match those used to program IA32_QM_EVTSEL before 46*f16adbafSJames Morse * reading IA32_QM_CTR on RDT systems. 47*f16adbafSJames Morse */ 48*f16adbafSJames Morse enum resctrl_event_id { 49*f16adbafSJames Morse QOS_L3_OCCUP_EVENT_ID = 0x01, 50*f16adbafSJames Morse QOS_L3_MBM_TOTAL_EVENT_ID = 0x02, 51*f16adbafSJames Morse QOS_L3_MBM_LOCAL_EVENT_ID = 0x03, 52*f16adbafSJames Morse }; 53*f16adbafSJames Morse 54*f16adbafSJames Morse #endif /* __LINUX_RESCTRL_TYPES_H */ 55