TAO HU kirjoitti:
Actually we greped "kmem_cache_create" in whole kernel souce tree (2.6.29 and 2.6.32). Either "align" equal to "0" or flag SLAB_HWCACHE_ALIGN is used when calling kmem_cache_create().
I don't think that's correct. The "task_xstate" has alignof(struct task_xstate) and there seems to be so GCC attributes that force non-default alignment on the struct.
Seems all of arch's cache-line-size is multiple of 64-bit/8-byte (sizeof(long long)) except arch-microblaze (4-byte). The smallest (except arch-microblaze) cache-line-size is 2^4= 16-byte as I can see. So even considering possible sizeof(long long) == 128-bit/16-byte, it is still safe to apply Shiyong's original version. Anyway, Shiyong's new patch check the weired situation that "align > sizeof(long long) && align is NOT multiple of sizeof (long long)" Let us know whether the new version address your concerns.
Yeah, sorry for dragging this issue on. I've been looking at the patch but haven't been able to convince myself that it's correct. Nick, David, Christoph, Matt, could you also please take a look at this?
Pekka -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>