qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 0/4] add ACPI Embedded Controller


From: Igor Mammedov
Subject: Re: [Qemu-devel] [PATCH 0/4] add ACPI Embedded Controller
Date: Tue, 28 May 2013 10:16:21 +0200

On Tue, 28 May 2013 08:28:09 +0800
li guang <address@hidden> wrote:

> 在 2013-05-27一的 13:45 +0200,Igor Mammedov写道:
> > On Mon, 27 May 2013 09:22:59 +0800
> > li guang <address@hidden> wrote:
> > 
> > > 在 2013-05-26日的 19:51 -0500,Anthony Liguori写道:
> > > > li guang <address@hidden> writes:
> > > > 
> > > > > 在 2013-05-24五的 14:45 +0300,Michael S. Tsirkin写道:
> > > > >> On Wed, May 22, 2013 at 11:46:33AM +0800, liguang wrote:
> > > > >> > These patches try to add ACPI Embedded Controller (EC),
> > > > >> > refer-to:
> > > > >> > ACPI SPEC v5 chapter 5 
> > > > >> > "ACPI Embedded Controller Interface Specification"
> > > > >> > 
> > > > >> > EC is a standard ACPI device, it plays flexible roles,
> > > > >> > e.g. 
> > > > >> > power controller, it can control power sequence for
> > > > >> > platform to enter or leave system state(0,1,3,4,5),
> > > > >> > it can controller CPU fan by the temperature of sensor.
> > > > >> > event carrier, it can pass events between platform
> > > > >> > and OS, so OS can execute _Qxx method which defined
> > > > >> > by yourself.
> > > > >> > 
> > > > >> > So, I want to deliver CPU online/offline event between
> > > > >> > OS and QEMU for CPU hotplug feature, then we will don't
> > > > >> > need to "echo 1 > /sys/devices/system/cpu/cpu1/online"
> > > > >> > again after 'cpu-add'.
> > > > >> > 
> > > > >> > patches for online/offline event handler of QEUM and 
> > > > >> > linux kernel are writing, and will send once finished.
> > > > >> > 
> > > > >> > since EC is a common device, so I send pathes separately.
> > > > >> 
> > > > >> Do any non-linux guests support this device?
> > > > >> 
> > > > >
> > > > > In fact, any OSes support ACPI will support this device.
> > > > > so, windows will.
> > > > 
> > > > When you say "any OSes supporting ACPI" I think what you really mean is
> > > > that we can provide bytecode that interacts with the embedded
> > > > controller.
> > > > 
> > > > There is not explicit driver in Linux or Windows AFAIK.
> > > 
> > > Hmm, yep, mostly there's no special driver for EC,
> > > because it is directly embedded in code for ACPI
> > > for linux kernel, it's drivers/acpi/ec.c
> > > 
> > > > 
> > > > I still don't get the point of this.  We can make ACPI hotplug work
> > > > without introducing a new device like this.
> > > > 
> > > 
> > > when you 'cpu-add' a cpu, acpi driver for cpu will not
> > > trigger 'cpu_up' for linux kernel AFAIK, unless you add
> > > a user space program to listen it's uevent and tigger 'cpu_up'.
> > it is up to guest OS policy to decide if CPU should be onlined or not,
> 
> Yep, but I think it's a favor to do cpu online.
Then you have to teach kernel driver (EC) to do cpu_up on _Q02 event,
the question is why would you do this when there is ACPI processor driver
already that handles CPU hotplug in kernel.
You can try add cpu_up() there and perhaps with good enough reasoning it
would be accepted.

> 
> > at least I've seen this rationale on LKML when topic was discussed and
> > automatic cpu_up on hotplug was rejected. 
> 
> Oh, and the reason is?
Reason was to let guest decide whether online new CPU or nor instead of
doing it unconditionally.

> can you give me a link?
I'm sorry but I can't find link quickly.

> 
> Oh, Igor,
> I remember that you said you can give me some your considerations
> on the further development of cpu hotplug feature, but I haven't got
> them :-)
I'm sorry, I haven't time yet to update TODO list on wiki page:

But here some items that need some attention:

* try to introduce generic QOM interface for CPU topology introspection
    something like 
/machine/node/socket[xxx]/{(core[yyy]/thread[zzz])|thread[zzz]}

* allow to specify at CLI specific CPUs to be created at start-up time
   - important for hot-adding/removing an arbitrary CPU
   - probably depends on previous item so that each CPU could be specified by 
socket/core/thread numbers

* extend/rework -numa CLI option to support socket to node binding
   - goal is to obsolete node to thread biding which allows specify incorrect 
topology.

> 
> Thanks!
> 
> 
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]