This series of patches add support for 256-bit IO read and write. The APIs are readqq and writeqq (quad quadword - 4 x 64), that read and write 256-bits at a time from IO, respectively.
Patch 1 adds u256 type and adds necessary non-atomic accessors. Also adds byteorder conversion APIs. Patch 2 adds 256-bit read and write to x86 via VMOVDQU AVX CPU instructions. Patch 3 updates cxgb4 driver to use the readqq API to speed up reading on-chip memory 256-bits at a time. Feedback and suggestions will be much appreciated. Thanks, Rahul Rahul Lakkireddy (3): include/linux: add 256-bit IO accessors x86/io: implement 256-bit IO read and write cxgb4: read on-chip memory 256-bits at a time arch/x86/include/asm/io.h | 57 ++++++++++++++++++++++++- drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c | 16 +++---- drivers/net/ethernet/chelsio/cxgb4/cxgb4.h | 6 +++ include/linux/byteorder/generic.h | 48 +++++++++++++++++++++ include/linux/io-64-nonatomic-hi-lo.h | 59 ++++++++++++++++++++++++++ include/linux/io-64-nonatomic-lo-hi.h | 59 ++++++++++++++++++++++++++ include/linux/types.h | 7 +++ 7 files changed, 243 insertions(+), 9 deletions(-) -- 2.14.1