From: Doug Thompson <norsk5@yahoo.com>
To: Andi Kleen <ak@suse.de>, Alan <alan@lxorguk.ukuu.org.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>, linux-kernel@vger.kernel.org
Subject: Re: -mm merge plans for 2.6.21
Date: Mon, 12 Feb 2007 12:56:47 -0800 (PST) [thread overview]
Message-ID: <484858.10028.qm@web50102.mail.yahoo.com> (raw)
In-Reply-To: <p73ps8igo0v.fsf@bingen.suse.de>
--- Andi Kleen <ak@suse.de> wrote:
> Alan <alan@lxorguk.ukuu.org.uk> writes:
>
> > Please just push the EDAC K8 stuff. Andi will say "no" from now
> until the
> > end of time, but end users want it, distributions want it, and Andi
> is
> > not the EDAC maintainer so should consider himself overruled on
> what
> > isn't a technical issue but a personal political viewpoint.
>
> Well it's a technical issue -- it conflicts with the machine check
> code that is already implemented by stealing away its events.
> You would first need a CONFIG_MCE=n on x86-64 at least, otherwise
> one of them will be unhappy.
>
> The other issue is that the existing code does everything EDAC
> K8 does already perfectly fine, just in a small fraction of
> the code.
>
> -Andi
I assert that there is a greater than just a technical implementation
issue. I maintain that it is a design pattern issue.
The MCE hardware mechanism is a good mechanism for reporting Hardware
events. The problem comes in as to WHERE those events should be
handled.
EDAC was designed to be a 'stack' of drivers. The upper CORE module is
to provide an abstraction, whose presentation to user space is to be
uniform across processes and architectures. The individual lower
drivers, which register with the core, handle the machine and/or
architecture specifics of 'driving' the hardware and funnel events to
the core.
EDAC is operational now on MIPS and ARM architectures (phone device) as
well as on x86 and x86_64.
Additional features of a given arch/processor that can be utilized in
harvesting hardware events should be captured and then funneled to the
'low' level EDAC driver. That driver can then pass the event onto the
CORE module for further processings and presentation, as determined by
the controls into the CORE.
MCE event processing should be funneled to the EDAC K8 driver and not
directly to userspace.
The design pattern I have been trying to utilize in EDAC, is the same
one used by the Network stack and the SCSI stack.
If I have a new NIC, which has some great new hardware feature, should
the driver export that feature outside of the network stack, which does
not CURRENTLY support the processing of the feature. OR should the
network stack control paths be extended to provide a mechanism whereby
that new feature could be utilized?
Similiar design pattern exists on the SCSI stack, with device features
and hardware abilities.
I am currently developing enhancements to EDAC that provide for L1, L2,
etc cache ECC event harvesting, DMA ECC event harvest, interconnect
harvesting, and other chipset/processing ECC event harvesting. Some
events are polled others are software interupt delivered. This is on an
arch OTHER than x86 or x86_64. But these EDAC features can be used on
the x86/x86_64 as well.
As there IS an ECC event consumption race between MCE and EDAC, then at
least a 'config' mechanism can be utilized to switch between the two.
Better yet, I would like to be able to capture the MCE events and
funnel them to EDAC, when loaded, as a downstream consumer of the MCE
event stream. Then EDAC would process the information and then proceed
to inform whether the event was handled or not by EDAC. Additionally,
it would inform whether a panic should occur or not.
When EDAC is not loaded, then MCE would act as it does now.
The downside with both EDAC and MCE being in place, is that there would
be ONE MCE processing pattern for the AMD x86_64 processors and the
EDAC pattern for all the other archs/processors. As far as I can tell,
other MCE processors don't generate the events as advertized. Maybe I
am wrong on that, but I can't find them. How much hardware specific
detail should be exported?
I assert the better solution is to have the ability to hook into the
MCE event stream by the EDAC K8 driver, then provide action rules (EDAC
controls) in processing those events, which EDAC would return to the
MCE stream.
As to the size of the MCE code doing everything EDAC K8 does, that is
mostly true. BUT then the x86_64 MCE mechanism becomes the exception
path.
Even the company using EDAC on the phone device doesn't mind the 60
kilobytes.
doug t
next prev parent reply other threads:[~2007-02-12 21:03 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-08 23:07 -mm merge plans for 2.6.21 Andrew Morton
2007-02-08 23:12 ` Roland Dreier
2007-02-08 23:29 ` Jan Engelhardt
2007-02-08 23:44 ` Andrew Morton
2007-02-09 15:02 ` Thomas Gleixner
2007-02-09 10:57 ` Frederik Deweerdt
2007-02-09 11:24 ` Arjan van de Ven
2007-02-09 11:39 ` Andrew Morton
2007-02-09 12:32 ` Arjan van de Ven
2007-02-09 14:05 ` deweerdt
2007-02-09 13:04 ` Andi Kleen
2007-02-09 12:27 ` Jan Engelhardt
2007-02-10 11:42 ` Arnd Bergmann
2007-02-10 14:19 ` Frederik Deweerdt
2007-02-08 23:34 ` Kyle McMartin
2007-02-08 23:53 ` Andrew Morton
2007-02-09 0:55 ` Paul Mackerras
2007-02-09 1:00 ` Andrew Morton
2007-02-09 5:32 ` Bharata B Rao
2007-02-09 8:26 ` Sébastien Dugué
2007-02-09 9:05 ` Andrew Morton
2007-02-09 10:10 ` Sébastien Dugué
2007-02-09 9:54 ` Lenar Lõhmus
2007-02-09 10:12 ` Andrew Morton
2007-02-09 12:48 ` James
2007-02-09 12:59 ` Lenar Lõhmus
2007-02-09 17:35 ` David Woodhouse
2007-02-09 21:45 ` Andrew Morton
2007-02-09 21:49 ` Russell King
2007-02-09 21:53 ` David Woodhouse
2007-02-09 22:03 ` Russell King
2007-02-09 22:12 ` David Woodhouse
2007-02-09 22:42 ` David Woodhouse
2007-02-10 2:05 ` Oleg Verych
2007-02-09 22:00 ` Andrew Morton
2007-02-09 22:06 ` Russell King
2007-02-09 21:59 ` David Woodhouse
2007-02-09 22:50 ` Davide Libenzi
2007-02-10 10:22 ` Heiko Carstens
2007-02-10 10:32 ` David Woodhouse
2007-02-10 21:34 ` Ralf Baechle
2007-02-11 4:53 ` Davide Libenzi
2007-02-11 15:33 ` David Woodhouse
2007-02-11 16:09 ` Ralf Baechle
2007-02-11 16:14 ` Heiko Carstens
2007-02-11 16:34 ` Davide Libenzi
2007-02-11 18:01 ` Ralf Baechle
2007-02-10 21:05 ` Ralf Baechle
2007-02-11 10:37 ` Andi Kleen
2007-02-10 13:03 ` Andi Kleen
2007-02-09 19:37 ` Alan
2007-02-09 21:51 ` Andrew Morton
2007-02-10 1:15 ` Carl-Daniel Hailfinger
2007-02-10 1:29 ` Andrew Morton
2007-02-10 13:06 ` Andi Kleen
2007-02-10 13:48 ` Alan
2007-02-10 14:43 ` Andi Kleen
2007-02-12 20:56 ` Doug Thompson [this message]
2007-02-12 21:46 ` Andi Kleen
2007-02-12 22:45 ` Doug Thompson
2007-02-09 22:18 ` Guillaume Chazarain
2007-02-10 9:58 ` -mm merge plans for 2.6.21 -- md-dm-reduce-stack-usage-with-stacked-block-devices.patch Heiko Carstens
2007-02-10 22:35 ` Alasdair G Kergon
2007-02-11 0:31 ` -mm merge plans for 2.6.21 Dave Jones
-- strict thread matches above, loose matches on Subject: below --
2007-02-09 2:57 Parag Warudkar
2007-02-09 3:05 ` Andrew Morton
[not found] <fa.7Z67qjqJwFP7+8QiVtu5tq6CZyU@ifi.uio.no>
[not found] ` <fa.4Y/nCUol/tGEodoOl/Jm9nf2AEA@ifi.uio.no>
[not found] ` <fa.TgZy4z2lRhwhAWCUE8IuGvMVUCU@ifi.uio.no>
[not found] ` <fa.HINMjdGzCuxlEiWtVvmNz7Pv9Pc@ifi.uio.no>
[not found] ` <fa.2ClW7C4ZyCP9QlT4vg7CbzjSqwg@ifi.uio.no>
2007-02-10 17:04 ` Robert Hancock
2007-01-12 23:19 ` Frederik Deweerdt
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=484858.10028.qm@web50102.mail.yahoo.com \
--to=norsk5@yahoo.com \
--cc=ak@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.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