From: Mark Salter <msalter@redhat.com> To: Alan Stern <stern@rowland.harvard.edu> Cc: ming.lei@canonical.com, greg@kroah.com, linux-usb@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org, Russell King <linux@arm.linux.org.uk> Subject: Re: [PATCH] usb: ehci: make HC see up-to-date qh/qtd descriptor ASAP Date: Tue, 30 Aug 2011 14:45:34 -0400 [thread overview] Message-ID: <1314729936.2344.71.camel@deneb.redhat.com> (raw) In-Reply-To: <Pine.LNX.4.44L0.1108301312020.2109-100000@iolanthe.rowland.org> On Tue, 2011-08-30 at 13:15 -0400, Alan Stern wrote: > On Tue, 30 Aug 2011, Mark Salter wrote: > > > On Wed, 2011-08-31 at 00:03 +0800, ming.lei@canonical.com wrote: > > > +/* > > > + * Writing to dma coherent memory on ARM may be delayed via L2 > > > + * writing buffer, so introduce the helper which can flush L2 writing > > > + * buffer into memory immediately, especially used to flush ehci > > > + * descriptor to memory. > > > + * */ > > > +#ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE > > > +static inline void ehci_sync_mem() > > > +{ > > > + mb(); > > > +} > > > +#else > > > +static inline void ehci_sync_mem() > > > +{ > > > +} > > > +#endif > > > + > > > > I'm wondering if this doesn't really belong in the DMA API for any > > future architectures that can't avoid prolonged write buffering to DMA > > coherent memory. IIUC, ARM mitigates this for most drivers by including > > an implicit write buffer flush in the mmio write routines. This takes > > care of the drivers which write to a mmio device register after writing > > something to shared DMA memory. IIUC, this doesn't help ehci because the > > host controller is polling to see what the cpu writes to the shared > > memory. Other hardware which polls shared memory like that will likely > > have the same problem and could use buffer drain helpers as well. > > This would be a good thing to define centrally. Would you like to > post an RFC on LKML? Yes, I can take a stab at that. > > Do you know of any other examples of hardware that polls shared DMA > memory? Not offhand nor after a quick search. I don't think it is a common way of doing things. --Mark
WARNING: multiple messages have this Message-ID (diff)
From: msalter@redhat.com (Mark Salter) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH] usb: ehci: make HC see up-to-date qh/qtd descriptor ASAP Date: Tue, 30 Aug 2011 14:45:34 -0400 [thread overview] Message-ID: <1314729936.2344.71.camel@deneb.redhat.com> (raw) In-Reply-To: <Pine.LNX.4.44L0.1108301312020.2109-100000@iolanthe.rowland.org> On Tue, 2011-08-30 at 13:15 -0400, Alan Stern wrote: > On Tue, 30 Aug 2011, Mark Salter wrote: > > > On Wed, 2011-08-31 at 00:03 +0800, ming.lei at canonical.com wrote: > > > +/* > > > + * Writing to dma coherent memory on ARM may be delayed via L2 > > > + * writing buffer, so introduce the helper which can flush L2 writing > > > + * buffer into memory immediately, especially used to flush ehci > > > + * descriptor to memory. > > > + * */ > > > +#ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE > > > +static inline void ehci_sync_mem() > > > +{ > > > + mb(); > > > +} > > > +#else > > > +static inline void ehci_sync_mem() > > > +{ > > > +} > > > +#endif > > > + > > > > I'm wondering if this doesn't really belong in the DMA API for any > > future architectures that can't avoid prolonged write buffering to DMA > > coherent memory. IIUC, ARM mitigates this for most drivers by including > > an implicit write buffer flush in the mmio write routines. This takes > > care of the drivers which write to a mmio device register after writing > > something to shared DMA memory. IIUC, this doesn't help ehci because the > > host controller is polling to see what the cpu writes to the shared > > memory. Other hardware which polls shared memory like that will likely > > have the same problem and could use buffer drain helpers as well. > > This would be a good thing to define centrally. Would you like to > post an RFC on LKML? Yes, I can take a stab at that. > > Do you know of any other examples of hardware that polls shared DMA > memory? Not offhand nor after a quick search. I don't think it is a common way of doing things. --Mark
next prev parent reply other threads:[~2011-08-30 18:45 UTC|newest] Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-08-30 16:03 [PATCH] usb: ehci: make HC see up-to-date qh/qtd descriptor ASAP ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw 2011-08-30 16:03 ` ming.lei at canonical.com 2011-08-30 16:15 ` Alan Stern 2011-08-30 16:15 ` Alan Stern 2011-08-30 16:38 ` Mark Salter 2011-08-30 16:38 ` Mark Salter 2011-08-30 17:15 ` Alan Stern 2011-08-30 17:15 ` Alan Stern 2011-08-30 18:45 ` Mark Salter [this message] 2011-08-30 18:45 ` Mark Salter 2011-08-30 17:26 ` Will Deacon 2011-08-30 17:26 ` Will Deacon [not found] ` <20110830172642.GE3464-SGELLbQ0bobZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org> 2011-08-30 17:48 ` Greg KH 2011-08-30 17:48 ` Greg KH 2011-08-30 17:54 ` Will Deacon 2011-08-30 17:54 ` Will Deacon [not found] ` <20110830175432.GG3464-SGELLbQ0bobZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org> 2011-08-31 0:23 ` Chen Peter-B29397 2011-08-31 0:23 ` Chen Peter-B29397 2011-08-31 8:49 ` Will Deacon 2011-08-31 8:49 ` Will Deacon 2011-08-31 12:33 ` Chen Peter-B29397 2011-08-31 12:33 ` Chen Peter-B29397 2011-08-31 13:43 ` Mark Salter 2011-08-31 13:43 ` Mark Salter 2011-08-31 15:21 ` Will Deacon 2011-08-31 15:21 ` Will Deacon 2011-08-31 15:27 ` Mark Salter 2011-08-31 15:27 ` Mark Salter 2011-08-31 16:12 ` Marc Zyngier 2011-08-31 16:12 ` Marc Zyngier 2011-08-31 16:55 ` Marc Dietrich 2011-08-31 16:55 ` Marc Dietrich 2011-09-01 10:34 ` Marc Zyngier 2011-09-01 10:34 ` Marc Zyngier [not found] ` <4E5F5FA9.3010305-5wv7dgnIgG8@public.gmane.org> 2011-09-01 11:13 ` Marc Dietich 2011-09-01 11:13 ` Marc Dietich 2011-09-01 19:08 ` Stephen Warren 2011-09-01 19:08 ` Stephen Warren 2011-09-02 9:50 ` Marc Zyngier 2011-09-02 9:50 ` Marc Zyngier 2011-09-02 17:07 ` Stephen Warren 2011-09-02 17:07 ` Stephen Warren [not found] ` <74CDBE0F657A3D45AFBB94109FB122FF04B327A383-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org> 2011-09-02 11:13 ` Marc Dietich 2011-09-02 11:13 ` Marc Dietich 2011-08-31 17:46 ` Nicolas Pitre 2011-08-31 17:46 ` Nicolas Pitre 2011-08-31 17:51 ` Will Deacon 2011-08-31 17:51 ` Will Deacon [not found] ` <20110831175147.GI8777-SGELLbQ0bobZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org> 2011-08-31 18:19 ` Rob Herring 2011-08-31 18:19 ` Rob Herring 2011-08-31 18:35 ` Mark Salter 2011-08-31 18:35 ` Mark Salter 2011-08-31 18:49 ` Rob Herring 2011-08-31 18:49 ` Rob Herring [not found] ` <4E5E8230.9060307-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2011-08-31 18:58 ` Mark Salter 2011-08-31 18:58 ` Mark Salter 2011-08-31 19:35 ` Will Deacon 2011-08-31 19:35 ` Will Deacon 2011-09-08 22:41 ` Mark Salter 2011-09-08 22:41 ` Mark Salter [not found] ` <1315521779.2313.29.camel-PDpCo7skNiwAicBL8TP8PQ@public.gmane.org> 2011-10-31 6:49 ` Pandita, Vikram 2011-10-31 6:49 ` Pandita, Vikram 2011-08-31 0:56 ` Ming Lei 2011-08-31 0:56 ` Ming Lei 2011-09-01 23:16 ` Grant Grundler
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1314729936.2344.71.camel@deneb.redhat.com \ --to=msalter@redhat.com \ --cc=greg@kroah.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-omap@vger.kernel.org \ --cc=linux-usb@vger.kernel.org \ --cc=linux@arm.linux.org.uk \ --cc=ming.lei@canonical.com \ --cc=stern@rowland.harvard.edu \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.