Results of testing Reiserfs on large block devices.

Peter Chubb (peter@chubb.wattle.id.au)
Fri, 5 Jul 2002 15:35:37 +1000


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/