diff options
| -rw-r--r-- | arch/x86/kernel/uintr_core.c | 7 | ||||
| -rw-r--r-- | arch/x86/kernel/uintr_fd.c | 2 | ||||
| -rw-r--r-- | tools/testing/selftests/uintr/Makefile | 2 |
3 files changed, 8 insertions, 3 deletions
diff --git a/arch/x86/kernel/uintr_core.c b/arch/x86/kernel/uintr_core.c index 4e5545e6d903..dca8819ac3fd 100644 --- a/arch/x86/kernel/uintr_core.c +++ b/arch/x86/kernel/uintr_core.c @@ -673,11 +673,13 @@ int do_uintr_register_handler(u64 handler) xsave = &fpu->state.xsave; xsave->header.xfeatures |= XFEATURE_MASK_UINTR; p = get_xsave_addr(&fpu->state.xsave, XFEATURE_UINTR); + printk("----uintr xsave addr is %px\n",p); if (p) { p->handler = handler; p->upid_addr = (u64)ui_recv->upid_ctx->upid; p->stack_adjust = 128; p->uinv = UINTR_NOTIFICATION_VECTOR; + printk("the xsave addr is %p\n handler: 0x%llx | upid_addr: 0x%llx | uif: %d\n", p, handler,p->upid_addr,p->uif_pad3); // 改 } } @@ -806,8 +808,11 @@ void switch_uintr_return(void) * carefully manage the race with the hardware if the UPID gets * updated after the read. */ - if (READ_ONCE(upid->puir)) + + if (READ_ONCE(upid->puir)){ + printk("sending self ipi\n"); apic->send_IPI_self(UINTR_NOTIFICATION_VECTOR); + } } } diff --git a/arch/x86/kernel/uintr_fd.c b/arch/x86/kernel/uintr_fd.c index 06d7f4f84119..891c4568d60b 100644 --- a/arch/x86/kernel/uintr_fd.c +++ b/arch/x86/kernel/uintr_fd.c @@ -12,7 +12,7 @@ #include <linux/syscalls.h> #include <asm/uintr.h> -static bool Debug = true; +static bool Debug = false; struct uintrfd_ctx { struct uintr_receiver_info *r_info; diff --git a/tools/testing/selftests/uintr/Makefile b/tools/testing/selftests/uintr/Makefile index f8bcb1476f1c..490f2612f417 100644 --- a/tools/testing/selftests/uintr/Makefile +++ b/tools/testing/selftests/uintr/Makefile @@ -3,7 +3,7 @@ CAN_BUILD_UINTR := $(shell ./../x86/check_cc.sh $(CC) ../x86/trivial_64bit_program.c -muintr) ifeq ($(CAN_BUILD_UINTR),1) -CFLAGS += -g -muintr -mgeneral-regs-only +CFLAGS += -g -muintr -mgeneral-regs-only -static LDLIBS += -lpthread TEST_GEN_PROGS = ipc_base \ |
