Re: [PATCH v4] blkcg: allocate struct blkcg_gq outside request queue spinlock

2017-03-06 Thread Tejun Heo
On Sun, Mar 05, 2017 at 06:12:43AM -0800, Tahsin Erdogan wrote: > blkg_conf_prep() currently calls blkg_lookup_create() while holding > request queue spinlock. This means allocating memory for struct > blkcg_gq has to be made non-blocking. This causes occasional -ENOMEM > failures in call paths lik

Re: [PATCH v4] blkcg: allocate struct blkcg_gq outside request queue spinlock

2017-03-05 Thread Tahsin Erdogan
Hi Tejun, >> @@ -184,24 +185,48 @@ static struct blkcg_gq *blkg_create(struct blkcg >> *blkcg, >> + if (unlikely(!wb_congested)) { >> ret = -ENOMEM; >> goto err_put_css; >> + } else if (unlikely(!blkg)) { >> + ret = -ENOMEM; >> + goto er