On Thu, Feb 06, 2014 at 12:34, Mark Kettenis wrote:

> I believe the scenario you sketched should only land you in
> uvm_wait_pla(), but not in uvm_wait().  Perhaps with the current code
> we can end up in uvm_wait(), but I think those would be bugs where the
> driver I/O paths are doing memory allocations when they really
> shouldn't.  Therefore, I'm not sure we should add the bufbackoff()
> call in uvm_wait().  At the very least I'd like to have a printf
> *before* the bufbackoff() call there.

Sure. I didn't observe that path, but since the current "fix" of
printf and msleep is used both places, I added bufbackoff both places.

> I'd also like to see a comment on the bufbackoff() call in
> uvm_wait_pla() explaining that even though we pushed back the buffer
> cache in the page daemon, we might still consume the freed pages when
> paging out dirty pages while scanning.

Sure.

Reply via email to