• Alexander Duyck's avatar
    igb: update driver to make use of DMA_ATTR_SKIP_CPU_SYNC · 5be59554
    Alexander Duyck authored
    The ARM architecture provides a mechanism for deferring cache line
    invalidation in the case of map/unmap.  This patch makes use of this
    mechanism to avoid unnecessary synchronization.
    
    A secondary effect of this change is that the portion of the page that
    has been synchronized for use by the CPU should be writable and could be
    passed up the stack (at least on ARM).
    
    The last bit that occurred to me is that on architectures where the
    sync_for_cpu call invalidates cache lines we were prefetching and then
    invalidating the first 128 bytes of the packet.  To avoid that I have
    moved the sync up to before we perform the prefetch and allocate the
    skbuff so that we can actually make use of it.
    
    Link: http://lkml.kernel.org/r/20161110113611.76501.98897.stgit@ahduyck-blue-test.jf.intel.comSigned-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
    Acked-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
    Cc: Chris Metcalf <cmetcalf@mellanox.com>
    Cc: David Howells <dhowells@redhat.com>
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Cc: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no>
    Cc: Helge Deller <deller@gmx.de>
    Cc: James Hogan <james.hogan@imgtec.com>
    Cc: Jonas Bonn <jonas@southpole.se>
    Cc: Keguang Zhang <keguang.zhang@gmail.com>
    Cc: Ley Foon Tan <lftan@altera.com>
    Cc: Mark Salter <msalter@redhat.com>
    Cc: Max Filippov <jcmvbkbc@gmail.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Michal Simek <monstr@monstr.eu>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: Rich Felker <dalias@libc.org>
    Cc: Richard Kuo <rkuo@codeaurora.org>
    Cc: Russell King <linux@armlinux.org.uk>
    Cc: Steven Miao <realmz6@gmail.com>
    Cc: Tobias Klauser <tklauser@distanz.ch>
    Cc: Vineet Gupta <vgupta@synopsys.com>
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    5be59554
igb_main.c 223 KB