* Problems with large block devices in 64 bit kernels
@ 2006-09-07 13:19 Christian Schmid
0 siblings, 0 replies; only message in thread
From: Christian Schmid @ 2006-09-07 13:19 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 2417 bytes --]
Andries Brouwer wrote:
> On Wed, Sep 06, 2006 at 10:54:42PM +0200, Christian Schmid wrote:
>
>> I run kernel 2.6.17.11 vanilla in 64 bit mode with 32 bit emulation.
>> model name : Intel(R) Xeon(R) CPU 5150 @ 2.66GHz
>>
>> Unfortunately there is no support for file-systems bigger than 2 TB in 64-bit mode with 32-bit
emulation.
>>
>> erikm in #kernelnewbies told me to report it here:
>>
>> <Dragony> statfs("/MD2", 0xff8deca4) = -1 EOVERFLOW (Value too large for defined
data type)
>
>
>
> Hmm. statfs uses struct statfs which has a 4-byte f_blocks field,
> and hence cannot hold larger values. You get what you ask for.
>
> statfs64 uses struct statfs64 which uses an 8-byte f_blocks field.
>
> (And then there is statvfs.)
>
> Andries
Hmm I dont think its that easy. Actually the max. value is 16 TB because of 232*4096 (block-size)
and this works on a 32 bit kernel.
df on 32 bit kernel:
(See attached image. Sorry, this kernel has not the required network-driver included. Had to take a
screenshot)
SAME df on 64 bit kernel:
write(1, "Filesystem 1K-blocks "..., 67Filesystem 1K-blocks Used Available
Use% Mounted on
) = 67
statfs("/", {f_type=0x58465342, f_bsize=4096, f_blocks=732384, f_bfree=508015, f_files=2939776,
f_ffree=2901955, f_namelen=255}) = 0
write(1, "/dev/md0 2929536 "..., 58/dev/md0 2929536 897476 2032060
31% /
) = 58
statfs("/proc", {f_type="PROC_SUPER_MAGIC", f_bsize=4096, f_blocks=0, f_bfree=0, f_files=0,
f_ffree=0, f_namelen=255}) = 0
statfs("/MD1", {f_type=0x58465342, f_bsize=4096, f_blocks=4407104, f_bfree=4403156,
f_files=17638656, f_ffree=17638645, f_namelen=255}) = 0
write(1, "/dev/md1 17628416 "..., 61/dev/md1 17628416 15792 17612624
1% /MD1
) = 61
statfs("/MD2", 0xffa30614) = -1 EOVERFLOW (Value too large for defined data type)
write(2, "df: ", 4df: ) = 4
write(2, "`/MD2\'", 6`/MD2') = 6
write(2, ": Value too large for defined da"..., 39: Value too large for defined data type) = 39
write(2, "\n", 1
) = 1
statfs("/dev/pts", {f_type=0x1cd1, f_bsize=4096, f_blocks=0, f_bfree=0, f_files=0, f_ffree=0,
f_namelen=255}) = 0
munmap(0xf7eea000, 4096) = 0
So its definetly something with the kernel.
Regards,
Christian Schmid
[-- Attachment #2: screen.png --]
[-- Type: image/png, Size: 34863 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-09-07 13:19 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-07 13:19 Problems with large block devices in 64 bit kernels Christian Schmid
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.