![]() |
|
|||
0001 /* 0002 * Copyright (c) 2008 Silicon Graphics, Inc. All Rights Reserved. 0003 * 0004 * This program is free software; you can redistribute it and/or modify 0005 * it under the terms of the GNU Lesser General Public License as published by 0006 * the Free Software Foundation; either version 2.1 of the License, or 0007 * (at your option) any later version. 0008 * 0009 * This program is distributed in the hope that it will be useful, 0010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0012 * GNU Lesser General Public License for more details. 0013 * 0014 * You should have received a copy of the GNU Lesser General Public License 0015 * along with this program; if not, write to the Free Software 0016 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 0017 */ 0018 0019 #ifndef __GRU_H__ 0020 #define __GRU_H__ 0021 0022 /* 0023 * GRU architectural definitions 0024 */ 0025 #define GRU_CACHE_LINE_BYTES 64 0026 #define GRU_HANDLE_STRIDE 256 0027 #define GRU_CB_BASE 0 0028 #define GRU_DS_BASE 0x20000 0029 0030 /* 0031 * Size used to map GRU GSeg 0032 */ 0033 #if defined(CONFIG_IA64) 0034 #define GRU_GSEG_PAGESIZE (256 * 1024UL) 0035 #elif defined(CONFIG_X86_64) 0036 #define GRU_GSEG_PAGESIZE (256 * 1024UL) /* ZZZ 2MB ??? */ 0037 #else 0038 #error "Unsupported architecture" 0039 #endif 0040 0041 /* 0042 * Structure for obtaining GRU resource information 0043 */ 0044 struct gru_chiplet_info { 0045 int node; 0046 int chiplet; 0047 int blade; 0048 int total_dsr_bytes; 0049 int total_cbr; 0050 int total_user_dsr_bytes; 0051 int total_user_cbr; 0052 int free_user_dsr_bytes; 0053 int free_user_cbr; 0054 }; 0055 0056 /* 0057 * Statictics kept for each context. 0058 */ 0059 struct gru_gseg_statistics { 0060 unsigned long fmm_tlbmiss; 0061 unsigned long upm_tlbmiss; 0062 unsigned long tlbdropin; 0063 unsigned long context_stolen; 0064 unsigned long reserved[10]; 0065 }; 0066 0067 /* Flags for GRU options on the gru_create_context() call */ 0068 /* Select one of the follow 4 options to specify how TLB misses are handled */ 0069 #define GRU_OPT_MISS_DEFAULT 0x0000 /* Use default mode */ 0070 #define GRU_OPT_MISS_USER_POLL 0x0001 /* User will poll CB for faults */ 0071 #define GRU_OPT_MISS_FMM_INTR 0x0002 /* Send interrupt to cpu to 0072 handle fault */ 0073 #define GRU_OPT_MISS_FMM_POLL 0x0003 /* Use system polling thread */ 0074 #define GRU_OPT_MISS_MASK 0x0003 /* Mask for TLB MISS option */ 0075 0076 0077 0078 #endif /* __GRU_H__ */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.1.0 LXR engine. The LXR team |
![]() ![]() |