lkml.org 
[lkml]   [2005]   [Dec]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH/RFC] SPI: add DMAUNSAFE analog to David Brownell's core
    On Fri, Dec 16, 2005 at 01:23:32AM +0300, Vitaly Wool wrote:
    > Greg KH wrote:
    >
    > >On Thu, Dec 15, 2005 at 09:47:42AM +0300, Vitaly Wool wrote:
    > >
    > >
    > >>David Brownell wrote:
    > >>
    > >>
    > >>
    > >>>No, "stupid drivers will suffer"; nothing new. Just observe
    > >>>how the ads7846 touchscreen driver does small async transfers.
    > >>>
    > >>>
    > >>>
    > >>>
    > >>One cannot allocate memory in interrupt context, so the way to go is
    > >>allocating it on stack, thus the buffer is not DMA-safe.
    > >>Making it DMA-safe in thread that does the very message processing is a
    > >>good way of overcoming this.
    > >>Using preallocated buffer is not a good way, since it may well be
    > >>already used by another interrupt or not yet processed by the worker
    > >>thread (or tasklet, or whatever).
    > >>
    > >>
    > >
    > >Yes it is a good way. That's the way USB currently works in the kernel,
    > >and it works just fine. It keeps the rules simple and everyone knows
    > >what needs to be done.
    > >
    > >
    > Looking at my usbnet stuff, I can't share that opinion :-/
    > Are you really ready to lower the performance and quality of service
    > just for approach uniformity?

    What performance issues? As an example, USB has this rule, and we can
    saturate a 480Mbit line with a _userspace_ driver (loads of memcopy
    calles involved there.)

    > And, can you please point me out the examples of devices behind USB bus
    > that need to write registers from an interrupt context?

    usb to serial drivers need to allocate buffers for their write functions
    as they can be called in irq context from a tty line dicipline, which
    causes a USB packet to be dynamically created and sent to the USB core.
    I also think the USB network and ATM drivers have these requirements
    too, just search for GFP_ATOMIC in the drivers/usb/ directory to find
    these instances.

    Anyway, this is my last response about this issue. Please consider it
    over.

    thanks,

    greg k-h
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-12-16 00:05    [W:0.059 / U:0.100 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site