[lkml]   [2011]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [RFT PATCH] blkio: alloc per cpu data from worker thread context( Re: kvm deadlock)
    On Mon, Dec 19, 2011 at 02:56:35PM -0800, Tejun Heo wrote:
    > Hello, Vivek.
    > On Mon, Dec 19, 2011 at 01:27:17PM -0500, Vivek Goyal wrote:
    > > Ok, that's good to know. If per cpu allocator can support this use case,
    > > it will be good for 3.3 onwards. This seems to be right way to go to fix
    > > the problem.
    > Ummm... if we're gonna make percpu usable w/ GFP_NOIO, the right
    > interim solution would be making a simplistic mempool so that later
    > when percpu can do it, it can be swapped easily. I really can't see
    > much benefit of adding refcnting on top of everything just for this.

    Ok. So are you suggesting that I should write a simple mempool kind of
    implementation of my own for group and per cpu data allocation. Keep
    certain number of elements in the cache and trigger a worker thread to
    allocate more elements once minimum number of elements go below
    threshold. If pool has run out of pre-allocated elements then allocation
    will fail and IO will be accounted to root group?

    I am looking at the mempool implementation (mempool_create()) and looks
    like that is not suitable for my use case. mempool_alloc() will call into
    alloc function provided by me and pass the flags. I can't implement an
    alloc function and honor that flag as per cpu alloc does not take any

    So IIUC, existing mempool implementation is not directly usable for my
    requirement and I need to write some code of my own for the caching
    layer which always allocates objects from reserve and fills in the
    pool asynchronously with the help of a worker thread.


     \ /
      Last update: 2011-12-20 15:53    [W:0.021 / U:3.000 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site