cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Util.pm (1515B)


      1package Perf::Trace::Util;
      2
      3use 5.010000;
      4use strict;
      5use warnings;
      6
      7require Exporter;
      8
      9our @ISA = qw(Exporter);
     10
     11our %EXPORT_TAGS = ( 'all' => [ qw(
     12) ] );
     13
     14our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
     15
     16our @EXPORT = qw(
     17avg nsecs nsecs_secs nsecs_nsecs nsecs_usecs print_nsecs
     18clear_term
     19);
     20
     21our $VERSION = '0.01';
     22
     23sub avg
     24{
     25    my ($total, $n) = @_;
     26
     27    return $total / $n;
     28}
     29
     30my $NSECS_PER_SEC    = 1000000000;
     31
     32sub nsecs
     33{
     34    my ($secs, $nsecs) = @_;
     35
     36    return $secs * $NSECS_PER_SEC + $nsecs;
     37}
     38
     39sub nsecs_secs {
     40    my ($nsecs) = @_;
     41
     42    return $nsecs / $NSECS_PER_SEC;
     43}
     44
     45sub nsecs_nsecs {
     46    my ($nsecs) = @_;
     47
     48    return $nsecs % $NSECS_PER_SEC;
     49}
     50
     51sub nsecs_str {
     52    my ($nsecs) = @_;
     53
     54    my $str = sprintf("%5u.%09u", nsecs_secs($nsecs), nsecs_nsecs($nsecs));
     55
     56    return $str;
     57}
     58
     59sub clear_term
     60{
     61    print "\x1b[H\x1b[2J";
     62}
     63
     641;
     65__END__
     66=head1 NAME
     67
     68Perf::Trace::Util - Perl extension for perf script
     69
     70=head1 SYNOPSIS
     71
     72  use Perf::Trace::Util;
     73
     74=head1 SEE ALSO
     75
     76Perf (script) documentation
     77
     78=head1 AUTHOR
     79
     80Tom Zanussi, E<lt>tzanussi@gmail.com<gt>
     81
     82=head1 COPYRIGHT AND LICENSE
     83
     84Copyright (C) 2009 by Tom Zanussi
     85
     86This library is free software; you can redistribute it and/or modify
     87it under the same terms as Perl itself, either Perl version 5.10.0 or,
     88at your option, any later version of Perl 5 you may have available.
     89
     90Alternatively, this software may be distributed under the terms of the
     91GNU General Public License ("GPL") version 2 as published by the Free
     92Software Foundation.
     93
     94=cut