linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Kani, Toshimitsu" <toshi.kani@hpe.com>
To: "bp@alien8.de" <bp@alien8.de>
Cc: "linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
	"lenb@kernel.org" <lenb@kernel.org>,
	"mchehab@kernel.org" <mchehab@kernel.org>,
	"tony.luck@intel.com" <tony.luck@intel.com>,
	"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 4/7] ghes_edac: avoid multiple calls to dmi_walk()
Date: Fri, 4 Aug 2017 21:02:17 +0000	[thread overview]
Message-ID: <1501879964.2042.117.camel@hpe.com> (raw)
In-Reply-To: <20170804040525.GE12082@nazgul.tnic>

On Fri, 2017-08-04 at 06:05 +0200, Borislav Petkov wrote:
> On Thu, Aug 03, 2017 at 03:57:50PM -0600, Toshi Kani wrote:
> > ghes_edac_register() is called for each GHES platform device
> > instantiated per a GHES entry in ACPI HEST table.  dmi_walk()
> > counts the number of DIMMs on the system, and there is no need
> > to call it multiple times.
> > 
> > Change ghes_edac_register() to call dmi_walk() only when
> > 'num_dimm' is uninitialized.
> > 
> > Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
> > Suggested-by: Borislav Petkov <bp@alien8.de>
> > Cc: Borislav Petkov <bp@alien8.de>
> > Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
> > ---
> >  drivers/edac/ghes_edac.c |    9 ++++++---
> >  1 file changed, 6 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/edac/ghes_edac.c b/drivers/edac/ghes_edac.c
> > index 4e61a62..2e9ce9c 100644
> > --- a/drivers/edac/ghes_edac.c
> > +++ b/drivers/edac/ghes_edac.c
> > @@ -407,15 +407,18 @@
> > EXPORT_SYMBOL_GPL(ghes_edac_report_mem_error);
> >  
> >  int ghes_edac_register(struct ghes *ghes, struct device *dev)
> >  {
> > -	bool fake = false;
> > -	int rc, num_dimm = 0;
> >  	struct mem_ctl_info *mci;
> >  	struct edac_mc_layer layers[1];
> >  	struct ghes_edac_pvt *pvt;
> >  	struct ghes_edac_dimm_fill dimm_fill;
> > +	int rc;
> > +
> > +	static int num_dimm;
> > +	static bool fake;
> >  
> >  	/* Get the number of DIMMs */
> > -	dmi_walk(ghes_edac_count_dimms, &num_dimm);
> > +	if (num_dimm == 0)
> > +		dmi_walk(ghes_edac_count_dimms, &num_dimm);
> 
> So the problem is that ghes_edac_register() gets called multiple
> times depending on how many GHES platform devices are on the system.
> But yet they all scan *all* DIMMs. So instead you should return if
> the DIMMs have been counted already and not register a second time.
> 
> Which makes that whole mc counting kinda useless. So you could rip
> that out too.
> 
> Unless I'm missing something...

GHES platform devices correspond to GHES entries, which define firmware
interfaces to report generic memory errors to the OS, such as NMI and
SCI.  These devices are associated with all DIMMs, not a particular
DIMM.

Thanks,
-Toshi

  reply	other threads:[~2017-08-04 21:02 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-03 21:57 [PATCH v2 0/7] enable ghes_edac on selected platforms Toshi Kani
2017-08-03 21:57 ` [PATCH v2 1/7] ACPI / blacklist: add acpi_match_oemlist() interface Toshi Kani
2017-08-04  3:42   ` Borislav Petkov
2017-08-04 20:39     ` Kani, Toshimitsu
2017-08-05  5:12       ` Borislav Petkov
2017-08-07 14:49         ` Kani, Toshimitsu
2017-08-03 21:57 ` [PATCH v2 2/7] intel_pstate: convert to use acpi_match_oemlist() Toshi Kani
2017-08-03 21:57 ` [PATCH v2 3/7] ACPI / APEI: add OSC APEI bit check for ghes_edac Toshi Kani
2017-08-04  3:44   ` Borislav Petkov
2017-08-04 20:49     ` Kani, Toshimitsu
2017-08-05  5:14       ` Borislav Petkov
2017-08-07 14:50         ` Kani, Toshimitsu
2017-08-03 21:57 ` [PATCH v2 4/7] ghes_edac: avoid multiple calls to dmi_walk() Toshi Kani
2017-08-04  4:05   ` Borislav Petkov
2017-08-04 21:02     ` Kani, Toshimitsu [this message]
2017-08-05  5:16       ` Borislav Petkov
2017-08-07 17:59         ` Kani, Toshimitsu
2017-08-11  9:04           ` Borislav Petkov
2017-08-14 15:57             ` Kani, Toshimitsu
2017-08-14 16:24               ` Borislav Petkov
2017-08-14 16:48                 ` Kani, Toshimitsu
2017-08-14 17:05                   ` Borislav Petkov
2017-08-14 17:52                     ` Kani, Toshimitsu
2017-08-14 18:05                       ` Borislav Petkov
2017-08-14 18:17                         ` Kani, Toshimitsu
2017-08-14 18:35                           ` Borislav Petkov
2017-08-14 19:02                             ` Kani, Toshimitsu
2017-08-14 19:34                               ` Borislav Petkov
2017-08-14 20:17                                 ` Kani, Toshimitsu
2017-08-14 20:39                                   ` Borislav Petkov
2017-08-15 15:35                                     ` Kani, Toshimitsu
2017-08-15 15:48                                       ` Luck, Tony
2017-08-15 15:53                                         ` Kani, Toshimitsu
2017-08-16  8:29                                         ` Borislav Petkov
2017-08-16 11:29                                           ` Borislav Petkov
2017-08-16 13:59                                           ` Steven Rostedt
2017-08-16 14:03                                             ` Borislav Petkov
2017-08-16 14:22                                               ` Steven Rostedt
2017-08-16 17:31                                                 ` Borislav Petkov
2017-08-16 15:26                                           ` Kani, Toshimitsu
2017-08-16 16:42                                             ` Borislav Petkov
2017-08-16 17:28                                               ` Kani, Toshimitsu
2017-08-16 17:40                                                 ` Borislav Petkov
2017-08-16 18:01                                                   ` Kani, Toshimitsu
2017-08-17 21:08                                                     ` Kani, Toshimitsu
2017-08-21  9:29                                                       ` Borislav Petkov
2017-08-15 15:50                                       ` Borislav Petkov
2017-08-15 16:19                                         ` Kani, Toshimitsu
2017-08-03 21:57 ` [PATCH v2 5/7] ghes_edac: add platform check to enable ghes_edac Toshi Kani
2017-08-04  8:31   ` Borislav Petkov
2017-08-04 21:06     ` Kani, Toshimitsu
2017-08-05  5:37       ` Borislav Petkov
2017-08-07 14:54         ` Kani, Toshimitsu
2017-08-03 21:57 ` [PATCH v2 6/7] EDAC: add edac_check_mc_owner() to check MC owner Toshi Kani
2017-08-04  8:30   ` Borislav Petkov
2017-08-04 21:35     ` Kani, Toshimitsu
2017-08-05  5:44       ` Borislav Petkov
2017-08-07 14:55         ` Kani, Toshimitsu
2017-08-04 13:06   ` kbuild test robot
2017-08-04 15:21     ` Kani, Toshimitsu
2017-08-03 21:57 ` [PATCH v2 7/7] edac drivers: add MC owner check in init Toshi Kani
2017-08-04  8:39   ` Borislav Petkov
2017-08-04 21:48     ` Kani, Toshimitsu
2017-08-05  5:49       ` Borislav Petkov
2017-08-07 14:57         ` Kani, Toshimitsu

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=1501879964.2042.117.camel@hpe.com \
    --to=toshi.kani@hpe.com \
    --cc=bp@alien8.de \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-edac@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=tony.luck@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).