Skip to content

Stack Allocation Sampling #1

@hgn

Description

@hgn

Aktuell ist es schwierig im Linux die aktuelle Stackverwendung zu analysieren. Über /proc/[pid]/maps kann zwar festgestellt werden, welche Speicherseiten gemapped wurden, was eine granularität von (maximal) 4096 byte erbringt.

Eine Perf erweiterung wäre es beim samplen nicht nur %RIP Register auszulesen, sondern auch den aktuellen Stackpointer (%ESP bei x96-64 oder %SP bei Arm/RISC-V).

Problem: sampeln beginnt nicht, nachdem das program sofort startete, Nutzer können sich ja zu einen bereits (sehr) lange laufende Applikation "attachen". Wenn nun bei jeden auslesen der %ESP genommen wird - welche Aussage könnte dann getroffen werden. Hier wäre vielmehr die Frage: kommt man an die Stack Start Adresse heran? Dies könnte man auf der Maillingliste erfragen. Bei unwindung muss es ja auch eine Abbruchbedinung geben, wann stoppt man beispielsweise beim unwinding?

Evtl kann man hier schauen: https://github.com/d99kris/stackusage.git - was wird hier als Referenz verwendet? Wie wird hier das Delta berechnet?

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions