----- "Avi Kivity" <avi@xxxxxxxxxx> wrote: > On 08/25/2010 03:27 PM, Jason Wang wrote: > > ----- "Avi Kivity"<avi@xxxxxxxxxx> wrote: > > > >> On 08/25/2010 12:40 PM, Jason Wang wrote: > >>> ----- "Avi Kivity"<avi@xxxxxxxxxx> wrote: > >>> > >>>> On 08/24/2010 04:47 PM, Jason Wang wrote: > >>>>> TSS size should be 104 byte. > >>>>> > >>>>> Signed-off-by: Jason Wang<jasowang@xxxxxxxxxx> > >>>>> --- > >>>>> x86/cstart64.S | 2 +- > >>>>> 1 files changed, 1 insertions(+), 1 deletions(-) > >>>>> > >>>>> diff --git a/x86/cstart64.S b/x86/cstart64.S > >>>>> index 5d358ad..b871153 100644 > >>>>> --- a/x86/cstart64.S > >>>>> +++ b/x86/cstart64.S > >>>>> @@ -69,7 +69,7 @@ tss: > >>>>> .long 0 > >>>>> .quad ring0stacktop - i * 4096 > >>>> ring 0 stack > >>>> > >>>>> .quad 0, 0, 0 > >>>> rings 1, 2, 3 stack > >>> Hello avi: > >>> > >>> Rechek with the manual, there's no filed of RSP3. So this patch > may > >>> make sense. > >> That is true. But please redo it to remove one 0 from the line > above, > >> > >> not from the IST. > >> > >>> But unfortunately it breaks 64bit vmexit test. Triple > >>> fault happens in setup_args(). Any suggestions or is there any > thing > >> I > >>> missed? > >> No idea. Can you post an ftrace of the crash? > >> > > The trace before triple fault: > > > > ...... > > qemu-kvm-8101 [002] 243.138507: kvm_entry: vcpu 0 > > qemu-kvm-8101 [002] 243.138508: kvm_exit: reason > IO_INSTRUCTION rip 0x400e5f > > qemu-kvm-8101 [002] 243.138508: kvm_pio: pio_read at > 0x510 size 2 count 1 > > qemu-kvm-8101 [002] 243.138512: kvm_entry: vcpu 0 > > qemu-kvm-8101 [002] 243.138513: kvm_exit: reason > IO_INSTRUCTION rip 0x400e71 > > qemu-kvm-8101 [002] 243.138514: kvm_emulate_insn: > 0:400e71: ec (prot64) > > qemu-kvm-8101 [002] 243.138515: kvm_pio: pio_write at > 0x511 size 1 count 1 > > qemu-kvm-8101 [002] 243.138519: kvm_entry: vcpu 0 > > qemu-kvm-8101 [002] 243.138520: kvm_exit: reason > IO_INSTRUCTION rip 0x400e71 > > qemu-kvm-8101 [002] 243.138521: kvm_emulate_insn: > 0:400e71: ec (prot64) > > qemu-kvm-8101 [002] 243.138521: kvm_pio: pio_write at > 0x511 size 1 count 1 > > qemu-kvm-8101 [002] 243.138525: kvm_entry: vcpu 0 > > qemu-kvm-8101 [002] 243.138526: kvm_exit: reason CPUID > rip 0x400ff7 > > qemu-kvm-8101 [002] 243.138526: kvm_cpuid: func 1 rax > 6d3 rbx 800 rcx 80002001 rdx 78bfbfd > > qemu-kvm-8101 [002] 243.138527: kvm_entry: vcpu 0 > > qemu-kvm-8101 [002] 243.138528: kvm_exit: reason > EXCEPTION_NMI rip 0x400271 > > qemu-kvm-8101 [002] 243.138528: kvm_page_fault: address > 40f3a0 error_code b > > qemu-kvm-8101 [002] 243.138530: kvm_entry: vcpu 0 > > qemu-kvm-8101 [002] 243.138531: kvm_exit: reason > TRIPLE_FAULT rip 0x400c15 > > > > What's the corresponding disassembly? 0000000000400bb8 <__setup_args>: 400bb8: 41 55 push %r13 400bba: 41 54 push %r12 400bbc: 55 push %rbp 400bbd: 53 push %rbx 400bbe: 48 8b 1d db e7 00 00 mov 0xe7db(%rip),%rbx # 40f3a0 <__args> 400bc5: 41 bc 80 ec 40 00 mov $0x40ec80,%r12d 400bcb: 41 bd 80 f0 40 00 mov $0x40f080,%r13d 400bd1: eb 42 jmp 400c15 <__setup_args+0x5d> 400bd3: 4d 89 65 00 mov %r12,0x0(%r13) 400bd7: 0f b6 28 movzbl (%rax),%ebp 400bda: 40 84 ed test %bpl,%bpl 400bdd: 75 16 jne 400bf5 <__setup_args+0x3d> 400bdf: eb 21 jmp 400c02 <__setup_args+0x4a> 400be1: 41 88 2c 24 mov %bpl,(%r12) 400be5: 49 83 c4 01 add $0x1,%r12 400bed: 0f b6 2b movzbl (%rbx),%ebp 400bf0: 40 84 ed test %bpl,%bpl 400bf3: 74 0d je 400c02 <__setup_args+0x4a> 400bf5: 40 0f be fd movsbl %bpl,%edi 400bf9: e8 a6 ff ff ff callq 400ba4 <isblank> 400bfe: 84 c0 test %al,%al 400c00: 74 df je 400be1 <__setup_args+0x29> 400c02: 49 83 c5 08 add $0x8,%r13 400c06: 41 c6 04 24 00 movb $0x0,(%r12) 400c0b: 49 83 c4 01 add $0x1,%r12 400c0f: eb 04 jmp 400c15 <__setup_args+0x5d> 400c11: 48 83 c3 01 add $0x1,%rbx >>400c15: 0f b6 2b movzbl (%rbx),%ebp 400c18: 40 0f be fd movsbl %bpl,%edi 400c1c: e8 83 ff ff ff callq 400ba4 <isblank> .... > > -- > I have a truly marvellous patch that fixes the bug which this > signature is too narrow to contain. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html