<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/tests, branch releng/12.2</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.2'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2020-09-28T00:23:59Z</updated>
<entry>
<title>MF stable/12 r366190:</title>
<updated>2020-09-28T00:23:59Z</updated>
<author>
<name>Alan Somers</name>
<email>asomers@FreeBSD.org</email>
</author>
<published>2020-09-28T00:23:59Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=df309babcf29db1895ec5fe6bc7f5289231a3b31'/>
<id>urn:sha1:df309babcf29db1895ec5fe6bc7f5289231a3b31</id>
<content type='text'>
fusefs: fix mmap'd writes in direct_io mode

If a FUSE server returns FOPEN_DIRECT_IO in response to FUSE_OPEN, that
instructs the kernel to bypass the page cache for that file. This feature
is also known by libfuse's name: "direct_io".

However, when accessing a file via mmap, there is no possible way to bypass
the cache completely. This change fixes a deadlock that would happen when
an mmap'd write tried to invalidate a portion of the cache, wrongly assuming
that a write couldn't possibly come from cache if direct_io were set.

Arguably, we could instead disable mmap for files with FOPEN_DIRECT_IO set.
But allowing it is less likely to cause user complaints, and is more in
keeping with the spirit of open(2), where O_DIRECT instructs the kernel to
"reduce", not "eliminate" cache effects.

PR:		247276
Approved by:	re (gjb)
Reported by:	trapexit@spawn.link
Reviewed by:	cem
Differential Revision:	https://reviews.freebsd.org/D26485
</content>
</entry>
<entry>
<title>MFS r365689,r365808,r365860</title>
<updated>2020-09-19T20:46:56Z</updated>
<author>
<name>Allan Jude</name>
<email>allanjude@FreeBSD.org</email>
</author>
<published>2020-09-19T20:46:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2967f72f70ce858090ddb8f74408093a3e7f933f'/>
<id>urn:sha1:2967f72f70ce858090ddb8f74408093a3e7f933f</id>
<content type='text'>
MFOpenZFS: Introduce read/write kstats per dataset

The following patch introduces a few statistics on reads and writes
grouped by dataset. These statistics are implemented as kstats
(backed by aggregate sums for performance) and can be retrieved by
using the dataset objset ID number. The motivation for this change is
to provide some preliminary analytics on dataset usage/performance.

Reviewed-by: Richard Elling &lt;Richard.Elling@RichardElling.com&gt;
Reviewed-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Reviewed by: Matthew Ahrens &lt;mahrens@delphix.com&gt;
Signed-off-by: Serapheim Dimitropoulos &lt;serapheim@delphix.com&gt;

openzfs/zfs@a448a2557ec4938ed6944c7766fe0b8e6e5f6456

Also contains parts of:
MFOpenZFS: Connect dataset_kstats for FreeBSD

Example output:
kstat.zfs.mypool.dataset.objset-0x10b.nread: 150528
kstat.zfs.mypool.dataset.objset-0x10b.reads: 48
kstat.zfs.mypool.dataset.objset-0x10b.nwritten: 134217728
kstat.zfs.mypool.dataset.objset-0x10b.writes: 1024
kstat.zfs.mypool.dataset.objset-0x10b.dataset_name: mypool/datasetname

Reviewed-by: Ryan Moeller &lt;ryan@iXsystems.com&gt;
Reviewed by: Sean Eric Fagan &lt;sef@ixsystems.com&gt;
Reviewed-by: Serapheim Dimitropoulos &lt;serapheim@delphix.com&gt;
Reviewed-by: Brian Behlendorf &lt;behlendorf1@llnl.gov&gt;
Signed-off-by: Allan Jude &lt;allan@klarasystems.com&gt;

openzfs/zfs@4547fc4e071ceb1818b3a46c3035b923e06e5390

Approved by:	re (gjb)
Relnotes:	yes
Sponsored by:	Klara Inc.
</content>
</entry>
<entry>
<title>MFC r360509: geli tests require OpenSSL - exclude them under WITHOUT_OPENSSL</title>
<updated>2020-08-17T17:48:28Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2020-08-17T17:48:28Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f99a06e55e280af9a3ffc34cd732ed270343e59c'/>
<id>urn:sha1:f99a06e55e280af9a3ffc34cd732ed270343e59c</id>
<content type='text'>
PR:		245931
Submitted by:	The FreeBSD Foundation
</content>
</entry>
<entry>
<title>MFC r359836-r359837, r359891, r360236-r360237: close_range(2)</title>
<updated>2020-08-05T03:53:57Z</updated>
<author>
<name>Kyle Evans</name>
<email>kevans@FreeBSD.org</email>
</author>
<published>2020-08-05T03:53:57Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a80adba5ab46ba6d44d5abfc9b7f3b6de8afda55'/>
<id>urn:sha1:a80adba5ab46ba6d44d5abfc9b7f3b6de8afda55</id>
<content type='text'>
This commit diverges from our usual procedure of committing generated files
separately because the original commit, r359836, conflated userland use (in
tests) with the implementation.

__FreeBSD_version was already bumped ~15 hours prior to this MFC, 1201522
marks the introduction of close_range.

CPython will use this syscall for some pretty sizable performance gains.

r359836:
Implement a close_range(2) syscall

close_range(min, max, flags) allows for a range of descriptors to be
closed. The Python folk have indicated that they would much prefer this
interface to closefrom(2), as the case may be that they/someone have special
fds dup'd to higher in the range and they can't necessarily closefrom(min)
because they don't want to hit the upper range, but relocating them to lower
isn't necessarily feasible.

sys_closefrom has been rewritten to use kern_close_range() using ~0U to
indicate closing to the end of the range. This was chosen rather than
requiring callers of kern_close_range() to hold FILEDESC_SLOCK across the
call to kern_close_range for simplicity.

The flags argument of close_range(2) is currently unused, so any flags set
is currently EINVAL. It was added to the interface in Linux so that future
flags could be added for, e.g., "halt on first error" and things of this
nature.

This patch is based on a syscall of the same design that is expected to be
merged into Linux.

r359837:
sysent: re-roll after introduction of close_range in r359836

r359891:
close_range/closefrom: fix regression from close_range introduction

close_range will clamp the range between [0, fdp-&gt;fd_lastfile], but failed
to take into account that fdp-&gt;fd_lastfile can become -1 if all fds are
closed. =-( In this scenario, just return because there's nothing further we
can do at the moment.

Add a test case for this, fork() and simply closefrom(0) twice in the child;
on the second invocation, fdp-&gt;fd_lastfile == -1 and will trigger a panic
before this change.

r360236:
close_range(2): use newly assigned AUE_CLOSERANGE

r360237:
sysent: re-roll after 360236 (AUE_CLOSERANGE used)
</content>
</entry>
<entry>
<title>MFC r363014:</title>
<updated>2020-07-24T18:19:25Z</updated>
<author>
<name>Alan Somers</name>
<email>asomers@FreeBSD.org</email>
</author>
<published>2020-07-24T18:19:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1f6cd7e2e894f7f21eacabcdff167d8b63bdc5d6'/>
<id>urn:sha1:1f6cd7e2e894f7f21eacabcdff167d8b63bdc5d6</id>
<content type='text'>
geli: enable direct dispatch

geli does all of its crypto operations in a separate thread pool, so
g_eli_start, g_eli_read_done, and g_eli_write_done don't actually do very
much work. Enabling direct dispatch eliminates the g_up/g_down bottlenecks,
doubling IOPs on my system. This change does not affect the thread pool.

Reviewed by:	markj
Sponsored by:	Axcient
Differential Revision:	https://reviews.freebsd.org/D25587
</content>
</entry>
<entry>
<title>MFC r363181:</title>
<updated>2020-07-22T14:24:41Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2020-07-22T14:24:41Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ed0f31c7223d3310356fe102f69c0410f3fa3525'/>
<id>urn:sha1:ed0f31c7223d3310356fe102f69c0410f3fa3525</id>
<content type='text'>
Add safexcel(4) to cryptotest.
</content>
</entry>
<entry>
<title>MFC r361401:</title>
<updated>2020-06-12T20:32:26Z</updated>
<author>
<name>Alan Somers</name>
<email>asomers@FreeBSD.org</email>
</author>
<published>2020-06-12T20:32:26Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=0d7775593337bbbbe8904ff46d55aec188d5e152'/>
<id>urn:sha1:0d7775593337bbbbe8904ff46d55aec188d5e152</id>
<content type='text'>
Fix issues with FUSE_ACCESS when default_permissions is disabled

This patch fixes two issues relating to FUSE_ACCESS when the
default_permissions mount option is disabled:

* VOP_ACCESS() calls with VADMIN set should never be sent to a fuse server
  in the form of FUSE_ACCESS operations. The FUSE protocol has no equivalent
  of VADMIN, so we must evaluate such things kernel-side, regardless of the
  default_permissions setting.

* The FUSE protocol only requires FUSE_ACCESS to be sent for two purposes:
  for the access(2) syscall and to check directory permissions for
  searchability during lookup. FreeBSD sends it much more frequently, due to
  differences between our VFS and Linux's, for which FUSE was designed. But
  this patch does eliminate several cases not required by the FUSE protocol:

  * for any FUSE_*XATTR operation
  * when creating a new file
  * when deleting a file
  * when setting timestamps, such as by utimensat(2).

* Additionally, when default_permissions is disabled, this patch removes one
  FUSE_GETATTR operation when deleting a file.

PR:		245689
Reported by:	MooseFS FreeBSD Team &lt;freebsd@moosefs.pro&gt;
Reviewed by:	cem
Differential Revision:	https://reviews.freebsd.org/D24777
</content>
</entry>
<entry>
<title>MFC r361223:</title>
<updated>2020-06-12T20:11:25Z</updated>
<author>
<name>Alan Somers</name>
<email>asomers@FreeBSD.org</email>
</author>
<published>2020-06-12T20:11:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=57386bdc56103453217a56fba91b9b59af029b34'/>
<id>urn:sha1:57386bdc56103453217a56fba91b9b59af029b34</id>
<content type='text'>
fusefs: fix intermittency in some ENOENT tests

When a FUSE operation other than LOOKUP returns ENOENT, the kernel will
reclaim that vnode, resuling in a FUSE_FORGET being sent a short while
later.  Many of the ENOENT tests weren't expecting those FUSE_FORGET
operations.  They usually passed by luck since FUSE_FORGET is often delayed.
This commit adds appropriate expectations.
</content>
</entry>
<entry>
<title>MFC r361286:</title>
<updated>2020-05-27T15:06:03Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2020-05-27T15:06:03Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=9520b0493313aa57b7d006b2067ed2ed9221c27f'/>
<id>urn:sha1:9520b0493313aa57b7d006b2067ed2ed9221c27f</id>
<content type='text'>
Avoid hard-coding pipe buffer sizes in the pipe and fifo kqueue tests.
</content>
</entry>
<entry>
<title>Fix a mismerge in r361454.</title>
<updated>2020-05-25T13:14:40Z</updated>
<author>
<name>Mark Johnston</name>
<email>markj@FreeBSD.org</email>
</author>
<published>2020-05-25T13:14:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=60426f7193402f00f50d78b32cb5ad2f1611ca1e'/>
<id>urn:sha1:60426f7193402f00f50d78b32cb5ad2f1611ca1e</id>
<content type='text'>
This is a direct commit to stable/12.

Reported by:	Jenkins
</content>
</entry>
</feed>
