From 202bfd9955d635116a9a0f399162795aed9129de Mon Sep 17 00:00:00 2001 From: Ken Sato Date: Thu, 8 Dec 2016 17:28:53 +0900 Subject: [PATCH] IHK-API: expand and fix for ver 1.2. --- kernel/include/init.h | 2 +- kernel/init.c | 9 +++++---- kernel/mikc.c | 2 +- lib/include/ihk/cpu.h | 4 ++++ lib/include/ihk/mm.h | 3 +++ 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/kernel/include/init.h b/kernel/include/init.h index f445c554..f0b84cf2 100644 --- a/kernel/include/init.h +++ b/kernel/include/init.h @@ -16,7 +16,7 @@ extern void arch_init(void); extern void kmsg_init(int); extern void mem_init(void); -extern void ikc_master_init(void); +extern void ihk_ikc_master_init(void); extern void ap_init(void); extern void arch_ready(void); extern void mc_ikc_test_init(void); diff --git a/kernel/init.c b/kernel/init.c index 7a533854..2955df82 100644 --- a/kernel/init.c +++ b/kernel/init.c @@ -108,11 +108,11 @@ static void dma_test(void) } #endif -extern char *ihk_mc_get_kernel_args(void); +extern char *ihk_get_kargs(void); char *find_command_line(char *name) { - char *cmdline = ihk_mc_get_kernel_args(); + char *cmdline = ihk_get_kargs(); if (!cmdline) { return NULL; @@ -122,7 +122,7 @@ char *find_command_line(char *name) static void parse_kargs(void) { - kprintf("KCommand Line: %s\n", ihk_mc_get_kernel_args()); + kprintf("KCommand Line: %s\n", ihk_get_kargs()); if (1) { char *key = "osnum="; @@ -254,7 +254,7 @@ static void rest_init(void) time_init(); kmalloc_init(); - ikc_master_init(); + ihk_ikc_master_init(); proc_init(); @@ -373,6 +373,7 @@ int main(void) kputs("IHK/McKernel started.\n"); + ihk_set_kmsg(virt_to_phys(&kmsg_buf), IHK_KMSG_SIZE); arch_init(); /* diff --git a/kernel/mikc.c b/kernel/mikc.c index 48c0bd98..5c9612b9 100644 --- a/kernel/mikc.c +++ b/kernel/mikc.c @@ -21,7 +21,7 @@ static struct ihk_ikc_channel_desc *mchannel; static int arch_master_channel_packet_handler(struct ihk_ikc_channel_desc *, void *__packet, void *arg); -void ikc_master_init(void) +void ihk_ikc_master_init(void) { mchannel = kmalloc(sizeof(struct ihk_ikc_channel_desc) + sizeof(struct ihk_ikc_master_packet), diff --git a/lib/include/ihk/cpu.h b/lib/include/ihk/cpu.h index d0f890ae..67ba79f8 100644 --- a/lib/include/ihk/cpu.h +++ b/lib/include/ihk/cpu.h @@ -49,6 +49,7 @@ struct ihk_mc_cpu_info { int ncpus; int *hw_ids; int *nodes; + int *linux_cpu_ids; }; struct ihk_mc_cpu_info *ihk_mc_get_cpu_info(void); @@ -56,6 +57,9 @@ void ihk_mc_boot_cpu(int cpuid, unsigned long pc); int ihk_mc_get_processor_id(void); int ihk_mc_get_hardware_processor_id(void); int ihk_mc_get_numa_id(void); +int ihk_mc_get_nr_cores(); +int ihk_mc_get_core(int id, unsigned long *linux_core_id, unsigned long *apic_id, + int *numa_id); void ihk_mc_delay_us(int us); void ihk_mc_set_syscall_handler(long (*handler)(int, ihk_mc_user_context_t *)); diff --git a/lib/include/ihk/mm.h b/lib/include/ihk/mm.h index 9ceee283..58df8c2d 100644 --- a/lib/include/ihk/mm.h +++ b/lib/include/ihk/mm.h @@ -185,6 +185,9 @@ int ihk_mc_get_memory_chunk(int id, void remote_flush_tlb_cpumask(struct process_vm *vm, unsigned long addr, int cpu_id); +int ihk_set_kmsg(unsigned long addr, unsigned long size); +char *ihk_get_kargs(); + extern void (*__tlb_flush_handler)(int vector); struct tlb_flush_entry {