From: "Kani, Toshimitsu" <toshi.kani@hpe.com>
To: "bp@alien8.de" <bp@alien8.de>
Cc: "rjw@rjwysocki.net" <rjw@rjwysocki.net>,
"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>,
"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
"linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>
Subject: Re: [PATCH v2 4/7] ghes_edac: avoid multiple calls to dmi_walk()
Date: Tue, 15 Aug 2017 15:35:51 +0000 [thread overview]
Message-ID: <1502810766.2042.149.camel@hpe.com> (raw)
In-Reply-To: <20170814203942.6t3mrq3hc324blab@pd.tnic>
On Mon, 2017-08-14 at 22:39 +0200, Borislav Petkov wrote:
> On Mon, Aug 14, 2017 at 08:17:54PM +0000, Kani, Toshimitsu wrote:
> > I think the current code design of allocating mci & ghes_edac_pvt
> > for each GHES source entry makes sense.
>
> And I don't.
>
> > edac_raw_mc_handle_error() also has the same expectation that the
> > call is serialized per mci.
>
> There's no such thing as "per mci" if the driver scans *all DIMMs*
> per register call. If it does it this way, then it is only one mci.
ghes_edac instantiates an mci as a pseudo device representing a GHES
error source. Each error source associates with all DIMMs, and may
report errors independently. As ghes_edac is an GHES error-reporting
wrapper to edac, this abstraction makes sense.
> It is actually wrong right now because if you register more than one
> mci and you do edac_inc_ce_error()/edac_inc_ue_error(), potentially
> different counters get incremented for the same errors. Exactly
> because each instance registered is *wrongly* responsible for all
> DIMMs on the system.
I do not see a problem in having counters for each GHES error source.
This is just statistics info, and ghes_edac does not expect any OS
action from the counters.
> So you either need to partition the DIMMs per mci (which I can't
> imagine how it would work) or introduce locking when incrementing the
> mci->counters.
I do not think changing the calling convention to edac library
interfaces is a good idea for a special case like ghes_edac. Such
changes can be a burden for us going forward. I think ghes_edac just
needs to work with the current prerequisite.
User apps like ras-mc-ctl works as expected for a given (not-so-great)
DIMM info from SMBIOS as well. I do not see a probelm from user
perspective, either.
Thanks,
-Toshi
WARNING: multiple messages have this Message-ID (diff)
From: Toshi Kani <toshi.kani@hpe.com>
To: "bp@alien8.de" <bp@alien8.de>
Cc: "rjw@rjwysocki.net" <rjw@rjwysocki.net>,
"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>,
"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
"linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>
Subject: [v2,4/7] ghes_edac: avoid multiple calls to dmi_walk()
Date: Tue, 15 Aug 2017 15:35:51 +0000 [thread overview]
Message-ID: <1502810766.2042.149.camel@hpe.com> (raw)
On Mon, 2017-08-14 at 22:39 +0200, Borislav Petkov wrote:
> On Mon, Aug 14, 2017 at 08:17:54PM +0000, Kani, Toshimitsu wrote:
> > I think the current code design of allocating mci & ghes_edac_pvt
> > for each GHES source entry makes sense.
>
> And I don't.
>
> > edac_raw_mc_handle_error() also has the same expectation that the
> > call is serialized per mci.
>
> There's no such thing as "per mci" if the driver scans *all DIMMs*
> per register call. If it does it this way, then it is only one mci.
ghes_edac instantiates an mci as a pseudo device representing a GHES
error source. Each error source associates with all DIMMs, and may
report errors independently. As ghes_edac is an GHES error-reporting
wrapper to edac, this abstraction makes sense.
> It is actually wrong right now because if you register more than one
> mci and you do edac_inc_ce_error()/edac_inc_ue_error(), potentially
> different counters get incremented for the same errors. Exactly
> because each instance registered is *wrongly* responsible for all
> DIMMs on the system.
I do not see a problem in having counters for each GHES error source.
This is just statistics info, and ghes_edac does not expect any OS
action from the counters.
> So you either need to partition the DIMMs per mci (which I can't
> imagine how it would work) or introduce locking when incrementing the
> mci->counters.
I do not think changing the calling convention to edac library
interfaces is a good idea for a special case like ghes_edac. Such
changes can be a burden for us going forward. I think ghes_edac just
needs to work with the current prerequisite.
User apps like ras-mc-ctl works as expected for a given (not-so-great)
DIMM info from SMBIOS as well. I do not see a probelm from user
perspective, either.
Thanks,
-Toshi
next prev parent reply other threads:[~2017-08-15 15:35 UTC|newest]
Thread overview: 130+ 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-03 21:57 ` [v2,1/7] " Toshi Kani
2017-08-04 3:42 ` [PATCH v2 1/7] " Borislav Petkov
2017-08-04 3:42 ` [v2,1/7] " Borislav Petkov
2017-08-04 20:39 ` [PATCH v2 1/7] " Kani, Toshimitsu
2017-08-04 20:39 ` [v2,1/7] " Toshi Kani
2017-08-05 5:12 ` [PATCH v2 1/7] " Borislav Petkov
2017-08-05 5:12 ` [v2,1/7] " Borislav Petkov
2017-08-07 14:49 ` [PATCH v2 1/7] " Kani, Toshimitsu
2017-08-07 14:49 ` [v2,1/7] " Toshi Kani
2017-08-03 21:57 ` [PATCH v2 2/7] intel_pstate: convert to use acpi_match_oemlist() Toshi Kani
2017-08-03 21:57 ` [v2,2/7] " 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-03 21:57 ` [v2,3/7] " Toshi Kani
2017-08-04 3:44 ` [PATCH v2 3/7] " Borislav Petkov
2017-08-04 3:44 ` [v2,3/7] " Borislav Petkov
2017-08-04 20:49 ` [PATCH v2 3/7] " Kani, Toshimitsu
2017-08-04 20:49 ` [v2,3/7] " Toshi Kani
2017-08-05 5:14 ` [PATCH v2 3/7] " Borislav Petkov
2017-08-05 5:14 ` [v2,3/7] " Borislav Petkov
2017-08-07 14:50 ` [PATCH v2 3/7] " Kani, Toshimitsu
2017-08-07 14:50 ` [v2,3/7] " Toshi Kani
2017-08-03 21:57 ` [PATCH v2 4/7] ghes_edac: avoid multiple calls to dmi_walk() Toshi Kani
2017-08-03 21:57 ` [v2,4/7] " Toshi Kani
2017-08-04 4:05 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-04 4:05 ` [v2,4/7] " Borislav Petkov
2017-08-04 21:02 ` [PATCH v2 4/7] " Kani, Toshimitsu
2017-08-04 21:02 ` [v2,4/7] " Toshi Kani
2017-08-05 5:16 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-05 5:16 ` [v2,4/7] " Borislav Petkov
2017-08-07 17:59 ` [PATCH v2 4/7] " Kani, Toshimitsu
2017-08-07 17:59 ` [v2,4/7] " Toshi Kani
2017-08-11 9:04 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-11 9:04 ` [v2,4/7] " Borislav Petkov
2017-08-14 15:57 ` [PATCH v2 4/7] " Kani, Toshimitsu
2017-08-14 15:57 ` [v2,4/7] " Toshi Kani
2017-08-14 16:24 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-14 16:24 ` [v2,4/7] " Borislav Petkov
2017-08-14 16:48 ` [PATCH v2 4/7] " Kani, Toshimitsu
2017-08-14 16:48 ` [v2,4/7] " Toshi Kani
2017-08-14 17:05 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-14 17:05 ` [v2,4/7] " Borislav Petkov
2017-08-14 17:52 ` [PATCH v2 4/7] " Kani, Toshimitsu
2017-08-14 17:52 ` [v2,4/7] " Toshi Kani
2017-08-14 18:05 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-14 18:05 ` [v2,4/7] " Borislav Petkov
2017-08-14 18:17 ` [PATCH v2 4/7] " Kani, Toshimitsu
2017-08-14 18:17 ` [v2,4/7] " Toshi Kani
2017-08-14 18:35 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-14 18:35 ` [v2,4/7] " Borislav Petkov
2017-08-14 19:02 ` [PATCH v2 4/7] " Kani, Toshimitsu
2017-08-14 19:02 ` [v2,4/7] " Toshi Kani
2017-08-14 19:34 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-14 19:34 ` [v2,4/7] " Borislav Petkov
2017-08-14 20:17 ` [PATCH v2 4/7] " Kani, Toshimitsu
2017-08-14 20:17 ` [v2,4/7] " Toshi Kani
2017-08-14 20:39 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-14 20:39 ` [v2,4/7] " Borislav Petkov
2017-08-15 15:35 ` Kani, Toshimitsu [this message]
2017-08-15 15:35 ` Toshi Kani
2017-08-15 15:48 ` [PATCH v2 4/7] " Luck, Tony
2017-08-15 15:48 ` [v2,4/7] " Luck, Tony
2017-08-15 15:53 ` [PATCH v2 4/7] " Kani, Toshimitsu
2017-08-15 15:53 ` [v2,4/7] " Toshi Kani
2017-08-16 8:29 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-16 8:29 ` [v2,4/7] " Borislav Petkov
2017-08-16 11:29 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-16 11:29 ` [v2,4/7] " Borislav Petkov
2017-08-16 13:59 ` [PATCH v2 4/7] " Steven Rostedt
2017-08-16 13:59 ` [v2,4/7] " Steven Rostedt
2017-08-16 14:03 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-16 14:03 ` [v2,4/7] " Borislav Petkov
2017-08-16 14:22 ` [PATCH v2 4/7] " Steven Rostedt
2017-08-16 14:22 ` [v2,4/7] " Steven Rostedt
2017-08-16 17:31 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-16 17:31 ` [v2,4/7] " Borislav Petkov
2017-08-16 15:26 ` [PATCH v2 4/7] " Kani, Toshimitsu
2017-08-16 15:26 ` [v2,4/7] " Toshi Kani
2017-08-16 16:42 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-16 16:42 ` [v2,4/7] " Borislav Petkov
2017-08-16 17:28 ` [PATCH v2 4/7] " Kani, Toshimitsu
2017-08-16 17:28 ` [v2,4/7] " Toshi Kani
2017-08-16 17:40 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-16 17:40 ` [v2,4/7] " Borislav Petkov
2017-08-16 18:01 ` [PATCH v2 4/7] " Kani, Toshimitsu
2017-08-16 18:01 ` [v2,4/7] " Toshi Kani
2017-08-17 21:08 ` [PATCH v2 4/7] " Kani, Toshimitsu
2017-08-17 21:08 ` [v2,4/7] " Toshi Kani
2017-08-21 9:29 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-21 9:29 ` [v2,4/7] " Borislav Petkov
2017-08-15 15:50 ` [PATCH v2 4/7] " Borislav Petkov
2017-08-15 15:50 ` [v2,4/7] " Borislav Petkov
2017-08-15 16:19 ` [PATCH v2 4/7] " Kani, Toshimitsu
2017-08-15 16:19 ` [v2,4/7] " Toshi Kani
2017-08-03 21:57 ` [PATCH v2 5/7] ghes_edac: add platform check to enable ghes_edac Toshi Kani
2017-08-03 21:57 ` [v2,5/7] " Toshi Kani
2017-08-04 8:31 ` [PATCH v2 5/7] " Borislav Petkov
2017-08-04 8:31 ` [v2,5/7] " Borislav Petkov
2017-08-04 21:06 ` [PATCH v2 5/7] " Kani, Toshimitsu
2017-08-04 21:06 ` [v2,5/7] " Toshi Kani
2017-08-05 5:37 ` [PATCH v2 5/7] " Borislav Petkov
2017-08-05 5:37 ` [v2,5/7] " Borislav Petkov
2017-08-07 14:54 ` [PATCH v2 5/7] " Kani, Toshimitsu
2017-08-07 14:54 ` [v2,5/7] " Toshi Kani
2017-08-03 21:57 ` [PATCH v2 6/7] EDAC: add edac_check_mc_owner() to check MC owner Toshi Kani
2017-08-03 21:57 ` [v2,6/7] " Toshi Kani
2017-08-04 8:30 ` [PATCH v2 6/7] " Borislav Petkov
2017-08-04 8:30 ` [v2,6/7] " Borislav Petkov
2017-08-04 21:35 ` [PATCH v2 6/7] " Kani, Toshimitsu
2017-08-04 21:35 ` [v2,6/7] " Toshi Kani
2017-08-05 5:44 ` [PATCH v2 6/7] " Borislav Petkov
2017-08-05 5:44 ` [v2,6/7] " Borislav Petkov
2017-08-07 14:55 ` [PATCH v2 6/7] " Kani, Toshimitsu
2017-08-07 14:55 ` [v2,6/7] " Toshi Kani
2017-08-04 13:06 ` [PATCH v2 6/7] " kbuild test robot
2017-08-04 13:06 ` kbuild test robot
2017-08-04 13:06 ` [v2,6/7] " kbuild test robot
2017-08-04 15:21 ` [PATCH v2 6/7] " Kani, Toshimitsu
2017-08-04 15:21 ` [v2,6/7] " Toshi Kani
2017-08-03 21:57 ` [PATCH v2 7/7] edac drivers: add MC owner check in init Toshi Kani
2017-08-03 21:57 ` [v2,7/7] " Toshi Kani
2017-08-04 8:39 ` [PATCH v2 7/7] " Borislav Petkov
2017-08-04 8:39 ` [v2,7/7] " Borislav Petkov
2017-08-04 21:48 ` [PATCH v2 7/7] " Kani, Toshimitsu
2017-08-04 21:48 ` [v2,7/7] " Toshi Kani
2017-08-05 5:49 ` [PATCH v2 7/7] " Borislav Petkov
2017-08-05 5:49 ` [v2,7/7] " Borislav Petkov
2017-08-07 14:57 ` [PATCH v2 7/7] " Kani, Toshimitsu
2017-08-07 14:57 ` [v2,7/7] " Toshi Kani
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=1502810766.2042.149.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 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.