Re: [PATCH/RFC] SPI: add DMAUNSAFE analog to David Brownell's core

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux