diff options
-rw-r--r-- | i386/i386/gdt.c | 2 | ||||
-rw-r--r-- | i386/i386/trap.c | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/i386/i386/gdt.c b/i386/i386/gdt.c index 68f5764..f26a50c 100644 --- a/i386/i386/gdt.c +++ b/i386/i386/gdt.c @@ -71,8 +71,10 @@ gdt_init() panic("couldn't set gdt\n"); if (hyp_vm_assist(VMASST_CMD_enable, VMASST_TYPE_4gb_segments)) panic("couldn't set 4gb segments vm assist"); +#if 0 if (hyp_vm_assist(VMASST_CMD_enable, VMASST_TYPE_4gb_segments_notify)) panic("couldn't set 4gb segments vm assist notify"); +#endif #else /* MACH_XEN */ /* Load the new GDT. */ { diff --git a/i386/i386/trap.c b/i386/i386/trap.c index a0cebcb..a2e77da 100644 --- a/i386/i386/trap.c +++ b/i386/i386/trap.c @@ -530,9 +530,11 @@ printf("user trap %d error %d sub %08x\n", type, code, subcode); case 15: { static unsigned count = 0; - if (!count) { - count = 1; - printf("4gb segment access, probably from TLS use, please use a Xenified libc package (i.e. with the nosegneg option)\n"); + count++; + if (!(count % 10000)) + print("%d 4gb segments accesses\n", count); + if (count > 1000000) { + printf("A million 4gb segment accesses, stopping reporting them."); if (hyp_vm_assist(VMASST_CMD_disable, VMASST_TYPE_4gb_segments_notify)) panic("couldn't disable 4gb segments vm assist notify"); } |