PROVIDING DYNAMIC INSTRUMENTATION USING DOMAIN-SPECIFIC MONITORING-LANGUAGE-TO-KERNEL-BYTECODE COMPILATION
First Claim
1. A method for providing dynamic instrumentation of executing processes, comprising:
- receiving, by a compilation engine executing on a computing device comprising a processor device, an instrumentation program file;
translating, by the compilation engine, the instrumentation program file into an executable and linkable file (ELF), the ELF comprising one or more sections of bytecode;
identifying, by a load and execute engine executing on the computing device, a first section and a second section of the one or more sections of bytecode, wherein the first section is to be executed in a kernel space of the computing device and the second section is to be executed in a user space of the computing device;
loading the first section into the kernel space for execution by a kernel space bytecode interpreter of an executing kernel of the computing device; and
concurrently executing the second section using a user space bytecode interpreter of the load and execute engine.
1 Assignment
0 Petitions
Accused Products
Abstract
Providing dynamic instrumentation using domain-specific monitoring-language-to-kernel-bytecode compilation is disclosed. An instrumentation program file is converted by a compilation engine into multiple bytecode sections. A load and execute engine identifies which sections can be executed in kernel space and which can be executed in user space. The sections to be executed in kernel space are then loaded into a kernel space bytecode interpreter for execution, while the sections to be executed in user space are concurrently executed by a user space bytecode interpreter of the load and execute engine. In some examples, the load and execute engine may provide global variables that are accessible by both the kernel space and the user space, and that facilitate data exchange between the kernel space bytecode interpreter and the user space bytecode interpreter.
-
Citations
20 Claims
-
1. A method for providing dynamic instrumentation of executing processes, comprising:
-
receiving, by a compilation engine executing on a computing device comprising a processor device, an instrumentation program file; translating, by the compilation engine, the instrumentation program file into an executable and linkable file (ELF), the ELF comprising one or more sections of bytecode; identifying, by a load and execute engine executing on the computing device, a first section and a second section of the one or more sections of bytecode, wherein the first section is to be executed in a kernel space of the computing device and the second section is to be executed in a user space of the computing device; loading the first section into the kernel space for execution by a kernel space bytecode interpreter of an executing kernel of the computing device; and concurrently executing the second section using a user space bytecode interpreter of the load and execute engine. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computing device, comprising:
-
a memory; and a processor device coupled to the memory to; receive, using a compilation engine, an instrumentation program file; translate, using the compilation engine, the instrumentation program file into an executable and linkable file (ELF), the ELF comprising one or more sections of bytecode; identify, using a load and execute engine, a first section and a second section of the one or more sections of bytecode, wherein the first section is to be executed in a kernel space of the computing device and the second section is to be executed in a user space of the computing device; load the first section into the kernel space for execution by a kernel space bytecode interpreter of an executing kernel of the computing device; and concurrently execute the second section using a user space bytecode interpreter of the load and execute engine. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product for providing dynamic instrumentation of executing processes, the computer program product stored on a non-transitory computer-readable storage medium and including instructions to cause a processor device to:
-
receive an instrumentation program file; translate the instrumentation program file into an executable and linkable file (ELF), the ELF comprising one or more sections of bytecode; identify a first section and a second section of the one or more sections of bytecode, wherein the first section is to be executed in a kernel space of a computing device and the second section is to be executed in a user space of the computing device; load the first section into the kernel space for execution by a kernel space bytecode interpreter of an executing kernel of the computing device; and concurrently execute the second section using a user space bytecode interpreter of the load and execute engine. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification