On 10/1/2021 1:19 AM, Pavel Machek wrote:
Hi!
Thank you for reviewing the patches!
Instructions
senduipi <index> - send a user IPI to a target task based on the UITT index.
clui - Mask user interrupts by clearing UIF (User Interrupt Flag).
stui - Unmask user interrupts by setting UIF.
testui - Test current value of UIF.
uiret - return from a user interrupt handler.
Are other CPU vendors allowed to implement compatible instructions?
If not, we should probably have VDSO entries so kernel can abstract differences between CPUs.
Yes, we are evaluating VDSO support for this.
Untrusted processes
The current implementation expects only trusted and cooperating processes to communicate using user interrupts. Coordination is expected between processes for a connection teardown. In situations where coordination doesn't happen (say, due to abrupt process exit), the kernel would end up keeping shared resources (like UPID) allocated to avoid faults.
Keeping resources allocated after process exit is a no-no.
I meant the resource is still tracked via the shared file descriptor, so it will eventually get freed when the FD release happens. I am planning to include better documentation on lifetime rules of these shared resources next time.
Thanks, Sohil