[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Are there still machines with PAGE_SHIFT 16 or larger ?



Hi,

by incident one of my other kernel adventures leads me here, although
it might turn out to be off topic, as i know too few about powerpc.

Are there machines in use which really have regular memory page size
larger than 32 KiB ?

I read in Linux source
  arch/powerpc/include/asm/page.h
this statement
-------------------------------------------------------------------
/*
 * On regular PPC32 page size is 4K (but we support 4K/16K/64K/256K pages
 * on PPC44x and 4K/16K on 8xx). For PPC64 we support either 4K or 64K software
 * page size. When using 64K pages however, whether we are really supporting
 * 64K pages in HW or not is irrelevant to those definitions.
 */
#define PAGE_SHIFT              CONFIG_PPC_PAGE_SHIFT
#define PAGE_SIZE               (ASM_CONST(1) << PAGE_SHIFT)
-------------------------------------------------------------------------

Surely off topic: Are there perhaps still machines of arches:
  mips, parisc, ia64, microblaze, sh, hexagon
with PAGE_SHIFT >= 16 ?

I ask because i am implementing a .readpages() method for zisofs in
  fs/isofs/compress.c
because currently for a compression block of 32 KiB, 8 decompressions are
made to fill the corresponding 4 KiB x86 pages. With 128 KiB compression
blocks this becomes accordingly worse. Reason is that mm/readahead
sabotages the own readaround efforts of zisofs_readpage() by holding the
pages of interest already locked.

I can well test the case that PAGE_SHIFT is less than 15, and am confident
that it will work for exactly 15 too.
But in case of (PAGE_SHIFT > zisofs_block_shift) different code will get
executed. I understand it was written in 2001.
Given the bitrot potential of 19 years, it seems necessary to test that
code path, if there is a realistic chance to meet this situation in
practice.


Have a nice day :)

Thomas


Reply to: