<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/arch/x86/kernel/kvmclock.c, branch linux-4.3.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>kexec: split kexec_load syscall from kexec core code</title>
<updated>2015-09-10T20:29:01+00:00</updated>
<author>
<name>Dave Young</name>
<email>dyoung@redhat.com</email>
</author>
<published>2015-09-09T22:38:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=2965faa5e03d1e71e9ff9aa143fff39e0a77543a'/>
<id>2965faa5e03d1e71e9ff9aa143fff39e0a77543a</id>
<content type='text'>
There are two kexec load syscalls, kexec_load another and kexec_file_load.
 kexec_file_load has been splited as kernel/kexec_file.c.  In this patch I
split kexec_load syscall code to kernel/kexec.c.

And add a new kconfig option KEXEC_CORE, so we can disable kexec_load and
use kexec_file_load only, or vice verse.

The original requirement is from Ted Ts'o, he want kexec kernel signature
being checked with CONFIG_KEXEC_VERIFY_SIG enabled.  But kexec-tools use
kexec_load syscall can bypass the checking.

Vivek Goyal proposed to create a common kconfig option so user can compile
in only one syscall for loading kexec kernel.  KEXEC/KEXEC_FILE selects
KEXEC_CORE so that old config files still work.

Because there's general code need CONFIG_KEXEC_CORE, so I updated all the
architecture Kconfig with a new option KEXEC_CORE, and let KEXEC selects
KEXEC_CORE in arch Kconfig.  Also updated general kernel code with to
kexec_load syscall.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Dave Young &lt;dyoung@redhat.com&gt;
Cc: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
Cc: Vivek Goyal &lt;vgoyal@redhat.com&gt;
Cc: Petr Tesarik &lt;ptesarik@suse.cz&gt;
Cc: Theodore Ts'o &lt;tytso@mit.edu&gt;
Cc: Josh Boyer &lt;jwboyer@fedoraproject.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are two kexec load syscalls, kexec_load another and kexec_file_load.
 kexec_file_load has been splited as kernel/kexec_file.c.  In this patch I
split kexec_load syscall code to kernel/kexec.c.

And add a new kconfig option KEXEC_CORE, so we can disable kexec_load and
use kexec_file_load only, or vice verse.

The original requirement is from Ted Ts'o, he want kexec kernel signature
being checked with CONFIG_KEXEC_VERIFY_SIG enabled.  But kexec-tools use
kexec_load syscall can bypass the checking.

Vivek Goyal proposed to create a common kconfig option so user can compile
in only one syscall for loading kexec kernel.  KEXEC/KEXEC_FILE selects
KEXEC_CORE so that old config files still work.

Because there's general code need CONFIG_KEXEC_CORE, so I updated all the
architecture Kconfig with a new option KEXEC_CORE, and let KEXEC selects
KEXEC_CORE in arch Kconfig.  Also updated general kernel code with to
kexec_load syscall.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Dave Young &lt;dyoung@redhat.com&gt;
Cc: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
Cc: Vivek Goyal &lt;vgoyal@redhat.com&gt;
Cc: Petr Tesarik &lt;ptesarik@suse.cz&gt;
Cc: Theodore Ts'o &lt;tytso@mit.edu&gt;
Cc: Josh Boyer &lt;jwboyer@fedoraproject.org&gt;
Cc: David Howells &lt;dhowells@redhat.com&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86: kvmclock: set scheduler clock stable</title>
<updated>2015-05-29T12:01:52+00:00</updated>
<author>
<name>Luiz Capitulino</name>
<email>lcapitulino@redhat.com</email>
</author>
<published>2015-05-28T23:20:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=0ad83caa21bff9f383c10e73b452425709573042'/>
<id>0ad83caa21bff9f383c10e73b452425709573042</id>
<content type='text'>
If you try to enable NOHZ_FULL on a guest today, you'll get
the following error when the guest tries to deactivate the
scheduler tick:

 WARNING: CPU: 3 PID: 2182 at kernel/time/tick-sched.c:192 can_stop_full_tick+0xb9/0x290()
 NO_HZ FULL will not work with unstable sched clock
 CPU: 3 PID: 2182 Comm: kworker/3:1 Not tainted 4.0.0-10545-gb9bb6fb #204
 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
 Workqueue: events flush_to_ldisc
  ffffffff8162a0c7 ffff88011f583e88 ffffffff814e6ba0 0000000000000002
  ffff88011f583ed8 ffff88011f583ec8 ffffffff8104d095 ffff88011f583eb8
  0000000000000000 0000000000000003 0000000000000001 0000000000000001
 Call Trace:
  &lt;IRQ&gt;  [&lt;ffffffff814e6ba0&gt;] dump_stack+0x4f/0x7b
  [&lt;ffffffff8104d095&gt;] warn_slowpath_common+0x85/0xc0
  [&lt;ffffffff8104d146&gt;] warn_slowpath_fmt+0x46/0x50
  [&lt;ffffffff810bd2a9&gt;] can_stop_full_tick+0xb9/0x290
  [&lt;ffffffff810bd9ed&gt;] tick_nohz_irq_exit+0x8d/0xb0
  [&lt;ffffffff810511c5&gt;] irq_exit+0xc5/0x130
  [&lt;ffffffff814f180a&gt;] smp_apic_timer_interrupt+0x4a/0x60
  [&lt;ffffffff814eff5e&gt;] apic_timer_interrupt+0x6e/0x80
  &lt;EOI&gt;  [&lt;ffffffff814ee5d1&gt;] ? _raw_spin_unlock_irqrestore+0x31/0x60
  [&lt;ffffffff8108bbc8&gt;] __wake_up+0x48/0x60
  [&lt;ffffffff8134836c&gt;] n_tty_receive_buf_common+0x49c/0xba0
  [&lt;ffffffff8134a6bf&gt;] ? tty_ldisc_ref+0x1f/0x70
  [&lt;ffffffff81348a84&gt;] n_tty_receive_buf2+0x14/0x20
  [&lt;ffffffff8134b390&gt;] flush_to_ldisc+0xe0/0x120
  [&lt;ffffffff81064d05&gt;] process_one_work+0x1d5/0x540
  [&lt;ffffffff81064c81&gt;] ? process_one_work+0x151/0x540
  [&lt;ffffffff81065191&gt;] worker_thread+0x121/0x470
  [&lt;ffffffff81065070&gt;] ? process_one_work+0x540/0x540
  [&lt;ffffffff8106b4df&gt;] kthread+0xef/0x110
  [&lt;ffffffff8106b3f0&gt;] ? __kthread_parkme+0xa0/0xa0
  [&lt;ffffffff814ef4f2&gt;] ret_from_fork+0x42/0x70
  [&lt;ffffffff8106b3f0&gt;] ? __kthread_parkme+0xa0/0xa0
 ---[ end trace 06e3507544a38866 ]---

However, it turns out that kvmclock does provide a stable
sched_clock callback. So, let the scheduler know this which
in turn makes NOHZ_FULL work in the guest.

Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
Signed-off-by: Luiz Capitulino &lt;lcapitulino@redhat.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If you try to enable NOHZ_FULL on a guest today, you'll get
the following error when the guest tries to deactivate the
scheduler tick:

 WARNING: CPU: 3 PID: 2182 at kernel/time/tick-sched.c:192 can_stop_full_tick+0xb9/0x290()
 NO_HZ FULL will not work with unstable sched clock
 CPU: 3 PID: 2182 Comm: kworker/3:1 Not tainted 4.0.0-10545-gb9bb6fb #204
 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
 Workqueue: events flush_to_ldisc
  ffffffff8162a0c7 ffff88011f583e88 ffffffff814e6ba0 0000000000000002
  ffff88011f583ed8 ffff88011f583ec8 ffffffff8104d095 ffff88011f583eb8
  0000000000000000 0000000000000003 0000000000000001 0000000000000001
 Call Trace:
  &lt;IRQ&gt;  [&lt;ffffffff814e6ba0&gt;] dump_stack+0x4f/0x7b
  [&lt;ffffffff8104d095&gt;] warn_slowpath_common+0x85/0xc0
  [&lt;ffffffff8104d146&gt;] warn_slowpath_fmt+0x46/0x50
  [&lt;ffffffff810bd2a9&gt;] can_stop_full_tick+0xb9/0x290
  [&lt;ffffffff810bd9ed&gt;] tick_nohz_irq_exit+0x8d/0xb0
  [&lt;ffffffff810511c5&gt;] irq_exit+0xc5/0x130
  [&lt;ffffffff814f180a&gt;] smp_apic_timer_interrupt+0x4a/0x60
  [&lt;ffffffff814eff5e&gt;] apic_timer_interrupt+0x6e/0x80
  &lt;EOI&gt;  [&lt;ffffffff814ee5d1&gt;] ? _raw_spin_unlock_irqrestore+0x31/0x60
  [&lt;ffffffff8108bbc8&gt;] __wake_up+0x48/0x60
  [&lt;ffffffff8134836c&gt;] n_tty_receive_buf_common+0x49c/0xba0
  [&lt;ffffffff8134a6bf&gt;] ? tty_ldisc_ref+0x1f/0x70
  [&lt;ffffffff81348a84&gt;] n_tty_receive_buf2+0x14/0x20
  [&lt;ffffffff8134b390&gt;] flush_to_ldisc+0xe0/0x120
  [&lt;ffffffff81064d05&gt;] process_one_work+0x1d5/0x540
  [&lt;ffffffff81064c81&gt;] ? process_one_work+0x151/0x540
  [&lt;ffffffff81065191&gt;] worker_thread+0x121/0x470
  [&lt;ffffffff81065070&gt;] ? process_one_work+0x540/0x540
  [&lt;ffffffff8106b4df&gt;] kthread+0xef/0x110
  [&lt;ffffffff8106b3f0&gt;] ? __kthread_parkme+0xa0/0xa0
  [&lt;ffffffff814ef4f2&gt;] ret_from_fork+0x42/0x70
  [&lt;ffffffff8106b3f0&gt;] ? __kthread_parkme+0xa0/0xa0
 ---[ end trace 06e3507544a38866 ]---

However, it turns out that kvmclock does provide a stable
sched_clock callback. So, let the scheduler know this which
in turn makes NOHZ_FULL work in the guest.

Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
Signed-off-by: Luiz Capitulino &lt;lcapitulino@redhat.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "kvmclock: set scheduler clock stable"</title>
<updated>2015-05-19T18:52:37+00:00</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2015-05-13T13:59:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c35ebbeade127e7bca1f21ef5bf1a39deffba9de'/>
<id>c35ebbeade127e7bca1f21ef5bf1a39deffba9de</id>
<content type='text'>
This reverts commit ff7bbb9c6ab6e6620429daeff39424bbde1a94b4.
Sasha Levin is seeing odd jump in time values during boot of a KVM guest:

[...]
[    0.000000] tsc: Detected 2260.998 MHz processor
[3376355.247558] Calibrating delay loop (skipped) preset value..
[...]

and bisected them to this commit.

Reported-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit ff7bbb9c6ab6e6620429daeff39424bbde1a94b4.
Sasha Levin is seeing odd jump in time values during boot of a KVM guest:

[...]
[    0.000000] tsc: Detected 2260.998 MHz processor
[3376355.247558] Calibrating delay loop (skipped) preset value..
[...]

and bisected them to this commit.

Reported-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kvmclock: set scheduler clock stable</title>
<updated>2015-05-07T09:28:20+00:00</updated>
<author>
<name>Luiz Capitulino</name>
<email>lcapitulino@redhat.com</email>
</author>
<published>2015-04-23T21:12:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ff7bbb9c6ab6e6620429daeff39424bbde1a94b4'/>
<id>ff7bbb9c6ab6e6620429daeff39424bbde1a94b4</id>
<content type='text'>
If you try to enable NOHZ_FULL on a guest today, you'll get
the following error when the guest tries to deactivate the
scheduler tick:

 WARNING: CPU: 3 PID: 2182 at kernel/time/tick-sched.c:192 can_stop_full_tick+0xb9/0x290()
 NO_HZ FULL will not work with unstable sched clock
 CPU: 3 PID: 2182 Comm: kworker/3:1 Not tainted 4.0.0-10545-gb9bb6fb #204
 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
 Workqueue: events flush_to_ldisc
  ffffffff8162a0c7 ffff88011f583e88 ffffffff814e6ba0 0000000000000002
  ffff88011f583ed8 ffff88011f583ec8 ffffffff8104d095 ffff88011f583eb8
  0000000000000000 0000000000000003 0000000000000001 0000000000000001
 Call Trace:
  &lt;IRQ&gt;  [&lt;ffffffff814e6ba0&gt;] dump_stack+0x4f/0x7b
  [&lt;ffffffff8104d095&gt;] warn_slowpath_common+0x85/0xc0
  [&lt;ffffffff8104d146&gt;] warn_slowpath_fmt+0x46/0x50
  [&lt;ffffffff810bd2a9&gt;] can_stop_full_tick+0xb9/0x290
  [&lt;ffffffff810bd9ed&gt;] tick_nohz_irq_exit+0x8d/0xb0
  [&lt;ffffffff810511c5&gt;] irq_exit+0xc5/0x130
  [&lt;ffffffff814f180a&gt;] smp_apic_timer_interrupt+0x4a/0x60
  [&lt;ffffffff814eff5e&gt;] apic_timer_interrupt+0x6e/0x80
  &lt;EOI&gt;  [&lt;ffffffff814ee5d1&gt;] ? _raw_spin_unlock_irqrestore+0x31/0x60
  [&lt;ffffffff8108bbc8&gt;] __wake_up+0x48/0x60
  [&lt;ffffffff8134836c&gt;] n_tty_receive_buf_common+0x49c/0xba0
  [&lt;ffffffff8134a6bf&gt;] ? tty_ldisc_ref+0x1f/0x70
  [&lt;ffffffff81348a84&gt;] n_tty_receive_buf2+0x14/0x20
  [&lt;ffffffff8134b390&gt;] flush_to_ldisc+0xe0/0x120
  [&lt;ffffffff81064d05&gt;] process_one_work+0x1d5/0x540
  [&lt;ffffffff81064c81&gt;] ? process_one_work+0x151/0x540
  [&lt;ffffffff81065191&gt;] worker_thread+0x121/0x470
  [&lt;ffffffff81065070&gt;] ? process_one_work+0x540/0x540
  [&lt;ffffffff8106b4df&gt;] kthread+0xef/0x110
  [&lt;ffffffff8106b3f0&gt;] ? __kthread_parkme+0xa0/0xa0
  [&lt;ffffffff814ef4f2&gt;] ret_from_fork+0x42/0x70
  [&lt;ffffffff8106b3f0&gt;] ? __kthread_parkme+0xa0/0xa0
 ---[ end trace 06e3507544a38866 ]---

However, it turns out that kvmclock does provide a stable
sched_clock callback. So, let the scheduler know this which
in turn makes NOHZ_FULL work in the guest.

Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
Signed-off-by: Luiz Capitulino &lt;lcapitulino@redhat.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If you try to enable NOHZ_FULL on a guest today, you'll get
the following error when the guest tries to deactivate the
scheduler tick:

 WARNING: CPU: 3 PID: 2182 at kernel/time/tick-sched.c:192 can_stop_full_tick+0xb9/0x290()
 NO_HZ FULL will not work with unstable sched clock
 CPU: 3 PID: 2182 Comm: kworker/3:1 Not tainted 4.0.0-10545-gb9bb6fb #204
 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
 Workqueue: events flush_to_ldisc
  ffffffff8162a0c7 ffff88011f583e88 ffffffff814e6ba0 0000000000000002
  ffff88011f583ed8 ffff88011f583ec8 ffffffff8104d095 ffff88011f583eb8
  0000000000000000 0000000000000003 0000000000000001 0000000000000001
 Call Trace:
  &lt;IRQ&gt;  [&lt;ffffffff814e6ba0&gt;] dump_stack+0x4f/0x7b
  [&lt;ffffffff8104d095&gt;] warn_slowpath_common+0x85/0xc0
  [&lt;ffffffff8104d146&gt;] warn_slowpath_fmt+0x46/0x50
  [&lt;ffffffff810bd2a9&gt;] can_stop_full_tick+0xb9/0x290
  [&lt;ffffffff810bd9ed&gt;] tick_nohz_irq_exit+0x8d/0xb0
  [&lt;ffffffff810511c5&gt;] irq_exit+0xc5/0x130
  [&lt;ffffffff814f180a&gt;] smp_apic_timer_interrupt+0x4a/0x60
  [&lt;ffffffff814eff5e&gt;] apic_timer_interrupt+0x6e/0x80
  &lt;EOI&gt;  [&lt;ffffffff814ee5d1&gt;] ? _raw_spin_unlock_irqrestore+0x31/0x60
  [&lt;ffffffff8108bbc8&gt;] __wake_up+0x48/0x60
  [&lt;ffffffff8134836c&gt;] n_tty_receive_buf_common+0x49c/0xba0
  [&lt;ffffffff8134a6bf&gt;] ? tty_ldisc_ref+0x1f/0x70
  [&lt;ffffffff81348a84&gt;] n_tty_receive_buf2+0x14/0x20
  [&lt;ffffffff8134b390&gt;] flush_to_ldisc+0xe0/0x120
  [&lt;ffffffff81064d05&gt;] process_one_work+0x1d5/0x540
  [&lt;ffffffff81064c81&gt;] ? process_one_work+0x151/0x540
  [&lt;ffffffff81065191&gt;] worker_thread+0x121/0x470
  [&lt;ffffffff81065070&gt;] ? process_one_work+0x540/0x540
  [&lt;ffffffff8106b4df&gt;] kthread+0xef/0x110
  [&lt;ffffffff8106b3f0&gt;] ? __kthread_parkme+0xa0/0xa0
  [&lt;ffffffff814ef4f2&gt;] ret_from_fork+0x42/0x70
  [&lt;ffffffff8106b3f0&gt;] ? __kthread_parkme+0xa0/0xa0
 ---[ end trace 06e3507544a38866 ]---

However, it turns out that kvmclock does provide a stable
sched_clock callback. So, let the scheduler know this which
in turn makes NOHZ_FULL work in the guest.

Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
Signed-off-by: Luiz Capitulino &lt;lcapitulino@redhat.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86, kvm: Clear paravirt_enabled on KVM guests for espfix32's benefit</title>
<updated>2014-12-10T11:49:39+00:00</updated>
<author>
<name>Andy Lutomirski</name>
<email>luto@amacapital.net</email>
</author>
<published>2014-12-06T03:03:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=29fa6825463c97e5157284db80107d1bfac5d77b'/>
<id>29fa6825463c97e5157284db80107d1bfac5d77b</id>
<content type='text'>
paravirt_enabled has the following effects:

 - Disables the F00F bug workaround warning.  There is no F00F bug
   workaround any more because Linux's standard IDT handling already
   works around the F00F bug, but the warning still exists.  This
   is only cosmetic, and, in any event, there is no such thing as
   KVM on a CPU with the F00F bug.

 - Disables 32-bit APM BIOS detection.  On a KVM paravirt system,
   there should be no APM BIOS anyway.

 - Disables tboot.  I think that the tboot code should check the
   CPUID hypervisor bit directly if it matters.

 - paravirt_enabled disables espfix32.  espfix32 should *not* be
   disabled under KVM paravirt.

The last point is the purpose of this patch.  It fixes a leak of the
high 16 bits of the kernel stack address on 32-bit KVM paravirt
guests.  Fixes CVE-2014-8134.

Cc: stable@vger.kernel.org
Suggested-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
Signed-off-by: Andy Lutomirski &lt;luto@amacapital.net&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
paravirt_enabled has the following effects:

 - Disables the F00F bug workaround warning.  There is no F00F bug
   workaround any more because Linux's standard IDT handling already
   works around the F00F bug, but the warning still exists.  This
   is only cosmetic, and, in any event, there is no such thing as
   KVM on a CPU with the F00F bug.

 - Disables 32-bit APM BIOS detection.  On a KVM paravirt system,
   there should be no APM BIOS anyway.

 - Disables tboot.  I think that the tboot code should check the
   CPUID hypervisor bit directly if it matters.

 - paravirt_enabled disables espfix32.  espfix32 should *not* be
   disabled under KVM paravirt.

The last point is the purpose of this patch.  It fixes a leak of the
high 16 bits of the kernel stack address on 32-bit KVM paravirt
guests.  Fixes CVE-2014-8134.

Cc: stable@vger.kernel.org
Suggested-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
Signed-off-by: Andy Lutomirski &lt;luto@amacapital.net&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kvm: kvmclock: use get_cpu() and put_cpu()</title>
<updated>2014-11-03T11:07:33+00:00</updated>
<author>
<name>Tiejun Chen</name>
<email>tiejun.chen@intel.com</email>
</author>
<published>2014-09-26T06:00:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c6338ce494456ed9c92ef10f63c0a8408bfeac6d'/>
<id>c6338ce494456ed9c92ef10f63c0a8408bfeac6d</id>
<content type='text'>
We can use get_cpu() and put_cpu() to replace
preempt_disable()/cpu = smp_processor_id() and
preempt_enable() for slightly better code.

Signed-off-by: Tiejun Chen &lt;tiejun.chen@intel.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We can use get_cpu() and put_cpu() to replace
preempt_disable()/cpu = smp_processor_id() and
preempt_enable() for slightly better code.

Signed-off-by: Tiejun Chen &lt;tiejun.chen@intel.com&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kvm: remove redundant registration of BSP's hv_clock area</title>
<updated>2014-02-22T14:53:32+00:00</updated>
<author>
<name>Fernando Luis Vázquez Cao</name>
<email>fernando_b1@lab.ntt.co.jp</email>
</author>
<published>2014-02-18T10:09:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=0d75de4a65d99ba042b050620d479ab74b1919d4'/>
<id>0d75de4a65d99ba042b050620d479ab74b1919d4</id>
<content type='text'>
These days hv_clock allocation is memblock based (i.e. the percpu
allocator is not involved), which means that the physical address
of each of the per-cpu hv_clock areas is guaranteed to remain
unchanged through all its lifetime and we do not need to update
its location after CPU bring-up.

Signed-off-by: Fernando Luis Vazquez Cao &lt;fernando@oss.ntt.co.jp&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These days hv_clock allocation is memblock based (i.e. the percpu
allocator is not involved), which means that the physical address
of each of the per-cpu hv_clock areas is guaranteed to remain
unchanged through all its lifetime and we do not need to update
its location after CPU bring-up.

Signed-off-by: Fernando Luis Vazquez Cao &lt;fernando@oss.ntt.co.jp&gt;
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pvclock: detect watchdog reset at pvclock read</title>
<updated>2013-11-06T07:48:43+00:00</updated>
<author>
<name>Marcelo Tosatti</name>
<email>mtosatti@redhat.com</email>
</author>
<published>2013-10-12T00:39:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d63285e94af3ade4fa8b10b0d9a22bcf72baf2f9'/>
<id>d63285e94af3ade4fa8b10b0d9a22bcf72baf2f9</id>
<content type='text'>
Implement reset of kernel watchdogs at pvclock read time. This avoids
adding special code to every watchdog.

This is possible for watchdogs which measure time based on sched_clock() or
ktime_get() variants.

Suggested by Don Zickus.

Acked-by: Don Zickus &lt;dzickus@redhat.com&gt;
Acked-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
Signed-off-by: Gleb Natapov &lt;gleb@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement reset of kernel watchdogs at pvclock read time. This avoids
adding special code to every watchdog.

This is possible for watchdogs which measure time based on sched_clock() or
ktime_get() variants.

Suggested by Don Zickus.

Acked-by: Don Zickus &lt;dzickus@redhat.com&gt;
Acked-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Signed-off-by: Marcelo Tosatti &lt;mtosatti@redhat.com&gt;
Signed-off-by: Gleb Natapov &lt;gleb@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x86: delete __cpuinit usage from all x86 files</title>
<updated>2013-07-14T23:36:56+00:00</updated>
<author>
<name>Paul Gortmaker</name>
<email>paul.gortmaker@windriver.com</email>
</author>
<published>2013-06-18T22:23:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=148f9bb87745ed45f7a11b2cbd3bc0f017d5d257'/>
<id>148f9bb87745ed45f7a11b2cbd3bc0f017d5d257</id>
<content type='text'>
The __cpuinit type of throwaway sections might have made sense
some time ago when RAM was more constrained, but now the savings
do not offset the cost and complications.  For example, the fix in
commit 5e427ec2d0 ("x86: Fix bit corruption at CPU resume time")
is a good example of the nasty type of bugs that can be created
with improper use of the various __init prefixes.

After a discussion on LKML[1] it was decided that cpuinit should go
the way of devinit and be phased out.  Once all the users are gone,
we can then finally remove the macros themselves from linux/init.h.

Note that some harmless section mismatch warnings may result, since
notify_cpu_starting() and cpu_up() are arch independent (kernel/cpu.c)
are flagged as __cpuinit  -- so if we remove the __cpuinit from
arch specific callers, we will also get section mismatch warnings.
As an intermediate step, we intend to turn the linux/init.h cpuinit
content into no-ops as early as possible, since that will get rid
of these warnings.  In any case, they are temporary and harmless.

This removes all the arch/x86 uses of the __cpuinit macros from
all C files.  x86 only had the one __CPUINIT used in assembly files,
and it wasn't paired off with a .previous or a __FINIT, so we can
delete it directly w/o any corresponding additional change there.

[1] https://lkml.org/lkml/2013/5/20/589

Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Ingo Molnar &lt;mingo@redhat.com&gt;
Cc: "H. Peter Anvin" &lt;hpa@zytor.com&gt;
Cc: x86@kernel.org
Acked-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The __cpuinit type of throwaway sections might have made sense
some time ago when RAM was more constrained, but now the savings
do not offset the cost and complications.  For example, the fix in
commit 5e427ec2d0 ("x86: Fix bit corruption at CPU resume time")
is a good example of the nasty type of bugs that can be created
with improper use of the various __init prefixes.

After a discussion on LKML[1] it was decided that cpuinit should go
the way of devinit and be phased out.  Once all the users are gone,
we can then finally remove the macros themselves from linux/init.h.

Note that some harmless section mismatch warnings may result, since
notify_cpu_starting() and cpu_up() are arch independent (kernel/cpu.c)
are flagged as __cpuinit  -- so if we remove the __cpuinit from
arch specific callers, we will also get section mismatch warnings.
As an intermediate step, we intend to turn the linux/init.h cpuinit
content into no-ops as early as possible, since that will get rid
of these warnings.  In any case, they are temporary and harmless.

This removes all the arch/x86 uses of the __cpuinit macros from
all C files.  x86 only had the one __CPUINIT used in assembly files,
and it wasn't paired off with a .previous or a __FINIT, so we can
delete it directly w/o any corresponding additional change there.

[1] https://lkml.org/lkml/2013/5/20/589

Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Ingo Molnar &lt;mingo@redhat.com&gt;
Cc: "H. Peter Anvin" &lt;hpa@zytor.com&gt;
Cc: x86@kernel.org
Acked-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'timers/posix-cpu-timers-for-tglx' of</title>
<updated>2013-07-04T21:11:22+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2013-07-04T21:11:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=2b0f89317e99735bbf32eaede81f707f98ab1b5e'/>
<id>2b0f89317e99735bbf32eaede81f707f98ab1b5e</id>
<content type='text'>
git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into timers/core

Frederic sayed: "Most of these patches have been hanging around for
several month now, in -mmotm for a significant chunk. They already
missed a few releases."

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into timers/core

Frederic sayed: "Most of these patches have been hanging around for
several month now, in -mmotm for a significant chunk. They already
missed a few releases."

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</pre>
</div>
</content>
</entry>
</feed>
