1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/include
Ilya Dryomov 038b8d1d1a libceph: optionally use bounce buffer on recv path in crc mode
Both msgr1 and msgr2 in crc mode are zero copy in the sense that
message data is read from the socket directly into the destination
buffer.  We assume that the destination buffer is stable (i.e. remains
unchanged while it is being read to) though.  Otherwise, CRC errors
ensue:

  libceph: read_partial_message 0000000048edf8ad data crc 1063286393 != exp. 228122706
  libceph: osd1 (1)192.168.122.1:6843 bad crc/signature

  libceph: bad data crc, calculated 57958023, expected 1805382778
  libceph: osd2 (2)192.168.122.1:6876 integrity error, bad crc

Introduce rxbounce option to enable use of a bounce buffer when
receiving message data.  In particular this is needed if a mapped
image is a Windows VM disk, passed to QEMU.  Windows has a system-wide
"dummy" page that may be mapped into the destination buffer (potentially
more than once into the same buffer) by the Windows Memory Manager in
an effort to generate a single large I/O [1][2].  QEMU makes a point of
preserving overlap relationships when cloning I/O vectors, so krbd gets
exposed to this behaviour.

[1] "What Is Really in That MDL?"
    https://docs.microsoft.com/en-us/previous-versions/windows/hardware/design/dn614012(v=vs.85)
[2] https://blogs.msmvps.com/kernelmustard/2005/05/04/dummy-pages/

URL: https://bugzilla.redhat.com/show_bug.cgi?id=1973317
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
2022-02-02 18:50:36 +01:00
..
acpi USB/Thunderbolt changes for 5.17-rc1 2022-01-12 11:27:57 -08:00
asm-generic bitmap patches for 5.17-rc1 2022-01-23 06:20:44 +02:00
clocksource ARM: 2021-11-02 11:24:14 -07:00
crypto lib/crypto: blake2s: move hmac construction into wireguard 2022-01-18 13:03:55 +01:00
drm Merge tag 'drm-msm-next-2021-12-26' of ssh://gitlab.freedesktop.org/drm/msm into drm-next 2021-12-29 14:02:44 +10:00
dt-bindings Char/Misc and other driver changes for 5.17-rc1 2022-01-14 16:02:28 +01:00
keys keys: X.509 public key issuer lookup without AKID 2022-01-09 00:18:42 +02:00
kunit kunit: replace kernel.h with the necessary inclusions 2022-01-20 08:52:54 +02:00
kvm RISCV: 2022-01-16 16:15:14 +02:00
linux libceph: optionally use bounce buffer on recv path in crc mode 2022-02-02 18:50:36 +01:00
math-emu
media media: dmxdev: drop unneeded <linux/kernel.h> inclusion from other headers 2021-12-14 16:19:04 +01:00
memory memory: renesas-rpc-if: Add support for RZ/G2L 2021-11-16 12:09:11 +01:00
misc
net ipv4: remove sparse error in ip_neigh_gw4() 2022-01-27 08:38:33 -08:00
pcmcia
ras mm/hwpoison: remove MF_MSG_BUDDY_2ND and MF_MSG_POISONED_HUGE 2022-01-15 16:30:31 +02:00
rdma RDMA/core: Calculate UDP source port based on flow label or lqpn/rqpn 2022-01-07 19:34:01 -04:00
scsi Merge branch 'akpm' (patches from Andrew) 2022-01-22 11:28:23 +02:00
soc Networking changes for 5.17. 2022-01-10 19:06:09 -08:00
sound ASoC: Updates for v5.17 2022-01-10 14:33:42 +01:00
target
trace Tracing fixes for 5.17-rc1: 2022-01-28 19:30:35 +02:00
uapi TTY/Serial driver fixes for 5.17-rc2 2022-01-29 15:23:13 +02:00
vdso
video
xen xen: branch for v5.17-rc1 2022-01-12 16:42:00 -08:00