Subversion Repositories configs

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
192 - 1
## Filter config file
2
##
3
## Description:
4
## Configuration file to specify filter commands to filter out desired
5
## kernel data from vmcore. It supports erasing of symbol data and
6
## it's members of any data type. In case of filtering of data pointed by
7
## void * pointer, user needs to provide size to filter out.
8
##
9
## Please refer to manpage makedumpfile.conf(5) for more details.
10
##
11
##
12
## - Module section
13
## =========================================================
14
## Syntax:
15
## [ModuleName]
16
##
17
## Define the module section where the symbols specified in subsequent erase
18
## commands belong to. The section name is a kernel module name (including
19
## vmlinux). The unnamed section defaults to [vmlinux] section.
20
##
21
## NOTE: There should not be any whitespaces before or after the ModuleName.
22
##
23
## e.g.
24
##	[vmlinux] # Symbols in erase command belongs to main kernel (vmlinux)
25
##	erase modules
26
##	erase cred_jar.name
27
##	erase cred_jar.name size 10
28
##	erase cred_jar.array
29
##	erase vmlist.addr nullify
30
##
31
##	[z90crypt] # Symbols in erase command belongs to kernel module z90crypt
32
##	erase ap_device_list
33
##
34
##	# erase entire CPRBX structure
35
##	erase static_cprbx
36
##
37
##
38
## - To erase kernel data referred through a kernel Symbol
39
## =========================================================
40
## Syntax:
41
## erase <Symbol>[.member[...]] [size <SizeValue>[K|M]]
42
## erase <Symbol>[.member[...]] [size <SizeSymbol>]
43
## erase <Symbol>[.member[...]] [nullify]]
44
##
45
## where
46
##	<Symbol>
47
##		A variable name from the kernel or module, which is part of
48
##		global symbols '/proc/kallsyms'.
49
##	<SizeValue>
50
##		Integer value that specifies size of data to be erased. The
51
##		suffixes 'K' and 'M' can be used to specify kilobytes and
52
##		megabytes respectively where, K means 1024 bytes and M means
53
##		1024 ^ 2 = 1048576 bytes.
54
##	<SizeSymbol>
55
##		A simple axpression of the form <Symbol>[.member[...]] that
56
##		denotes a symbol which contains a positive integer value as a
57
##		size of the data in bytes to be erased.
58
##
59
## Filter out the specified size of the data referred by symbol/member.
60
## If size option is not provided then the size of <Symbol> will be calculated
61
## according to it's data type. For 'char *' data type, string length will be
62
## determined with an upper limit of 1024.
63
##
64
## If specified <Symbol> is of type 'void *', then user needs to provide
65
## either 'size' or 'nullify' option. Otherwise erase command will not have
66
## any effect.
67
##
68
## The option 'nullify' will work only if filter symbol/member is a pointer and
69
## is used to set NULL value to the pointer type symbol/member.
70
##
71
## NOTE: Please note that by nullifying pointer values will affect the
72
## debug ability of created DUMPFILE. Use 'nullify' option only when size of
73
## data to be filter out is not known e.g. data pointed by 'void *'.
74
##
75
## e.g.
76
##	[vmlinux]
77
##	erase modules
78
##	erase cred_jar.name
79
##	erase cred_jar.name size 10
80
##	erase cred_jar.array
81
##	erase vmlist.addr nullify
82
##
83
##
84
## - To filter kernel data referred through Array/list_head Symbol
85
## =================================================================
86
## Syntax:
87
## for <id> in { <ArrayVar> |
88
##		 <StructVar> via <NextMember> |
89
##		 <ListHeadVar> within <StructName>:<ListHeadMember> }
90
##	erase <id>[.MemberExpression] [size <SizeExpression>|nullify]
91
##	[erase <id> ...]
92
##	[...]
93
## endfor
94
##
95
## where
96
##	<id>
97
##		Arbitrary name used to temporarily point to elements of the
98
##		list. Referred as iteration variable.
99
##	<ArrayVar>
100
##		A simple expression in the form of <Symbol>[.member[...]] that
101
##		results into an array variable.
102
##	<StructVar>
103
##		A simple expression in the form of <Symbol>[.member[...]] that
104
##		results into a variable that points to a structure.
105
##	<NextMember>
106
##		Member within <StructVar> that points to an object of same
107
##		type that of <StructVar>.
108
##	<ListHeadVar>
109
##		A simple expression in the form of <Symbol>[.member[...]] that
110
##		results into a variable of type struct list_head.
111
##	<StructName>
112
##		Name of the structure type that can be traversed using
113
##		HEAD variable <ListHeadVar> and contains a member named
114
##		<ListHeadMember>.
115
##	<ListHeadMember>
116
##		Name of a member in <StructName>, of type struct list_head.
117
##	<MemberExpression>
118
##		A simple expression in the form of [.member[...]] to specify a
119
##		member or component of a member in <ArrayVar>, <StructVar> or
120
##		<StructName>.
121
##	<SizeExpression>
122
##		One of the following:
123
##		- An integer value.
124
##		- <Symbol>[.member[...]]
125
##		- <id>[.MemberExpresion]
126
##
127
## The <ArrayVar>, <StructVar> and <ListHeadVar> is also referred as LIST
128
## entry
129
##
130
## Filter out the specified size of the data accessible through LIST entries.
131
## e.g.
132
##	[vmlinux]
133
##	# Traversing <ListHeadVar>
134
##	for m in modules.next within module:list
135
##		erase m.holders_dir.name
136
##	endfor
137
##	# Traversing <ArrayVar>
138
##	for lc in lowcore_ptr
139
##		erase lc
140
##	endfor
141
##	# Traversing link-list
142
##	for cj in cred_jar via slabp_cache
143
##		erase cj.name
144
##	endfor
145
##	[z90crypt]
146
##	for ap_dev in ap_device_list.next within ap_device:list
147
##		erase ap_dev.reply.message size ap_dev.reply.length
148
##	endfor
149
##