Re: [PATCH v7 2/2] drivers/virt: vmgenid: add vm generation id driver

Jason A. Donenfeld
2022-02-22T22:17:39Z

Hey again,

On Tue, Feb 22, 2022 at 10:24 PM Jason A. Donenfeld <Jason@zx2c4.com> wrote:
> This thread seems to be long dead, but I couldn't figure out what
> happened to the ideas in it. I'm specifically interested in this part:
>
> On Wed, Feb 24, 2021 at 9:48 AM Adrian Catangiu <acatan@amazon.com> wrote:
> > +static void vmgenid_acpi_notify(struct acpi_device *device, u32 event)
> > +{
> > + uuid_t old_uuid;
> > +
> > + if (!device || acpi_driver_data(device) != &vmgenid_data) {
> > + pr_err("VMGENID notify with unexpected driver private data\n");
> > + return;
> > + }
> > +
> > + /* update VM Generation UUID */
> > + old_uuid = vmgenid_data.uuid;
> > + memcpy_fromio(&vmgenid_data.uuid, vmgenid_data.uuid_iomap, sizeof(uuid_t));
> > +
> > + if (memcmp(&old_uuid, &vmgenid_data.uuid, sizeof(uuid_t))) {
> > + /* HW uuid updated */
> > + sysgenid_bump_generation();
> > + add_device_randomness(&vmgenid_data.uuid, sizeof(uuid_t));
> > + }
> > +}
>
> As Jann mentioned in an earlier email, we probably want this to
> immediately reseed the crng, not just dump it into
> add_device_randomness alone. But either way, the general idea seems
> interesting to me. As far as I can tell, QEMU still supports this. Was
> it not deemed to be sufficiently interesting?
>
> Thanks,
> Jason

Well I cleaned up this v7 and refactored it into something along the
lines of what I'm thinking. I don't yet know enough about this general
problem space to propose the patch and I haven't tested it either, but
in case you're curious, something along the lines of what I'm thinking
about lives at https://git.kernel.org/pub/scm/linux/kernel/git/crng/random.git/commit/?h=jd/vmgenid
if you (or somebody else) feels inclined to pick this up.

Looking forward to learning more from you in general, though, about
what the deal is with the VM gen ID, and if this is a real thing or
not.

Regards,
Jason