@geennaam
Quote:
Does SFS2 ignore the Mask setting on purpose?
Yes, as well the other workarounds for old, broken device drivers (MaxTransfer, BufMemType, etc.) which had to be used on AmigaOS <= 3.9.
Quote:
So is there a way to force SFS2 accesses to be at least 32bit aligned?
No, except for using an AmigaOS 3.x/m68k version instead of the AmigaOS 4.x/PPC one
Internal reads/writes (buffers, caches, incl. the diskcache.library ones, etc.) are block size, or at least 32 byte (CPU cache line), aligned, but for direct reads/writes to/from application data pointers SFS doesn't change anything and passes the address and size to the device driver.
Quote:
I could work around it to detect the non-aligned transfer and move the read/write contents to a 32bit aligned intermediate buffer.
AmigaOS 4.x device drivers have to do that, not only for unsupported alignment but unsupported (too large) transfer sizes or physically fragmented memory (when using DMA) as well.
Quote:
But I like to avoid this because it will result in a performance penalty.
Of course, but it would be even worse if the filesystems would do it instead of the device drivers, only the device drivers know their exact hardware limits.