During an ll_readahead under ll_readpage, we have seen the the
OBD_SLAB_ALLOC hang under ldlm_pools_shrink when trying to lock
a page that is already locked by the readahead code.
Using CFS_ALLOC_IO instead of CFS_ALLOC_STD will prevent
ldlm_pools_shrink from actually freeing slab, so the call path
that blocks indefinitely can never happen.
i=adilger
i=dmitry.zogin
i=johann
}
cfs_put_cpu();
- OBD_SLAB_ALLOC(llap, ll_async_page_slab, CFS_ALLOC_STD,
+ OBD_SLAB_ALLOC(llap, ll_async_page_slab, CFS_ALLOC_IO,
ll_async_page_slab_size);
if (llap == NULL)
RETURN(ERR_PTR(-ENOMEM));