diff --git a/arch/arm64/kernel/include/syscall_list.h b/arch/arm64/kernel/include/syscall_list.h
index 5dd6243..0f172a3 100644
--- a/arch/arm64/kernel/include/syscall_list.h
+++ b/arch/arm64/kernel/include/syscall_list.h
@@ -128,6 +128,8 @@ SYSCALL_HANDLED(731, util_indicate_clone)
 SYSCALL_HANDLED(732, get_system)
 SYSCALL_HANDLED(733, util_register_desc)
 
+SYSCALL_HANDLED(750, int_and_sleep)
+
 /* McKernel Specific */
 SYSCALL_HANDLED(801, swapout)
 SYSCALL_HANDLED(802, linux_mlock)
diff --git a/arch/x86_64/kernel/include/syscall_list.h b/arch/x86_64/kernel/include/syscall_list.h
index 8ef9bd0..2134212 100644
--- a/arch/x86_64/kernel/include/syscall_list.h
+++ b/arch/x86_64/kernel/include/syscall_list.h
@@ -170,6 +170,8 @@ SYSCALL_HANDLED(731, util_indicate_clone)
 SYSCALL_HANDLED(732, get_system)
 SYSCALL_HANDLED(733, util_register_desc)
 
+SYSCALL_HANDLED(750, int_and_sleep)
+
 /* McKernel Specific */
 SYSCALL_HANDLED(801, swapout)
 SYSCALL_HANDLED(802, linux_mlock)
diff --git a/kernel/syscall.c b/kernel/syscall.c
index 97935a7..a603791 100644
--- a/kernel/syscall.c
+++ b/kernel/syscall.c
@@ -9429,6 +9429,43 @@ SYSCALL_DECLARE(util_register_desc)
 	return 0;
 }
 
+volatile long wk;
+volatile long x;
+volatile long y;
+volatile long z;
+
+static void int_func(void *arg)
+{
+	long i;
+
+	kprintf("int_func start\n");
+	for (i = 0; i < 100000000L; i++)
+		wk += x * y + z;
+	kprintf("int_func end\n");
+}
+
+SYSCALL_DECLARE(int_and_sleep)
+{
+	struct ihk_mc_interrupt_handler *int_handler;
+	long flag;
+
+	int_handler = kmalloc(sizeof(struct ihk_mc_interrupt_handler), IHK_MC_AP_NOWAIT);
+	memset(int_handler, '\0', sizeof(struct ihk_mc_interrupt_handler));
+	INIT_LIST_HEAD(&int_handler->list);
+	int_handler->func = int_func;
+	int_handler->priv = NULL;
+	kprintf("ihk_mc_register_interrupt_handler\n");
+	ihk_mc_register_interrupt_handler(140, int_handler);
+	kprintf("ihk_mc_interrupt_cpu\n");
+	flag = cpu_disable_interrupt_save();
+	ihk_mc_interrupt_cpu(ihk_mc_get_processor_id(), 140);
+	cpu_restore_interrupt(flag);
+	kprintf("ihk_mc_unregister_interrupt_handler\n");
+	ihk_mc_unregister_interrupt_handler(140, int_handler);
+	kfree(int_handler);
+	return 0;
+}
+
 void
 reset_cputime()
 {
