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.
Making the
NVCodec
structs maximally aligned was an erroneous move because the gcc may increase the alignment which can lead to undesirable behaviour (e.g. #71).In the aforementioned case the size of the struct was 496 bytes, which was properly aligned to the maximum alignment (
__BIGGEST_ALIGNMENT__
) on the platform (16 bytes - x86-64), but gcc chose to align the objects at a 32 byte boundary, which resulted in 16 bytes of padding between each element that was not accounted for at runtime.Specifying the alignment on the object itself and not the type prevents gcc from increasing the alignment.
See: https://lore.kernel.org/lkml/[email protected]/
Fixes: 73ddb63 ("vabackend: make NVCodec struct aligned")