Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
35d266a2
Commit
35d266a2
authored
Jan 23, 2009
by
Ingo Molnar
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'tj-percpu' of
git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc
into core/percpu
parents
03b48632
2de3a5f7
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
48 additions
and
77 deletions
+48
-77
arch/x86/include/asm/hardirq.h
arch/x86/include/asm/hardirq.h
+45
-4
arch/x86/include/asm/hardirq_32.h
arch/x86/include/asm/hardirq_32.h
+0
-33
arch/x86/include/asm/hardirq_64.h
arch/x86/include/asm/hardirq_64.h
+0
-39
arch/x86/kernel/cpu/mcheck/mce_intel_64.c
arch/x86/kernel/cpu/mcheck/mce_intel_64.c
+1
-0
arch/x86/kernel/efi_64.c
arch/x86/kernel/efi_64.c
+1
-0
arch/x86/kernel/irq_64.c
arch/x86/kernel/irq_64.c
+1
-0
arch/x86/kernel/process_32.c
arch/x86/kernel/process_32.c
+0
-1
No files found.
arch/x86/include/asm/hardirq.h
View file @
35d266a2
#ifdef CONFIG_X86_32
# include "hardirq_32.h"
#else
# include "hardirq_64.h"
#ifndef _ASM_X86_HARDIRQ_H
#define _ASM_X86_HARDIRQ_H
#include <linux/threads.h>
#include <linux/irq.h>
typedef
struct
{
unsigned
int
__softirq_pending
;
unsigned
int
__nmi_count
;
/* arch dependent */
unsigned
int
irq0_irqs
;
#ifdef CONFIG_X86_LOCAL_APIC
unsigned
int
apic_timer_irqs
;
/* arch dependent */
unsigned
int
irq_spurious_count
;
#endif
#ifdef CONFIG_SMP
unsigned
int
irq_resched_count
;
unsigned
int
irq_call_count
;
unsigned
int
irq_tlb_count
;
#endif
#ifdef CONFIG_X86_MCE
unsigned
int
irq_thermal_count
;
# ifdef CONFIG_X86_64
unsigned
int
irq_threshold_count
;
# endif
#endif
}
____cacheline_aligned
irq_cpustat_t
;
DECLARE_PER_CPU
(
irq_cpustat_t
,
irq_stat
);
/* We can have at most NR_VECTORS irqs routed to a cpu at a time */
#define MAX_HARDIRQS_PER_CPU NR_VECTORS
#define __ARCH_IRQ_STAT
#define inc_irq_stat(member) percpu_add(irq_stat.member, 1)
#define local_softirq_pending() percpu_read(irq_stat.__softirq_pending)
#define __ARCH_SET_SOFTIRQ_PENDING
#define set_softirq_pending(x) percpu_write(irq_stat.__softirq_pending, (x))
#define or_softirq_pending(x) percpu_or(irq_stat.__softirq_pending, (x))
extern
void
ack_bad_irq
(
unsigned
int
irq
);
extern
u64
arch_irq_stat_cpu
(
unsigned
int
cpu
);
#define arch_irq_stat_cpu arch_irq_stat_cpu
extern
u64
arch_irq_stat
(
void
);
#define arch_irq_stat arch_irq_stat
#endif
/* _ASM_X86_HARDIRQ_H */
arch/x86/include/asm/hardirq_32.h
deleted
100644 → 0
View file @
03b48632
#ifndef _ASM_X86_HARDIRQ_32_H
#define _ASM_X86_HARDIRQ_32_H
#include <linux/threads.h>
#include <linux/irq.h>
typedef
struct
{
unsigned
int
__softirq_pending
;
unsigned
long
idle_timestamp
;
unsigned
int
__nmi_count
;
/* arch dependent */
unsigned
int
apic_timer_irqs
;
/* arch dependent */
unsigned
int
irq0_irqs
;
unsigned
int
irq_resched_count
;
unsigned
int
irq_call_count
;
unsigned
int
irq_tlb_count
;
unsigned
int
irq_thermal_count
;
unsigned
int
irq_spurious_count
;
}
____cacheline_aligned
irq_cpustat_t
;
DECLARE_PER_CPU
(
irq_cpustat_t
,
irq_stat
);
/* We can have at most NR_VECTORS irqs routed to a cpu at a time */
#define MAX_HARDIRQS_PER_CPU NR_VECTORS
#define __ARCH_IRQ_STAT
#define __IRQ_STAT(cpu, member) (per_cpu(irq_stat, cpu).member)
#define inc_irq_stat(member) (__get_cpu_var(irq_stat).member++)
void
ack_bad_irq
(
unsigned
int
irq
);
#include <linux/irq_cpustat.h>
#endif
/* _ASM_X86_HARDIRQ_32_H */
arch/x86/include/asm/hardirq_64.h
deleted
100644 → 0
View file @
03b48632
#ifndef _ASM_X86_HARDIRQ_64_H
#define _ASM_X86_HARDIRQ_64_H
#include <linux/threads.h>
#include <linux/irq.h>
#include <asm/apic.h>
typedef
struct
{
unsigned
int
__softirq_pending
;
unsigned
int
__nmi_count
;
/* arch dependent */
unsigned
int
apic_timer_irqs
;
/* arch dependent */
unsigned
int
irq0_irqs
;
unsigned
int
irq_resched_count
;
unsigned
int
irq_call_count
;
unsigned
int
irq_tlb_count
;
unsigned
int
irq_thermal_count
;
unsigned
int
irq_spurious_count
;
unsigned
int
irq_threshold_count
;
}
____cacheline_aligned
irq_cpustat_t
;
DECLARE_PER_CPU
(
irq_cpustat_t
,
irq_stat
);
/* We can have at most NR_VECTORS irqs routed to a cpu at a time */
#define MAX_HARDIRQS_PER_CPU NR_VECTORS
#define __ARCH_IRQ_STAT 1
#define inc_irq_stat(member) percpu_add(irq_stat.member, 1)
#define local_softirq_pending() percpu_read(irq_stat.__softirq_pending)
#define __ARCH_SET_SOFTIRQ_PENDING 1
#define set_softirq_pending(x) percpu_write(irq_stat.__softirq_pending, (x))
#define or_softirq_pending(x) percpu_or(irq_stat.__softirq_pending, (x))
extern
void
ack_bad_irq
(
unsigned
int
irq
);
#endif
/* _ASM_X86_HARDIRQ_64_H */
arch/x86/kernel/cpu/mcheck/mce_intel_64.c
View file @
35d266a2
...
...
@@ -7,6 +7,7 @@
#include <linux/interrupt.h>
#include <linux/percpu.h>
#include <asm/processor.h>
#include <asm/apic.h>
#include <asm/msr.h>
#include <asm/mce.h>
#include <asm/hw_irq.h>
...
...
arch/x86/kernel/efi_64.c
View file @
35d266a2
...
...
@@ -36,6 +36,7 @@
#include <asm/proto.h>
#include <asm/efi.h>
#include <asm/cacheflush.h>
#include <asm/fixmap.h>
static
pgd_t
save_pgd
__initdata
;
static
unsigned
long
efi_flags
__initdata
;
...
...
arch/x86/kernel/irq_64.c
View file @
35d266a2
...
...
@@ -18,6 +18,7 @@
#include <linux/smp.h>
#include <asm/io_apic.h>
#include <asm/idle.h>
#include <asm/apic.h>
DEFINE_PER_CPU_SHARED_ALIGNED
(
irq_cpustat_t
,
irq_stat
);
EXPORT_PER_CPU_SYMBOL
(
irq_stat
);
...
...
arch/x86/kernel/process_32.c
View file @
35d266a2
...
...
@@ -108,7 +108,6 @@ void cpu_idle(void)
play_dead
();
local_irq_disable
();
__get_cpu_var
(
irq_stat
).
idle_timestamp
=
jiffies
;
/* Don't trace irqs off for idle */
stop_critical_timings
();
pm_idle
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment