From: joeyli <jlee@suse.com>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Julian Wollrath <jwollrath@web.de>,
Thomas Gleixner <tglx@linutronix.de>,
x86@kernel.org, LKML <linux-kernel@vger.kernel.org>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
"H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [RESEND] Fast TSC calibration fails with v3.14-rc1 and later
Date: Wed, 12 Mar 2014 23:41:39 +0800 [thread overview]
Message-ID: <1394638899.26565.197.camel@linux-s257.site> (raw)
In-Reply-To: <53642014.xoKWERQIvL@vostro.rjw.lan>
Hi Rafael,
於 三,2014-03-12 於 14:30 +0100,Rafael J. Wysocki 提到:
> > But I wonder: Can we simply enable SCI later? In other words, can
> we
> > split acpi_early_init() so that the part before
> acpi_enable_subsystem()
> > is done before timekeeping_init() and the part including and after
> > is done right after anon_vma_init()? Would the TAD initialization
> work
> > then?
>
> Below is a patch implementing that idea. Julian, can you please test
> this one too?
>
> Rafael
>
> ---
> drivers/acpi/bus.c | 20 +++++++++++++++-----
> include/linux/acpi.h | 1 +
> init/main.c | 1 +
> 3 files changed, 17 insertions(+), 5 deletions(-)
>
> Index: linux-pm/drivers/acpi/bus.c
> ===================================================================
> --- linux-pm.orig/drivers/acpi/bus.c
> +++ linux-pm/drivers/acpi/bus.c
> @@ -494,11 +494,21 @@ void __init acpi_early_init(void)
> }
>
> status = acpi_load_tables();
> - if (ACPI_FAILURE(status)) {
> - printk(KERN_ERR PREFIX
> - "Unable to load the System Description Tables
> \n");
> - goto error0;
> - }
> + if (ACPI_SUCCESS(status))
> + return;
> +
> + printk(KERN_ERR PREFIX "Unable to load the System Description
> Tables\n");
> +
> + error0:
> + disable_acpi();
> +}
> +
> +void __init acpi_subsystem_init(void)
> +{
> + acpi_status status;
> +
> + if (acpi_disabled)
> + return;
>
After check the DSDT of target machine, I afraid the above patch is not
enough to use _GRT and _SRT because they need opregion support of
SystemMemory and SystemIO for trigger SMM to access RTC.
In my current semifinished patches, I add code to run the
acpi_ev_install_region_handlers() in acpi_enable_subsystem() when
acpi_early_init(), for install region handler to support opregion.
Before install region_handlers, it call acpi_enable() to enable acpi
mode and I think need setup SCI interrupt before run acpi_enable():
acpi_early_init(void)
acpi_pic_sci_set_trigger(acpi_gbl_FADT.sci_interrupt,
acpi_enable_subsystem(u32 flags)
acpi_enable(); /* Enable ACPI mode */
acpi_tb_initialize_facs();
acpi_ev_install_region_handlers(); /* Need it! */
For developing ACPI TAD support, I used SystemIO to access CMOS port in
DSDT of Intel DQ57 for simulate ACPI TAD. It also need SystemIO opregion
support as the real machine. I just run your patch on this machine but
it failed.
I think maybe still using ACPI_FADT_NO_CMOS_RTC to check does
acpi_early_init() need run before timekeeping_init().
If there have any future machine that applied ACPI TAD but "Fast TSC
calibration" fail, at least the alternate TSC calibration can work
around issue.
Thanks a lot!
Joey Lee
next prev parent reply other threads:[~2014-03-12 15:42 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-10 10:04 [RESEND] Fast TSC calibration fails with v3.14-rc1 and later Julian Wollrath
2014-03-10 10:27 ` Paul Bolle
2014-03-10 14:06 ` Thomas Gleixner
2014-03-10 15:28 ` Paul Bolle
2014-03-10 17:04 ` Thomas Gleixner
2014-03-10 18:32 ` Paul Bolle
2014-03-10 18:57 ` Thomas Gleixner
2014-03-10 19:19 ` Paul Bolle
2014-03-10 20:50 ` Thomas Gleixner
2014-03-10 23:06 ` Paul Bolle
2014-03-11 16:02 ` Thomas Gleixner
2014-03-11 13:27 ` Julian Wollrath
2014-03-10 10:39 ` Thomas Gleixner
2014-03-11 13:29 ` Julian Wollrath
2014-03-11 13:56 ` Thomas Gleixner
2014-03-11 17:15 ` Julian Wollrath
2014-03-12 4:00 ` joeyli
2014-03-12 10:20 ` Julian Wollrath
2014-03-12 13:52 ` joeyli
2014-03-12 11:20 ` Rafael J. Wysocki
2014-03-12 13:30 ` Rafael J. Wysocki
2014-03-12 13:55 ` Julian Wollrath
2014-03-12 15:41 ` joeyli [this message]
2014-03-12 16:20 ` Thomas Gleixner
2014-03-12 16:23 ` Thomas Gleixner
2014-03-12 16:39 ` Thomas Gleixner
2014-03-12 23:27 ` Rafael J. Wysocki
2014-03-12 23:49 ` Thomas Gleixner
2014-03-13 0:13 ` Rafael J. Wysocki
2014-03-13 2:56 ` joeyli
2014-03-13 0:54 ` Thomas Gleixner
2014-03-13 1:01 ` Thomas Gleixner
2014-03-13 2:38 ` joeyli
2014-03-13 3:11 ` H. Peter Anvin
2014-03-13 3:55 ` joeyli
2014-03-13 3:59 ` H. Peter Anvin
2014-03-13 4:12 ` joeyli
2014-03-13 8:12 ` Thomas Gleixner
2014-03-13 8:59 ` joeyli
2014-03-13 3:41 ` H. Peter Anvin
2014-03-12 14:00 ` joeyli
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=1394638899.26565.197.camel@linux-s257.site \
--to=jlee@suse.com \
--cc=hpa@zytor.com \
--cc=jwollrath@web.de \
--cc=linux-kernel@vger.kernel.org \
--cc=rafael.j.wysocki@intel.com \
--cc=rjw@rjwysocki.net \
--cc=tglx@linutronix.de \
--cc=x86@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.