tools/perf/scripts/perl/Perf-Trace-Util/lib/Perf/Trace/Util.pm

Source file repositories/reference/linux-study-clean/tools/perf/scripts/perl/Perf-Trace-Util/lib/Perf/Trace/Util.pm

File Facts

System
Linux kernel
Corpus path
tools/perf/scripts/perl/Perf-Trace-Util/lib/Perf/Trace/Util.pm
Extension
.pm
Size
1515 bytes
Lines
95
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: tools
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

package Perf::Trace::Util;

use 5.010000;
use strict;
use warnings;

require Exporter;

our @ISA = qw(Exporter);

our %EXPORT_TAGS = ( 'all' => [ qw(
) ] );

our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );

our @EXPORT = qw(
avg nsecs nsecs_secs nsecs_nsecs nsecs_usecs print_nsecs
clear_term
);

our $VERSION = '0.01';

sub avg
{
    my ($total, $n) = @_;

    return $total / $n;
}

my $NSECS_PER_SEC    = 1000000000;

sub nsecs
{
    my ($secs, $nsecs) = @_;

    return $secs * $NSECS_PER_SEC + $nsecs;
}

sub nsecs_secs {
    my ($nsecs) = @_;

    return $nsecs / $NSECS_PER_SEC;
}

sub nsecs_nsecs {
    my ($nsecs) = @_;

    return $nsecs % $NSECS_PER_SEC;
}

sub nsecs_str {
    my ($nsecs) = @_;

    my $str = sprintf("%5u.%09u", nsecs_secs($nsecs), nsecs_nsecs($nsecs));

    return $str;
}

sub clear_term
{
    print "\x1b[H\x1b[2J";
}

1;
__END__
=head1 NAME

Perf::Trace::Util - Perl extension for perf script

=head1 SYNOPSIS

Annotation

Implementation Notes