Oh, also segment limits weren't being computed correctly in the installSegDesc function, although I don't think that was from the KVM stuff. Once it was fixed it required adjusting the KVM stuff a little, though.
Gabe On Tue, Dec 9, 2014 at 4:29 PM, Gabe Black <gabebl...@google.com> wrote: > Here is my patch so far. There were a few things wrong, although I didn't > really keep notes. The limits were mixed up, the long mode bit was set on > all descriptors when it's only valid for the code segment, privilege level > 0 is the OS and 3 is for applications and not the other way around, and I > think the type was being set wrong for one of the segments. Also, the > syscall and sysenter registers (star and friends) require the segments in > the GDT to be in a particular order which I don't think they were. > > Gabe > > On Tue, Dec 9, 2014 at 4:22 PM, Dutu, Alexandru via gem5-dev < > gem5-dev@gem5.org> wrote: > >> So, I am doing this on an AMD system and I have SE working and am able to >> get FS entering into virtualized mode. However, in FS I get an early >> exception while the kernel is booting. This seems a bit different from what >> Nilay and Adrian observed for FS. Could you please share the diffs that got >> FS working? >> >> Thanks, >> Alex >> >> -----Original Message----- >> From: gem5-dev [mailto:gem5-dev-boun...@gem5.org] On Behalf Of Gabe >> Black via gem5-dev >> Sent: Tuesday, December 09, 2014 6:07 PM >> To: gem5 Developer List >> Subject: Re: [gem5-dev] x86 SE kvm functionality (AMD vs Intel) >> >> Oh, I see you have FS working again and not SE. NM, I'll keep looking. >> >> Gabe >> >> On Tue, Dec 9, 2014 at 4:04 PM, Gabe Black <gabebl...@google.com> wrote: >> >> > I have FS working again which is good, but I'm still having problems >> > with SE. If you could let me know what you did to get things going >> > that would be very helpful. >> > >> > Gabe >> > >> > On Tue, Dec 9, 2014 at 10:06 AM, Dutu, Alexandru via gem5-dev < >> > gem5-dev@gem5.org> wrote: >> > >> >> Hi Adrian, >> >> >> >> Sorry for missing your first email. I do see the interchanged segment >> >> limits for full system mode, though I get a different behaviour on my >> >> system. The simulation seems to hang in the following manner: >> >> >> >> Processor #0 (Bootup-CPU) >> >> I/O APIC #1 at 0xFEC00000. >> >> Setting APIC routing to flat >> >> Processors: 1 >> >> PANIC: early exception rip ffffffff807909a9 error 9 cr2 >> >> ffffffffff5fd020 >> >> >> >> Can please provide a patch with all the modifications that fixed the >> >> issue on your system? >> >> >> >> Thank you, >> >> Alex >> >> ________________________________________ >> >> From: gem5-dev [gem5-dev-boun...@gem5.org] on behalf of Adrián Colaso >> >> Diego via gem5-dev [gem5-dev@gem5.org] >> >> Sent: Tuesday, December 09, 2014 2:09 AM >> >> To: gem5 Developer List >> >> Subject: Re: [gem5-dev] x86 SE kvm functionality (AMD vs Intel) >> >> >> >> You are right Nilay. I sent an email last week but nobody has replied. >> >> >> >> It seems that descriptors (cdDesc, dsDesc and tssDesc) located in >> >> src/arch/x86/system.cc file are not well-initialized and as a >> >> consequence kvm does not work when running in full-system mode. >> >> >> >> Segment limits values (limitHigh and limitLow) are interchanged and >> >> several segment descriptor values are wrong too. If these values are >> >> corrected kvm works again as before. >> >> >> >> Adrian >> >> >> >> El lun, 08-12-2014 a las 22:50 -0600, Nilay Vaish via gem5-dev >> escribió: >> >> > I also faced problem in getting KVM CPU to run in FS mode. I >> >> > figured >> >> that >> >> > the following changeset causes problems: >> >> > >> >> > author Alexandru Dutu <alexandru.d...@amd.com> >> >> > Sun Nov 23 18:01:08 2014 -0800 (2 weeks ago) >> >> > changeset 10554 fe2e2f06a7c8 >> >> > >> >> > I saw the hardware reason 0x80000021, but did not try to figure >> >> > what was going on wrong. >> >> > >> >> > -- >> >> > Nilay >> >> > >> >> > On Mon, 8 Dec 2014, Gabe Black via gem5-dev wrote: >> >> > >> >> > > I'm pretty sure entering 64 bit mode is the same between AMD and >> >> > > Intel CPUs. I vaguely remember there being some subtle page table >> >> > > difference though, and gem5 is building the page tables in SE >> >> > > mode instead of the kernel. >> >> > > >> >> > > Gabe >> >> > > >> >> > > On Mon, Dec 8, 2014 at 7:44 PM, Dutu, Alexandru via gem5-dev < >> >> > > gem5-dev@gem5.org> wrote: >> >> > > >> >> > >> Hi Mike, >> >> > >> >> >> > >> trace-cmd is a very handy tool to get an overview of what the >> >> > >> kvm >> >> kernel >> >> > >> module is doing before going into gdb. In extreme cases ftrace >> >> > >> can be useful as well. >> >> > >> What is the error that you are seeing? Is it still failing to >> >> > >> enter virtualized mode? >> >> > >> >> >> > >> If that is the case and the hardware reason is 0x80000021, that >> >> seems to >> >> > >> be an unrecoverable exception (drivers/hv/hyperv_vmbus.h in >> >> > >> linux >> >> kernel >> >> > >> source code). When running in SE mode, we are trying to bring >> >> > >> the >> >> machine >> >> > >> state to full 64bit mode without going through legacy modes. It >> >> might be >> >> > >> that Intel machines have a different way of going to 64bit mode >> >> > >> than >> >> AMD >> >> > >> machines (different CR4, different way of enabling 64bit mode >> >> > >> page >> >> tables >> >> > >> etc.). I remember dealing with these issue for AMD platforms by >> >> > >> going through System Programming manual and making sure gem5 >> >> > >> gets all the >> >> bits >> >> > >> right as there is not much the KVM kernel model will tell about >> >> > >> the >> >> cause >> >> > >> of failure. >> >> > >> >> >> > >> Best regards, >> >> > >> Alex >> >> > >> ________________________________________ >> >> > >> From: gem5-dev [gem5-dev-boun...@gem5.org] on behalf of Gabe >> >> > >> Black >> >> via >> >> > >> gem5-dev [gem5-dev@gem5.org] >> >> > >> Sent: Monday, December 08, 2014 7:08 PM >> >> > >> To: gem5 Developer List >> >> > >> Subject: Re: [gem5-dev] x86 SE kvm functionality (AMD vs Intel) >> >> > >> >> >> > >> I'm not an expert either, but I did have problems running KVM in >> >> > >> SE >> >> mode on >> >> > >> an Intel CPU. I didn't look into it that much, but I think >> >> > >> things >> >> failed in >> >> > >> the kernel somewhere. What might be happening is that the >> >> > >> different >> >> vendors >> >> > >> hardware virtualization mechanisms are more or less picky about >> >> various >> >> > >> things. Something might be set up incorrectly, and one >> >> implementation gets >> >> > >> more upset about it than the other. I believe there are tools >> >> > >> which >> >> will >> >> > >> help you determine whether your VM state is legal. Perhaps >> >> > >> Andreas >> >> can tell >> >> > >> you more about those? >> >> > >> >> >> > >> Gabe >> >> > >> >> >> > >> On Mon, Dec 8, 2014 at 4:29 PM, mike upton via gem5-dev < >> >> gem5-dev@gem5.org >> >> > >>> >> >> > >> wrote: >> >> > >> >> >> > >>> I have verified that x86 kvm works fine on AMD platforms, but >> >> > >>> fails >> >> on >> >> > >>> Intel platforms. >> >> > >>> >> >> > >>> Any hints about how to narrow down the cause (other than diving >> >> into gdb, >> >> > >>> which I will do). >> >> > >>> >> >> > >>> I am not an expert in KVM or how gem5 hooks up to libkvm. >> >> > >>> _______________________________________________ >> >> > >>> gem5-dev mailing list >> >> > >>> gem5-dev@gem5.org >> >> > >>> http://m5sim.org/mailman/listinfo/gem5-dev >> >> > >>> >> >> > >> _______________________________________________ >> >> > >> gem5-dev mailing list >> >> > >> gem5-dev@gem5.org >> >> > >> http://m5sim.org/mailman/listinfo/gem5-dev >> >> > >> _______________________________________________ >> >> > >> gem5-dev mailing list >> >> > >> gem5-dev@gem5.org >> >> > >> http://m5sim.org/mailman/listinfo/gem5-dev >> >> > >> >> >> > > _______________________________________________ >> >> > > gem5-dev mailing list >> >> > > gem5-dev@gem5.org >> >> > > http://m5sim.org/mailman/listinfo/gem5-dev >> >> > > >> >> > _______________________________________________ >> >> > gem5-dev mailing list >> >> > gem5-dev@gem5.org >> >> > http://m5sim.org/mailman/listinfo/gem5-dev >> >> >> >> >> >> _______________________________________________ >> >> gem5-dev mailing list >> >> gem5-dev@gem5.org >> >> http://m5sim.org/mailman/listinfo/gem5-dev >> >> _______________________________________________ >> >> gem5-dev mailing list >> >> gem5-dev@gem5.org >> >> http://m5sim.org/mailman/listinfo/gem5-dev >> >> >> > >> > >> _______________________________________________ >> gem5-dev mailing list >> gem5-dev@gem5.org >> http://m5sim.org/mailman/listinfo/gem5-dev >> _______________________________________________ >> gem5-dev mailing list >> gem5-dev@gem5.org >> http://m5sim.org/mailman/listinfo/gem5-dev >> > > _______________________________________________ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev