I figured out what the other problem was, so here's the review.

http://reviews.gem5.org/r/2557/

Gabe

On Tue, Dec 9, 2014 at 5:00 PM, Gabe Black <gabebl...@google.com> wrote:

> It was attached in my sent mail. Maybe it's being blocked by something?
> I'm hunting down another problem so I don't want to move my tree around too
> much, but once that's done I'll post it as a review.
>
> Gabe
>
> On Tue, Dec 9, 2014 at 4:51 PM, Dutu, Alexandru via gem5-dev <
> gem5-dev@gem5.org> wrote:
>
>> I haven't received any attachment to your email. So I don't have your
>> patch.
>>
>> 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:42 PM
>> To: gem5 Developer List
>> Subject: Re: [gem5-dev] x86 SE kvm functionality (AMD vs Intel)
>>
>> And... it turns out the KVM change wasn't necessary. If you're working
>> from my patch, get rid of where the segment limit is divided by PageBytes.
>> That was only necessary because I wasn't adding 0xFFF to the limit when the
>> granularity bit was set.
>>
>> Gabe
>>
>> On Tue, Dec 9, 2014 at 4:31 PM, Gabe Black <gabebl...@google.com> wrote:
>>
>> > 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
>> _______________________________________________
>> 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