Hi folks,
I couldn't get Reiserfs to work on large devices. I've tracked the
problem down.
When Reiserfs is mounted, it tries to allocate a chunk of memory for
bitmaps using kmalloc. The largest chunk allocatable by kmalloc is
128k. This limits the size of a reiserfs to just under 2TB on a
64-bit platform (16384 bitmaps times 8bytes per pointer) or just under
4TB on a 32 bit platform (32768 bitmaps times 4bytes per pointer).
This reasoning assumes that the number of bitmaps is given by the
formula (number_of_blocks + (8 * blocksize - 1))/(8 * blocksize) where
blocksize is 4096 bytes. Thus
number_of_blocks = 8 * 4096 * (16384 - 1) - 1 [64 bit]
number_of_blocks = 8 * 4096 * (32768 - 1) - 1 [32 bit]
Hacking mm/slab.c to increase the memory limit allowed larger
filesystems to be mounted, but I haven't tested these thoroughly yet.
-- Dr Peter Chubb peterc@gelato.unsw.edu.au You are lost in a maze of BitKeeper repositories, all almost the same.- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sun Jul 07 2002 - 22:00:14 EST