lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240714200050.902013-1-Jason@zx2c4.com>
Date: Sun, 14 Jul 2024 22:00:50 +0200
From: "Jason A. Donenfeld" <Jason@...c4.com>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-kernel@...r.kernel.org
Subject: [GIT PULL] random number generator updates for 6.11-rc1

Hi Linus,

Here's the vDSO getrandom() work we've been discussing for the last few weeks.
Thank you very much for your input on this and for working with me to get this
where it is. I'm happy with the set of compromises, and I think this wound up
in a decent place. A blurb for the merge message:

This is a short series adding getrandom() support to the vDSO. First, it adds a
new kind of mapping to mmap(2), MAP_DROPPABLE, which lets the kernel zero out
pages anytime under memory pressure, which enables allocating memory that never
gets swapped to disk but also doesn't count as being mlocked. Then, the vDSO
implementation of getrandom() is introduced in a generic manner and hooked into
random.c. Next, this is implemented on x86. (Also, though it's not ready for
this pull, somebody has begun an arm64 implementation already.) Finally, two
vDSO selftests are added.

Each version of this series has been in linux-next for a little bit, and there
are no major reported issues, though there may be a trivial merge conflict.

Please pull, and thanks again for your input on this.

Thanks,
Jason

The following changes since commit 8a18fda0febb7790de20ec1c3b4522ce026be1c6:

  Merge tag 'spi-fix-v6.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi (2024-07-11 12:07:50 -0700)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/linux/kernel/git/crng/random.git tags/random-6.11-rc1-for-linus

for you to fetch changes up to 41c32169260827f81a55f5c832c4b334ad4c3586:

  selftests/vDSO: add tests for vgetrandom (2024-07-12 03:31:01 +0200)

----------------------------------------------------------------
Random number generator updates for Linux 6.11-rc1.
----------------------------------------------------------------

Jason A. Donenfeld (4):
      mm: add MAP_DROPPABLE for designating always lazily freeable mappings
      random: introduce generic vDSO getrandom() implementation
      x86: vdso: Wire up getrandom() vDSO implementation
      selftests/vDSO: add tests for vgetrandom

 MAINTAINERS                                        |   4 +
 arch/x86/Kconfig                                   |   1 +
 arch/x86/entry/vdso/Makefile                       |   3 +-
 arch/x86/entry/vdso/vdso.lds.S                     |   2 +
 arch/x86/entry/vdso/vgetrandom-chacha.S            | 178 +++++++++++++
 arch/x86/entry/vdso/vgetrandom.c                   |  17 ++
 arch/x86/include/asm/vdso/getrandom.h              |  55 ++++
 arch/x86/include/asm/vdso/vsyscall.h               |   2 +
 arch/x86/include/asm/vvar.h                        |  16 ++
 drivers/char/random.c                              |  18 +-
 fs/proc/task_mmu.c                                 |   1 +
 include/linux/mm.h                                 |   7 +
 include/linux/userfaultfd_k.h                      |   3 +
 include/trace/events/mmflags.h                     |   7 +
 include/uapi/linux/mman.h                          |   1 +
 include/uapi/linux/random.h                        |  15 ++
 include/vdso/datapage.h                            |  11 +
 include/vdso/getrandom.h                           |  46 ++++
 lib/vdso/Kconfig                                   |   5 +
 lib/vdso/getrandom.c                               | 251 ++++++++++++++++++
 mm/ksm.c                                           |   2 +-
 mm/madvise.c                                       |   5 +-
 mm/memory.c                                        |   4 +
 mm/mempolicy.c                                     |   3 +
 mm/mlock.c                                         |   2 +-
 mm/mmap.c                                          |  30 +++
 mm/rmap.c                                          |  22 +-
 mm/vmscan.c                                        |   9 -
 tools/include/asm/rwonce.h                         |   0
 tools/include/uapi/linux/mman.h                    |   1 +
 tools/testing/selftests/mm/.gitignore              |   1 +
 tools/testing/selftests/mm/Makefile                |   1 +
 tools/testing/selftests/mm/droppable.c             |  53 ++++
 tools/testing/selftests/vDSO/.gitignore            |   2 +
 tools/testing/selftests/vDSO/Makefile              |  18 ++
 tools/testing/selftests/vDSO/vdso_test_chacha.c    |  43 +++
 tools/testing/selftests/vDSO/vdso_test_getrandom.c | 288 +++++++++++++++++++++
 37 files changed, 1110 insertions(+), 17 deletions(-)
 create mode 100644 arch/x86/entry/vdso/vgetrandom-chacha.S
 create mode 100644 arch/x86/entry/vdso/vgetrandom.c
 create mode 100644 arch/x86/include/asm/vdso/getrandom.h
 create mode 100644 include/vdso/getrandom.h
 create mode 100644 lib/vdso/getrandom.c
 create mode 100644 tools/include/asm/rwonce.h
 create mode 100644 tools/testing/selftests/mm/droppable.c
 create mode 100644 tools/testing/selftests/vDSO/vdso_test_chacha.c
 create mode 100644 tools/testing/selftests/vDSO/vdso_test_getrandom.c

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ