From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [127.0.1.1] (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id C34761DA9E; Sun, 12 Apr 2020 16:30:44 +0000 (UTC) Received: from wout1-smtp.messagingengine.com (unknown [64.147.123.24]) by atuin.qyliss.net (Postfix) with ESMTPS id F03CA1DA92; Sun, 12 Apr 2020 16:30:35 +0000 (UTC) Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.west.internal (Postfix) with ESMTP id E223D50F; Sun, 12 Apr 2020 12:30:18 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Sun, 12 Apr 2020 12:30:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alyssa.is; h= from:to:cc:subject:date:message-id:mime-version:content-type; s= fm2; bh=Nv475gyXer0l0KlsTIacdK+rZMzi7QGi2IhE5WgoQ9g=; b=eaxFoN0u u4CaA8hAA9gTnfqQq/GP21GVqZWYoqYMva0I6wso98lnG4Ov1bKzxVwNaHMvtgQ0 vSg6AR17/c12picqxsPqJ5a8MUMbU+A/cCwfHlu4O+KHnZAVmT0UoI2eqBEPfTh7 aAy3NC3Xc0S8+45G9YpQxFuE1FA7dUhkUB1R9ILg+fDtTscE+eZQh/xvxYBC4PyP rHMqiOmL3CrRW5jwFhgxCtY9qSdlHUU1hYJeVnj+iAzh64uYk3r272BeGIxf6fPB HF3939+qMj2J/6PrvzV9miaR4XoA3CPooq8nnoJmqpYwrNWlJ2j8m+GGmaIfi4PS EtHrEU8YvTPwOw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=Nv475gyXer0l0KlsTIacdK+rZMzi7 QGi2IhE5WgoQ9g=; b=wlFALLhV6niPYrAsBvsnntNq8asVreUSyGtWvYozfR7HM OMb52bCwdracbgZrmqYTYMqmNLpLvvLNGWmVX93ad4r5bk0uXcRw93Qeg7tx867T TtYJwB/U9dImmB0CotXLRfJgRYTYYd5uMjk7P4hZJHaTpuqpBt0AsDO6udKyrD9H 2qByBjrkZPISs8KxX3T8ZuJG8JyFLguza0ofmBHidk3Gp/xi3kO+AUxb+i6FYKyt NeRj3UizI5tocJ69SIYzE8Un7kP8iqGd9mooGUOIg59EXn4pGqUTan15EdLHd9Yr O8wtm//tSnWQ4k2z1Ch5Xy0dkEbI6VjAvIgSgL3QA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrvdejgddutdefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkgggtsehgtderredttd dtnecuhfhrohhmpeetlhihshhsrgcutfhoshhsuceohhhisegrlhihshhsrgdrihhsqeen ucfkphepgeeirdektddrudefuddrvdefjeenucevlhhushhtvghrufhiiigvpedtnecurf grrhgrmhepmhgrihhlfhhrohhmpehhihesrghlhihsshgrrdhish X-ME-Proxy: Received: from x220.qyliss.net (p2e5083ed.dip0.t-ipconnect.de [46.80.131.237]) by mail.messagingengine.com (Postfix) with ESMTPA id D94A93280066; Sun, 12 Apr 2020 12:30:17 -0400 (EDT) Received: by x220.qyliss.net (Postfix, from userid 1000) id 6127E13E9; Sun, 12 Apr 2020 16:30:16 +0000 (UTC) From: Alyssa Ross To: devel@spectrum-os.org Subject: This week in Spectrum Date: Sun, 12 Apr 2020 16:30:13 +0000 Message-ID: <87d08cll9m.fsf@alyssa.is> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Message-ID-Hash: L4SSTZCKQMMB23THGKHDHOVCOGZ66QKX X-Message-ID-Hash: L4SSTZCKQMMB23THGKHDHOVCOGZ66QKX X-MailFrom: hi@alyssa.is X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: discuss@spectrum-os.org X-Mailman-Version: 3.3.0 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: --=-=-= Content-Type: text/plain Before we begin, **if you are subscribed only to the discuss mailing list**, I'd like to hear from you whether you'd like future weekly development updates to come to you or not, because I'm not really sure whether this sort of update belongs on the devel mailing list, or the discuss one. So for this initial edition, I'm sending to both, but I probably won't do that going forward. So, as I wrote in the recent status update on my blog, I'm going to try weekly(?) mailing updates instead of lengthy blog posts every few months. I was going to start last week, but I ended up taking most of the week off because I'd been working every day for a long time and was starting to find it difficult to concentrate. But I'm back now, and this week has been a good one. Spectrum Live ------------- (This was actually last week, but I felt this deserved a mention.) A bit more than a week ago now, I did a live stream where I showed myself working on a fairly simple change to crosvm. Viewer numbers stabilised at around 11, and we had a lively IRC conversation, which I was pleasantly surprised by. I ended up spending most of the stream not working on that change, but instead explaining how various things in the system will work, and helping getting a couple of people started running the Spectrum code. By the end of the stream two people had succeeded in this, and that means two people who are set up to work on Spectrum. One was even starting work on trying to build a smaller kernel for Spectrum VMs! Overall I think this was extremely successful, and I'll try to do it again soon. I'll announce the stream a bit ahead of time in #spectrum on Freenode. crosvm ------ Having previously split crosvm into two separate programs -- one to run a virtual device, and one to run a device VM -- I further split it into three programs. This might sound a bit silly, but here's the idea -- one program is the crosvm that runs an application VM, the second will become part of the crosvm that runs a device VM, and the third will be the device implementation itself, that will run inside the device VM. As a reminder, the overall idea here is to put virtual devices into their own VMs, rather than being run directly on the host. I also pulled in the latest changes from Google. Of particular note is commit 146450b, which updates the msg_socket library to support dynamically sized messages. If you're paying attention, you'll recall that I just wrote my own serde-based replacement for msg_socket because I needed to do exactly this. That work might now have been superseded, but I'm not sure yet. msg_socket2 uses SOCK_STREAM sockets (which can be used between VMs or VM<->guest), while msg_socket uses SOCK_SEQPACKET, which can't. I haven't checked whether msg_socket's new implementation could work without SOCK_SEQPACKET-style preserved message boundaries -- if it can't, msg_socket2 will stick around. msg_socket2 also properly handles file descriptor lifetimes using the borrow checker. This means that safe Rust code can't send closed or non-existent file descriptors over msg_socket2. msg_socket does not do this, because it just represents file descriptors as integers with no lifetime information. Whatever happens to msg_socket2, at some point I'll want to make msg_socket do file descriptor lifetimes properly. In general, it's not clear from existing documentation how to properly handle file descriptor lifetimes in Rust, and so I plan a blog post on this topic soon. The next problem is to figure out communication between the device VM and the device crosvm. The protocols currently in use rely on being able to share memory using file descriptors, which is not possible between a VM and the host. To avoid using file descriptors, I would have to change those protocols, possibly on a per-device basis, which would be a lot of work, and might have to be done again whenever crosvm adds a new device type. But, I think I might have a better, if surprising solution. Despite its name, the Virtio Wayland protocol has almost nothing to do with Wayland. Instead, it's a fairly generic socket-like protocol that allows sending "virtual file descriptors" of certain specific types between a VM and its host. So I think I should be able to send this sort of communication over "Virtio Wayland", without requiring any changes to the communications being channeled. I just had this idea, so it's entirely possible it won't work out, but I think it's a neat unexpected reuse of a cool technology. Infrastructure -------------- The web interface for the Spectrum mailing lists has been upgraded from Django 1.11 (which is now EOL) to Django 2.2 (current LTS; Nixpkgs default). I sent this upstream as Nixpkgs PR #84896. Additionally, spectrum-os.org. now has an SPF header, which I thought was already there but apparently wasn't. This should help with mailing list deliverability. That's it for this week. Feel free to reply with any comments or insights, either on the content or the format. I'll try to be back with another development update next week. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEH9wgcxqlHM/ARR3h+dvtSFmyccAFAl6TQhUACgkQ+dvtSFmy ccDp8Q//a3uyuLJnLmGThW3JorotG73QBa2uxJ635huX/YqLfE0XGaJ8A048s5Oe MdzJsptRwLglCY1ZOs2UjlIZ43/NMsC27mDTc7Mqw3kHYcS20ePnlGcucaHC32nP cU7UfWgpBiDk5JzL4MTlqD26dAl7hKFgvlR29FPUcWRDIKrJGk+qzcepdzwGVHht 4XS8+HllQDsK1cl3mZbXZ4wrT+t7KgoI3Sjx39B0DGhey++5pLzX3kc5k8bHr1mM Agd0urQ4Ec8/874RqF93macP4sHVifGcW3siPwQHP95Mk5mvqQtbgew1rfWX9d1Q RtAdoHsihD0h7GwTUUbhsPuoLDGYAxMgB3q8KEHVy84+n/HFJlhiRuS2n7L7cC/8 wgrJI1YC64RO2FWPUXXY5LfUPKGnugIPJE3+iHT8EMbxelkMZ6EFIlZCVNEswmiy xOfAdRUqTykn5By/k6ZibW/2f89pfQzy8Ovd3wmNFotlBb5uRy9pc29gai0czThR oC7TnBMVc2bsDmQ0wVt8G0Uop+2HWAFENVl7c4rdMiF1CP/H0ExnasDNJG9n4eO5 0kJMvxXiwcdhZh072UrIUSidYVPkjFCgW++Y0Zz4zSgAuuiTr+6vGE94w0jHWA1P ngptUyBUQKqyBSrPYxdC5nUJeLON2xw1nzAfyTyBKJOVoqSrQjY= =/UpQ -----END PGP SIGNATURE----- --=-=-=--