|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86/APIC: reduce self-IPI related code
commit 7d203b337fb2dcd148d2df850e25b67c792d4d0b
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Fri Sep 12 13:48:37 2014 +0200
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Fri Sep 12 13:48:37 2014 +0200
x86/APIC: reduce self-IPI related code
send_IPI_self_{phys,flat}() were identical and send_IPI_self_x2apic()
was misplaced and pointlessly (implictly) had a non-x2APIC code path.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
xen/arch/x86/genapic/x2apic.c | 5 +++++
xen/arch/x86/smp.c | 12 +-----------
xen/include/asm-x86/genapic.h | 11 ++++-------
3 files changed, 10 insertions(+), 18 deletions(-)
diff --git a/xen/arch/x86/genapic/x2apic.c b/xen/arch/x86/genapic/x2apic.c
index b2cab03..9a3cfd9 100644
--- a/xen/arch/x86/genapic/x2apic.c
+++ b/xen/arch/x86/genapic/x2apic.c
@@ -92,6 +92,11 @@ static unsigned int cpu_mask_to_apicid_x2apic_cluster(const
cpumask_t *cpumask)
return dest;
}
+static void send_IPI_self_x2apic(uint8_t vector)
+{
+ apic_wrmsr(APIC_SELF_IPI, vector);
+}
+
static void send_IPI_mask_x2apic_phys(const cpumask_t *cpumask, int vector)
{
unsigned int cpu;
diff --git a/xen/arch/x86/smp.c b/xen/arch/x86/smp.c
index 0433f30..06a833e 100644
--- a/xen/arch/x86/smp.c
+++ b/xen/arch/x86/smp.c
@@ -124,21 +124,11 @@ static void __default_send_IPI_shortcut(unsigned int
shortcut, int vector,
apic_write_around(APIC_ICR, cfg);
}
-void send_IPI_self_flat(int vector)
+void send_IPI_self_legacy(uint8_t vector)
{
__default_send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL);
}
-void send_IPI_self_phys(int vector)
-{
- __default_send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL);
-}
-
-void send_IPI_self_x2apic(int vector)
-{
- apic_write(APIC_SELF_IPI, vector);
-}
-
void send_IPI_mask_flat(const cpumask_t *cpumask, int vector)
{
unsigned long mask = cpumask_bits(cpumask)[0];
diff --git a/xen/include/asm-x86/genapic.h b/xen/include/asm-x86/genapic.h
index ad2a4fb..5496ab0 100644
--- a/xen/include/asm-x86/genapic.h
+++ b/xen/include/asm-x86/genapic.h
@@ -37,7 +37,7 @@ struct genapic {
const cpumask_t *(*vector_allocation_cpumask)(int cpu);
unsigned int (*cpu_mask_to_apicid)(const cpumask_t *cpumask);
void (*send_IPI_mask)(const cpumask_t *mask, int vector);
- void (*send_IPI_self)(int vector);
+ void (*send_IPI_self)(uint8_t vector);
};
#define APICFUNC(x) .x = x
@@ -52,12 +52,12 @@ extern const struct genapic *genapic;
extern const struct genapic apic_default;
const cpumask_t *target_cpus_all(void);
+void send_IPI_self_legacy(uint8_t vector);
void init_apic_ldr_flat(void);
void clustered_apic_check_flat(void);
unsigned int cpu_mask_to_apicid_flat(const cpumask_t *cpumask);
void send_IPI_mask_flat(const cpumask_t *mask, int vector);
-void send_IPI_self_flat(int vector);
const cpumask_t *vector_allocation_cpumask_flat(int cpu);
#define GENAPIC_FLAT \
.int_delivery_mode = dest_LowestPrio, \
@@ -68,13 +68,12 @@ const cpumask_t *vector_allocation_cpumask_flat(int cpu);
.vector_allocation_cpumask = vector_allocation_cpumask_flat, \
.cpu_mask_to_apicid = cpu_mask_to_apicid_flat, \
.send_IPI_mask = send_IPI_mask_flat, \
- .send_IPI_self = send_IPI_self_flat
+ .send_IPI_self = send_IPI_self_legacy
void init_apic_ldr_phys(void);
void clustered_apic_check_phys(void);
unsigned int cpu_mask_to_apicid_phys(const cpumask_t *cpumask);
void send_IPI_mask_phys(const cpumask_t *mask, int vector);
-void send_IPI_self_phys(int vector);
const cpumask_t *vector_allocation_cpumask_phys(int cpu);
#define GENAPIC_PHYS \
.int_delivery_mode = dest_Fixed, \
@@ -85,8 +84,6 @@ const cpumask_t *vector_allocation_cpumask_phys(int cpu);
.vector_allocation_cpumask = vector_allocation_cpumask_phys, \
.cpu_mask_to_apicid = cpu_mask_to_apicid_phys, \
.send_IPI_mask = send_IPI_mask_phys, \
- .send_IPI_self = send_IPI_self_phys
-
-void send_IPI_self_x2apic(int vector);
+ .send_IPI_self = send_IPI_self_legacy
#endif
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |