Messages in this thread | | | Date | Fri, 26 Apr 2019 14:08:56 -0700 | From | Jakub Kicinski <> | Subject | Re: [PATCH 03/12] net: ll_temac: Fix support for 64-bit platforms |
| |
On Fri, 26 Apr 2019 22:59:12 +0200, Andrew Lunn wrote: > On Fri, Apr 26, 2019 at 11:40:13AM -0700, Jakub Kicinski wrote: > > On Fri, 26 Apr 2019 09:32:22 +0200, Esben Haabendal wrote: > > > The use of buffer descriptor APP4 field (32-bit) for storing skb pointer > > > obviously does not work on 64-bit platforms. > > > As APP3 is also unused, we can use that to store the other half of 64-bit > > > pointer values. > > > > > > Contrary to what is hinted at in commit message of commit 15bfe05c8d63 > > > ("net: ethernet: xilinx: Mark XILINX_LL_TEMAC broken on 64-bit") > > > there are no other pointers stored in cdmac_bd. > > > > > > Signed-off-by: Esben Haabendal <esben@geanix.com> > > > > This is a bit strange, the driver stores the host's virtual address into > > the HW descriptor? > > Hi Jukub
I need to start keeping track of all the ways my name gets spelled :) I find it entertaining :)
> This is reasonably common. You need some sort of cookie which links > the hardware descriptor to the skbuf it points to. The hardware makes > no use of it, it is just a cookie.
Right, but accesses to HW descriptor memory ring are significantly more expensive, especially on platforms which are not coherent with DMA operations (everything but x86?)
A preferable design is to have two descriptor rings - one for HW descriptors and one for software context, no?
| |