From: Laszlo Ersek <lersek@redhat.com>
To: li guang <lig.fnst@cn.fujitsu.com>
Cc: Anthony Liguori <aliguori@us.ibm.com>,
Gleb Natapov <gleb@redhat.com>,
mst@redhat.com, qemu-devel@nongnu.org,
Bruce Rogers <brogers@suse.com>,
Gerd Hoffmann <kraxel@redhat.com>,
Igor Mammedov <imammedo@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 2/2] pc: reject do pc_acpi_init if acpi_enabled is false
Date: Thu, 16 May 2013 12:22:59 +0200 [thread overview]
Message-ID: <5194B383.9060409@redhat.com> (raw)
In-Reply-To: <1368663276.5142.61.camel@liguang.fnst.cn.fujitsu.com>
On 05/16/13 02:14, li guang wrote:
> 在 2013-05-15三的 15:44 +0200,Laszlo Ersek写道:
>> On 05/15/13 10:54, li guang wrote:
>>> 在 2013-05-15三的 10:38 +0200,Paolo Bonzini写道:
>>>> Il 15/05/2013 06:01, liguang ha scritto:
>>>>> Signed-off-by: liguang <lig.fnst@cn.fujitsu.com>
>>>>
>>>> --verbose, please.
>>>>
>>>> What problem does this patch fix?
>>>
>>> Oh, sorry to be lazy ...
>>> QEMU's option '-no-acpi' seems does not play
>>> a correct role, even started with this,
>>> ACPI tables will also be embedded into BIOS,
>>> and there's no different between with or without it
>>> for q35, as i can see.
>>>
>>> here, I'm assuming '-no-acpi' is to disable ACPI.
>>
>> -no-acpi disables a block of code in pc_init1() [hw/i386/pc_piix.c],
>> namely piix4_pm_init() and smbus_eeprom_init().
>>
>> pc_acpi_init() loads / exports a default DSDT for the boot firmware. If
>> the -acpitable switch is passed, then that code doesn't run.
>
> Yes, if '-acpitable' & '-no-acpi' passed, I think QEMU is valid to
> override '-no-acpi' by '-acpitable'.
I think these flags are orthogonal. As far as I can see, the former
turns off a piece of hardware emulation (like support for suspend /
hibernate and the System Control Interrupt, and more).
The latter enables the user to provide custom ACPI tables for SeaBIOS
(or other boot firmware) in place of the default DSDT.
It seems that originally "acpi_enabled" (-no-acpi) used to control both
purposes, see commit 6515b20: the call to acpi_bios_init() used to
depend on acpi_enabled != 0. However the two goals got separated with
commit a5954d5 apparently.
>> I think disabling PM but keeping the default DSDT from SeaBIOS is a
>> valid use case; the DSDT seems to contain a bunch of non-PM
>> functionality (see src/acpi-dsdt*.dsl in SeaBIOS). The "-no-acpi" switch
>> is likely a misnomer (it should say "-no-acpi-pm" or some such), but in
>> any case I believe it should not prevent exporting the DSDT.
>
> what's the purpose of only disable PM by '-no-acpi'?
I mentioned the src/acpi-dsdt*.dsl files in SeaBIOS that get built into
the default DSDT. With "-no-acpi" only, qemu keeps at least the
following working:
- the \DBUG ACPI method [src/acpi-dsdt-dbug.dsl],
- definition of the \_SB\HPET ("PNP0103") device [src/acpi-dsdt-hpet.dsl],
- descriptions (interrupts, io-ports) of ISA devices (RTC, keyboard,
mouse, floppy disk controller, parport, serial port)
[src/acpi-dsdt-isa.dsl],
- description of the PCI IO windows (PCI host bridge windows)
[src/acpi-dsdt-pci-crs.dsl], whose lack can mess up VGA display for
example (see the "pci=nocrs" kernel option),
- the PCI interrupt routing table [acpi-dsdt.dsl].
Again, I believe "-no-acpi" has probably become a misnomer by now and it
means "-no-acpi-pm" in reality.
> can we use -no-acpi to disable whole ACPI?
I cannot *prove* it would be wrong, but I feel insecure about it,
considering the commit history and the non-PM-related functionality in
the default DSDT. Currently a user may expect the above contents to be
present in ACPI tables, and only PM (plus maybe hotplug) not to work,
when passing -no-acpi.
Anyway I'm no authority on this -- anyone, feel free to chime in. I'm
certainly not NACKing the patch, I just have concerns.
Thanks,
Laszlo
prev parent reply other threads:[~2013-05-16 10:20 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-15 4:01 [Qemu-devel] [PATCH 1/2] vl: boolize acpi_enabled liguang
2013-05-15 4:01 ` [Qemu-devel] [PATCH 2/2] pc: reject do pc_acpi_init if acpi_enabled is false liguang
2013-05-15 8:38 ` Paolo Bonzini
2013-05-15 8:54 ` li guang
2013-05-15 13:44 ` Laszlo Ersek
2013-05-16 0:14 ` li guang
2013-05-16 10:22 ` Laszlo Ersek [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=5194B383.9060409@redhat.com \
--to=lersek@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=brogers@suse.com \
--cc=gleb@redhat.com \
--cc=imammedo@redhat.com \
--cc=kraxel@redhat.com \
--cc=lig.fnst@cn.fujitsu.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.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).