From: Andi Kleen <ak@suse.de>
To: Jan Beulich <JBeulich@novell.com>
Cc: ak@suse.de, linux-kernel@vger.kernel.org, discuss@x86-64.org
Subject: Re: [PATCH] adjust x86-64 watchdog tick calculation
Date: Thu, 12 May 2005 13:45:32 +0200 [thread overview]
Message-ID: <20050512114532.GC15690@wotan.suse.de> (raw)
In-Reply-To: <s2832159.056@emea1-mh.id2.novell.com>
On Thu, May 12, 2005 at 10:27:09AM +0200, Jan Beulich wrote:
> (Note: Patch also attached because the inline version is certain to get
> line wrapped.)
Can you please only attach it then?
>
> Get the x86-64 watchdog tick calculation into a state where it can also
> be used with nmi_hz other than 1Hz. Also do not turn on the watchdog by
> default (as is already done on i386).
I already fixed this some time ago by using the same code as i386.
That is what is in the current tree:
wrmsr(MSR_K7_PERFCTR0, -(cpu_khz/nmi_hz*1000), -1);
But I guess your version will work with a higher frequency, right?
-Andi
>
> Signed-off-by: Jan Beulich <jbeulich@novell.com>
>
> diff -Npru linux-2.6.12-rc4.base/arch/x86_64/kernel/nmi.c linux-2.6.12-rc4/arch/x86_64/kernel/nmi.c
> --- linux-2.6.12-rc4.base/arch/x86_64/kernel/nmi.c 2005-05-11 17:27:54.848855552 +0200
> +++ linux-2.6.12-rc4/arch/x86_64/kernel/nmi.c 2005-05-11 17:50:36.257889920 +0200
> @@ -57,7 +57,7 @@ static unsigned int lapic_nmi_owner;
> int nmi_active; /* oprofile uses this */
> int panic_on_timeout;
>
> -unsigned int nmi_watchdog = NMI_DEFAULT;
> +unsigned int nmi_watchdog = NMI_NONE;
> static unsigned int nmi_hz = HZ;
> unsigned int nmi_perfctr_msr; /* the MSR to reset in NMI handler */
>
> @@ -325,7 +325,7 @@ static void setup_k7_watchdog(void)
> | K7_NMI_EVENT;
>
> wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
> - wrmsrl(MSR_K7_PERFCTR0, -((u64)cpu_khz*1000) / nmi_hz);
> + wrmsrl(MSR_K7_PERFCTR0, -((u64)cpu_khz * 1000 / nmi_hz));
> apic_write(APIC_LVTPC, APIC_DM_NMI);
> evntsel |= K7_EVNTSEL_ENABLE;
> wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
> @@ -404,7 +404,7 @@ void nmi_watchdog_tick (struct pt_regs *
> alert_counter[cpu] = 0;
> }
> if (nmi_perfctr_msr)
> - wrmsr(nmi_perfctr_msr, -(cpu_khz/nmi_hz*1000), -1);
> + wrmsrl(nmi_perfctr_msr, -((u64)cpu_khz * 1000 / nmi_hz));
> }
>
> static int dummy_nmi_callback(struct pt_regs * regs, int cpu)
>
>
> (Note: Patch also attached because the inline version is certain to get
> line wrapped.)
>
> Get the x86-64 watchdog tick calculation into a state where it can also
> be used with nmi_hz other than 1Hz. Also do not turn on the watchdog by
> default (as is already done on i386).
>
> Signed-off-by: Jan Beulich <jbeulich@novell.com>
>
> diff -Npru linux-2.6.12-rc4.base/arch/x86_64/kernel/nmi.c linux-2.6.12-rc4/arch/x86_64/kernel/nmi.c
> --- linux-2.6.12-rc4.base/arch/x86_64/kernel/nmi.c 2005-05-11 17:27:54.848855552 +0200
> +++ linux-2.6.12-rc4/arch/x86_64/kernel/nmi.c 2005-05-11 17:50:36.257889920 +0200
> @@ -57,7 +57,7 @@ static unsigned int lapic_nmi_owner;
> int nmi_active; /* oprofile uses this */
> int panic_on_timeout;
>
> -unsigned int nmi_watchdog = NMI_DEFAULT;
> +unsigned int nmi_watchdog = NMI_NONE;
> static unsigned int nmi_hz = HZ;
> unsigned int nmi_perfctr_msr; /* the MSR to reset in NMI handler */
>
> @@ -325,7 +325,7 @@ static void setup_k7_watchdog(void)
> | K7_NMI_EVENT;
>
> wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
> - wrmsrl(MSR_K7_PERFCTR0, -((u64)cpu_khz*1000) / nmi_hz);
> + wrmsrl(MSR_K7_PERFCTR0, -((u64)cpu_khz * 1000 / nmi_hz));
> apic_write(APIC_LVTPC, APIC_DM_NMI);
> evntsel |= K7_EVNTSEL_ENABLE;
> wrmsr(MSR_K7_EVNTSEL0, evntsel, 0);
> @@ -404,7 +404,7 @@ void nmi_watchdog_tick (struct pt_regs *
> alert_counter[cpu] = 0;
> }
> if (nmi_perfctr_msr)
> - wrmsr(nmi_perfctr_msr, -(cpu_khz/nmi_hz*1000), -1);
> + wrmsrl(nmi_perfctr_msr, -((u64)cpu_khz * 1000 / nmi_hz));
> }
>
> static int dummy_nmi_callback(struct pt_regs * regs, int cpu)
next parent reply other threads:[~2005-05-12 11:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <s2832159.056@emea1-mh.id2.novell.com>
2005-05-12 11:45 ` Andi Kleen [this message]
[not found] <s2835f7d.038@emea1-mh.id2.novell.com>
2005-05-12 12:52 ` [PATCH] adjust x86-64 watchdog tick calculation Andi Kleen
2005-05-12 12:52 Jan Beulich
[not found] <s2835ea9.090@emea1-mh.id2.novell.com>
2005-05-12 12:51 ` Andi Kleen
-- strict thread matches above, loose matches on Subject: below --
2005-05-12 12:48 Jan Beulich
2005-05-12 8:27 Jan Beulich
2005-05-12 10:00 ` Alexander Nyberg
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=20050512114532.GC15690@wotan.suse.de \
--to=ak@suse.de \
--cc=JBeulich@novell.com \
--cc=discuss@x86-64.org \
--cc=linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox