[rds-devel] [git pull] IB device refcounting

Andy Grover andy.grover at oracle.com
Thu Jun 10 13:29:48 PDT 2010


On 06/02/2010 12:09 PM, Zach Brown wrote:
>
> On May 25, 2010, at 5:25 PM, Andy Grover wrote:
>
>> On 05/24/2010 01:38 PM, Zach Brown wrote:
>>> RDS/IB: add refcount tracking to struct rds_ib_device
>>
>> Kernels earlier than 2.6.21 do not have cancel_work_sync. We need
>> to create a backport patch. Is cancel_delayed_work/flush_workqueue
>> a possible replacement for these earlier kernels?
>
> Yeah, it looks like that's the way to go.  Earlier flush_workqueue()
> notices when it's called in the work queue's thread and just runs the
> queue.  Current kernels trip a WARN_ON in that case.
>
>> If you can send me a patch, I can handle fitting it into OFED's
>> backport system.
>
> How's this look?

Looks good to me, thanks! -- Andy

>
> --- a/net/rds/ib_rdma.c
> +++ b/net/rds/ib_rdma.c
> @@ -244,7 +244,7 @@ void rds_ib_get_mr_info(struct rds_ib_device *rds_ibdev, struct rds_info_rdma_co
>
>   void rds_ib_destroy_mr_pool(struct rds_ib_mr_pool *pool)
>   {
> -	cancel_work_sync(&pool->flush_worker);
> +	cancel_rearming_delayed_workqueue(rds_wq,&pool->flush_worker);
>   	rds_ib_flush_mr_pool(pool, 1);
>   	WARN_ON(atomic_read(&pool->item_count));
>   	WARN_ON(atomic_read(&pool->free_pinned));
>




More information about the rds-devel mailing list