| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When trying to refer a module data structure GET_DIE_NFIELDS
does not set the dwarf_info to the right module.
For instance:
struct ap_device {
...
struct list_head list;
...
};
struct ap_device *dev;
As a result, it was able to resolve only dev->list and it was failing to
resolve dev->list.next.
The patch takes care of handling this by introducing GET_DIE_NFIELDS_ALL
which takes care of setting the dwarf_info to the appropriate module.
Signed-off-by: Aruna Balakrishnaiah <aruna@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
| |
Current version of makedumpfile/eppic integration patches works only for
data structures in vmlinux. This patch adds support to module data structures.
Changes from v1:
Fix return value when failed to set dwarf_debuginfo
Signed-off-by: Aruna Balakrishnaiah <aruna@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Current version of makedumpfile/eppic integration patches
works only for symbols in vmlinux. This patch adds support
to module symbols.
I have tested the patch on dynamically linked version of
makedumpfile with EPPIC_LEGACY_MODE=1. However it should
work on non-legacy mode also.
Signed-off-by: Aravinda Prasad <aravinda@linux.vnet.ibm.com>
Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For programs compiled with -static option, there is no
dynamic section in the ELF file. Hence, the functions in the
main executable cannot be invoked by dynamically loaded
libraries as they cannot be resolved.
The eppic extension for makedumpfile, which is dynamically
loaded when -eppic flag is specified, needs to call few
functions in makedumpfile. This will not work if makedumpfile
is compiled with -static flag.
This patch is a hack which overcomes this limitation by passing
the address of the functions required by the dynamically loaded
library, eppic_makedumpfile.so, during initialization. The
dynamically loaded library branches to the function address
eliminating the need to resolve functions.
Signed-off-by: Aravinda Prasad <aravinda@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The memset function will be used to specify the virtual address
and the length of the data to be scrubbed in the dump file from
the eppic macro. makedumpfile will convert these requests into
filter_info nodes which will be enqueued for filtering. Existing
makedumpfile functionality reads the filter_info nodes and scrubs the
data accordingly.
Signed-off-by: Aravinda Prasad <aravinda@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The patch includes functionality for apimember and apigetrtype eppic
callback routines along with helper functions to fetch information
related to the member of the structure/union
Whenever a structure/union member is accessed inside the eppic macro,
eppic will query makedumpfile through call back functions requesting
more information on the structure or union member. The information
includes member name, offset from structure, data type and size.
makedumpfile will get all these information using DWARF and pass
back to eppic using libeppic API calls.
Signed-off-by: Aravinda Prasad <aravinda@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch implements a series of apigetuint* call back functions
which are used to access data from the dump image. Eppic uses these
call back functions to fetch the actual value of the global variables.
This patch also adds other call back functions as a place holder which
will be implemented in later patches. This is mainly to avoid
compilation error while registering the call back functions using
eppic_apiset() function.
Signed-off-by: Aravinda Prasad <aravinda@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch extends the makedumpfile functionality to include eppic
language support. The patch dynamically loads the makedumpfile specific
shared object and calls the eppic_load function in shared object to
load/compile and execute the specified eppic macros.
This patch also includes "--eppic" option to makedumpfile command to
specify the eppic macro or the directory containing eppic macros. The
specified eppic macro will be executed to scrub the data in the
dumpfile. In case of a directory, all the eppic macros inside the
directory will be executed for scrubbing the data.
TODO
- Support specifying eppic macros in the makedumpfile.conf file.
A new command should be added to makedumpfile.conf to identify
an eppic macro. This command could be used in any section of
the makedumpfile.conf, where the section name indicates the kernel
module name. makedumpfile will only search for symbols encountered
by eppic macro only in the specified module. Because, searching
these symbols in all the modules will cause huge performance
overhead.
Signed-off-by: Aravinda Prasad <aravinda@linux.vnet.ibm.com>
|
|
This patch contains routines which initialize eppic and register call
back function which will be called whenever a new eppic macro is loaded
using eppic_load() API. The registered call back function executes the
eppic macro as soon as it is loaded.
Signed-off-by: Aravinda Prasad <aravinda@linux.vnet.ibm.com>
|