> On Thu, 21 Jun 2001, Marcelo Tosatti wrote:
>
> > > 2 4 2 77084 1524 18396 66904 0 1876 108 2220 2464 66079 198 1
> ^^^^^
> > Ok, I suspect that GFP_BUFFER allocations are fucking up here (they can't
> > block on IO, so they loop insanely).
>
> Why doesn't the VM hang the syncing of queued IO on these guys via
> wait_event or such instead of trying to just let the allocation fail?
Actually the VM should limit the amount of data being queued for _all_
kind of allocations.
The problem is the lack of a mechanism which allows us to account the
approximated amount of queued IO by the VM. (except for swap pages)
You can see it this way: To get free memory we're "polling" instead of
waiting on the IO completion of pages.
> (which seems to me will only cause the allocation to be resubmitted,
> effectively changing nothing but adding overhead)
Yes.
> Does failing the allocation in fact accomplish more than what I'm
> (uhoh:) assuming?
No.
It sucks really badly.
-
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/