This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [PATCH] fix alias cache breakage
- From: James Bottomley <James dot Bottomley at HansenPartnership dot com>
- To: "Frank Ch. Eigler" <fche at redhat dot com>
- Cc: systemtap at sourceware dot org
- Date: Mon, 14 Jul 2008 13:58:58 -0500
- Subject: Re: [PATCH] fix alias cache breakage
- Dkim-signature: v=1; a=rsa-sha256; c=simple/simple; d=hansenpartnership.com; s=2007; t=1216061941; bh=1Z/oHhMg8KJfJpqGHiWoydLzf3cMUt0A21F4qannE6 8=; l=1532; h=Subject:From:To:Cc:In-Reply-To:References: Content-Type:Date:Message-Id:Mime-Version: Content-Transfer-Encoding; b=q2Q4YDI7fqWx/K66QJG8GF23Zcuqbou6dgE5n z9Z6cJ20nnyASQx08lCToPyhnkjIfmKM+RrjBUMbWAsPDS9qTa9iiAe6Rc5QmeaVXkH sJG2tn/fsF6o9t0Qg5vm3vRgc1IGVibcGZsQ+BBPYqE2M93uY97RgSwefJVyPEcL8ec =
- Dkim-signature: v=1; a=rsa-sha256; c=simple/simple; d=hansenpartnership.com; s=2007; t=1216061939; bh=1Z/oHhMg8KJfJpqGHiWoydLzf3cMUt0A21F4qannE6 8=; l=1532; h=Subject:From:To:Cc:In-Reply-To:References: Content-Type:Date:Message-Id:Mime-Version: Content-Transfer-Encoding; b=DT/PRUxmYa9zUDK9DfW15egqarTGncbYJyEjq OZUt+2gk10Shixz9kG1gjv582GlV35ZBsW4xsA0g7qV2yyoUnlKMQcoB+veb/q/VsP0 9NmCU0VICfCsfz75YjsOnusK0ZJ4AVwd3b1NAYI4q1sOMlf13n6IdhMjm8XPsoeOEqQ =
- References: <1216052038.3378.15.camel@localhost.localdomain> <20080714173633.GB23136@redhat.com> <1216057675.3378.28.camel@localhost.localdomain> <20080714184834.GA5497@redhat.com>
On Mon, 2008-07-14 at 14:48 -0400, Frank Ch. Eigler wrote:
> Hi -
>
> On Mon, Jul 14, 2008 at 12:47:55PM -0500, James Bottomley wrote:
> > [...]
> > > I see what you're getting at, but having a single "global" array is
> > > still wrong; it needs to be at least module-indexed.
> >
> > Not for global declarations. It's not inconceivable that the only
> > resolution of the structure is in a separate module. The compiler will
> > drop a DW_AT_declaration if the CU never uses the structure. Even if an
> > entire module doesn't use the structure, you might still want to use it
> > for debugging.
>
> I understand that, but an implicit heuristic like that will not work
> in general. What we could do is hardcode a "cache miss in a module?
> then search vmlinux - if available".
Actually, the most likely case for an unresolved symbol is resolution in
another module rather than the kernel.
> Remember, we are about to start
> processing userspace binaries, likely in some shared dwflpp instances.
> So "global" isn't.
Then before you begin to do this, you need a namespace discriminator.
The cache is global to the kernel namespace, so it has to tie in to the
kernel and its modules.
The logical way to do this seems to be one dwflpp per "namespace" (where
a namespace is a set of modules that can link together) but it can be
done in other ways.
I can't seem to find how you were planning to do this in any of the
documentation, so a brief explanation would be helpful.
James