Go to file
Ritesh Harjani 70cc7eeb24 ext4: optimize file overwrites
In case if the file already has underlying blocks/extents allocated
then we don't need to start a journal txn and can directly return
the underlying mapping. Currently ext4_iomap_begin() is used by
both DAX & DIO path. We can check if the write request is an
overwrite & then directly return the mapping information.

This could give a significant perf boost for multi-threaded writes
specially random overwrites.
On PPC64 VM with simulated pmem(DAX) device, ~10x perf improvement
could be seen in random writes (overwrite). Also bcoz this optimizes
away the spinlock contention during jbd2 slab cache allocation
(jbd2_journal_handle). On x86 VM, ~2x perf improvement was observed.

Reported-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
Link: https://lore.kernel.org/r/88e795d8a4d5cd22165c7ebe857ba91d68d8813e.1600401668.git.riteshh@linux.ibm.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2022-11-12 11:24:42 +00:00
android
arch arm64: config: disable seccomp 2022-11-12 11:24:36 +00:00
block UPSTREAM: hrtimer: Consolidate hrtimer_init() + hrtimer_init_sleeper() calls 2022-11-12 11:23:54 +00:00
certs
crypto crypto: move Jitter RNG header include dir 2022-11-12 11:23:16 +00:00
Documentation UPSTREAM: locking/lockdep: Add explanation to lock usage rules in lockdep design doc 2022-11-12 11:23:42 +00:00
drivers power_supply: don't allocate attrname 2022-11-12 11:24:40 +00:00
firmware
fs ext4: optimize file overwrites 2022-11-12 11:24:42 +00:00
include sched: do not allocate window cpu arrays separately 2022-11-12 11:24:41 +00:00
init dma_buf: use kmem_cache pool for struct sync_file 2022-11-12 11:24:40 +00:00
ipc
kernel kthread: use buffer from the stack space 2022-11-12 11:24:41 +00:00
lib HACK: lib: Compile out nmi_backtrace for ARM64 2022-11-12 11:24:32 +00:00
LICENSES
mm mm: Don't hog the CPU and zone lock in rmqueue_bulk() 2022-11-12 11:24:20 +00:00
net tcp: Enable ECN negotiation by default 2022-11-12 11:24:36 +00:00
samples
scripts lto: Add Link Time Optimization support for GCC 2022-11-12 11:24:06 +00:00
security selinux: Avoid dynamic memory allocation for INITCONTEXTLEN buffers 2022-11-12 11:24:13 +00:00
sound ALSA: control_compat: Don't dynamically allocate single-use structs 2022-11-12 11:24:10 +00:00
techpack techpack: display: add some bp hints to hot paths 2022-11-12 11:24:41 +00:00
tools UPSTREAM: selftests/damon: support watermarks 2022-11-12 11:22:55 +00:00
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.gitmodules
.mailmap
AndroidKernel.mk
build.config.aarch64
build.config.allmodconfig
build.config.allmodconfig.aarch64
build.config.allmodconfig.arm
build.config.allmodconfig.x86_64
build.config.arm
build.config.common
build.config.gki
build.config.gki_kasan
build.config.gki_kasan.aarch64
build.config.gki_kasan.x86_64
build.config.gki_kprobes
build.config.gki_kprobes.aarch64
build.config.gki_kprobes.x86_64
build.config.gki-debug.aarch64
build.config.gki-debug.x86_64
build.config.gki.aarch64
build.config.gki.x86_64
build.config.goldfish.arm
build.config.goldfish.arm64
build.config.goldfish.mips
build.config.goldfish.mips64
build.config.goldfish.x86
build.config.goldfish.x86_64
build.config.x86_64
COPYING
CREDITS
gen_headers_arm64.bp
gen_headers_arm.bp
Kbuild
Kconfig
kernel_headers.py
MAINTAINERS BACKPORT: trace: events: add devfreq trace event file 2022-11-12 11:24:24 +00:00
Makefile Makefile: Enable opaque pointers mode 2022-11-12 11:24:35 +00:00
OWNERS
README
verity_dev_keys.x509

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.
See Documentation/00-INDEX for a list of what is contained in each file.

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.