linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Milton Miller <miltonm@bga.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linuxppc-dev@ozlabs.org, cbe-oss-dev@ozlabs.org,
	Carl Love <carll@us.ibm.com>
Subject: Re: [Cbe-oss-dev] [RFC, PATCH 4/4] Add support to OProfile for profiling Cell BE SPUs -- update
Date: Thu, 1 Feb 2007 12:56:46 -0600	[thread overview]
Message-ID: <ca40499f1ef66ec7ca889a02ee2ba7cd@bga.com> (raw)
In-Reply-To: <200701311642.42397.arnd@arndb.de>


On Jan 31, 2007, at 9:42 AM, Arnd Bergmann wrote:

> On Wednesday 31 January 2007 10:24, Milton Miller wrote:
>>> +/* The three functions below are for maintaining and accessing
>>> + * the vma-to-file offset map.
>>> + */
>>> +vma_map_t * create_vma_map(const struct spu * spu, u64 objectid);
>>> +unsigned int vma_map_lookup(vma_map_t *map, unsigned int vma,
>>> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0 =
=A0const struct spu * aSpu);
>>> +void vma_map_free(struct vma_map *map);
>>> +
>>
>> Why would the SPU to cookie translation need to be different
>> than the standard vm one? =A0 Is it that spufs takes refs on the
>> pages but doesn't have the standard vma? =A0 Maybe an approach
>> of creating them would reuse the oprofile code.
>
> It's a two stage process for SPUs:
>
> * samples are relative to the local store, and for each sample
>   we need to know what context was running. The context is
>   identified over a pointer to user space effective addresses.
>

Ok I'm with you so far.   There is a separate address space, the
local store, which you abbreviate ls below.  The trace gives
this local address.

> * The effective address identifies the SPU ELF binary mapped
>   at that address. It may however be in the middle of a VMA,
>   so you get another offset into the mapped file.

I think this is where we start to diverge.

Can you only map 1 linear range of 1 file as the SPU local store?

I thought you were mentioning shared libraries, and had mmap,
shared mappings of text, etc.

>
> For each sample, you then get an offset into the ls, an offset
> into the file to identify the ELF object, and the dcookie
> for the file containing that object

You are supplying
    (1) offset in local store
    (2) offset from dcookie to local store (?   you said ELF object)
    (3) file containing #2

So there is exactly one backing object for the entire local
store, and its mapped linearly?


> As a consequence, you only need dcookies for the case where
> a context switch happens (the executable changes), but not
> for each of the samples during the a time slice, they all
> point to the same object.


My understanding is the dcookie is supposed to represent a backing
file object.  The combination (dcookie, offset) should lead to
the backing object, which userspace can then disassemble, etc.

Therefore, if you allow multiple pieces to be mapped into local store,
then you should be reverse translating each ls address into (file,=20
offset)
of that file system object.   The fact that its contained in a bigger
elf file may mean that userspace needs some more info, but it still
needs the same info.

If you do allow more than 1 backing object, then my suggestion was
to use the common code by setting up a fake vm context that has
kernel vmas and let the generic code lookup the file from this context.

milton=

  reply	other threads:[~2007-02-01 18:56 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-29 19:45 [RFC, PATCH 0/4] Add support to OProfile for profiling Cell BE SPUs -- update Maynard Johnson
2007-01-29 19:46 ` [RFC, PATCH 1/4] " Maynard Johnson
2007-01-30  4:07   ` [Cbe-oss-dev] " Arnd Bergmann
2007-01-30 10:39   ` Christoph Hellwig
2007-01-30 22:49     ` Carl Love
2007-01-30 22:57       ` Benjamin Herrenschmidt
2007-01-31  8:47         ` Christoph Hellwig
2007-01-30 22:59       ` Benjamin Herrenschmidt
2007-01-29 19:47 ` [RFC, PATCH 2/4] " Maynard Johnson
2007-01-30  4:08   ` [Cbe-oss-dev] " Arnd Bergmann
2007-01-30 23:51     ` Carl Love
2007-01-29 19:48 ` [RFC, PATCH 3/4] " Maynard Johnson
2007-01-30  4:24   ` [Cbe-oss-dev] " Arnd Bergmann
2007-01-30 15:31     ` Maynard Johnson
2007-01-31  0:35       ` Arnd Bergmann
2007-01-29 19:48 ` [RFC, PATCH 4/4] " Maynard Johnson
2007-01-30  7:39   ` [Cbe-oss-dev] " Arnd Bergmann
2007-01-30  7:53     ` Benjamin Herrenschmidt
2007-01-30 10:41       ` Christoph Hellwig
2007-01-30 23:09         ` Maynard Johnson
2007-01-30 21:41     ` Maynard Johnson
2007-01-30 22:54       ` Maynard Johnson
2007-01-30 23:34         ` Benjamin Herrenschmidt
2007-01-31  0:29           ` Maynard Johnson
2007-01-31  6:52         ` Arnd Bergmann
2007-02-02 16:47           ` Maynard Johnson
2007-02-03  7:40             ` Arnd Bergmann
2007-02-03 20:03               ` Maynard Johnson
2007-02-04  2:42                 ` Arnd Bergmann
2007-02-04 17:11                   ` Maynard Johnson
2007-01-30 23:31       ` Carl Love
2007-01-31  1:25         ` Christian Krafft
2007-01-31  6:06         ` Arnd Bergmann
2007-01-31  5:57       ` Arnd Bergmann
2007-02-02 19:27         ` Maynard Johnson
2007-02-03 23:49     ` Maynard Johnson
2007-02-04  2:52       ` Arnd Bergmann
2007-02-04 17:33         ` Maynard Johnson
2007-01-31  9:24   ` Milton Miller
2007-01-31 15:42     ` Arnd Bergmann
2007-02-01 18:56       ` Milton Miller [this message]
2007-02-02  0:54         ` Arnd Bergmann
2007-01-30  8:37 ` [RFC, PATCH 0/4] " Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ca40499f1ef66ec7ca889a02ee2ba7cd@bga.com \
    --to=miltonm@bga.com \
    --cc=arnd@arndb.de \
    --cc=carll@us.ibm.com \
    --cc=cbe-oss-dev@ozlabs.org \
    --cc=linuxppc-dev@ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).