All of lore.kernel.org
 help / color / mirror / Atom feed
From: maxime.ripard@free-electrons.com (Maxime Ripard)
To: kernelnewbies@lists.kernelnewbies.org
Subject: Get local CPU id
Date: Mon, 9 Mar 2015 15:39:31 +0100	[thread overview]
Message-ID: <20150309143931.GR5085@lukather> (raw)
In-Reply-To: <759A6C30-432D-4D4B-A87B-D3686017A4CF@gmail.com>

On Sun, Mar 08, 2015 at 07:10:09PM -0400, Nicholas Krause wrote:
> 
> 
> On March 8, 2015 6:30:47 PM EDT, Valdis.Kletnieks at vt.edu wrote:
> >On Sun, 08 Mar 2015 22:49:00 +0100, Maxime Ripard said:
> >
> >> On Sun, Mar 08, 2015 at 10:06:23PM +0300, Matwey V. Kornilov wrote:
> >
> >> > I would like to somehow obtain local CPU core ID in the interrupt
> >> > handler function. I want to see how my interruptions are
> >distributed
> >> > among different CPU cores under different conditions.
> >
> >> > How should I do that?
> >>
> >> To answer strictly your question, like Nick said, smp_processor_id()
> >> will work fine.
> >>
> >> However, you can do exactly what you want be reading
> >/proc/interrupts,
> >> that already provide the informations you are looking for.
> >
> >Clarification:  /proc/interrupts will give userspace that information.
> >It is *not* recommended you try to read it from kernel space, much less
> >from an interrupt context... :)
> >
> Does that matter through as all Matwey is interested in getting are
> the load balancing among multiple cores on a smp based system under
> various workloads . I wouldn't mind recommending to just read
> proc/interrupts expect for it only being refreshed every 3 seconds
> to my knowledge by default and therefore not valid for getting per
> second data. Also this file doesn't explain the kernel's decision to
> put what work on which core on a smp capable system during interrupt
> context , which may also interest Matwey too.

The kernel decision is:
  - For SPIs, the default affinity is always on CPU0. That can be
    changed if someone calls irq_set_affinity.
  - For PPIs, the interrupt will be triggered on a particular
    processor, without any intervention of the kernel.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150309/fef4482c/attachment.bin 

  reply	other threads:[~2015-03-09 14:39 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-08 19:06 Get local CPU id Matwey V. Kornilov
2015-03-08 20:41 ` Nicholas Krause
2015-03-08 21:49 ` Maxime Ripard
2015-03-08 22:03   ` Nicholas Krause
2015-03-08 22:30   ` Valdis.Kletnieks at vt.edu
2015-03-08 23:10     ` Nicholas Krause
2015-03-09 14:39       ` Maxime Ripard [this message]
2015-03-09 12:59     ` Maxime Ripard
2015-03-09  0:37 ` Anish Kumar
2015-03-09  0:52   ` Nicholas Krause
2015-03-09 15:35 ` Matwey V. Kornilov
2015-03-09 16:26   ` Jeff Haran
2015-03-09 17:42     ` Nick Krause
2015-03-09 18:10       ` Valdis.Kletnieks at vt.edu
2015-03-09 20:05         ` Nicholas Krause

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=20150309143931.GR5085@lukather \
    --to=maxime.ripard@free-electrons.com \
    --cc=kernelnewbies@lists.kernelnewbies.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 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.