mm: gup: pack has_pinned in MMF_HAS_PINNED
Andrea Arcangeli authored
has_pinned 32bit can be packed in the MMF_HAS_PINNED bit as a noop
cleanup.

Any atomic_inc/dec to the mm cacheline shared by all threads in pin-fast
would reintroduce a loss of SMP scalability to pin-fast, so there's no
future potential usefulness to keep an atomic in the mm for this.

set_bit(MMF_HAS_PINNED) will be theoretically a bit slower than WRITE_ONCE
(atomic_set is equivalent to WRITE_ONCE), but the set_bit (just like
atomic_set after this commit) has to be still issued only once per "mm",
so the difference between the two will be lost in the noise.

will-it-scale "mmap2" shows no change in performance with enterprise
config as expected.

will-it-scale "pin_fast" retains the > 4000% SMP scalability performance
improvement against upstream as expected.

This is a noop as far as overall performance and SMP scalability are
concerned.

[peterx@redhat.com: pack has_pinned in MMF_HAS_PINNED]
  Link: https://lkml.kernel.org/r/YJqWESqyxa8OZA+2@t490s
[akpm@linux...
a458b76a
Name Last commit Last update
Documentation mm/page_reporting: export reporting order as module parameter
LICENSES LICENSES: Add the CC-BY-4.0 license
arch ia64: mca_drv: fix incorrect array size calculation
block Merge tag 'block-5.13-2021-05-22' of git://git.kernel.dk/linux-block
certs Merge tag 'kbuild-v5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
crypto async_xor: check src_offs is not NULL before updating it
drivers fs: remove noop_set_page_dirty()
fs mm: gup: pack has_pinned in MMF_HAS_PINNED
include mm: gup: pack has_pinned in MMF_HAS_PINNED
init pid: take a reference when initializing `cad_pid`
ipc ipc/mqueue, msg, sem: avoid relying on a stack reference past its expiry
kernel mm: gup: pack has_pinned in MMF_HAS_PINNED
lib slub: force on no_hash_pointers when slub_debug is enabled
mm mm: gup: pack has_pinned in MMF_HAS_PINNED
net libceph: set global_id as soon as we get an auth ticket
samples Merge tag 'vfio-v5.13-rc5' of git://github.com/awilliam/linux-vfio
scripts scripts/spelling.txt: add more spellings to spelling.txt
security trusted-keys: match tpm_get_ops on all return paths
sound ASoC: rt5645: Avoid upgrading static warnings to errors
tools mm/gup_benchmark: support threading
usr .gitignore: prefix local generated files with a slash
virt KVM: do not allow mapping valid but non-reference-counted pages
.clang-format clang-format: Update with the latest for_each macro list
.cocciconfig scripts: add Linux .cocciconfig for coccinelle
.get_maintainer.ignore Opt out of scripts/get_maintainer.pl
.gitattributes .gitattributes: use 'dts' diff driver for dts files
.gitignore .gitignore: ignore only top-level modules.builtin
.mailmap mailmap: add Marek's other e-mail address and identity without diacritics
COPYING COPYING: state that all contributions really are covered by this file
CREDITS MAINTAINERS: move Murali Karicheri to credits
Kbuild kbuild: rename hostprogs-y/always to hostprogs/always-y
Kconfig kbuild: ensure full rebuild when the compiler is updated
MAINTAINERS Merge branch 'akpm' (patches from Andrew)
Makefile Linux 5.13
README Drop all 00-INDEX files from Documentation/
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.