All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@gmail.com>
To: Alexander Graf <graf@amazon.com>
Cc: qemu-devel <qemu-devel@nongnu.org>, kvm <kvm@vger.kernel.org>,
	"Rust-VMM Mailing List" <rust-vmm@lists.opendev.org>,
	"Damien Le Moal" <Damien.LeMoal@wdc.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Sergio Lopez" <slp@redhat.com>,
	"Dmitry Fomichev" <Dmitry.Fomichev@wdc.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Hannes Reinecke" <hare@suse.de>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Florescu, Andreea" <fandree@amazon.com>,
	hreitz@redhat.com, "Alex Agache" <aagch@amazon.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"John Snow" <jsnow@redhat.com>,
	"Stefano Garzarella" <sgarzare@redhat.com>,
	ohering@suse.de, "Eftime, Petre" <epetre@amazon.com>,
	"Andra-Irina Paraschiv" <andraprs@amazon.com>
Subject: Re: Call for GSoC and Outreachy project ideas for summer 2022
Date: Mon, 14 Feb 2022 13:58:44 +0000	[thread overview]
Message-ID: <CAJSP0QVqvvN=sbm=XMT8mxHQNcSfNfTrnWJXXf-QgXwxAfzdcA@mail.gmail.com> (raw)
In-Reply-To: <244647ca-a247-cfc1-d0df-b8c74d434a77@amazon.com>

On Wed, 9 Feb 2022 at 14:50, Alexander Graf <graf@amazon.com> wrote:
> On 28.01.22 16:47, Stefan Hajnoczi wrote:
> > Dear QEMU, KVM, and rust-vmm communities,
> > QEMU will apply for Google Summer of Code 2022
> > (https://summerofcode.withgoogle.com/) and has been accepted into
> > Outreachy May-August 2022 (https://www.outreachy.org/). You can now
> > submit internship project ideas for QEMU, KVM, and rust-vmm!
> >
> > If you have experience contributing to QEMU, KVM, or rust-vmm you can
> > be a mentor. It's a great way to give back and you get to work with
> > people who are just starting out in open source.
> >
> > Please reply to this email by February 21st with your project ideas.
> >
> > Good project ideas are suitable for remote work by a competent
> > programmer who is not yet familiar with the codebase. In
> > addition, they are:
> > - Well-defined - the scope is clear
> > - Self-contained - there are few dependencies
> > - Uncontroversial - they are acceptable to the community
> > - Incremental - they produce deliverables along the way
> >
> > Feel free to post ideas even if you are unable to mentor the project.
> > It doesn't hurt to share the idea!
>
>
> I have one that I'd absolutely *love* to see but not gotten around
> implementing myself yet :)
>
>
> Summary:
>
> Implement -M nitro-enclave in QEMU
>
> Nitro Enclaves are the first widely adopted implementation of hypervisor
> assisted compute isolation. Similar to technologies like SGX, it allows
> to spawn a separate context that is inaccessible by the parent Operating
> System. This is implemented by "giving up" resources of the parent VM
> (CPU cores, memory) to the hypervisor which then spawns a second vmm to
> execute a completely separate virtual machine. That new VM only has a
> vsock communication channel to the parent and has a built-in lightweight
> TPM.
>
> One big challenge with Nitro Enclaves is that due to its roots in
> security, there are very few debugging / introspection capabilities.
> That makes OS bringup, debugging and bootstrapping very difficult.
> Having a local dev&test environment that looks like an Enclave, but is
> 100% controlled by the developer and introspectable would make life a
> lot easier for everyone working on them. It also may pave the way to see
> Nitro Enclaves adopted in VM environments outside of EC2.
>
> This project will consist of adding a new machine model to QEMU that
> mimics a Nitro Enclave environment, including the lightweight TPM, the
> vsock communication channel and building firmware which loads the
> special "EIF" file format which contains kernel, initramfs and metadata
> from a -kernel image.
>
> Links:
>
> https://aws.amazon.com/ec2/nitro/nitro-enclaves/
> https://lore.kernel.org/lkml/20200921121732.44291-10-andraprs@amazon.com/T/
>
> Details:
>
> Skill level: intermediate - advanced (some understanding of QEMU machine
> modeling would be good)
> Language: C
> Mentor: Maybe me (Alexander Graf), depends on timelines and holiday
> season. Let's find an intern first - I promise to find a mentor then :)
> Suggested by: Alexander Graf
>
>
> Note: I don't know enough about rust-vmm's debugging capabilities. If it
> has gdbstub and a local UART that's easily usable, the project might be
> perfectly viable under its umbrella as well - written in Rust then of
> course.

It would be great to have an open source Enclave environment for
development and testing in QEMU.

Could you add a little more detail about the tasks involved. Something
along the lines of:
- Implement a device model for the TPM device (link to spec or driver
code below)
- Implement vsock device (or is this virtio-mmio vsock?)
- Add a test for the TPM device
- Add an acceptance test that boots a minimal EIF payload

This will give candidates more keywords and links to research this project.

Thanks,
Stefan

WARNING: multiple messages have this Message-ID (diff)
From: Stefan Hajnoczi <stefanha@gmail.com>
To: Alexander Graf <graf@amazon.com>
Cc: "Damien Le Moal" <Damien.LeMoal@wdc.com>,
	"Andra-Irina Paraschiv" <andraprs@amazon.com>,
	kvm <kvm@vger.kernel.org>, "Sergio Lopez" <slp@redhat.com>,
	"Dmitry Fomichev" <Dmitry.Fomichev@wdc.com>,
	"John Snow" <jsnow@redhat.com>, "Alex Agache" <aagch@amazon.com>,
	qemu-devel <qemu-devel@nongnu.org>,
	"Florescu, Andreea" <fandree@amazon.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	hreitz@redhat.com, "Paolo Bonzini" <pbonzini@redhat.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Rust-VMM Mailing List" <rust-vmm@lists.opendev.org>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Stefano Garzarella" <sgarzare@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Eftime, Petre" <epetre@amazon.com>,
	ohering@suse.de, "Hannes Reinecke" <hare@suse.de>
Subject: Re: Call for GSoC and Outreachy project ideas for summer 2022
Date: Mon, 14 Feb 2022 13:58:44 +0000	[thread overview]
Message-ID: <CAJSP0QVqvvN=sbm=XMT8mxHQNcSfNfTrnWJXXf-QgXwxAfzdcA@mail.gmail.com> (raw)
In-Reply-To: <244647ca-a247-cfc1-d0df-b8c74d434a77@amazon.com>

On Wed, 9 Feb 2022 at 14:50, Alexander Graf <graf@amazon.com> wrote:
> On 28.01.22 16:47, Stefan Hajnoczi wrote:
> > Dear QEMU, KVM, and rust-vmm communities,
> > QEMU will apply for Google Summer of Code 2022
> > (https://summerofcode.withgoogle.com/) and has been accepted into
> > Outreachy May-August 2022 (https://www.outreachy.org/). You can now
> > submit internship project ideas for QEMU, KVM, and rust-vmm!
> >
> > If you have experience contributing to QEMU, KVM, or rust-vmm you can
> > be a mentor. It's a great way to give back and you get to work with
> > people who are just starting out in open source.
> >
> > Please reply to this email by February 21st with your project ideas.
> >
> > Good project ideas are suitable for remote work by a competent
> > programmer who is not yet familiar with the codebase. In
> > addition, they are:
> > - Well-defined - the scope is clear
> > - Self-contained - there are few dependencies
> > - Uncontroversial - they are acceptable to the community
> > - Incremental - they produce deliverables along the way
> >
> > Feel free to post ideas even if you are unable to mentor the project.
> > It doesn't hurt to share the idea!
>
>
> I have one that I'd absolutely *love* to see but not gotten around
> implementing myself yet :)
>
>
> Summary:
>
> Implement -M nitro-enclave in QEMU
>
> Nitro Enclaves are the first widely adopted implementation of hypervisor
> assisted compute isolation. Similar to technologies like SGX, it allows
> to spawn a separate context that is inaccessible by the parent Operating
> System. This is implemented by "giving up" resources of the parent VM
> (CPU cores, memory) to the hypervisor which then spawns a second vmm to
> execute a completely separate virtual machine. That new VM only has a
> vsock communication channel to the parent and has a built-in lightweight
> TPM.
>
> One big challenge with Nitro Enclaves is that due to its roots in
> security, there are very few debugging / introspection capabilities.
> That makes OS bringup, debugging and bootstrapping very difficult.
> Having a local dev&test environment that looks like an Enclave, but is
> 100% controlled by the developer and introspectable would make life a
> lot easier for everyone working on them. It also may pave the way to see
> Nitro Enclaves adopted in VM environments outside of EC2.
>
> This project will consist of adding a new machine model to QEMU that
> mimics a Nitro Enclave environment, including the lightweight TPM, the
> vsock communication channel and building firmware which loads the
> special "EIF" file format which contains kernel, initramfs and metadata
> from a -kernel image.
>
> Links:
>
> https://aws.amazon.com/ec2/nitro/nitro-enclaves/
> https://lore.kernel.org/lkml/20200921121732.44291-10-andraprs@amazon.com/T/
>
> Details:
>
> Skill level: intermediate - advanced (some understanding of QEMU machine
> modeling would be good)
> Language: C
> Mentor: Maybe me (Alexander Graf), depends on timelines and holiday
> season. Let's find an intern first - I promise to find a mentor then :)
> Suggested by: Alexander Graf
>
>
> Note: I don't know enough about rust-vmm's debugging capabilities. If it
> has gdbstub and a local UART that's easily usable, the project might be
> perfectly viable under its umbrella as well - written in Rust then of
> course.

It would be great to have an open source Enclave environment for
development and testing in QEMU.

Could you add a little more detail about the tasks involved. Something
along the lines of:
- Implement a device model for the TPM device (link to spec or driver
code below)
- Implement vsock device (or is this virtio-mmio vsock?)
- Add a test for the TPM device
- Add an acceptance test that boots a minimal EIF payload

This will give candidates more keywords and links to research this project.

Thanks,
Stefan


  reply	other threads:[~2022-02-14 13:58 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-28 15:47 Call for GSoC and Outreachy project ideas for summer 2022 Stefan Hajnoczi
2022-01-28 15:47 ` Stefan Hajnoczi
2022-02-09 14:49 ` Alexander Graf
2022-02-14 13:58   ` Stefan Hajnoczi [this message]
2022-02-14 13:58     ` Stefan Hajnoczi
2022-03-16 13:16     ` Stefan Hajnoczi
2022-03-16 13:16       ` Stefan Hajnoczi
2022-03-16 13:35       ` Alexander Graf
2022-03-29 20:29         ` Stefan Hajnoczi
2022-03-29 20:29           ` Stefan Hajnoczi
2022-02-14  7:11 ` Jason Wang
2022-02-14  7:11   ` Jason Wang
2022-02-14 11:48   ` Stefano Garzarella
2022-02-14 11:48     ` Stefano Garzarella
2022-02-15  7:48     ` Jason Wang
2022-02-15  7:48       ` Jason Wang
2022-02-14 14:01   ` Stefan Hajnoczi
2022-02-14 14:01     ` Stefan Hajnoczi
2022-02-15  7:49     ` Jason Wang
2022-02-15  7:49       ` Jason Wang
2022-02-17 14:12     ` Stefano Garzarella
2022-02-17 14:12       ` Stefano Garzarella
2022-02-17 16:27       ` Stefan Hajnoczi
2022-02-17 16:27         ` Stefan Hajnoczi
2022-02-17 17:49     ` Paolo Bonzini
2022-02-17 17:49       ` Paolo Bonzini
2022-02-19  9:36       ` Stefan Hajnoczi
2022-02-19  9:36         ` Stefan Hajnoczi
2022-02-14 13:16 ` Alex Bennée
2022-02-14 13:16   ` Alex Bennée
2022-02-14 14:10   ` Stefan Hajnoczi
2022-02-14 14:10     ` Stefan Hajnoczi
2022-02-17  7:08 ` Alice Frosi
2022-02-17  7:08   ` Alice Frosi
2022-02-17 16:26   ` Stefan Hajnoczi
2022-02-17 16:26     ` Stefan Hajnoczi
2022-02-17 17:52 ` Paolo Bonzini
2022-02-17 17:52   ` Paolo Bonzini
2022-02-18 11:39   ` Michal Prívozník
2022-02-18 11:39     ` Michal Prívozník
2022-02-18 16:03     ` Paolo Bonzini
2022-02-19 13:46       ` Stefan Hajnoczi
2022-02-19 13:46         ` Stefan Hajnoczi
2022-02-21  9:36         ` Michal Prívozník
2022-02-21  9:36           ` Michal Prívozník
2022-02-21 11:27           ` Paolo Bonzini
2022-02-21 15:23             ` Michal Prívozník
2022-02-19 13:48     ` Stefan Hajnoczi
2022-02-19 13:48       ` Stefan Hajnoczi
2022-02-17 18:23 ` Thomas Huth
2022-02-19 14:12   ` Stefan Hajnoczi
2022-02-18 21:03 ` Alexander Bulekov
2022-02-18 21:03   ` Alexander Bulekov
2022-02-21  9:34   ` Stefan Hajnoczi
2022-02-21  9:34     ` Stefan Hajnoczi
2022-02-21  6:14 ` Klaus Jensen
2022-02-21  6:14   ` Klaus Jensen
2022-02-21  9:51   ` Stefan Hajnoczi
2022-02-21  9:51     ` Stefan Hajnoczi
2022-02-21 12:00     ` Klaus Jensen
2022-02-21 12:00       ` Klaus Jensen
2022-02-22  9:48       ` Stefan Hajnoczi
2022-02-22  9:48         ` Stefan Hajnoczi
2022-02-22 15:03         ` Keith Busch
2022-02-22 15:03           ` Keith Busch
2022-02-25 12:39           ` Stefan Hajnoczi
2022-02-25 12:39             ` Stefan Hajnoczi
2022-02-23  8:47 ` Andreea Florescu
2022-02-25 12:55   ` Stefan Hajnoczi
2022-02-25 12:55     ` Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAJSP0QVqvvN=sbm=XMT8mxHQNcSfNfTrnWJXXf-QgXwxAfzdcA@mail.gmail.com' \
    --to=stefanha@gmail.com \
    --cc=Damien.LeMoal@wdc.com \
    --cc=Dmitry.Fomichev@wdc.com \
    --cc=aagch@amazon.com \
    --cc=alex.bennee@linaro.org \
    --cc=andraprs@amazon.com \
    --cc=epetre@amazon.com \
    --cc=f4bug@amsat.org \
    --cc=fandree@amazon.com \
    --cc=graf@amazon.com \
    --cc=hare@suse.de \
    --cc=hreitz@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=marcandre.lureau@redhat.com \
    --cc=ohering@suse.de \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rust-vmm@lists.opendev.org \
    --cc=sgarzare@redhat.com \
    --cc=slp@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.