On 11.06.14 06:59, Paolo Bonzini wrote:
Il 11/06/2014 02:28, Alexander Graf ha scritto:
Am 11.06.2014 um 02:23 schrieb Peter Maydell
<peter.mayd...@linaro.org>:
On 10 June 2014 19:09, Alexander Graf <ag...@suse.de> wrote:
I agree. I see two different paths forward:
1) Use the patches as they are - they seem pretty sound and take the
existing x86/s390 only feature to spapr
2) Model an "NMI" button. That button would get instantiated by the
machine model. That would allow the wiring to be defined by the board.
Monitor / QMP would only "press" that button (trigger an edge
interrupt?
call a function? something).
I don't mind much either way - option 2 is the architecturally
correct way
of doing this. Option 1 probably won't hurt us either.
In an ideal world I'd like (2), ie actually model front panel switches
per machine and with whatever the machine's behaviour actually
is. However pragmatically speaking that's an awful lot of work
(especially since it basically requires adding a lot of U/I which is
always controversial and hard to drive through). I think pragmatism
should probably win here.
Could we just stick a new nmi function callback into the machine
class with the nmi command calling it?
That gets us on the right track to the right direction without
putting too much work on Alexey's shoulders. Converting from there to
an actual button object should become reasonably straight forward later.
Personally, I don't see anything wrong in these patches, apart from
the typo that Cornelia pointed out.
If you wanted to inject an NMI on non-sPAPR machines, such as -M mac99
or -M g3beige you would have to trigger an interrupt with the MPIC, not
the CPU itself.
Alex