#34 Investigate globbing bug in GNU GRUB on i945 systems (only affects bare metal GRUB running as coreboot payload. BIOS/UEFI GRUB is not affected)

Open
opened 3 years ago by vimuser · 0 comments

script engine regression and ich7/ata-bridge-perhaps bug. swiftgeek says that globbing stopped working in the grub script engine.

do bisect and fix

The version of GNU GRUB used in Libreboot 20160907 does not have the same issue. When globbing is used in the GRUB config file, GRUB will stall. This does not affect BIOS GRUB, on the same systems, but coreboot GRUB (GRUB compiled as coreboot payload) is not using BIOS calls but instead runs on bare metal.

It's likely just a single commit (and maybe a series of commits after that, near that commit) in GNU GRUB's git repository that caused this performance regression. If that is the case, then it's a simple matter of running a git bisect on GNU GRUB.

I could write a script in Retroboot to handle this automatically, for git-bisect purposes. It will automatically create a ROM. Technically, I would use git-bisect externally, on an external GRUB repository not inside the retroboot directory, but I can just change the GRUB revision (in Retroboot build system) for each commit ID and automatically build ROMs. To save even more time, I can make this script use the exact same coreboot ROM, without a payload, and each time it will use cbfstool to insert the newly compiled GRUB payload.

Then I simply revert whatever commit fixed it, or patch it up accordingly. If I'm successful, I will also submit a patch upstream to the GNU project, and they can review it.

script engine regression and ich7/ata-bridge-perhaps bug. swiftgeek says that globbing stopped working in the grub script engine. do bisect and fix The version of GNU GRUB used in Libreboot 20160907 does not have the same issue. When globbing is used in the GRUB config file, GRUB will stall. This does not affect BIOS GRUB, on the same systems, but coreboot GRUB (GRUB compiled as coreboot payload) is not using BIOS calls but instead runs on *bare metal*. It's likely just a single commit (and maybe a series of commits after that, near that commit) in GNU GRUB's git repository that caused this performance regression. If that is the case, then it's a simple matter of running a `git bisect` on GNU GRUB. I could write a script in Retroboot to handle this automatically, for git-bisect purposes. It will automatically create a ROM. Technically, I would use git-bisect externally, on an external GRUB repository not inside the retroboot directory, but I can just change the GRUB revision (in Retroboot build system) for each commit ID and automatically build ROMs. To save even more time, I can make this script use the exact same coreboot ROM, without a payload, and each time it will use `cbfstool` to insert the newly compiled GRUB payload. Then I simply revert whatever commit fixed it, or patch it up accordingly. If I'm successful, I will also submit a patch upstream to the GNU project, and they can review it.
Sign in to join this conversation.
No Label
No Milestone
No assignee
1 Participants
Loading...
Cancel
Save
There is no content yet.