Hi Mike,

Are you running with SimpleMemory, SE or FS? On my AMD platform, for SE, I get 
very similar execution times with old implementation, for SimpleMemory and 
classic memory with detailed memory controller. Also what linux kernel are you 
using?

Thanks,
Alex

-----Original Message-----
From: gem5-dev [mailto:gem5-dev-boun...@gem5.org] On Behalf Of mike upton via 
gem5-dev
Sent: Wednesday, December 10, 2014 3:59 PM
To: gem5 Developer List
Subject: Re: [gem5-dev] x86 SE kvm functionality (AMD vs Intel)

I was testing this on both Intel and AMD platforms.

The new code does seem to work for Intel platforms.

The new code also seems to clean up a bunch of runtime warnings I was getting 
on AMD platforms.

However the new code on AMD is either much slower, or it is stuck in a loop.
A test that runs for 30 sec with the old code is running for more than 10 mins, 
and still has a long way to go.



On Wed, Dec 10, 2014 at 12:27 PM, Gabe Black via gem5-dev <gem5-dev@gem5.org
> wrote:

> That's not actually extending the TSS limit, that's what it works out 
> to be with the granularity bit set. The AM and WP bits were set to the 
> wrong thing according to the comments next to them I'm pretty sure. If 
> we wanted the other behavior, we might be able to change them back and have 
> it work.
> The _BASE registers hold the base of segments as they're specified by 
> the ISA. The _EFF_BASE registers hold the base that will actually be 
> used in address calculations based on the mode of the CPU. For 
> instance, if you're in 64 bit mode, the _BASE of DS might still be 
> 0xFFF from when you were in another mode. The _EFF_BASE would be 0 
> though, since the DS base is ignored in that case. _EFF_BASE may not 
> be used by the KVM CPU, but it should be set up anyway in case we switch back 
> to a regular CPU.
>
> Gabe
>
> On Wed, Dec 10, 2014 at 10:20 AM, Dutu, Alexandru via gem5-dev < 
> gem5-dev@gem5.org> wrote:
>
> > Thank you for all the clarifications. I see that for SE to work on 
> > vmx
> the
> > TSS limit had to be extended, am and wp bits in CR0 had to be reset 
> > and *_EFF_BASE registers had be set in addition to *_BASE registers 
> > for TR
> TSG
> > IDTR. I wonder what is TR_EFF_BASE. It seems that the contents of TR 
> > register (which gets passed to kvm) are the same if with or without 
> > *_EFF_BASE registers set.
> >
> > Thank you,
> > Alex
> >
> > -----Original Message-----
> > From: gem5-dev [mailto:gem5-dev-boun...@gem5.org] On Behalf Of Gabe
> Black
> > via gem5-dev
> > Sent: Wednesday, December 10, 2014 1:21 AM
> > To: gem5 Developer List
> > Subject: Re: [gem5-dev] x86 SE kvm functionality (AMD vs Intel)
> >
> > Ok, I got SE working too. I'll clean up my patch and send that out 
> > in a bit.
> >
> > Gabe
> >
> > On Tue, Dec 9, 2014 at 9:41 PM, Gabe Black <gabebl...@google.com> wrote:
> >
> > > 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
> > _______________________________________________
> > 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