<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/arch/x86/kernel/cpu, branch v4.1.9</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>x86/mce: Reenable CMCI banks when swiching back to interrupt mode</title>
<updated>2015-09-21T17:05:43+00:00</updated>
<author>
<name>Xie XiuQi</name>
<email>xiexiuqi@huawei.com</email>
</author>
<published>2015-08-12T16:29:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e4b09a61e9b1eb200f300cdc21d146dbdc4014ca'/>
<id>e4b09a61e9b1eb200f300cdc21d146dbdc4014ca</id>
<content type='text'>
commit 1b48465500611a2dc5e75800c61ac352e22d41c3 upstream.

Zhang Liguang reported the following issue:

1) System detects a CMCI storm on the current CPU.

2) Kernel disables the CMCI interrupt on banks owned by the
   current CPU and switches to poll mode

3) After the CMCI storm subsides, kernel switches back to
   interrupt mode

4) We expect the system to reenable the CMCI interrupt on banks
   owned by the current CPU

   mce_intel_adjust_timer
   |-&gt; cmci_reenable
       |-&gt; cmci_discover     # owned banks are ignored here

  static void cmci_discover(int banks)
	...
	for (i = 0; i &lt; banks; i++) {
		...
		if (test_bit(i, owned))	# ownd banks is ignore here
			continue;

So convert cmci_storm_disable_banks() to
cmci_toggle_interrupt_mode() which controls whether to enable or
disable CMCI interrupts with its argument.

NB: We cannot clear the owned bit because the banks won't be
polled, otherwise. See:

  27f6c573e0f7 ("x86, CMCI: Add proper detection of end of CMCI storms")

for more info.

Reported-by: Zhang Liguang &lt;zhangliguang@huawei.com&gt;
Signed-off-by: Xie XiuQi &lt;xiexiuqi@huawei.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: huawei.libin@huawei.com
Cc: linux-edac &lt;linux-edac@vger.kernel.org&gt;
Cc: rui.xiang@huawei.com
Link: http://lkml.kernel.org/r/1439396985-12812-10-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 1b48465500611a2dc5e75800c61ac352e22d41c3 upstream.

Zhang Liguang reported the following issue:

1) System detects a CMCI storm on the current CPU.

2) Kernel disables the CMCI interrupt on banks owned by the
   current CPU and switches to poll mode

3) After the CMCI storm subsides, kernel switches back to
   interrupt mode

4) We expect the system to reenable the CMCI interrupt on banks
   owned by the current CPU

   mce_intel_adjust_timer
   |-&gt; cmci_reenable
       |-&gt; cmci_discover     # owned banks are ignored here

  static void cmci_discover(int banks)
	...
	for (i = 0; i &lt; banks; i++) {
		...
		if (test_bit(i, owned))	# ownd banks is ignore here
			continue;

So convert cmci_storm_disable_banks() to
cmci_toggle_interrupt_mode() which controls whether to enable or
disable CMCI interrupts with its argument.

NB: We cannot clear the owned bit because the banks won't be
polled, otherwise. See:

  27f6c573e0f7 ("x86, CMCI: Add proper detection of end of CMCI storms")

for more info.

Reported-by: Zhang Liguang &lt;zhangliguang@huawei.com&gt;
Signed-off-by: Xie XiuQi &lt;xiexiuqi@huawei.com&gt;
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: huawei.libin@huawei.com
Cc: linux-edac &lt;linux-edac@vger.kernel.org&gt;
Cc: rui.xiang@huawei.com
Link: http://lkml.kernel.org/r/1439396985-12812-10-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>x86/ldt: Make modify_ldt synchronous</title>
<updated>2015-09-21T17:05:25+00:00</updated>
<author>
<name>Andy Lutomirski</name>
<email>luto@kernel.org</email>
</author>
<published>2015-07-30T21:31:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=618683abc90f828b980a969d4f55d0d322155c8f'/>
<id>618683abc90f828b980a969d4f55d0d322155c8f</id>
<content type='text'>
commit 37868fe113ff2ba814b3b4eb12df214df555f8dc upstream.

modify_ldt() has questionable locking and does not synchronize
threads.  Improve it: redesign the locking and synchronize all
threads' LDTs using an IPI on all modifications.

This will dramatically slow down modify_ldt in multithreaded
programs, but there shouldn't be any multithreaded programs that
care about modify_ldt's performance in the first place.

This fixes some fallout from the CVE-2015-5157 fixes.

Signed-off-by: Andy Lutomirski &lt;luto@kernel.org&gt;
Reviewed-by: Borislav Petkov &lt;bp@suse.de&gt;
Cc: Andrew Cooper &lt;andrew.cooper3@citrix.com&gt;
Cc: Andy Lutomirski &lt;luto@amacapital.net&gt;
Cc: Boris Ostrovsky &lt;boris.ostrovsky@oracle.com&gt;
Cc: Borislav Petkov &lt;bp@alien8.de&gt;
Cc: Brian Gerst &lt;brgerst@gmail.com&gt;
Cc: Denys Vlasenko &lt;dvlasenk@redhat.com&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Jan Beulich &lt;jbeulich@suse.com&gt;
Cc: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: security@kernel.org &lt;security@kernel.org&gt;
Cc: xen-devel &lt;xen-devel@lists.xen.org&gt;
Link: http://lkml.kernel.org/r/4c6978476782160600471bd865b318db34c7b628.1438291540.git.luto@kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 37868fe113ff2ba814b3b4eb12df214df555f8dc upstream.

modify_ldt() has questionable locking and does not synchronize
threads.  Improve it: redesign the locking and synchronize all
threads' LDTs using an IPI on all modifications.

This will dramatically slow down modify_ldt in multithreaded
programs, but there shouldn't be any multithreaded programs that
care about modify_ldt's performance in the first place.

This fixes some fallout from the CVE-2015-5157 fixes.

Signed-off-by: Andy Lutomirski &lt;luto@kernel.org&gt;
Reviewed-by: Borislav Petkov &lt;bp@suse.de&gt;
Cc: Andrew Cooper &lt;andrew.cooper3@citrix.com&gt;
Cc: Andy Lutomirski &lt;luto@amacapital.net&gt;
Cc: Boris Ostrovsky &lt;boris.ostrovsky@oracle.com&gt;
Cc: Borislav Petkov &lt;bp@alien8.de&gt;
Cc: Brian Gerst &lt;brgerst@gmail.com&gt;
Cc: Denys Vlasenko &lt;dvlasenk@redhat.com&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Jan Beulich &lt;jbeulich@suse.com&gt;
Cc: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Cc: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: security@kernel.org &lt;security@kernel.org&gt;
Cc: xen-devel &lt;xen-devel@lists.xen.org&gt;
Link: http://lkml.kernel.org/r/4c6978476782160600471bd865b318db34c7b628.1438291540.git.luto@kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>perf/x86/intel/cqm: Return cached counter value from IRQ context</title>
<updated>2015-08-10T19:21:58+00:00</updated>
<author>
<name>Matt Fleming</name>
<email>matt.fleming@intel.com</email>
</author>
<published>2015-07-21T14:55:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f919f7a4d004513372807cedc14fac43f0652c4c'/>
<id>f919f7a4d004513372807cedc14fac43f0652c4c</id>
<content type='text'>
commit 2c534c0da0a68418693e10ce1c4146e085f39518 upstream.

Peter reported the following potential crash which I was able to
reproduce with his test program,

[  148.765788] ------------[ cut here ]------------
[  148.765796] WARNING: CPU: 34 PID: 2840 at kernel/smp.c:417 smp_call_function_many+0xb6/0x260()
[  148.765797] Modules linked in:
[  148.765800] CPU: 34 PID: 2840 Comm: perf Not tainted 4.2.0-rc1+ #4
[  148.765803]  ffffffff81cdc398 ffff88085f105950 ffffffff818bdfd5 0000000000000007
[  148.765805]  0000000000000000 ffff88085f105990 ffffffff810e413a 0000000000000000
[  148.765807]  ffffffff82301080 0000000000000022 ffffffff8107f640 ffffffff8107f640
[  148.765809] Call Trace:
[  148.765810]  &lt;NMI&gt;  [&lt;ffffffff818bdfd5&gt;] dump_stack+0x45/0x57
[  148.765818]  [&lt;ffffffff810e413a&gt;] warn_slowpath_common+0x8a/0xc0
[  148.765822]  [&lt;ffffffff8107f640&gt;] ? intel_cqm_stable+0x60/0x60
[  148.765824]  [&lt;ffffffff8107f640&gt;] ? intel_cqm_stable+0x60/0x60
[  148.765825]  [&lt;ffffffff810e422a&gt;] warn_slowpath_null+0x1a/0x20
[  148.765827]  [&lt;ffffffff811613f6&gt;] smp_call_function_many+0xb6/0x260
[  148.765829]  [&lt;ffffffff8107f640&gt;] ? intel_cqm_stable+0x60/0x60
[  148.765831]  [&lt;ffffffff81161748&gt;] on_each_cpu_mask+0x28/0x60
[  148.765832]  [&lt;ffffffff8107f6ef&gt;] intel_cqm_event_count+0x7f/0xe0
[  148.765836]  [&lt;ffffffff811cdd35&gt;] perf_output_read+0x2a5/0x400
[  148.765839]  [&lt;ffffffff811d2e5a&gt;] perf_output_sample+0x31a/0x590
[  148.765840]  [&lt;ffffffff811d333d&gt;] ? perf_prepare_sample+0x26d/0x380
[  148.765841]  [&lt;ffffffff811d3497&gt;] perf_event_output+0x47/0x60
[  148.765843]  [&lt;ffffffff811d36c5&gt;] __perf_event_overflow+0x215/0x240
[  148.765844]  [&lt;ffffffff811d4124&gt;] perf_event_overflow+0x14/0x20
[  148.765847]  [&lt;ffffffff8107e7f4&gt;] intel_pmu_handle_irq+0x1d4/0x440
[  148.765849]  [&lt;ffffffff811d07a6&gt;] ? __perf_event_task_sched_in+0x36/0xa0
[  148.765853]  [&lt;ffffffff81219bad&gt;] ? vunmap_page_range+0x19d/0x2f0
[  148.765854]  [&lt;ffffffff81219d11&gt;] ? unmap_kernel_range_noflush+0x11/0x20
[  148.765859]  [&lt;ffffffff814ce6fe&gt;] ? ghes_copy_tofrom_phys+0x11e/0x2a0
[  148.765863]  [&lt;ffffffff8109e5db&gt;] ? native_apic_msr_write+0x2b/0x30
[  148.765865]  [&lt;ffffffff8109e44d&gt;] ? x2apic_send_IPI_self+0x1d/0x20
[  148.765869]  [&lt;ffffffff81065135&gt;] ? arch_irq_work_raise+0x35/0x40
[  148.765872]  [&lt;ffffffff811c8d86&gt;] ? irq_work_queue+0x66/0x80
[  148.765875]  [&lt;ffffffff81075306&gt;] perf_event_nmi_handler+0x26/0x40
[  148.765877]  [&lt;ffffffff81063ed9&gt;] nmi_handle+0x79/0x100
[  148.765879]  [&lt;ffffffff81064422&gt;] default_do_nmi+0x42/0x100
[  148.765880]  [&lt;ffffffff81064563&gt;] do_nmi+0x83/0xb0
[  148.765884]  [&lt;ffffffff818c7c0f&gt;] end_repeat_nmi+0x1e/0x2e
[  148.765886]  [&lt;ffffffff811d07a6&gt;] ? __perf_event_task_sched_in+0x36/0xa0
[  148.765888]  [&lt;ffffffff811d07a6&gt;] ? __perf_event_task_sched_in+0x36/0xa0
[  148.765890]  [&lt;ffffffff811d07a6&gt;] ? __perf_event_task_sched_in+0x36/0xa0
[  148.765891]  &lt;&lt;EOE&gt;&gt;  [&lt;ffffffff8110ab66&gt;] finish_task_switch+0x156/0x210
[  148.765898]  [&lt;ffffffff818c1671&gt;] __schedule+0x341/0x920
[  148.765899]  [&lt;ffffffff818c1c87&gt;] schedule+0x37/0x80
[  148.765903]  [&lt;ffffffff810ae1af&gt;] ? do_page_fault+0x2f/0x80
[  148.765905]  [&lt;ffffffff818c1f4a&gt;] schedule_user+0x1a/0x50
[  148.765907]  [&lt;ffffffff818c666c&gt;] retint_careful+0x14/0x32
[  148.765908] ---[ end trace e33ff2be78e14901 ]---

The CQM task events are not safe to be called from within interrupt
context because they require performing an IPI to read the counter value
on all sockets. And performing IPIs from within IRQ context is a
"no-no".

Make do with the last read counter value currently event in
event-&gt;count when we're invoked in this context.

Reported-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Vikas Shivappa &lt;vikas.shivappa@intel.com&gt;
Cc: Kanaka Juvva &lt;kanaka.d.juvva@intel.com&gt;
Cc: Will Auld &lt;will.auld@intel.com&gt;
Link: http://lkml.kernel.org/r/1437490509-15373-1-git-send-email-matt@codeblueprint.co.uk
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 2c534c0da0a68418693e10ce1c4146e085f39518 upstream.

Peter reported the following potential crash which I was able to
reproduce with his test program,

[  148.765788] ------------[ cut here ]------------
[  148.765796] WARNING: CPU: 34 PID: 2840 at kernel/smp.c:417 smp_call_function_many+0xb6/0x260()
[  148.765797] Modules linked in:
[  148.765800] CPU: 34 PID: 2840 Comm: perf Not tainted 4.2.0-rc1+ #4
[  148.765803]  ffffffff81cdc398 ffff88085f105950 ffffffff818bdfd5 0000000000000007
[  148.765805]  0000000000000000 ffff88085f105990 ffffffff810e413a 0000000000000000
[  148.765807]  ffffffff82301080 0000000000000022 ffffffff8107f640 ffffffff8107f640
[  148.765809] Call Trace:
[  148.765810]  &lt;NMI&gt;  [&lt;ffffffff818bdfd5&gt;] dump_stack+0x45/0x57
[  148.765818]  [&lt;ffffffff810e413a&gt;] warn_slowpath_common+0x8a/0xc0
[  148.765822]  [&lt;ffffffff8107f640&gt;] ? intel_cqm_stable+0x60/0x60
[  148.765824]  [&lt;ffffffff8107f640&gt;] ? intel_cqm_stable+0x60/0x60
[  148.765825]  [&lt;ffffffff810e422a&gt;] warn_slowpath_null+0x1a/0x20
[  148.765827]  [&lt;ffffffff811613f6&gt;] smp_call_function_many+0xb6/0x260
[  148.765829]  [&lt;ffffffff8107f640&gt;] ? intel_cqm_stable+0x60/0x60
[  148.765831]  [&lt;ffffffff81161748&gt;] on_each_cpu_mask+0x28/0x60
[  148.765832]  [&lt;ffffffff8107f6ef&gt;] intel_cqm_event_count+0x7f/0xe0
[  148.765836]  [&lt;ffffffff811cdd35&gt;] perf_output_read+0x2a5/0x400
[  148.765839]  [&lt;ffffffff811d2e5a&gt;] perf_output_sample+0x31a/0x590
[  148.765840]  [&lt;ffffffff811d333d&gt;] ? perf_prepare_sample+0x26d/0x380
[  148.765841]  [&lt;ffffffff811d3497&gt;] perf_event_output+0x47/0x60
[  148.765843]  [&lt;ffffffff811d36c5&gt;] __perf_event_overflow+0x215/0x240
[  148.765844]  [&lt;ffffffff811d4124&gt;] perf_event_overflow+0x14/0x20
[  148.765847]  [&lt;ffffffff8107e7f4&gt;] intel_pmu_handle_irq+0x1d4/0x440
[  148.765849]  [&lt;ffffffff811d07a6&gt;] ? __perf_event_task_sched_in+0x36/0xa0
[  148.765853]  [&lt;ffffffff81219bad&gt;] ? vunmap_page_range+0x19d/0x2f0
[  148.765854]  [&lt;ffffffff81219d11&gt;] ? unmap_kernel_range_noflush+0x11/0x20
[  148.765859]  [&lt;ffffffff814ce6fe&gt;] ? ghes_copy_tofrom_phys+0x11e/0x2a0
[  148.765863]  [&lt;ffffffff8109e5db&gt;] ? native_apic_msr_write+0x2b/0x30
[  148.765865]  [&lt;ffffffff8109e44d&gt;] ? x2apic_send_IPI_self+0x1d/0x20
[  148.765869]  [&lt;ffffffff81065135&gt;] ? arch_irq_work_raise+0x35/0x40
[  148.765872]  [&lt;ffffffff811c8d86&gt;] ? irq_work_queue+0x66/0x80
[  148.765875]  [&lt;ffffffff81075306&gt;] perf_event_nmi_handler+0x26/0x40
[  148.765877]  [&lt;ffffffff81063ed9&gt;] nmi_handle+0x79/0x100
[  148.765879]  [&lt;ffffffff81064422&gt;] default_do_nmi+0x42/0x100
[  148.765880]  [&lt;ffffffff81064563&gt;] do_nmi+0x83/0xb0
[  148.765884]  [&lt;ffffffff818c7c0f&gt;] end_repeat_nmi+0x1e/0x2e
[  148.765886]  [&lt;ffffffff811d07a6&gt;] ? __perf_event_task_sched_in+0x36/0xa0
[  148.765888]  [&lt;ffffffff811d07a6&gt;] ? __perf_event_task_sched_in+0x36/0xa0
[  148.765890]  [&lt;ffffffff811d07a6&gt;] ? __perf_event_task_sched_in+0x36/0xa0
[  148.765891]  &lt;&lt;EOE&gt;&gt;  [&lt;ffffffff8110ab66&gt;] finish_task_switch+0x156/0x210
[  148.765898]  [&lt;ffffffff818c1671&gt;] __schedule+0x341/0x920
[  148.765899]  [&lt;ffffffff818c1c87&gt;] schedule+0x37/0x80
[  148.765903]  [&lt;ffffffff810ae1af&gt;] ? do_page_fault+0x2f/0x80
[  148.765905]  [&lt;ffffffff818c1f4a&gt;] schedule_user+0x1a/0x50
[  148.765907]  [&lt;ffffffff818c666c&gt;] retint_careful+0x14/0x32
[  148.765908] ---[ end trace e33ff2be78e14901 ]---

The CQM task events are not safe to be called from within interrupt
context because they require performing an IPI to read the counter value
on all sockets. And performing IPIs from within IRQ context is a
"no-no".

Make do with the last read counter value currently event in
event-&gt;count when we're invoked in this context.

Reported-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Vikas Shivappa &lt;vikas.shivappa@intel.com&gt;
Cc: Kanaka Juvva &lt;kanaka.d.juvva@intel.com&gt;
Cc: Will Auld &lt;will.auld@intel.com&gt;
Link: http://lkml.kernel.org/r/1437490509-15373-1-git-send-email-matt@codeblueprint.co.uk
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>perf/x86: Honor the architectural performance monitoring version</title>
<updated>2015-06-29T19:35:28+00:00</updated>
<author>
<name>Palik, Imre</name>
<email>imrep@amazon.de</email>
</author>
<published>2015-06-08T12:46:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b675101824a103b3cf8f05c407a53ad50f987730'/>
<id>b675101824a103b3cf8f05c407a53ad50f987730</id>
<content type='text'>
commit 2c33645d366d13b969d936b68b9f4875b1fdddea upstream.

Architectural performance monitoring, version 1, doesn't support fixed counters.

Currently, even if a hypervisor advertises support for architectural
performance monitoring version 1, perf may still try to use the fixed
counters, as the constraints are set up based on the CPU model.

This patch ensures that perf honors the architectural performance monitoring
version returned by CPUID, and it only uses the fixed counters for version 2
and above.

(Some of the ideas in this patch came from Peter Zijlstra.)

Signed-off-by: Imre Palik &lt;imrep@amazon.de&gt;
Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Andy Lutomirski &lt;luto@amacapital.net&gt;
Cc: Anthony Liguori &lt;aliguori@amazon.com&gt;
Cc: Arnaldo Carvalho de Melo &lt;acme@kernel.org&gt;
Cc: Borislav Petkov &lt;bp@alien8.de&gt;
Cc: Brian Gerst &lt;brgerst@gmail.com&gt;
Cc: Denys Vlasenko &lt;dvlasenk@redhat.com&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Oleg Nesterov &lt;oleg@redhat.com&gt;
Cc: Paul Mackerras &lt;paulus@samba.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Link: http://lkml.kernel.org/r/1433767609-1039-1-git-send-email-imrep.amz@gmail.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 2c33645d366d13b969d936b68b9f4875b1fdddea upstream.

Architectural performance monitoring, version 1, doesn't support fixed counters.

Currently, even if a hypervisor advertises support for architectural
performance monitoring version 1, perf may still try to use the fixed
counters, as the constraints are set up based on the CPU model.

This patch ensures that perf honors the architectural performance monitoring
version returned by CPUID, and it only uses the fixed counters for version 2
and above.

(Some of the ideas in this patch came from Peter Zijlstra.)

Signed-off-by: Imre Palik &lt;imrep@amazon.de&gt;
Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Andy Lutomirski &lt;luto@amacapital.net&gt;
Cc: Anthony Liguori &lt;aliguori@amazon.com&gt;
Cc: Arnaldo Carvalho de Melo &lt;acme@kernel.org&gt;
Cc: Borislav Petkov &lt;bp@alien8.de&gt;
Cc: Brian Gerst &lt;brgerst@gmail.com&gt;
Cc: Denys Vlasenko &lt;dvlasenk@redhat.com&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Oleg Nesterov &lt;oleg@redhat.com&gt;
Cc: Paul Mackerras &lt;paulus@samba.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Link: http://lkml.kernel.org/r/1433767609-1039-1-git-send-email-imrep.amz@gmail.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>perf/x86/intel/bts: Fix DS area sharing with x86_pmu events</title>
<updated>2015-06-29T19:35:28+00:00</updated>
<author>
<name>Alexander Shishkin</name>
<email>alexander.shishkin@linux.intel.com</email>
</author>
<published>2015-06-11T12:13:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=55c9e52cf3b056109ab84de8d2a5b4b6e0a4cefa'/>
<id>55c9e52cf3b056109ab84de8d2a5b4b6e0a4cefa</id>
<content type='text'>
commit 6b099d9b040b0f3d0aec05b560d7caf879af5077 upstream.

Currently, the intel_bts driver relies on the DS area allocated by the x86_pmu
code in its event_init() path, which is a bug: creating a BTS event while
no x86_pmu events are present results in a NULL pointer dereference.

The same DS area is also used by PEBS sampling, which makes it quite a bit
trickier to have a separate one for intel_bts' purposes.

This patch makes intel_bts driver use the same DS allocation and reference
counting code as x86_pmu to make sure it is always present when either
intel_bts or x86_pmu need it.

Signed-off-by: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Andy Lutomirski &lt;luto@amacapital.net&gt;
Cc: Borislav Petkov &lt;bp@alien8.de&gt;
Cc: Brian Gerst &lt;brgerst@gmail.com&gt;
Cc: Denys Vlasenko &lt;dvlasenk@redhat.com&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Oleg Nesterov &lt;oleg@redhat.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: acme@infradead.org
Cc: adrian.hunter@intel.com
Link: http://lkml.kernel.org/r/1434024837-9916-2-git-send-email-alexander.shishkin@linux.intel.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 6b099d9b040b0f3d0aec05b560d7caf879af5077 upstream.

Currently, the intel_bts driver relies on the DS area allocated by the x86_pmu
code in its event_init() path, which is a bug: creating a BTS event while
no x86_pmu events are present results in a NULL pointer dereference.

The same DS area is also used by PEBS sampling, which makes it quite a bit
trickier to have a separate one for intel_bts' purposes.

This patch makes intel_bts driver use the same DS allocation and reference
counting code as x86_pmu to make sure it is always present when either
intel_bts or x86_pmu need it.

Signed-off-by: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Andy Lutomirski &lt;luto@amacapital.net&gt;
Cc: Borislav Petkov &lt;bp@alien8.de&gt;
Cc: Brian Gerst &lt;brgerst@gmail.com&gt;
Cc: Denys Vlasenko &lt;dvlasenk@redhat.com&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Oleg Nesterov &lt;oleg@redhat.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: acme@infradead.org
Cc: adrian.hunter@intel.com
Link: http://lkml.kernel.org/r/1434024837-9916-2-git-send-email-alexander.shishkin@linux.intel.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>perf/x86: Add more Broadwell model numbers</title>
<updated>2015-06-29T19:35:28+00:00</updated>
<author>
<name>Andi Kleen</name>
<email>ak@linux.intel.com</email>
</author>
<published>2015-06-11T20:52:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0432ca1ad0d399d40db32c4364143b1d741e18c5'/>
<id>0432ca1ad0d399d40db32c4364143b1d741e18c5</id>
<content type='text'>
commit 4b36f1a4139c9284df74c0f5d7655603d67807df upstream.

This patch adds additional model numbers for Broadwell to perf.
Support for Broadwell with Iris Pro (Intel Core i7-57xxC)
and support for Broadwell Server Xeon.

Signed-off-by: Andi Kleen &lt;ak@linux.intel.com&gt;
Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Andy Lutomirski &lt;luto@amacapital.net&gt;
Cc: Borislav Petkov &lt;bp@alien8.de&gt;
Cc: Brian Gerst &lt;brgerst@gmail.com&gt;
Cc: Denys Vlasenko &lt;dvlasenk@redhat.com&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Oleg Nesterov &lt;oleg@redhat.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Link: http://lkml.kernel.org/r/1434055942-28253-1-git-send-email-andi@firstfloor.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 4b36f1a4139c9284df74c0f5d7655603d67807df upstream.

This patch adds additional model numbers for Broadwell to perf.
Support for Broadwell with Iris Pro (Intel Core i7-57xxC)
and support for Broadwell Server Xeon.

Signed-off-by: Andi Kleen &lt;ak@linux.intel.com&gt;
Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: Andy Lutomirski &lt;luto@amacapital.net&gt;
Cc: Borislav Petkov &lt;bp@alien8.de&gt;
Cc: Brian Gerst &lt;brgerst@gmail.com&gt;
Cc: Denys Vlasenko &lt;dvlasenk@redhat.com&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Oleg Nesterov &lt;oleg@redhat.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Link: http://lkml.kernel.org/r/1434055942-28253-1-git-send-email-andi@firstfloor.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "perf/x86/intel/uncore: Move uncore_box_init() out of driver initialization"</title>
<updated>2015-06-09T09:44:37+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@kernel.org</email>
</author>
<published>2015-06-09T09:40:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=15c1247953e8a45232ed5a5540f291d2d0a77665'/>
<id>15c1247953e8a45232ed5a5540f291d2d0a77665</id>
<content type='text'>
This reverts commit c05199e5a57a579fea1e8fa65e2b511ceb524ffc.

Vince Weaver reported the following crash while perf fuzzing:

[   79.473121] kernel BUG at mm/vmalloc.c:1335!
[   79.694391] Call Trace:
[   79.696997]  &lt;IRQ&gt;
[   79.699090]  [&lt;ffffffff811b2130&gt;] get_vm_area_caller+0x40/0x50
[   79.705505]  [&lt;ffffffff81039f4d&gt;] ? snb_uncore_imc_init_box+0x6d/0x90
[   79.712414]  [&lt;ffffffff810635e5&gt;] __ioremap_caller+0x195/0x350
[   79.718610]  [&lt;ffffffff81039f4d&gt;] ? snb_uncore_imc_init_box+0x6d/0x90
[   79.725462]  [&lt;ffffffff81427f6b&gt;] ? debug_object_activate+0x14b/0x1e0
[   79.732346]  [&lt;ffffffff810637b7&gt;] ioremap_nocache+0x17/0x20
[   79.738283]  [&lt;ffffffff81039f4d&gt;] snb_uncore_imc_init_box+0x6d/0x90
[   79.744945]  [&lt;ffffffff81039cf7&gt;] snb_uncore_imc_event_start+0xb7/0x110
[   79.752020]  [&lt;ffffffff81039d97&gt;] snb_uncore_imc_event_add+0x47/0x60
[   79.758832]  [&lt;ffffffff81162cbb&gt;] event_sched_in.isra.85+0xfb/0x330
[   79.765519]  [&lt;ffffffff81162f5f&gt;] group_sched_in+0x6f/0x1e0
[   79.771481]  [&lt;ffffffff8101df1a&gt;] ? native_sched_clock+0x2a/0x90
[   79.777858]  [&lt;ffffffff811637bc&gt;] __perf_event_enable+0x25c/0x2a0
[   79.784418]  [&lt;ffffffff810f3e69&gt;] ? tick_nohz_irq_exit+0x29/0x30
[   79.790820]  [&lt;ffffffff8115ef30&gt;] ? cpu_clock_event_start+0x40/0x40
[   79.797546]  [&lt;ffffffff8115ef80&gt;] remote_function+0x50/0x60
[   79.803535]  [&lt;ffffffff810f8cd1&gt;] flush_smp_call_function_queue+0x81/0x180
[   79.810840]  [&lt;ffffffff810f9763&gt;] generic_smp_call_function_single_interrupt+0x13/0x60
[   79.819328]  [&lt;ffffffff8104b5e8&gt;] smp_trace_call_function_single_interrupt+0x38/0xc0
[   79.827614]  [&lt;ffffffff816de9be&gt;] trace_call_function_single_interrupt+0x6e/0x80
[   79.835465]  &lt;EOI&gt;
[   79.837543]  [&lt;ffffffff8156e8b5&gt;] ? cpuidle_enter_state+0x65/0x160
[   79.844377]  [&lt;ffffffff8156e8a1&gt;] ? cpuidle_enter_state+0x51/0x160
[   79.851015]  [&lt;ffffffff8156e9e7&gt;] cpuidle_enter+0x17/0x20
[   79.856791]  [&lt;ffffffff810b6e39&gt;] cpu_startup_entry+0x399/0x440
[   79.863165]  [&lt;ffffffff816c9ddb&gt;] rest_init+0xbb/0xd0

The offending commit is clearly confused as it moves heavy initialization
work into IPI context.

Revert it.

Reported-by: Vince Weaver &lt;vincent.weaver@maine.edu&gt;
Acked-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Cc: Kan Liang &lt;kan.liang@intel.com&gt;
Cc: Arnaldo Carvalho de Melo &lt;acme@kernel.org&gt;
Cc: Stephane Eranian &lt;eranian@google.com&gt;
Cc: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit c05199e5a57a579fea1e8fa65e2b511ceb524ffc.

Vince Weaver reported the following crash while perf fuzzing:

[   79.473121] kernel BUG at mm/vmalloc.c:1335!
[   79.694391] Call Trace:
[   79.696997]  &lt;IRQ&gt;
[   79.699090]  [&lt;ffffffff811b2130&gt;] get_vm_area_caller+0x40/0x50
[   79.705505]  [&lt;ffffffff81039f4d&gt;] ? snb_uncore_imc_init_box+0x6d/0x90
[   79.712414]  [&lt;ffffffff810635e5&gt;] __ioremap_caller+0x195/0x350
[   79.718610]  [&lt;ffffffff81039f4d&gt;] ? snb_uncore_imc_init_box+0x6d/0x90
[   79.725462]  [&lt;ffffffff81427f6b&gt;] ? debug_object_activate+0x14b/0x1e0
[   79.732346]  [&lt;ffffffff810637b7&gt;] ioremap_nocache+0x17/0x20
[   79.738283]  [&lt;ffffffff81039f4d&gt;] snb_uncore_imc_init_box+0x6d/0x90
[   79.744945]  [&lt;ffffffff81039cf7&gt;] snb_uncore_imc_event_start+0xb7/0x110
[   79.752020]  [&lt;ffffffff81039d97&gt;] snb_uncore_imc_event_add+0x47/0x60
[   79.758832]  [&lt;ffffffff81162cbb&gt;] event_sched_in.isra.85+0xfb/0x330
[   79.765519]  [&lt;ffffffff81162f5f&gt;] group_sched_in+0x6f/0x1e0
[   79.771481]  [&lt;ffffffff8101df1a&gt;] ? native_sched_clock+0x2a/0x90
[   79.777858]  [&lt;ffffffff811637bc&gt;] __perf_event_enable+0x25c/0x2a0
[   79.784418]  [&lt;ffffffff810f3e69&gt;] ? tick_nohz_irq_exit+0x29/0x30
[   79.790820]  [&lt;ffffffff8115ef30&gt;] ? cpu_clock_event_start+0x40/0x40
[   79.797546]  [&lt;ffffffff8115ef80&gt;] remote_function+0x50/0x60
[   79.803535]  [&lt;ffffffff810f8cd1&gt;] flush_smp_call_function_queue+0x81/0x180
[   79.810840]  [&lt;ffffffff810f9763&gt;] generic_smp_call_function_single_interrupt+0x13/0x60
[   79.819328]  [&lt;ffffffff8104b5e8&gt;] smp_trace_call_function_single_interrupt+0x38/0xc0
[   79.827614]  [&lt;ffffffff816de9be&gt;] trace_call_function_single_interrupt+0x6e/0x80
[   79.835465]  &lt;EOI&gt;
[   79.837543]  [&lt;ffffffff8156e8b5&gt;] ? cpuidle_enter_state+0x65/0x160
[   79.844377]  [&lt;ffffffff8156e8a1&gt;] ? cpuidle_enter_state+0x51/0x160
[   79.851015]  [&lt;ffffffff8156e9e7&gt;] cpuidle_enter+0x17/0x20
[   79.856791]  [&lt;ffffffff810b6e39&gt;] cpu_startup_entry+0x399/0x440
[   79.863165]  [&lt;ffffffff816c9ddb&gt;] rest_init+0xbb/0xd0

The offending commit is clearly confused as it moves heavy initialization
work into IPI context.

Revert it.

Reported-by: Vince Weaver &lt;vincent.weaver@maine.edu&gt;
Acked-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Cc: Kan Liang &lt;kan.liang@intel.com&gt;
Cc: Arnaldo Carvalho de Melo &lt;acme@kernel.org&gt;
Cc: Stephane Eranian &lt;eranian@google.com&gt;
Cc: Yan, Zheng &lt;zheng.z.yan@intel.com&gt;
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>perf/x86/intel/uncore: Fix CBOX bit wide and UBOX reg on Haswell-EP</title>
<updated>2015-06-07T13:46:50+00:00</updated>
<author>
<name>Kan Liang</name>
<email>kan.liang@intel.com</email>
</author>
<published>2015-05-26T13:10:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8cf1a3de97804b047973dd44cfacdc1930da8403'/>
<id>8cf1a3de97804b047973dd44cfacdc1930da8403</id>
<content type='text'>
CBOX counters are increased to 48b on HSX.

Correct the MSR address for HSWEP_U_MSR_PMON_CTR0 and
HSWEP_U_MSR_PMON_CTL0.

See specification in:
http://www.intel.com/content/www/us/en/processors/xeon/
xeon-e5-v3-uncore-performance-monitoring.html

Signed-off-by: Kan Liang &lt;kan.liang@intel.com&gt;
Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Link: http://lkml.kernel.org/r/1432645835-7918-1-git-send-email-kan.liang@intel.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CBOX counters are increased to 48b on HSX.

Correct the MSR address for HSWEP_U_MSR_PMON_CTR0 and
HSWEP_U_MSR_PMON_CTL0.

See specification in:
http://www.intel.com/content/www/us/en/processors/xeon/
xeon-e5-v3-uncore-performance-monitoring.html

Signed-off-by: Kan Liang &lt;kan.liang@intel.com&gt;
Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Link: http://lkml.kernel.org/r/1432645835-7918-1-git-send-email-kan.liang@intel.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip</title>
<updated>2015-06-05T17:00:53+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2015-06-05T17:00:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a0e9c6efa585897f00eb22e67887e5a25482b1b8'/>
<id>a0e9c6efa585897f00eb22e67887e5a25482b1b8</id>
<content type='text'>
Pull perf fixes from Ingo Molnar:
 "The biggest chunk of the changes are two regression fixes: a HT
  workaround fix and an event-group scheduling fix.  It's been verified
  with 5 days of fuzzer testing.

  Other fixes:

   - eBPF fix
   - a BIOS breakage detection fix
   - PMU driver fixes"

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf/x86/intel/pt: Fix a refactoring bug
  perf/x86: Tweak broken BIOS rules during check_hw_exists()
  perf/x86/intel/pt: Untangle pt_buffer_reset_markers()
  perf: Disallow sparse AUX allocations for non-SG PMUs in overwrite mode
  perf/x86: Improve HT workaround GP counter constraint
  perf/x86: Fix event/group validation
  perf: Fix race in BPF program unregister
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull perf fixes from Ingo Molnar:
 "The biggest chunk of the changes are two regression fixes: a HT
  workaround fix and an event-group scheduling fix.  It's been verified
  with 5 days of fuzzer testing.

  Other fixes:

   - eBPF fix
   - a BIOS breakage detection fix
   - PMU driver fixes"

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf/x86/intel/pt: Fix a refactoring bug
  perf/x86: Tweak broken BIOS rules during check_hw_exists()
  perf/x86/intel/pt: Untangle pt_buffer_reset_markers()
  perf: Disallow sparse AUX allocations for non-SG PMUs in overwrite mode
  perf/x86: Improve HT workaround GP counter constraint
  perf/x86: Fix event/group validation
  perf: Fix race in BPF program unregister
</pre>
</div>
</content>
</entry>
<entry>
<title>perf/x86/intel/pt: Fix a refactoring bug</title>
<updated>2015-06-04T14:07:51+00:00</updated>
<author>
<name>Alexander Shishkin</name>
<email>alexander.shishkin@linux.intel.com</email>
</author>
<published>2015-06-04T13:31:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b44a2b53becf2485f484bd6bb6c1d963ebc339f8'/>
<id>b44a2b53becf2485f484bd6bb6c1d963ebc339f8</id>
<content type='text'>
Commit 066450be41 ("perf/x86/intel/pt: Clean up the control flow
in pt_pmu_hw_init()") changed attribute initialization so that
only the first attribute gets initialized using
sysfs_attr_init(), which upsets lockdep.

This patch fixes the glitch so that all allocated attributes are
properly initialized thus fixing the lockdep warning reported by
Tvrtko and Imre.

Reported-by: Tvrtko Ursulin &lt;tvrtko.ursulin@linux.intel.com&gt;
Reported-by: Imre Deak &lt;imre.deak@intel.com&gt;
Signed-off-by: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
Cc: &lt;linux-kernel@vger.kernel.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit 066450be41 ("perf/x86/intel/pt: Clean up the control flow
in pt_pmu_hw_init()") changed attribute initialization so that
only the first attribute gets initialized using
sysfs_attr_init(), which upsets lockdep.

This patch fixes the glitch so that all allocated attributes are
properly initialized thus fixing the lockdep warning reported by
Tvrtko and Imre.

Reported-by: Tvrtko Ursulin &lt;tvrtko.ursulin@linux.intel.com&gt;
Reported-by: Imre Deak &lt;imre.deak@intel.com&gt;
Signed-off-by: Alexander Shishkin &lt;alexander.shishkin@linux.intel.com&gt;
Cc: &lt;linux-kernel@vger.kernel.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
