From: Jacob Pan <jacob.jun.pan@linux.intel.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org, mingo@redhat.com, hpa@zytor.com,
mingo@elte.hu, linux-tip-commits@vger.kernel.org
Subject: Re: [tip:irq/core] x86: Sanitize apb timer interrupt handling
Date: Tue, 12 Oct 2010 15:44:16 -0700 [thread overview]
Message-ID: <20101012154416.000035ad@unknown> (raw)
In-Reply-To: <alpine.LFD.2.00.1010130020250.2909@localhost6.localdomain6>
Thomas Gleixner Wed, 13 Oct 2010 00:26:08 +0200 (CEST)
>On Tue, 12 Oct 2010, Jacob Pan wrote:
>
>> Thomas Gleixner Tue, 12 Oct 2010 23:28:19 +0200 (CEST)
>> >On Tue, 12 Oct 2010, Jacob Pan wrote:
>> >
>> >>
>> >> >x86: Sanitize apb timer interrupt handling
>> >> >
>> >> >Disable the interrupt in CPU_DEAD where it belongs.
>> >> My main concern is the performance cost. The power management code for
>> >> Moorestown system make use of the cpu hotplug code (disable_nonboot_cpus)
>> >> but much more frequently. The system low power states are call S0 idle
>> >> state (s0ix).
>> >>
>> >> Leaving the irq enabled at the chip and desc level between S0ix states
>> >> might give some performance benefit. That was my original thought.
>> >> Will it cause problems?
>> >
>> >Errm. I merily moved it to the place where it should be. You do the
>> >disable/enable dance already today.
>> >
>> I think I only do disable/enable at the timer HW level today during cpu hp
>> notification, not calling disable_irq(). Am i missing something?
>
>apbt_setup_irq()
>{
> ...
>
>---> disable_irq(adev->irq);
> desc->status |= IRQ_MOVE_PCNTXT;
> irq_set_affinity(adev->irq, cpumask_of(adev->cpu));
> /* APB timer irqs are set up as mp_irqs, timer is edge triggerred */
> set_irq_chip_and_handler_name(adev->irq, chip, handle_edge_irq, "edge");
>---> enable_irq(adev->irq);
> if (system_state == SYSTEM_BOOTING)
> ...
>}
>
>So that's a disable/enable pair on every cpu hotplug, right ?
>
>Now I moved the disable to CPU_DEAD where it belongs and the enable
>stayed at the same place.
apbt_setup_irq() does not get called in cpu hotplug code,
but CPU_DEAD notification will happen every time disable_nonboot_cpus()
are called. Since Moorestown OSPM code uses disable_nonboot_cpus often,
that is why i am concerned about the overhead of disable_irq().
next prev parent reply other threads:[~2010-10-12 22:44 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <tip-a5ef2e70405c8a9ee380b5ff33a008c75454791f@git.kernel.org>
2010-10-12 21:20 ` [tip:irq/core] x86: Sanitize apb timer interrupt handling Jacob Pan
2010-10-12 21:28 ` Thomas Gleixner
2010-10-12 22:12 ` Jacob Pan
2010-10-12 22:26 ` Thomas Gleixner
2010-10-12 22:44 ` Jacob Pan [this message]
2010-10-13 18:10 ` Jacob Pan
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=20101012154416.000035ad@unknown \
--to=jacob.jun.pan@linux.intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
/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.