perf(drm): group dracut_instmods calls #2577
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This module loops over many bus devices, and calls
dracut_instmods
for each one. E.g., on a Lenovo Thinkpad laptop:Every call to
dracut_instmods
spawns adracut-install
process, which in the previous example means callingdracut-install
79 times using the same arguments.If any call to
dracut-install
fails, dracut continues its execution (even the errors are not shown, because it's called with--silent
). Therefore, let's take the contents of all themodalias
files into an array and calldracut-install
only once, adding also the-o
argument, so if any of the modules cannot be installed,dracut-install
does not stop.Performance test
The following test patch was used to measure the improvement of this change:
System:
Current code:
Code with patch applied:
It was also verified that the
drm
module with the new code installs the same kernel modules.Checklist