On Wed, 13 Mar 2013 11:35:15 +0800 Shuge <shugelinux@xxxxxxxxx> wrote: > Hi all > >>> The bounce accept slab pages from jbd2, and flush dcache on them. > >>> When enabling VM_DEBUG, it will tigger VM_BUG_ON in page_mapping(). > >>> So, check PageSlab to avoid it in __blk_queue_bounce(). > >>> > >>> Bug URL: http://lkml.org/lkml/2013/3/7/56 > >>> > >>> ... > >>> > >> ...... > >> > > That sure is strange. I didn't see any obvious reasons why we'd end up with a > > > ...... > > Well, this problem not only appear in arm64, but also arm32. And my > kernel version is 3.3.0, arch is arm32. > Following the newest kernel, the problem shoulde be exist. > I agree with Darrick's modification. Hum, if > CONFIG_NEED_BOUNCE_POOL is not set, it also flush dcahce on > the pages of b_frozen_data, some of them are allocated by kmem_cache_alloc. > As we know, jbd2_alloc allocate a buffer from jbd2_xk slab pool, > when the size is smaller than PAGE_SIZE. > The b_frozen_data is not mapped to usrspace, not aliasing cache. It cat > be lazy flush or other. Is it right? Please reread my email. The page at b_frozen_data was allocated with GFP_NOFS. Hence it should not need bounce treatment (if arm is anything like x86). And yet it *did* receive bounce treatment. Why? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>