brintos

brintos / linux-shallow public Read only

0
0
Text · 2.1 KiB · 6ae0450 Raw
77 lines · c
1/*2 *  Copyright (c) 2008 Silicon Graphics, Inc.  All Rights Reserved.3 *4 *  This program is free software; you can redistribute it and/or modify5 *  it under the terms of the GNU Lesser General Public License as published by6 *  the Free Software Foundation; either version 2.1 of the License, or7 *  (at your option) any later version.8 *9 *  This program is distributed in the hope that it will be useful,10 *  but WITHOUT ANY WARRANTY; without even the implied warranty of11 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the12 *  GNU Lesser General Public License for more details.13 *14 *  You should have received a copy of the GNU Lesser General Public License15 *  along with this program; if not, write to the Free Software16 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA17 */18 19#ifndef __GRU_H__20#define __GRU_H__21 22/*23 * GRU architectural definitions24 */25#define GRU_CACHE_LINE_BYTES		6426#define GRU_HANDLE_STRIDE		25627#define GRU_CB_BASE			028#define GRU_DS_BASE			0x2000029 30/*31 * Size used to map GRU GSeg32 */33#if defined(CONFIG_X86_64)34#define GRU_GSEG_PAGESIZE	(256 * 1024UL)		/* ZZZ 2MB ??? */35#else36#error "Unsupported architecture"37#endif38 39/*40 * Structure for obtaining GRU resource information41 */42struct gru_chiplet_info {43	int	node;44	int	chiplet;45	int	blade;46	int	total_dsr_bytes;47	int	total_cbr;48	int	total_user_dsr_bytes;49	int	total_user_cbr;50	int	free_user_dsr_bytes;51	int	free_user_cbr;52};53 54/*55 * Statictics kept for each context.56 */57struct gru_gseg_statistics {58	unsigned long	fmm_tlbmiss;59	unsigned long	upm_tlbmiss;60	unsigned long	tlbdropin;61	unsigned long	context_stolen;62	unsigned long	reserved[10];63};64 65/* Flags for GRU options on the gru_create_context() call */66/* Select one of the follow 4 options to specify how TLB misses are handled */67#define GRU_OPT_MISS_DEFAULT	0x0000	/* Use default mode */68#define GRU_OPT_MISS_USER_POLL	0x0001	/* User will poll CB for faults */69#define GRU_OPT_MISS_FMM_INTR	0x0002	/* Send interrupt to cpu to70					   handle fault */71#define GRU_OPT_MISS_FMM_POLL	0x0003	/* Use system polling thread */72#define GRU_OPT_MISS_MASK	0x0003	/* Mask for TLB MISS option */73 74 75 76#endif		/* __GRU_H__ */77