On Fri, 2011-01-28 at 08:57 -0600, Robert Jennings wrote: > xvmalloc will not currently function with 64K pages. Newly allocated > pages will be inserted at an offset beyond the end of the first-level > index. This tuning is needed to properly size the allocator for 64K > pages. > > The default 3 byte shift results in a second level list size which can not > be indexed using the 64 bits of the flbitmap in the xv_pool structure. > The shift must increase to 4 bytes between second level list entries to > fit the size of the first level bitmap. > > Here are a few statistics for structure sizes on 32- and 64-bit CPUs > with 4KB and 64KB page sizes. > > bits_per_long 32 64 64 > page_size 4,096 4,096 65,535 > xv_align 4 8 8 > fl_delta 3 3 4 > num_free_lists 508 508 4,094 > xv_pool size 4,144b 8,216b 66,040b > per object overhead 32 64 64 > zram struct 0.5GB disk 512KB 1024KB 64KB > > This patch maintains the current tunings for 4K pages, adds an optimal > sizing for 64K pages and adds a safe tuning for any other page sizes. > > Signed-off-by: Robert Jennings <rcj@xxxxxxxxxxxxxxxxxx> Reviewed-by: Pekka Enberg <penberg@xxxxxxxxxx> _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel