lkml.org 
[lkml]   [2014]   [Jul]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 26/52] perf tools: Add dso__data_size()
    Date
    Add a function to return the dso data size, for use
    in estimating the size an instruction cache.

    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    ---
    tools/perf/util/dso.c | 22 ++++++++++++++++++++++
    tools/perf/util/dso.h | 2 ++
    2 files changed, 24 insertions(+)

    diff --git a/tools/perf/util/dso.c b/tools/perf/util/dso.c
    index 84e4a05..e657d86 100644
    --- a/tools/perf/util/dso.c
    +++ b/tools/perf/util/dso.c
    @@ -544,6 +544,28 @@ static int data_file_size(struct dso *dso)
    return 0;
    }

    +/**
    + * dso__data_size - Return dso data size
    + * @dso: dso object
    + * @machine: machine object
    + *
    + * Return: dso data size
    + */
    +off_t dso__data_size(struct dso *dso, struct machine *machine)
    +{
    + int fd;
    +
    + fd = dso__data_fd(dso, machine);
    + if (fd < 0)
    + return fd;
    +
    + if (data_file_size(dso))
    + return -1;
    +
    + /* For now just estimate dso data size is close to file size */
    + return dso->data.file_size;
    +}
    +
    static ssize_t data_read_offset(struct dso *dso, u64 offset,
    u8 *data, ssize_t size)
    {
    diff --git a/tools/perf/util/dso.h b/tools/perf/util/dso.h
    index c805f60..af1c256 100644
    --- a/tools/perf/util/dso.h
    +++ b/tools/perf/util/dso.h
    @@ -166,6 +166,7 @@ int dso__read_binary_type_filename(const struct dso *dso, enum dso_binary_type t
    * The dso__data_* external interface provides following functions:
    * dso__data_fd
    * dso__data_close
    + * dso__data_size
    * dso__data_read_offset
    * dso__data_read_addr
    *
    @@ -203,6 +204,7 @@ int dso__read_binary_type_filename(const struct dso *dso, enum dso_binary_type t
    int dso__data_fd(struct dso *dso, struct machine *machine);
    void dso__data_close(struct dso *dso);

    +off_t dso__data_size(struct dso *dso, struct machine *machine);
    ssize_t dso__data_read_offset(struct dso *dso, struct machine *machine,
    u64 offset, u8 *data, ssize_t size);
    ssize_t dso__data_read_addr(struct dso *dso, struct map *map,
    --
    1.8.3.2


    \
     
     \ /
      Last update: 2014-07-22 19:41    [W:4.132 / U:0.724 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site