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

Reply via email to