All of lore.kernel.org
 help / color / mirror / Atom feed
From: Corey Minyard <minyard@acm.org>
To: Matthew Garrett <matthew.garrett@nebula.com>
Cc: "rja@sgi.com" <rja@sgi.com>, "lenb@kernel.org" <lenb@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"rjw@rjwysocki.net" <rjw@rjwysocki.net>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>
Subject: Re: [PATCH V2] Change ACPI IPMI support to "default y"
Date: Fri, 21 Feb 2014 11:12:45 -0600	[thread overview]
Message-ID: <5307890D.4080807@acm.org> (raw)
In-Reply-To: <1392997912.20109.41.camel@x230>

On 02/21/2014 09:51 AM, Matthew Garrett wrote:
> On Fri, 2014-02-21 at 07:37 -0600, Corey Minyard wrote:
>
>> However, the basic problem is that hardware vendors produce hardware
>> that sucks and then expect software to fix all the problems.  Most IPMI
>> interfaces don't have interrupts, so they have to be polled.  Then they
>> add important interfaces on top of it like firmware upgrade and ACPI and
>> expect it to perform well.  If vendors would just have an interrupt for
>> IPMI, 99% of these problems would go away.
> Not going to disagree. The impact on power consumption is also pretty
> awful. I should re-read the spec to figure out whether we can
> legitimately get away with not doing that.

Thinking about this some more, I realized that it may possible to turn
off the driver if nothing at all is waiting.  I'll need to look at the
spec to see if I'm forgetting something.

>
>> One thing we can do is remove the default interface probing for IPMI. 
>> Even though the spec has it, all modern hardware should have it
>> specified in ACPI or device tree.  That should fix all the slow boot
>> problems, at least.  If a user wants to add a default interface, they
>> can use the interface to dynamically add it after boot time.
> Something like this (untested)?

That's exactly what I would have done...

-corey

>
> diff --git a/drivers/char/ipmi/Kconfig b/drivers/char/ipmi/Kconfig
> index eea8464..5126230 100644
> --- a/drivers/char/ipmi/Kconfig
> +++ b/drivers/char/ipmi/Kconfig
> @@ -52,6 +52,16 @@ config IPMI_SI
>          Currently, only KCS and SMIC are supported.  If
>          you are using IPMI, you should probably say "y" here.
>  
> +config IPMI_PROBE_DEFAULTS
> +       bool 'Probe for all possible IPMI interfaces by default'
> +       help
> +         Modern systems will usually expose IPMI interfaces via a discoverable
> +        firmware mechanism such as ACPI or DMI. Older systems do not, and so
> +        the driver is forced to probe hardware manually. This may cause boot
> +        delays. Say "n" here to disable this manual probing. IPMI will then
> +        only be available on older systems if the "ipmi_si_intf.trydefaults=1"
> +        boot argument is passed.
> +
>  config IPMI_WATCHDOG
>         tristate 'IPMI Watchdog Timer'
>         help
> diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
> index 03f4189..82c7d56 100644
> --- a/drivers/char/ipmi/ipmi_si_intf.c
> +++ b/drivers/char/ipmi/ipmi_si_intf.c
> @@ -1230,7 +1230,11 @@ static bool          si_tryplatform = 1;
>  #ifdef CONFIG_PCI
>  static bool          si_trypci = 1;
>  #endif
> +#ifdef CONFIG_IPMI_PROBE_DEFAULTS
>  static bool          si_trydefaults = 1;
> +#else
> +static bool          si_trydefaults;
> +#endif
>  static char          *si_type[SI_MAX_PARMS];
>  #define MAX_SI_TYPE_STR 30
>  static char          si_type_str[MAX_SI_TYPE_STR];
>
>


  reply	other threads:[~2014-02-21 17:12 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-18 16:28 [PATCH V2] Change ACPI IPMI support to "default y" Matthew Garrett
2014-02-18 23:26 ` Rafael J. Wysocki
2014-02-18 23:15   ` Matthew Garrett
2014-02-18 23:15     ` Matthew Garrett
2014-02-18 23:35     ` Rafael J. Wysocki
2014-02-18 23:25       ` Matthew Garrett
2014-02-18 23:25         ` Matthew Garrett
2014-02-19  0:45         ` Rafael J. Wysocki
2014-02-19  0:53           ` Corey Minyard
2014-03-12 23:00     ` Pavel Machek
2014-03-12 23:22       ` Matthew Garrett
2014-03-12 23:22         ` Matthew Garrett
2014-03-13  7:22         ` Pavel Machek
2014-03-13  7:24           ` Matthew Garrett
2014-03-13  7:24             ` Matthew Garrett
2014-03-13  8:38             ` Pavel Machek
2014-03-13 13:29               ` Corey Minyard
2014-03-16  8:53                 ` Pavel Machek
2014-02-20 20:14 ` Russ Anderson
2014-02-20 20:16   ` Matthew Garrett
2014-02-20 20:16     ` Matthew Garrett
2014-02-20 20:40     ` Russ Anderson
2014-02-20 20:46       ` Matthew Garrett
2014-02-20 20:46         ` Matthew Garrett
2014-02-20 20:59         ` Russ Anderson
2014-02-20 21:00           ` Matthew Garrett
2014-02-20 21:00             ` Matthew Garrett
2014-02-20 21:28             ` Russ Anderson
2014-02-20 21:39               ` Matthew Garrett
2014-02-20 21:39                 ` Matthew Garrett
2014-02-20 22:06                 ` Russ Anderson
2014-02-20 22:26                   ` Matthew Garrett
2014-02-20 22:26                     ` Matthew Garrett
2014-02-20 22:45                     ` Russ Anderson
2014-02-20 23:09                       ` Matthew Garrett
2014-02-20 23:09                         ` Matthew Garrett
2014-02-20 23:59                         ` Russ Anderson
2014-02-21  0:13                           ` Matthew Garrett
2014-02-21  0:13                             ` Matthew Garrett
2014-02-21 16:53                             ` Russ Anderson
2014-02-21  2:17                           ` Zheng, Lv
2014-02-21 16:12                             ` Matthew Garrett
2014-02-21 16:12                               ` Matthew Garrett
2014-02-24  0:48                               ` Zheng, Lv
2014-02-24  0:48                                 ` Zheng, Lv
2014-02-21 16:33                             ` Russ Anderson
2014-02-21 13:37             ` Corey Minyard
2014-02-21 15:51               ` Matthew Garrett
2014-02-21 15:51                 ` Matthew Garrett
2014-02-21 17:12                 ` Corey Minyard [this message]
2014-02-20 21:49         ` Russ Anderson
2014-02-20 21:51           ` Matthew Garrett
2014-02-20 21:51             ` Matthew Garrett
2014-02-21  0:10   ` Rafael J. Wysocki
2014-02-20 23:01 ` Russ Anderson

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=5307890D.4080807@acm.org \
    --to=minyard@acm.org \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matthew.garrett@nebula.com \
    --cc=rja@sgi.com \
    --cc=rjw@rjwysocki.net \
    /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.