cl91 / NeptuneOS

Neptune OS: A Windows NT personality for the seL4 microkernel
GNU General Public License v3.0
370 stars 11 forks source link

Implement IRP cancellation #17

Open cl91 opened 2 months ago

cl91 commented 2 months ago

Several issues we need to consider:

  1. When a driver crashes, what happens to the IO packets queued on the driver, and what happens to the outstanding IO requests that the driver has made (to other drivers).
  2. In particular, we need to correctly handle the case where one driver calls another driver which then calls the first driver.
  3. The important issue is maintaining consistency of server-side and client-side identifiers. If we delete a server-side IO packet and later reassigns the same identifier pair to another (server-side) IO packet, the client must know it's dealing with a new one. The same applies to file objects and device objects (we send notifications to client drivers to inform it when server-side objects get deleted).
cl91 commented 1 month ago

Partially done in c0ad594