On Wed, Nov 12, 2014 at 12:27:14PM +0000, Paolo Bonzini wrote:
On 12/11/2014 13:18, Mark Rutland wrote:
On Wed, Nov 12, 2014 at 11:48:27AM +0000, Paolo Bonzini wrote:
On 12/11/2014 12:34, Christoffer Dall wrote:
AFAIU ACPI already has a method for doing this
It's not defined in the spec. QEMU defines a bunch of registers to do that, and provides AML that works with those registers.
Huh? SCI + AML is the method, and that's defined by the spec.
I thought Christoffer meant a method to do the actual hotplug, not just to signal events. If you want to "support the low-level interfaces in the kernel for this anyway", you certainly need to know the details underneath the AML.
I think when Christoffer said that ACPI already had a mechanism he was referring to the SCI + AML, as opposed to the underlying implementation.
Perhaps you could treat it as a shared level-triggered interrupt in DT? I don't know.
Putting an interrupt in DT is trivial. The hard part is the rest of the interface, which so far there is no specification for.
Have you looked at docs/specs/acpi_{cpu,mem}_hotplug.txt? Writing a DT binding for it is trivial too. Or are we talking about two different things?
Writing a binding for the partiuclar device might be trivial. How this would fit with the DT model is more complicated, and needs to be specified. As far as I can see, those documents are quite strongly tied to x86 ACPI (they talk in terms of OSPM, OST, GPE, APIC IDs).
I agree that we could do CPU and memory hotplug without ACPI, but we need to specify the full firmware interface for doing so, and how this interacts with the initial DTB if using DT. We can't just pick-and-mix portions of ACPI and state that it's specified and standard.
Thanks, Mark.