2014-10-28 22:48 GMT+09:00 Joonsoo Kim <js1304@xxxxxxxxx>: > 2014-10-28 22:24 GMT+09:00 Markos Chandras <Markos.Chandras@xxxxxxxxxx>: >> On 10/28/2014 01:19 PM, Markos Chandras wrote: >>> On 10/28/2014 01:01 PM, Joonsoo Kim wrote: >>>> 2014-10-28 19:45 GMT+09:00 Markos Chandras <Markos.Chandras@xxxxxxxxxx>: >>>>> Hi, >>>>> >>>>> It seems I am unable to boot my Malta with EVA. The problem appeared in >>>>> the 3.18 merge window. I bisected the problem (between v3.17 and >>>>> v3.18-rc1) and I found the following commit responsible for the broken boot. >>>> >>>> Hello, >>>> >>>> Did you start to bisect from v3.18-rc1? >>>> I'd like to be sure that this is another bug which is fixed by following commit. >>>> >>>> commit 85c9f4b04a08f6bc770b77530c22d04103468b8f >>>> Author: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> >>>> Date: Mon Oct 13 15:51:01 2014 -0700 >>>> >>>> mm/slab: fix unaligned access on sparc64 >>>> >>>> This fix is merged into v3.18-rc1 sometime later that >>>> 'support slab merge' is merged. >>>> >>>> Thanks. >>>> >>> Hi, >>> >>> I bisected from v3.17 until 3.18-rc1. But 3.18-rc2 and the latest >>> mainline (f7e87a44ef60ad379e39b45437604141453bf0ec) still have the same >>> problem >>> >>> btw i did more tests and this is not EVA specific. A maltaup_defconfig >>> fails in the same way. I suspect all malta*_defconfigs will fail in a >>> similar way which makes it probably easier for you to reproduce it on a >>> QEMU. >>> >> >> sorry maltaup_defconfig does not fail. maltasmvp_defconfig does. So it >> might be a similar problem like the one fixed in >> 85c9f4b04a08f6bc770b77530c22d04103468b8f > > Oops. Sorry. Above commit ('mm/slab: fix unaligned access on sparc64') > is irrelevant to this problem. > > Anyway, your problem would be related to merging with incompatible slab cache. > Best way to debug is printing source/target slab cache's object size and > alignment and find the problem. I will try to reproduce it using QEMU. I found that cross compile for MIPS isn't easy job. :) Could you help me to debug the problem with below patch? Thanks. diff --git a/mm/slab.c b/mm/slab.c index eb2b2ea..b118a52 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -2059,6 +2059,10 @@ __kmem_cache_alias(const char *name, size_t size, size_t align, cachep = find_mergeable(size, align, flags, name, ctor); if (cachep) { + printk("%s: (%s %lu %lu) to (%s %lu %lu %lu)\n", __func__, + name, size, align, + cachep->name, cachep->size, cachep->align, cachep->object_size); + cachep->refcount++; /*