On Friday, August 2, 2013, Joonsoo Kim wrote: > Our intention in here is to find last_bit within the region to flush. > There is well-defined function, find_last_bit() for this purpose and > it's performance may be slightly better than current implementation. > So change it. > > Signed-off-by: Joonsoo Kim > Looks reasonable. Acked-by: Zhang Yanfei > > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index d23c432..93d3182 100644 > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -1016,15 +1016,16 @@ void vm_unmap_aliases(void) > > rcu_read_lock(); > list_for_each_entry_rcu(vb, &vbq->free, free_list) { > - int i; > + int i, j; > > spin_lock(&vb->lock); > i = find_first_bit(vb->dirty_map, VMAP_BBMAP_BITS); > - while (i < VMAP_BBMAP_BITS) { > + if (i < VMAP_BBMAP_BITS) { > unsigned long s, e; > - int j; > - j = find_next_zero_bit(vb->dirty_map, > - VMAP_BBMAP_BITS, i); > + > + j = find_last_bit(vb->dirty_map, > + VMAP_BBMAP_BITS); > + j = j + 1; /* need exclusive index */ > > s = vb->va->va_start + (i << PAGE_SHIFT); > e = vb->va->va_start + (j << PAGE_SHIFT); > @@ -1034,10 +1035,6 @@ void vm_unmap_aliases(void) > start = s; > if (e > end) > end = e; > - > - i = j; > - i = find_next_bit(vb->dirty_map, > - VMAP_BBMAP_BITS, > i); > } > spin_unlock(&vb->lock); > } > -- > 1.7.9.5 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ >