Subversion Repositories configs

Rev

Blame | Last modification | View Log | RSS feed

## Filter config file
##
## Description:
## Configuration file to specify filter commands to filter out desired
## kernel data from vmcore. It supports erasing of symbol data and
## it's members of any data type. In case of filtering of data pointed by
## void * pointer, user needs to provide size to filter out.
##
## Please refer to manpage makedumpfile.conf(5) for more details.
##
##
## - Module section
## =========================================================
## Syntax:
## [ModuleName]
##
## Define the module section where the symbols specified in subsequent erase
## commands belong to. The section name is a kernel module name (including
## vmlinux). The unnamed section defaults to [vmlinux] section.
##
## NOTE: There should not be any whitespaces before or after the ModuleName.
##
## e.g.
##      [vmlinux] # Symbols in erase command belongs to main kernel (vmlinux)
##      erase modules
##      erase cred_jar.name
##      erase cred_jar.name size 10
##      erase cred_jar.array
##      erase vmlist.addr nullify
##
##      [z90crypt] # Symbols in erase command belongs to kernel module z90crypt
##      erase ap_device_list
##
##      # erase entire CPRBX structure
##      erase static_cprbx
##
##
## - To erase kernel data referred through a kernel Symbol
## =========================================================
## Syntax:
## erase <Symbol>[.member[...]] [size <SizeValue>[K|M]]
## erase <Symbol>[.member[...]] [size <SizeSymbol>]
## erase <Symbol>[.member[...]] [nullify]]
##
## where
##      <Symbol>
##              A variable name from the kernel or module, which is part of
##              global symbols '/proc/kallsyms'.
##      <SizeValue>
##              Integer value that specifies size of data to be erased. The
##              suffixes 'K' and 'M' can be used to specify kilobytes and
##              megabytes respectively where, K means 1024 bytes and M means
##              1024 ^ 2 = 1048576 bytes.
##      <SizeSymbol>
##              A simple axpression of the form <Symbol>[.member[...]] that
##              denotes a symbol which contains a positive integer value as a
##              size of the data in bytes to be erased.
##
## Filter out the specified size of the data referred by symbol/member.
## If size option is not provided then the size of <Symbol> will be calculated
## according to it's data type. For 'char *' data type, string length will be
## determined with an upper limit of 1024.
##
## If specified <Symbol> is of type 'void *', then user needs to provide
## either 'size' or 'nullify' option. Otherwise erase command will not have
## any effect.
##
## The option 'nullify' will work only if filter symbol/member is a pointer and
## is used to set NULL value to the pointer type symbol/member.
##
## NOTE: Please note that by nullifying pointer values will affect the
## debug ability of created DUMPFILE. Use 'nullify' option only when size of
## data to be filter out is not known e.g. data pointed by 'void *'.
##
## e.g.
##      [vmlinux]
##      erase modules
##      erase cred_jar.name
##      erase cred_jar.name size 10
##      erase cred_jar.array
##      erase vmlist.addr nullify
##
##
## - To filter kernel data referred through Array/list_head Symbol
## =================================================================
## Syntax:
## for <id> in { <ArrayVar> |
##               <StructVar> via <NextMember> |
##               <ListHeadVar> within <StructName>:<ListHeadMember> }
##      erase <id>[.MemberExpression] [size <SizeExpression>|nullify]
##      [erase <id> ...]
##      [...]
## endfor
##
## where
##      <id>
##              Arbitrary name used to temporarily point to elements of the
##              list. Referred as iteration variable.
##      <ArrayVar>
##              A simple expression in the form of <Symbol>[.member[...]] that
##              results into an array variable.
##      <StructVar>
##              A simple expression in the form of <Symbol>[.member[...]] that
##              results into a variable that points to a structure.
##      <NextMember>
##              Member within <StructVar> that points to an object of same
##              type that of <StructVar>.
##      <ListHeadVar>
##              A simple expression in the form of <Symbol>[.member[...]] that
##              results into a variable of type struct list_head.
##      <StructName>
##              Name of the structure type that can be traversed using
##              HEAD variable <ListHeadVar> and contains a member named
##              <ListHeadMember>.
##      <ListHeadMember>
##              Name of a member in <StructName>, of type struct list_head.
##      <MemberExpression>
##              A simple expression in the form of [.member[...]] to specify a
##              member or component of a member in <ArrayVar>, <StructVar> or
##              <StructName>.
##      <SizeExpression>
##              One of the following:
##              - An integer value.
##              - <Symbol>[.member[...]]
##              - <id>[.MemberExpresion]
##
## The <ArrayVar>, <StructVar> and <ListHeadVar> is also referred as LIST
## entry
##
## Filter out the specified size of the data accessible through LIST entries.
## e.g.
##      [vmlinux]
##      # Traversing <ListHeadVar>
##      for m in modules.next within module:list
##              erase m.holders_dir.name
##      endfor
##      # Traversing <ArrayVar>
##      for lc in lowcore_ptr
##              erase lc
##      endfor
##      # Traversing link-list
##      for cj in cred_jar via slabp_cache
##              erase cj.name
##      endfor
##      [z90crypt]
##      for ap_dev in ap_device_list.next within ap_device:list
##              erase ap_dev.reply.message size ap_dev.reply.length
##      endfor
##