bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Almost working pci-arbiter with rumpdisk


From: Samuel Thibault
Subject: Re: Almost working pci-arbiter with rumpdisk
Date: Tue, 9 Feb 2021 19:54:58 +0100
User-agent: NeoMutt/20170609 (1.8.3)

Damien Zammit, le mar. 09 févr. 2021 21:42:29 +1100, a ecrit:
> However, I'm still getting very stuck because I don't seem to have a 
> "bootstrap" port for fsys_startup() in netfs for pci startup.
> Where would the bootstrap port come from to do the arbiter netfs_startup -> 
> fsys_startup?
> As the arbiter netfs IS the bootstrap filesystem, bootstrap is NULL, or am I 
> confused?

It is NULL, yes.

> Do I need to implement some kind of netfs_S_fsys_* ?

Very probably, yes: 

I updated
http://darnassus.sceen.net/~hurd-web/hurd/bootstrap/

which was saying

TODO: we want diskfs_startup_diskfs to also call task_get_bootstrap_port to 
call fsys_startup on its real bootstrap port once diskfs_start_bootstrap is 
finished, for bootstrap translators before the root filesystem to know when the 
root filesystem is ready, and register themselves as translators in the root 
filesystem, register for shutdown notification, etc.

and now says 

diskfs_start_bootstrap is complete, we are back to diskfs_startup_diskfs, which 
checks whether ext2fs was given a bootstrap port, i.e. a translator was started 
before ext2fs. If so, it calls diskfs_call_fsys_startup which creates a new 
control port and passes it do a call to fsys_startup on the bootstrap port, so 
the translator that was started before ext2fs gets access to the ext2fs 
filesystem. That translator however does not return any real port, since we are 
not exposing the ext2fs filesystem in that translator's filesystem, but rather 
the converse. That translator will wait for an fsys_init call to complete its 
own initialization and set itself as an active translator within the ext2fs 
filesystem.


that was for the rumpdisk->ext2fs case, but we'll need the same for the
pci-arbiter->rumpdisk case as well, i.e. make trivfs_S_fsys_startup call
fsys_startup on its own bootstrap port (thus pci-arbiter), so
pci-arbiter gets the control port of the ext2fs FS.

Ditto for rumpdisk's fsys_init, that should call fsys_init on its
bootstrap port, so that pci-arbiter can eventually configure its own
proc, auth, crdir, cwdir, and set itself as active translator in the
root filesystem.

Samuel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]