Re: [PATCH 01/11] mm,migration: Take a reference to the anon_vma before migrating

From: KOSAKI Motohiro
Date: Tue Mar 16 2010 - 21:44:15 EST


> rcu_unlock:
> +
> + /* Drop an anon_vma reference if we took one */
> + if (anon_vma && atomic_dec_and_lock(&anon_vma->migrate_refcount, &anon_vma->lock)) {
> + int empty = list_empty(&anon_vma->head);
> + spin_unlock(&anon_vma->lock);
> + if (empty)
> + anon_vma_free(anon_vma);
> + }
> +

Why don't we check ksm_refcount here? Also, why drop_anon_vma() doesn't
need check migrate_refcount?

plus, if we add this logic, we can remove SLAB_DESTROY_BY_RCU from
anon_vma_cachep and rcu_read_lock() from unmap_and_move(), I think.
It is for preventing anon_vma recycle logic. but no free directly mean
no memory recycle.



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/