On 03/08/2017 06:42 PM, Dmitry Vyukov wrote: > We see reported stalls/lockups in quarantine_remove_cache() on machines > with large amounts of RAM. quarantine_remove_cache() needs to scan whole > quarantine in order to take out all objects belonging to the cache. > Quarantine is currently 1/32-th of RAM, e.g. on a machine with 256GB > of memory that will be 8GB. Moreover quarantine scanning is a walk > over uncached linked list, which is slow. > > Add cond_resched() after scanning of each non-empty batch of objects. > Batches are specifically kept of reasonable size for quarantine_put(). > On a machine with 256GB of RAM we should have ~512 non-empty batches, > each with 16MB of objects. > > Signed-off-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx> > Cc: kasan-dev@xxxxxxxxxxxxxxxx > Cc: linux-mm@xxxxxxxxx > Cc: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx> > Cc: Greg Thelen <gthelen@xxxxxxxxxx> Acked-by: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx> -- 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>