lkml.org 
[lkml]   [2009]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRE: [PATCH 02/18] dmaengine, async_tx: add a "no channel switch" allocator
    Williams, Dan J wrote:
    > Channel switching is problematic for some dmaengine drivers as the
    > architecture precludes separating the ->prep from ->submit. In these
    > cases the driver can select ASYNC_TX_DISABLE_CHANNEL_SWITCH to modify
    > the async_tx allocator to only return channels that support all of the
    > required asynchronous operations.
    >
    > For example MD_RAID456=y selects support for asynchronous xor, xor
    > validate, pq, pq validate, and memcpy. When
    > ASYNC_TX_DISABLE_CHANNEL_SWITCH=y any channel with all these
    > capabilities is marked DMA_ASYNC_TX allowing async_tx_find_channel() to
    > quickly locate compatible channels with the guarantee that dependency
    > chains will remain on one channel. When
    > ASYNC_TX_DISABLE_CHANNEL_SWITCH=n async_tx_find_channel() may select
    > channels that lead to operation chains that need to cross channel
    > boundaries using the async_tx channel switch capability.
    >
    > Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    > ---

    Signed-off-by: Maciej Sosnowski <maciej.sosnowski@intel.com>

    with one question:

    > + /* note: this only matters in the
    > + * CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y case
    > + */
    > + if (device_has_all_tx_types(device))
    > + dma_cap_set(DMA_ASYNC_TX, device->cap_mask);

    Why not to put this part plus device_has_all_tx_types()
    into #ifdef CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH then?

    Thanks,
    Maciej

    \
     
     \ /
      Last update: 2009-09-15 18:11    [from the cache]
    ©2003-2011 Jasper Spaans