linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* remove block layer bounce buffering v2
@ 2025-05-05  8:11 Christoph Hellwig
  2025-05-05  8:11 ` [PATCH 1/7] scsi: make aha152x depend on !HIGHMEM Christoph Hellwig
                   ` (8 more replies)
  0 siblings, 9 replies; 16+ messages in thread
From: Christoph Hellwig @ 2025-05-05  8:11 UTC (permalink / raw)
  To: Jens Axboe
  Cc: Martin K. Petersen, Juergen E. Fischer, Alan Stern,
	Andrew Morton, linux-block, linux-scsi, linux-usb, usb-storage,
	linux-mm

Hi all,

the block layer bounce buffering from the early days of highmem keeps
being a wart in the block layer despite usage by only four drivers,
all through the SCSI layer.  One of them is an old PIO-only ISA
card, two are parallel port adapters, and the fourth is the usb-storage
driver.

This series makes the first three depend on !HIGHMEM and for the fourth
rejects the probe only when used on highmem system and the HCD is one
of the few annoying one that does not support DMA.

This is not the most pretty way to do things, but none of the driver
maintainers stepped up to convert them to properly kmapping buffers
before doing PIO or MMIO operations it does shift the burden to these
drivers and might get them to actually move that way if there are any
users of the drivers, or in case of usb-storage configurations left.

A nice benefit is that we remove the per-numa node stat used for the
number of bounce buffer operations.

Changes since v1:
 - return -EINVAL from usb-storage ->probe
 - improve the error message in usb-storage
 - improve comments in usb-storage

Diffstat:
 b/arch/mips/configs/gcw0_defconfig  |    1 
 b/block/Makefile                    |    1 
 b/block/blk-map.c                   |    5 
 b/block/blk-mq.c                    |    2 
 b/block/blk-settings.c              |    5 
 b/block/blk.h                       |   17 --
 b/drivers/base/node.c               |    2 
 b/drivers/scsi/Kconfig              |    3 
 b/drivers/scsi/aha152x.c            |    1 
 b/drivers/scsi/imm.c                |    1 
 b/drivers/scsi/ppa.c                |    1 
 b/drivers/scsi/scsi_lib.c           |    3 
 b/drivers/usb/storage/usb.c         |   20 +-
 b/fs/proc/meminfo.c                 |    3 
 b/include/linux/blk_types.h         |    1 
 b/include/linux/blkdev.h            |    5 
 b/include/linux/mmzone.h            |    1 
 b/include/scsi/scsi_host.h          |    2 
 b/include/trace/events/block.h      |   15 --
 b/include/uapi/linux/blktrace_api.h |    2 
 b/kernel/trace/blktrace.c           |    9 -
 b/mm/show_mem.c                     |    4 
 block/bounce.c                      |  267 ------------------------------------
 23 files changed, 24 insertions(+), 347 deletions(-)


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2025-05-05 19:23 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-05-05  8:11 remove block layer bounce buffering v2 Christoph Hellwig
2025-05-05  8:11 ` [PATCH 1/7] scsi: make aha152x depend on !HIGHMEM Christoph Hellwig
2025-05-05 10:16   ` John Garry
2025-05-05  8:11 ` [PATCH 2/7] scsi: make imm " Christoph Hellwig
2025-05-05 10:16   ` John Garry
2025-05-05  8:11 ` [PATCH 3/7] scsi: make ppa " Christoph Hellwig
2025-05-05 10:16   ` John Garry
2025-05-05  8:11 ` [PATCH 4/7] usb-storage: reject probe of device one non-DMA HCDs when using highmem Christoph Hellwig
2025-05-05 14:13   ` Alan Stern
2025-05-05  8:11 ` [PATCH 5/7] scsi: remove the no_highmem flag in the host Christoph Hellwig
2025-05-05 10:14   ` John Garry
2025-05-05  8:11 ` [PATCH 6/7] block: remove bounce buffering support Christoph Hellwig
2025-05-05 12:04   ` John Garry
2025-05-05  8:11 ` [PATCH 7/7] mm: remove NR_BOUNCE zone stat Christoph Hellwig
2025-05-05  8:41 ` remove block layer bounce buffering v2 Johannes Thumshirn
2025-05-05 19:23 ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox