From: guohanjun@huawei.com (Hanjun Guo)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] EDAC: Add AMD Seattle SoC EDAC
Date: Wed, 21 Oct 2015 09:35:46 +0800 [thread overview]
Message-ID: <5626EBF2.50107@huawei.com> (raw)
In-Reply-To: <5626B199.4050209@amd.com>
On 2015/10/21 5:26, Brijesh Singh wrote:
> Hi Hanjun,
>
> Thanks for review.
>
> -Brijesh
> On 10/19/2015 09:21 PM, Hanjun Guo wrote:
>> Hi Brijesh,
>>
>> On 2015/10/20 3:23, Brijesh Singh wrote:
[...]
>> The codes above are common for all A57 architectures, other A57 SoCs will use the same
>> code for L1/L2 caches error report, can we put those codes in common place and reused
>> for all A57 architectures?
>>
> Code is generic to A57 and I will follow Mark Rutland suggestion to make it cortex_a57_edac. If you have something else in mind then please let me know.
Sorry, I missed Mark's comments before I sent my email, I'm fine with
the file name suggested.
>
>>> +
>>> +static void cpu_check_errors(void *args)
>>> +{
>>> + struct edac_device_ctl_info *edev_ctl = args;
>>> +
>>> + check_cpumerrsr_el1_error(edev_ctl);
>>> + check_l2merrsr_el1_error(edev_ctl);
>>> +}
>>> +
>>> +static void edac_check_errors(struct edac_device_ctl_info *edev_ctl)
>>> +{
>>> + int cpu;
>>> +
>>> + /* read L1 and L2 memory error syndrome register on possible CPU's */
>>> + for_each_possible_cpu(cpu)
>>> + smp_call_function_single(cpu, cpu_check_errors, edev_ctl, 0);
>> Seems that error syndrome registers for L2 cache are cluster lever (each cluster share the
>> L2 cache, you can refer to ARM doc: DDI0488D, Cortex-A57 Technical Reference Manual),
>> so for L2 cache, we need to check the error at cluster lever not the cpu core lever.
>>
> Yes L1 seems to be CPU specific and L2 is shared in a cluster. So I am thinking of making the following changes in this function.
>
> static void edac_check_errors(struct edac_device_ctl_info *edev_ctl)
> {
> int cpu;
> struct cpumask cluster_mask, old_mask;
>
> cpumask_clear(&cluster_mask);
> cpumask_clear(&old_mask);
>
> for_each_possible_cpu(cpu) {
> smp_call_function_single(cpu, check_cpumerrsr_el1_error,
> edev_ctl, 0);
> cpumask_copy(&cluster_mask, topology_core_cpumask(cpu));
> if (cpumask_equal(&cluster_mask, &old_mask))
> continue;
> cpumask_copy(&old_mask, &cluster_mask);
> smp_call_function_any(&cluster_mask, check_l2merrsr_el1_error,
> edev_ctl, 0);
> }
> }
>
> Read L1 on each CPU and L2 once in a cluster. Does this address your feedback ?
Yes, at least it will work as expected :)
Thanks
Hanjun
prev parent reply other threads:[~2015-10-21 1:35 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-19 19:23 [PATCH] EDAC: Add AMD Seattle SoC EDAC Brijesh Singh
2015-10-19 20:14 ` Borislav Petkov
2015-10-19 20:52 ` Mark Rutland
2015-10-20 16:44 ` Brijesh Singh
2015-10-20 16:57 ` Borislav Petkov
2015-10-20 17:26 ` Mark Rutland
2015-10-20 17:36 ` Borislav Petkov
2015-10-20 17:41 ` Mark Rutland
2015-10-20 19:16 ` Brijesh Singh
2015-10-21 1:55 ` Hanjun Guo
2015-10-21 9:35 ` Borislav Petkov
2015-10-21 10:01 ` Andre Przywara
2015-10-21 16:22 ` Brijesh Singh
2015-10-23 1:38 ` Hanjun Guo
2015-10-20 17:25 ` Mark Rutland
2015-10-21 1:45 ` Hanjun Guo
2015-10-20 2:21 ` Hanjun Guo
2015-10-20 21:26 ` Brijesh Singh
2015-10-21 1:35 ` Hanjun Guo [this message]
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=5626EBF2.50107@huawei.com \
--to=guohanjun@huawei.com \
--cc=linux-arm-kernel@lists.infradead.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 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).