PROTOCOLS
MemoryMonitor
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
GetSnapshot
Request
Name | Type |
---|---|
snapshot |
handle<socket>
|
STRUCTS
PrincipalIdentifier
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
Globally-unique identifier used to refer to a specific Principal..
Field | Type | Description | Default |
---|---|---|---|
id |
uint64
|
No default |
ProcessMapped
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
Field | Type | Description | Default |
---|---|---|---|
process |
zx/Koid
|
The KOID of the process that this VMAR lives in. |
No default |
base |
uint64
|
Base address of the VMAR. |
No default |
len |
uint64
|
Length of the VMAR. |
No default |
ENUMS
PrincipalType flexible
Type: uint32
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
Name | Value | Description |
---|---|---|
RUNNABLE |
1 |
A RUNNABLE Principal is a unit of computation that can be "run" and has some degree of independence. For example: a Fuchsia component. |
PART |
2 |
A PART Principal is a subsection of another Principal that does not operate independently. For example: the internal cache of a larger process. |
TABLES
Attribution
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
Holds the list of resources attributed to a Principal (subject) by another Principal (source).
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
source |
PrincipalIdentifier
|
Principal making the attribution claim. |
2 |
subject |
PrincipalIdentifier
|
Principal to which the ressources are attributed. |
3 |
resources |
vector<ResourceReference>
|
List of resources attributed to |
Job
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
child_jobs |
vector<zx/Koid>
|
List of child jobs of the job described. |
2 |
processes |
vector<zx/Koid>
|
List of child processes of the job described. |
KernelStatistics
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
Kernel internal and system-wide memory statistics.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
memory_stats |
fuchsia.kernel/MemoryStatsExtended
|
|
2 |
compression_stats |
fuchsia.kernel/MemoryStatsCompression
|
Mapping
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
Information about a VMO mapped in a process address space.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
vmo |
zx/Koid
|
Koid of the VMO mapped. |
2 |
address_base |
uint64
|
Address at which the VMO is mapped. |
3 |
size |
uint64
|
Size of the VMO mapping. |
Principal
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
Defines a Principal, a part of a running system that can use memory.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
identifier |
PrincipalIdentifier
|
The identifier of this principal. |
2 |
description |
Description
|
The textual representation of a Principal. It does not need to be unique, but uniqueness is desirable for user-friendliness. This string will used for display. |
3 |
principal_type |
PrincipalType
|
|
4 |
parent |
PrincipalIdentifier
|
Parent of the principal, if it has a parent. |
Process
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
vmos |
vector<zx/Koid>
|
List of VMOs accessible to the process described. |
2 |
mappings |
vector<Mapping>
|
List of memory mappings in the address space of the process described. |
Resource
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
Holds the description of a kernel resource.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
koid |
zx/Koid
|
Unique identifier of the resource. |
2 |
name_index |
uint64
|
Index of the resource name in the |
3 |
resource_type |
ResourceType
|
Snapshot
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
Snapshot of the memory usage of the system, as seen by the server.
Ordinal | Field | Type | Description |
---|---|---|---|
2 |
attributions |
vector<Attribution>
|
List of attribution claims. |
3 |
principals |
vector<Principal>
|
List of Principals on the system. |
4 |
resources |
vector<Resource>
|
List of kernel memory resources on the system. These resources are attributed to Principals by other Principals. |
5 |
resource_names |
vector<string>
|
Map from the vector index to the name of kernel resources.
Resource names are often repeated across many resources; using this indirection reduces the
amount of duplication within a |
6 |
kernel_statistics |
KernelStatistics
|
System-wide memory statistics from the kernel. |
Vmo
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
committed_bytes |
uint64
|
Number of committed bytes of this VMO. |
2 |
populated_bytes |
uint64
|
Number of populated bytes of this VMO. |
3 |
parent |
zx/Koid
|
If present, the parent VMO of this VMO. |
UNIONS
Description flexible
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
component |
string
|
If the Principal is a component, its moniker. |
2 |
part |
string
|
If the Principal is not a component, a user-understandable textual identifier. |
ResourceReference flexible
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
References a kernel Resource, or some subset of a Resource (such as a part of a process address space).
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
kernel_object |
zx/Koid
|
Identifies a kernel object whose memory is being attributed. Refers to all memory held by VMOs reachable from the object (currently a Job, Process or VMO). |
2 |
process_mapped |
ProcessMapped
|
Identifies a part of a process address space. |
ResourceType flexible
Defined in fuchsia.memory.attribution.plugin/plugin.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
job |
Job
|
Describes the set of Jobs & Processes within a Job resource. |
2 |
process |
Process
|
Describes the memory of a Process. One of these fields may be omitted if not necessary to resolve the snapshot's attribution claims. |
3 |
vmo |
Vmo
|
Describes the memory usage of a VMO, both in directly reference memory, and via its parent VMO, if any. |