qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <graf@amazon.com>
To: Stefan Hajnoczi <stefanha@gmail.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>,
	"Hanna Reitz" <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: Wed, 16 Mar 2022 14:35:58 +0100	[thread overview]
Message-ID: <da1dd6ee-6f3b-0470-cff3-9c2eb44d0ae6@amazon.com> (raw)
In-Reply-To: <CAJSP0QUZS=vcruOixYwsC_Nwy2mvgeemuJimSqv98KsKr4BdSQ@mail.gmail.com>

Hey Stefan!

On 16.03.22 14:16, Stefan Hajnoczi wrote:
> On Mon, 14 Feb 2022 at 13:58, Stefan Hajnoczi <stefanha@gmail.com> wrote:
>> 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:


I must've completely missed your email, sorry :).


>> - Implement a device model for the TPM device (link to spec or driver
>> code below)
>> - Implement vsock device (or is this virtio-mmio vsock?)


Yeah, it's derived from Firecracker. So virtio-mmio for 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.
> Hi Alex,
> Would you like me to add this project idea to the list? Please see
> what I wrote above about adding details about the tasks involved.


Petre literally pointed me to the fact that the project did not end up 
on the wiki page a few hours ago. I added it and augmented the bits 
above. Please let me know if you see anything else missing! :)


Alex





Amazon Development Center Germany GmbH
Krausenstr. 38
10117 Berlin
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss
Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B
Sitz: Berlin
Ust-ID: DE 289 237 879



  reply	other threads:[~2022-03-16 13:44 UTC|newest]

Thread overview: 39+ 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-02-09 14:49 ` Alexander Graf
2022-02-14 13:58   ` Stefan Hajnoczi
2022-03-16 13:16     ` Stefan Hajnoczi
2022-03-16 13:35       ` Alexander Graf [this message]
2022-03-29 20:29         ` Stefan Hajnoczi
2022-02-14  7:11 ` Jason Wang
2022-02-14 11:48   ` Stefano Garzarella
2022-02-15  7:48     ` Jason Wang
2022-02-14 14:01   ` Stefan Hajnoczi
2022-02-15  7:49     ` Jason Wang
2022-02-17 14:12     ` Stefano Garzarella
2022-02-17 16:27       ` Stefan Hajnoczi
2022-02-17 17:49     ` Paolo Bonzini
2022-02-19  9:36       ` Stefan Hajnoczi
2022-02-14 13:16 ` Alex Bennée
2022-02-14 14:10   ` Stefan Hajnoczi
2022-02-17  7:08 ` Alice Frosi
2022-02-17 16:26   ` Stefan Hajnoczi
2022-02-17 17:52 ` Paolo Bonzini
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-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-17 18:23 ` Thomas Huth
2022-02-19 14:12   ` Stefan Hajnoczi
2022-02-18 21:03 ` Alexander Bulekov
2022-02-21  9:34   ` Stefan Hajnoczi
2022-02-21  6:14 ` Klaus Jensen
2022-02-21  9:51   ` Stefan Hajnoczi
2022-02-21 12:00     ` Klaus Jensen
2022-02-22  9:48       ` Stefan Hajnoczi
2022-02-22 15:03         ` Keith Busch
2022-02-25 12:39           ` Stefan Hajnoczi
2022-02-23  8:47 ` Andreea Florescu
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=da1dd6ee-6f3b-0470-cff3-9c2eb44d0ae6@amazon.com \
    --to=graf@amazon.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=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 \
    --cc=stefanha@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).