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]
Date: Fri, 9 Feb 2024 14:29:01 +0000
From: Daniel Gomez <da.gomez@...sung.com>
To: "viro@...iv.linux.org.uk" <viro@...iv.linux.org.uk>,
	"brauner@...nel.org" <brauner@...nel.org>, "jack@...e.cz" <jack@...e.cz>,
	"hughd@...gle.com" <hughd@...gle.com>, "akpm@...ux-foundation.org"
	<akpm@...ux-foundation.org>
CC: "dagmcr@...il.com" <dagmcr@...il.com>, "linux-fsdevel@...r.kernel.org"
	<linux-fsdevel@...r.kernel.org>, "linux-kernel@...r.kernel.org"
	<linux-kernel@...r.kernel.org>, "linux-mm@...ck.org" <linux-mm@...ck.org>,
	"willy@...radead.org" <willy@...radead.org>, "hch@...radead.org"
	<hch@...radead.org>, "mcgrof@...nel.org" <mcgrof@...nel.org>, Pankaj Raghav
	<p.raghav@...sung.com>, "gost.dev@...sung.com" <gost.dev@...sung.com>,
	"Daniel Gomez" <da.gomez@...sung.com>
Subject: [RFC PATCH 0/9] shmem: fix llseek in hugepages

Hi,

The following series fixes the generic/285 and generic/436 fstests for huge
pages (huge=always). These are tests for llseek (SEEK_HOLE and SEEK_DATA).

The implementation to fix above tests is based on iomap per-block tracking for
uptodate and dirty states but applied to shmem uptodate flag.

The motivation is to avoid any regressions in tmpfs once it gets support for
large folios.

Testing with kdevops
Testing has been performed using fstests with kdevops for the v6.8-rc2 tag.
There are currently different profiles supported [1] and for each of these,
a baseline of 20 loops has been performed with the following failures for
hugepages profiles: generic/080, generic/126, generic/193, generic/245,
generic/285, generic/436, generic/551, generic/619 and generic/732.

If anyone interested, please find all of the failures in the expunges directory:
https://github.com/linux-kdevops/kdevops/tree/master/workflows/fstests/expunges/6.8.0-rc2/tmpfs/unassigned

[1] tmpfs profiles supported in kdevops: default, tmpfs_noswap_huge_never,
tmpfs_noswap_huge_always, tmpfs_noswap_huge_within_size,
tmpfs_noswap_huge_advise, tmpfs_huge_always, tmpfs_huge_within_size and
tmpfs_huge_advise.

More information:
https://github.com/linux-kdevops/kdevops/tree/master/workflows/fstests/expunges/6.8.0-rc2/tmpfs/unassigned

All the patches has been tested on top of v6.8-rc2 and rebased onto latest next
tag available (next-20240209).

Daniel

Daniel Gomez (8):
  shmem: add per-block uptodate tracking for hugepages
  shmem: move folio zero operation to write_begin()
  shmem: exit shmem_get_folio_gfp() if block is uptodate
  shmem: clear_highpage() if block is not uptodate
  shmem: set folio uptodate when reclaim
  shmem: check if a block is uptodate before splice into pipe
  shmem: clear uptodate blocks after PUNCH_HOLE
  shmem: enable per-block uptodate

Pankaj Raghav (1):
  splice: don't check for uptodate if partially uptodate is impl

 fs/splice.c |  17 ++-
 mm/shmem.c  | 340 ++++++++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 332 insertions(+), 25 deletions(-)

-- 
2.43.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ