Linux kernel source tree
Go to file
Omar Sandoval a4b333f227 btrfs: send: get send buffer pages for protocol v2
For encoded writes in send v2, we will get the encoded data with
btrfs_encoded_read_regular_fill_pages(), which expects a list of raw
pages. To avoid extra buffers and copies, we should read directly into
the send buffer. Therefore, we need the raw pages for the send buffer.

We currently allocate the send buffer with kvmalloc(), which may return
a kmalloc'd buffer or a vmalloc'd buffer. For vmalloc, we can get the
pages with vmalloc_to_page(). For kmalloc, we could use virt_to_page().
However, the buffer size we use (144K) is not a power of two, which in
theory is not guaranteed to return a page-aligned buffer, and in
practice would waste a lot of memory due to rounding up to the next
power of two. 144K is large enough that it usually gets allocated with
vmalloc(), anyways. So, for send v2, replace kvmalloc() with vmalloc()
and save the pages in an array.

Signed-off-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2022-07-25 17:45:32 +02:00
arch - Reorganize the perf LBR init code so that a TSX quirk is applied early 2022-07-24 09:55:53 -07:00
block block: fix missing blkcg_bio_issue_init 2022-07-14 10:54:49 -06:00
certs certs: make system keyring depend on x509 parser 2022-07-24 12:53:55 -07:00
crypto crypto: s390 - do not depend on CRYPTO_HW for SIMD implementations 2022-07-06 20:04:06 -07:00
Documentation * Check for invalid flags to KVM_CAP_X86_USER_SPACE_MSR 2022-07-23 10:22:26 -07:00
drivers - Make retbleed mitigations 64-bit only (32-bit will need a bit more 2022-07-24 09:40:17 -07:00
fs btrfs: send: get send buffer pages for protocol v2 2022-07-25 17:45:32 +02:00
include btrfs: send: add stream v2 definitions 2022-07-25 17:45:32 +02:00
init gcc-12: disable '-Warray-bounds' universally for now 2022-06-09 10:11:12 -07:00
ipc ipc: Free mq_sysctls if ipc namespace creation failed 2022-06-22 17:47:41 -05:00
kernel A single fix to correct a wrong BUG_ON() condition for deboosted tasks. 2022-07-24 09:50:53 -07:00
lib ubsan: disable UBSAN_DIV_ZERO for clang 2022-07-14 15:45:26 -07:00
LICENSES LICENSES/LGPL-2.1: Add LGPL-2.1-or-later as valid identifiers 2021-12-16 14:33:10 +01:00
mm mm: split huge PUD on wp_huge_pud fallback 2022-07-03 15:42:33 -07:00
net net/sched: cls_api: Fix flow action initialization 2022-07-20 10:54:27 +01:00
samples Fixes and minor clean ups for tracing: 2022-07-12 16:17:40 -07:00
scripts scripts/gdb: Fix gdb 'lx-symbols' command 2022-07-21 10:40:55 -07:00
security lockdown: Fix kexec lockdown bypass with ima policy 2022-07-20 09:56:48 -07:00
sound ASoC: Drop Rockchip BCLK management for v5.19 2022-07-15 12:31:07 +02:00
tools * Check for invalid flags to KVM_CAP_X86_USER_SPACE_MSR 2022-07-23 10:22:26 -07:00
usr Not a lot of material this cycle. Many singleton patches against various 2022-05-27 11:22:03 -07:00
virt KVM: x86: disable preemption around the call to kvm_arch_vcpu_{un|}blocking 2022-06-09 10:52:20 -04:00
.clang-format clang-format: Fix space after for_each macros 2022-05-20 19:27:16 +02:00
.cocciconfig
.get_maintainer.ignore Opt out of scripts/get_maintainer.pl 2019-05-16 10:53:40 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for dts files 2019-12-04 19:44:11 -08:00
.gitignore kbuild: split the second line of *.mod into *.usyms 2022-05-08 03:16:59 +09:00
.mailmap cxl fixes for 5.19-rc6 2022-07-08 12:55:25 -07:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: mark ARM/PALM TREO SUPPORT orphan 2022-07-07 15:17:00 +02:00
Kbuild kbuild: rename hostprogs-y/always to hostprogs/always-y 2020-02-04 01:53:07 +09:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS Pin control fixes for the v5.19 kernel cycle: 2022-07-22 12:24:04 -07:00
Makefile Linux 5.19-rc8 2022-07-24 13:26:27 -07:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.