• Christoph Hellwig's avatar
    mpage: stop using bdev_{read,write}_page · 7d286317
    Christoph Hellwig authored
    Patch series "remove ->rw_page".
    
    This series removes the ->rw_page block_device_operation, which is an old
    and clumsy attempt at a simple read/write fast path for the block layer. 
    It isn't actually used by the fastest block layer operations that we
    support (polled I/O through io_uring), but only used by the mpage buffered
    I/O helpers which are some of the slowest I/O we have and do not make any
    difference there at all, and zram which is a block device abused to
    duplicate the zram functionality.
    
    Given that zram is heavily used we need to make sure there is a good
    replacement for synchronous I/O, so this series adds a new flag for
    drivers that complete I/O synchronously and uses that flag to use on-stack
    bios and synchronous submission for them in the swap code.
    
    
    This patch (of 7):
    
    These are micro-optimizations for synchronous I/O, which do not matter
    compared to all the other inefficiencies in the legacy buffer_head based
    mpage code.
    
    Link: https://lkml.kernel.org/r/20230125133436.447864-1-hch@lst.de
    Link: https://lkml.kernel.org/r/20230125133436.447864-2-hch@lst.deSigned-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarDan Williams <dan.j.williams@intel.com>
    Cc: Keith Busch <kbusch@kernel.org>
    Cc: Dave Jiang <dave.jiang@intel.com>
    Cc: Ira Weiny <ira.weiny@intel.com>
    Cc: Jens Axboe <axboe@kernel.dk>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
    Cc: Vishal Verma <vishal.l.verma@intel.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    7d286317
mpage.c 18.2 KB