Basically, I'd like the distinction between SE and FS to be in how the user
chooses to use the simulator. Right now, there are two parallel systems
inherited from two separate builds, and having two ways to do certain
things (write to memory, execute a syscall instruction, etc.) leads to some
redundancy and extra complexity. Fundementally, SE and FS aren't that
different since it's just code executing on fake hardware. I'd like to
reduce or eliminate the ways things are unnecessarily specialized.

Gabe

On Wed, Dec 3, 2014 at 8:00 PM, Steve Reinhardt via gem5-dev <
[email protected]> wrote:

> Hi Gabe,
>
> I can see how the KVM SE-mode support does look like a piece of what you're
> proposing. In this case there's a clear need for that functionality though.
> I'm curious what you see as the benefits of taking this model farther than
> strictly necessary for KVM SE mode.  Not that I'm necessarily opposed, just
> looking for more information.
>
> Steve
>
> On Tue, Dec 2, 2014 at 1:59 AM, Gabe Black via gem5-dev <[email protected]
> >
> wrote:
>
> > X86LinuxSESystem is a better name.
> >
> > Gabe
> >
> > On Mon, Dec 1, 2014 at 3:05 AM, Gabe Black <[email protected]> wrote:
> >
> > > One of the last things I did the last time I was working on gem5 was to
> > > merge the SE and FS builds of the simulator into one. I didn't really
> > > finish it before I left, though, and in a lot of ways it's still more
> > like
> > > SE and FS glued together than one simulator that happens to do both.
> > >
> > > The work being done to support KVM in SE mode reminds me a lot of one
> of
> > > the things I had wanted to do to blend away one of those seams. What
> I'd
> > > wanted was to generalize the idea of a System object so that it would
> > load
> > > a payload in whatever way it needed to, be that a Linux kernel or some
> > > processes, or whatever. What the system object would accept as a
> payload
> > > would depend on what type it was. For instance, there could be an
> > > X86LinuxSystem which would load an x86 Linux kernel as happens in FS
> > mode.
> > > Then there would be an X86FakeLinuxSystem (name up for debate) which
> > would
> > > load stubs for all the OS entry points (syscalls, exceptions). Those
> > would
> > > call into the simulator which would then emulate Linux a la SE mode.
> From
> > > the simulators perspective they'd just be System objects which do
> > something
> > > to get the system up and running.
> > >
> > > That's very similar to what you're doing to support KVM, except that
> we'd
> > > want to capture all of the OS entry points, and also have psuedoinsts
> (or
> > > your memory mapped thing) for all of them.
> > >
> > > Thoughts?
> > >
> > > Gabe
> > >
> > _______________________________________________
> > gem5-dev mailing list
> > [email protected]
> > http://m5sim.org/mailman/listinfo/gem5-dev
> >
> _______________________________________________
> gem5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/gem5-dev
>
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to