Posted after 16 hours 26 minutes 22 seconds:
Ok, I'm back Sorry if I keep derailing this thread.
RE: Partitioning, thanks for the advice on leaving the first eraseblock or two open, and the suggestion that users examine the factory formatting. It was too late for me, because I had already formatted my drives with kde partition manager.
RE 4MB alignment: My tests were actually conducted on the second partition (I had FAT in the front holding Porteus and my data so that I could transfer it to windows, and cycled through FS's on the back partition. That partition started on LBA 3637248 or 4096000 (1776 or 2000 megabytes, both multiples of 8MB). The data collected from flashbench gave a pretty clear indication that my Kingston drive is aligned on 4MB eraseblocks rather than 3, or some other number. Incidentally, 1776 MB is also divisible by 3 -- however, I don't recall which tests were done at 1776 and which were at 2000 MB back lol. When I tested the alignment as off by 1MB, I would have been at 1777 and 2001 (2001 is a multiple of 3), so I inadvertently sampled for 3MB eraseblocks
RE XFS: it was faster without barriers than with, particularly with small files. However, it was still not as fast as EXT4, BTRFS, or NILFS (for small files). The use of delaylog seemed to make a bigger improvement than nobarriers. That said, my test with nobarrier also used the delaylog, so maybe I should try it again without the delaylog option. I did not try it with an external log -- I tried and failed to set one up on a loop device in Porteus, and I have questions about how this would affect the integrity and recoverability of a filesystem when storing your log to volatile memory (or, am I completely missing what occurs here?)
I tried compiling the NILFS module from source this morning and failed -- I had crippled sources installed, and perhaps it needs the full sources...
Code: Select all
bash-4.1# cd /root/Desktop/nilfs2-module bash-4.1# ls COPYING ChangeLog Makefile README fs/ nilfs2.txt bash-4.1# make make -C fs make: Entering directory `/root/Desktop/nilfs2-module/fs' make -C /lib/modules/220.127.116.11-porteus/build SUBDIRS=/root/Desktop/nilfs2-module/fs BUILD_DIR=/root/Desktop/nilfs2-module/fs modules make: Entering directory `/usr/src/linux-18.104.22.168' CC [M] /root/Desktop/nilfs2-module/fs/inode.o In file included from /root/Desktop/nilfs2-module/fs/inode.c:28:0: /root/Desktop/nilfs2-module/fs/nilfs.h: In function 'nilfs_init_acl': /root/Desktop/nilfs2-module/fs/nilfs.h:234:31: error: dereferencing pointer to incomplete type /root/Desktop/nilfs2-module/fs/inode.c: In function 'nilfs_write_begin': /root/Desktop/nilfs2-module/fs/inode.c:212:5: warning: passing argument 1 of 'block_write_begin' from incompatible pointer type include/linux/buffer_head.h:204:5: note: expected 'struct address_space *' but argument is of type 'struct file *' /root/Desktop/nilfs2-module/fs/inode.c:212:5: warning: passing argument 2 of 'block_write_begin' makes integer from pointer without a cast include/linux/buffer_head.h:204:5: note: expected 'loff_t' but argument is of type 'struct address_space *' /root/Desktop/nilfs2-module/fs/inode.c:212:5: warning: passing argument 5 of 'block_write_begin' makes pointer from integer without a cast include/linux/buffer_head.h:204:5: note: expected 'struct page **' but argument is of type 'unsigned int' /root/Desktop/nilfs2-module/fs/inode.c:212:5: warning: passing argument 6 of 'block_write_begin' from incompatible pointer type include/linux/buffer_head.h:204:5: note: expected 'int (*)(struct inode *, sector_t, struct buffer_head *, int)' but argument is of type 'struct page **' /root/Desktop/nilfs2-module/fs/inode.c:212:5: error: too many arguments to function 'block_write_begin' include/linux/buffer_head.h:204:5: note: declared here /root/Desktop/nilfs2-module/fs/inode.c: In function 'nilfs_delete_inode': /root/Desktop/nilfs2-module/fs/inode.c:721:3: error: implicit declaration of function 'clear_inode' /root/Desktop/nilfs2-module/fs/inode.c: In function 'nilfs_setattr': /root/Desktop/nilfs2-module/fs/inode.c:759:2: error: implicit declaration of function 'inode_setattr' make: *** [/root/Desktop/nilfs2-module/fs/inode.o] Error 1 make: *** [_module_/root/Desktop/nilfs2-module/fs] Error 2 make: Leaving directory `/usr/src/linux-22.214.171.124' make: *** [default] Error 2 make: Leaving directory `/root/Desktop/nilfs2-module/fs' make: *** [fs] Error 2