Skip to content
  • Sasha Levin's avatar
    kvm tools: Introduce generic I/O thread pool · d60bafe5
    Sasha Levin authored
    
    
    This patch adds a generic pool to create a common interface for working with
    threads within the kvm tool. Main idea here is using this threadpool for all
    I/O threads instead of having every I/O module write it's own thread code. The
    process of working with the thread pool is supposed to be very simple.
    
    During initialization, each module which is interested in working with the
    threadpool will call threadpool__add_jobtype with the callback function and a
    void* parameter. For example, virtio modules will register every virt_queue as
    a new job type.  During operation, When theres work to do for a specific job,
    the module will signal it to the queue and would expect the callback to be
    called with proper parameters. It is assured that the callback will be called
    once for every signal action and each callback will be called only once at a
    time (i.e. callback functions themselves don't need to handle threading).
    
    [ penberg@kernel.org: Use Lindent ]
    Signed-off-by: default avatarSasha Levin <levinsasha928@gmail.com>
    Signed-off-by: default avatarPekka Enberg <penberg@kernel.org>
    d60bafe5