On Apr 8, 5:32 pm, shnaxe <[email protected]> wrote:
> ...
> since i use a 64bit version on a 64bit system i should be able to use
> larger blocks (have to check the pagesize again...), ext4 allows
> blocks to be up to 64kb instead of only 4kb.
>
> also when running mkfs.ext4 without any filesystem-type specified a
> blocksize of 4096 is chosen, so i wonder if i should manually override
> this to lets say 16384 or even 32768 and lower the number of inodes
> accordingly (/4 or /8)?
ah, well at least this issue has been cleared; i was at first
surprised to see that 'getconf PAGE_SIZE' returns 4096 running a 64bit
linux on a system with a 64bit amd-cpu (note: blocksize must not
exceed the sysstems pageesize!).
so i read a bit further into various discussions about pagesizes and
came to realize that amd's 64bit processors were also designed for 4k
pages.
its summed up on two postings i found:
Chris Snook posted to the linux-kernel mailing-list of vger.kernel.org
on Nov 12 2007:
"PAGE_SIZE is highly architecture-dependent. While it is true that 4K
pages are typical on 32-bit architectures, and 64-bit architectures
have historically introduced 8K pages, this is by no means a
requirement. x86_64 uses the same page sizes that are available on
i686+PAE, so you get 4K base pages. alpha and sparc64 typically use 8K
base pages, though they have other options as well. ia64 defaults to
16K, though it can do 4K, 8K, and a bunch of larger base sizes. ppc64
does 4K and 64K. s390 uses 4K base pages in both 31-bit and 64-bit
kernels. If x86_64 processors are released with TLBs that can handle
8K pages, it'll be straightforward to add that feature, but otherwise
it would require faking it in software, which has lots of pitfalls and
does nothing to improve TLB efficiency."
Helge Hafting replied there on Nov 13 2007:
"...there are no connection at all between the page size and
the number of bits the processor uses.
The cpu designer simply makes independent decisions for both cases.
So i386 uses 4kB pages because intel designed their processor that
way.
And x86_64 uses 4kB pages because AMD designed the architecture that
way.
And some processors use 8kB or 16kB pages because that is how they
work.
A few processors offer a selection of page sizes, it is then up to the
architecture maintainer to make a choice between them. No such choice
exists for intel/amd, unless you count the unrealistic option
of using generic 2MB pages.
Having said that, it is possible to get a feel of what a 8kB page
system will be like on intel, by always allocating pages in pairs."
so well, i guess i'll have to stick to a blocksize of 4kb.
but still at least one thing remains:
> another question is if keeping the number of inodes rather small etc
> makes still sense with ext4, but i don't see a reason why this
> shouldn't be the case.