You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In a discussion with @FUDCo about how I'm actually using this to achieve #4381, it occurred to me that an alternative approach would be to implement "kernel-provided device nodes", in which the kernel would set dNN.owner = null to indicate that the kernel owns a device node. So when vat-vat-admin does syscall.callNow(deviceVatAdmin, 'createVat', args), it would get routed to the kernel instead of device-vat-admin (and device-vat-admin would go away).
This would have a lot of benefits over the PR I'm working on:
with no device-vat-admin, userspace is no longer obligated to help the kernel wire up its own internal components
the bootstrap vat no longer has a way to forge newVatCallback or vat-termination messages
the lack of GC in devices no longer causes vatParameter objects to get retained forever
This would not require changes to the code in vat-vat-admin (it will keep making D() calls), but device-vat-admin goes away, userspace bootstrap() functions must change to replace their vatAdminService = await E(vats.vatAdmin).createVatAdminService(devices.vatAdmin) with vatAdminService = vats.vatAdmin.
It would require initializeSwingSet to allocate the new kernel-owned device node, and include it in the vatParameters arguments passed to vat-vat-admin, effectively moving the createVatAdminService call into buildRootObject.
In a discussion with @FUDCo about how I'm actually using this to achieve #4381, it occurred to me that an alternative approach would be to implement "kernel-provided device nodes", in which the kernel would set
dNN.owner = null
to indicate that the kernel owns a device node. So whenvat-vat-admin
doessyscall.callNow(deviceVatAdmin, 'createVat', args)
, it would get routed to the kernel instead ofdevice-vat-admin
(anddevice-vat-admin
would go away).This would have a lot of benefits over the PR I'm working on:
device-vat-admin
, userspace is no longer obligated to help the kernel wire up its own internal componentsnewVatCallback
or vat-termination messagesThis would not require changes to the code in
vat-vat-admin
(it will keep makingD()
calls), butdevice-vat-admin
goes away, userspacebootstrap()
functions must change to replace theirvatAdminService = await E(vats.vatAdmin).createVatAdminService(devices.vatAdmin)
withvatAdminService = vats.vatAdmin
.It would require
initializeSwingSet
to allocate the new kernel-owned device node, and include it in thevatParameters
arguments passed to vat-vat-admin, effectively moving thecreateVatAdminService
call intobuildRootObject
.Originally posted by @warner in #4726 (comment)
The text was updated successfully, but these errors were encountered: