No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jason A. Donenfeld 1df5178fde random: schedule mix_interrupt_randomness() less often
commit 534d2eaf1970274150596fdd2bf552721e65d6b2 upstream.

It used to be that mix_interrupt_randomness() would credit 1 bit each
time it ran, and so add_interrupt_randomness() would schedule mix() to
run every 64 interrupts, a fairly arbitrary number, but nonetheless
considered to be a decent enough conservative estimate.

Since e3e33fc2ea7f ("random: do not use input pool from hard IRQs"),
mix() is now able to credit multiple bits, depending on the number of
calls to add(). This was done for reasons separate from this commit, but
it has the nice side effect of enabling this patch to schedule mix()
less often.

Currently the rules are:
a) Credit 1 bit for every 64 calls to add().
b) Schedule mix() once a second that add() is called.
c) Schedule mix() once every 64 calls to add().

Rules (a) and (c) no longer need to be coupled. It's still important to
have _some_ value in (c), so that we don't "over-saturate" the fast
pool, but the once per second we get from rule (b) is a plenty enough
baseline. So, by increasing the 64 in rule (c) to something larger, we
avoid calling queue_work_on() as frequently during irq storms.

This commit changes that 64 in rule (c) to be 1024, which means we
schedule mix() 16 times less often. And it does *not* need to change the
64 in rule (a).

Fixes: 58340f8e952b ("random: defer fast pool mixing to worker")
Cc: stable@vger.kernel.org
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-06-29 08:58:44 +02:00
arch arm64: mm: Don't invalidate FROM_DEVICE buffers at start of DMA transfer 2022-06-25 12:44:36 +02:00
block block: fix bio_clone_blkg_association() to associate with proper blkcg_gq 2022-06-14 18:11:50 +02:00
certs certs/blacklist_hashes.c: fix const confusion in certs blacklist 2022-06-22 14:11:22 +02:00
crypto crypto: drbg - make reseeding from get_random_bytes() synchronous 2022-06-22 14:11:18 +02:00
Documentation Revert "hwmon: Make chip parameter for with_info API mandatory" 2022-06-25 12:44:36 +02:00
drivers random: schedule mix_interrupt_randomness() less often 2022-06-29 08:58:44 +02:00
fs ext4: add reserved GDT blocks check 2022-06-22 14:11:23 +02:00
include vt: drop old FONT ioctls 2022-06-29 08:58:44 +02:00
init random: handle latent entropy and command line from random_init() 2022-06-22 14:11:17 +02:00
ipc ipc/mqueue: use get_tree_nodev() in mqueue_get_tree() 2022-06-14 18:11:41 +02:00
kernel dma-debug: make things less spammy under memory pressure 2022-06-22 14:11:19 +02:00
lib random: remove ratelimiting for in-kernel unseeded randomness 2022-06-22 14:11:17 +02:00
LICENSES
mm random: move randomize_page() into mm where it belongs 2022-06-22 14:11:17 +02:00
net tcp: drop the hash_32() part from the index calculation 2022-06-25 12:44:36 +02:00
samples
scripts faddr2line: Fix overlapping text section failures, the sequel 2022-06-22 14:11:22 +02:00
security efi: Do not import certificates from UEFI Secure Boot for T2 Macs 2022-06-14 18:11:44 +02:00
sound ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machine 2022-06-22 14:11:24 +02:00
tools netfilter: nat: really support inet nat without l3 address 2022-06-14 18:11:57 +02:00
usr
virt KVM: Prevent module exit until all VMs are freed 2022-04-15 14:18:27 +02:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: co-maintain random.c 2022-06-22 14:11:05 +02:00
Makefile Linux 5.4.201 2022-06-25 12:44:36 +02: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.