> while observing lots of different workloads (all I/O bound). Finally,

well, not all loads are IO-bound in the sense you're looking at.
in particular, the test I usually run (make -j2 with mem=48m)
is actually hurt by this patch.  but you're right, this change 
does improve streaming IO.

> We're trying to be too clever there, and that eventually hurts
> performance because inactive_dirty list is too small for typical

I certainly agree the code is dubious, but this is the reason 
inactive_target exists, afaikt.

> have tested. The patch simplifies code a lot and removes unnecessary
> complex calculation. Code is now completely autotuning. I have a

otoh, the "complex calculation" was always trivial, 
and *more* autotuning than your suggested fix...

> -     if (!target) {
> -             int inactive = nr_free_pages() + nr_inactive_clean_pages() +
> -                                             nr_inactive_dirty_pages;
> -             int active = MAX(nr_active_pages, num_physpages / 2);
> -             if (active > 10 * inactive)
> -                     maxscan = nr_active_pages >> 4;
> -             else if (active > 3 * inactive)
> -                     maxscan = nr_active_pages >> 8;
> -             else
> -                     return 0;
> -     }
> +     if (!target)
> +             maxscan = nr_active_pages >> 4;

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

Reply via email to