Hi Gabe,

Thanks for the document! This really cleared things up for me.

I made a bunch of comments in the document, but I think they can
almost all be boiled down to this one thing:

I would like to understand the tradeoff between implementing the ABIs
as virtual objects vs templates. Generally, I would like to see us
avoid using templates except in exceptional cases. I think that in
many cases templates over complicate the code. For instance it's quite
difficult to understand the code when using variadic recursive
template functions!

I completely understand the need for a more general ABI
implementation, and I really like the idea of unifying the syscall,
pseudo instruction, and other interfaces! I think that what you've
designed is quite beautiful and very clever. However, I worry that
it's a little *too* clever, and won't be easy to maintain by other
developers in the future. Another good example of this in gem5 is the
statistics interface. That's a block of code that most of us are too
scared to touch due the template complexities.

That said, if there are required features that cannot be implemented
by using virtual objects, then I can get behind the template
implementation. You hint that there are things that can't be done with
virtual objects at the end of the document. I'd like to understand
this better before I review the code.

Thanks for the hard work! I think the end goals of this proposal are
important and I definitely want to see this implemented!

I'm traveling right now, but I'll do my best to keep up with this
thread and reply in a timely manner.

Cheers,
Jason

On Thu, Dec 19, 2019 at 3:41 AM Gabe Black <[email protected]> wrote:
>
> I made another editing pass and made a few small changes which hopefully
> will make things easier to understand.
>
> Gabe
>
> On Wed, Dec 18, 2019 at 6:51 PM Gabe Black <[email protected]> wrote:
>
> > Ok, great, thanks. I know the implementation is heavy on C++ sorcery, so
> > please let me know if you have any questions.
> >
> > Gabe
> >
> > On Wed, Dec 18, 2019 at 6:20 PM Jason Lowe-Power <[email protected]>
> > wrote:
> >
> >> I'll have some time tomorrow to look it over.
> >>
> >> Cheers,
> >> Jason
> >>
> >> On Wed, Dec 18, 2019 at 4:06 PM Gabe Black <[email protected]> wrote:
> >> >
> >> > Great, thanks!
> >> >
> >> > Gabe
> >> >
> >> > On Wed, Dec 18, 2019 at 5:04 PM Giacomo Travaglini <
> >> > [email protected]> wrote:
> >> >
> >> > > Thanks Gabe, I am reviewing the document, will address your patchset
> >> as
> >> > > soon as I finish
> >> > >
> >> > > Giacomo
> >> > > ________________________________
> >> > > From: gem5-dev <[email protected]> on behalf of Gabe Black <
> >> > > [email protected]>
> >> > > Sent: 18 December 2019 02:05
> >> > > To: gem5 Developer List <[email protected]>
> >> > > Subject: [gem5-dev] Guest ABI design doc
> >> > >
> >> > > Hi folks. I talked to some people and got permission to share this
> >> design
> >> > > doc externally first. Please take a look to when you get a chance.
> >> > >
> >> > >
> >> > >
> >> https://docs.google.com/document/d/1CvB_srNAXXi6JgU8Q8Ou0tEcAv4DXdulhNj8kxowFkk/edit?usp=sharing
> >> > >
> >> > > Gabe
> >> > > _______________________________________________
> >> > > gem5-dev mailing list
> >> > > [email protected]
> >> > > http://m5sim.org/mailman/listinfo/gem5-dev
> >> > > IMPORTANT NOTICE: The contents of this email and any attachments are
> >> > > confidential and may also be privileged. If you are not the intended
> >> > > recipient, please notify the sender immediately and do not disclose
> >> the
> >> > > contents to any other person, use it for any purpose, or store or
> >> copy the
> >> > > information in any medium. Thank you.
> >> > > _______________________________________________
> >> > > 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
> >
> >
> _______________________________________________
> 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