[OpenAFS] allocation and scheduling in the Linux kernel

Bart Banter bartbanter@hotmail.com
Fri, 21 Dec 2001 11:48:57 -0600


I've been discussing with our kernel developers a couple of hangs (process 
and system) that seem to be associated with openafs usage and heavy system 
load.
I would like to suggest two changes to the openafs linux_alloc() routine 
which we believe will help matters.

The first is to change the gfp_mask passed to kmalloc(). Using GFP_KERNEL, 
it is possible that the VM will call back to the filesystem to free up 
memory to satisfy the kmalloc request. GFP_NOFS will prevent this possible 
recursion. I believe GFP_NOFS first appeared in the 2.4.6 kernel.

The second change involves the call to schedule() when vmalloc() fails. This 
can also cause a hang. The schedule() call could be replaced with:

set_current_state(TASK_INTERRUPTIBLE);
schedule_timeout(HZ);

I'm certainly not an expert on the openasf code, but I believe these changes 
are correct and needed. I'm interested in hearing other opinions.

thanks,
Guy Streeter
Red Hat


_________________________________________________________________
Join the world’s largest e-mail service with MSN Hotmail. 
http://www.hotmail.com