Jan Setje-Eilers wrote:
> For the purposes of this project (new boot SPARC), we can avoid this
> problem by not placing editable files into the boot_archive.
> kobj_open() would be modified to read read any files it fails to find
> in the archive (if they exist at all) from the filesystem via the
> firmware. This has the up-side that it keeps all these files from
> invalidating the archive. The down-side is that it's one more place
> the kernel will continue to call into OBP. It's also a SPARC only
> solution. It should however fully address these concerns for the sake
> of this project on SPARC.
>
> Beyond this project we can investigate more drastic approaches that
> eliminate this issue on all architectures. We could have the
> boot-loader (a modified and extended GRUB on x86 and the bootblock or
> more likely a standalone on SPARC) read all the files that would
> ordinarily make up the archive into memory at the time of boot, and
> then boot that data-structure (which basically contains everything the
> archive contains today). This not only avoids the out of sync issues,
> but also saves the work currently being done to commit the archive to
> the filesystem when it is updated. This approach has potential
> performance implications (many seeks as opposed to one big read) that
> need to be investigated, but could be addressed with a hybrid
> approach. The hybrid places only the static files into a maintained,
> on-disk archive loading all editable files dynamically.
>
The idea for a long-term solution (having the boot loader read multiple
files into memory instead of a single archive) sounds like a good one.
I'm a little concerned that implementing the short-term solution (having
the kernel read individual files via bootops) only for Sparc will reduce
the urgency of implementing the long-term solution.
Scott