All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Stephane Eranian <eranian@hpl.hp.com>
Cc: Philip Mucci <mucci@cs.utk.edu>,
	"Bryan O'Sullivan" <bos@serpentine.com>,
	perfmon@napali.hpl.hp.com, perfctr-devel@lists.sourceforge.net,
	linux-kernel@vger.kernel.org
Subject: Re: [Perfctr-devel] Re: [perfmon] perfmon2 code review: 32-bit ABI on 64-bit OS
Date: Mon, 13 Feb 2006 10:46:06 +1100	[thread overview]
Message-ID: <20060212234606.GC24291@localhost.localdomain> (raw)
In-Reply-To: <20060211223354.GA30327@frankl.hpl.hp.com>

On Sat, Feb 11, 2006 at 02:33:54PM -0800, Stephane Eranian wrote:
> Hello,
> 
> On Sun, Feb 12, 2006 at 12:16:25AM +0600, Philip Mucci wrote:
> > > 
> > > On some 64-bit arches (e.g. x86_64), most userspace code is 64-bit,
> > > while on others (e.g. powerpc), most is 32-bit.  Reducing the number of
> > > things that a userspace tool or library writer can trip over seems like
> > > a good thing here, even if it slightly complicates perfmon's internals.
> > > 
> > > > Note that there are similar issues with the remapped sampling buffer.
> > > > There, you need to explicitly compile your tool with a special option
> > > > to force certain types to be 64-bit (size_t, void *).
> > > 
> > > It's pretty normal to just use 64-bit quantities in these cases, and
> > > cast appropriately.
> > 
> > I agree with Bryan. Stephane, do you have any quantitative data for how
> > much more expensive going to 64 bit quantities would be? Which
> > performance critical operations access this structure? AFAIK, any
> > performance monitoring system call is already slow by nature...and thus
> > an additional dozen cycles isn't going to make a difference. Of course,
> > if this structure needs to be read/written by get_pmd, including the
> > userspace version (+ mmap offset), then the extra overhead should be
> > considered. 
> > 
> I think I can easily convert the bitmasks to be u64 on all platforms.
> I don't think it will negatively impact performance on 32-bit applications.
> 
> The sampling buffer is another matter. It is directly remapped. The default
> format, exposes size_t and void *. The size_t is not on the critical
> path, it is used to specify the buffer size. If we expose as 64-bit,
> we need to check on 32-bit system that the value is below 4GB and cast
> to size_t.
> 
> The most challenging piece is the IP (program pointer) that is in every
> sample. Today it is defined as unsigned long because this is fairly
> natural for a code address. The 64bit OS captures addresses as 64-bit,
> the 32-bit monitoring tool running on top has to consume them as 64-bit
> addresses, so u64 would be fine. 
> 
> But not on a 32-bit kernel with a 32-bit tool, addresses exported as u64
> would certainly work but consume double to buffer space, and that is a
> more serious issue in my mind.

Hmm.. does the sampling buffer collect on userspace PC values, or
kernel ones as well?

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

  reply	other threads:[~2006-02-12 23:51 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-20 18:37 [perfmon] Re: quick overview of the perfmon2 interface Truong, Dan
2006-01-20 18:37 ` Truong, Dan
2006-01-20 22:22 ` Andrew Morton
2006-01-20 22:22   ` Andrew Morton
2006-01-25 20:33 ` Bryan O'Sullivan
2006-01-25 20:33   ` Bryan O'Sullivan
2006-01-25 22:28   ` [Perfctr-devel] " Stephane Eranian
2006-01-25 22:28     ` Stephane Eranian
2006-01-25 22:46     ` [Perfctr-devel] RE: [perfmon] Re: quick overview of the Bryan O'Sullivan
2006-01-25 22:46       ` [Perfctr-devel] RE: [perfmon] Re: quick overview of the perfmon2 interface Bryan O'Sullivan
2006-01-26  7:48       ` Stephane Eranian
2006-01-26  7:48         ` Stephane Eranian
2006-01-26 18:26         ` [Perfctr-devel] RE: [perfmon] Re: quick overview of the Bryan O'Sullivan
2006-01-26 18:26           ` [Perfctr-devel] RE: [perfmon] Re: quick overview of the perfmon2 interface Bryan O'Sullivan
     [not found]     ` <1138649612.4077.50.camel@localhost.localdomain>
     [not found]       ` <1138651545.4487.13.camel@camp4.serpentine.com>
     [not found]         ` <1139155731.4279.0.camel@localhost.localdomain>
     [not found]           ` <1139245253.27739.8.camel@camp4.serpentine.com>
2006-02-10 15:36             ` perfmon2 code review: 32-bit ABI on 64-bit OS Stephane Eranian
2006-02-10 15:36               ` Stephane Eranian
2006-02-10 18:27               ` Bryan O'Sullivan
2006-02-10 18:27                 ` Bryan O'Sullivan
     [not found]                 ` <1139681785.4316.33.camel@localhost.localdomain>
2006-02-11 22:33                   ` [perfmon] " Stephane Eranian
2006-02-12 23:46                     ` David Gibson [this message]
2006-02-13  0:03                       ` [Perfctr-devel] " Eric Gouriou
2006-02-13 20:31                         ` Stephane Eranian
     [not found]                     ` <1139857076.4342.10.camel@localhost.localdomain>
2006-02-14 23:41                       ` [Perfctr-devel] " Stephane Eranian
2006-02-20 17:54                       ` Stephane Eranian
2006-02-13 20:34                 ` Stephane Eranian
2006-02-13 20:34                   ` Stephane Eranian

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=20060212234606.GC24291@localhost.localdomain \
    --to=david@gibson.dropbear.id.au \
    --cc=bos@serpentine.com \
    --cc=eranian@hpl.hp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mucci@cs.utk.edu \
    --cc=perfctr-devel@lists.sourceforge.net \
    --cc=perfmon@napali.hpl.hp.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.