#
494c0f2a |
| 16-Aug-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: mark HASBUF as an internal flag
There is no setter for cn_pnbuf.
|
#
de6fc2e3 |
| 15-Aug-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r364082 through r364250.
|
#
b38ad268 |
| 13-Aug-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: add missing pwd_drop on error in namei_setup
Reported by: pho
|
#
440cec3f |
| 12-Aug-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
2d0631dd |
| 11-Aug-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: stricter validation for flags passed to namei in cn_flags
namei de facto expects that the naimeidata object is properly initialized, but at the same time it mixes consumer-passable and internal
vfs: stricter validation for flags passed to namei in cn_flags
namei de facto expects that the naimeidata object is properly initialized, but at the same time it mixes consumer-passable and internal flags, while tolerating this part by explicitly clearing some of them.
Tighten the interface instead.
While here renumber the flags and denote the gap between the 2 variants.
Try to piggy back th renumber on the just bumped __FreeBSD_version.
show more ...
|
#
25e42ee2 |
| 10-Aug-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: drop the hello world stat probes from the vfs provider
Interested parties can get the same information by hoooking on vop_stat.
|
#
8460d754 |
| 10-Aug-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r364051 through r364081.
|
#
7f700801 |
| 10-Aug-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: disallow NOCACHE with LOOKUP
This means there is no expectation lookup will purge the terminal entry, which simplifies lockless lookup.
Tested by: pho Sponsored by: The FreeBSD Foundation
|
#
e383ec74 |
| 06-Aug-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r363739 through r363986.
|
#
158ab70c |
| 05-Aug-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: tidy up namei entry point
- predict for string copy errors - reshuffle inititalistion of vars which are not needed
|
#
85cf3161 |
| 01-Aug-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: inline NDINIT_ALL
The routine takes more than 6 arguments, which on amd64 means some of them have to be passed through the stack.
|
#
14576629 |
| 01-Aug-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: convert ni_rigthsneeded to a pointer
Shaves 8 bytes of struct nameidata on 64-bit platforms.
|
#
21c16260 |
| 01-Aug-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: make rights mandatory for NDINIT_ALL
|
#
c7aa572c |
| 31-Jul-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
17996960 |
| 31-Jul-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r363583 through r363738.
|
#
b1f910e0 |
| 30-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: short-circuit the common case NDFREE calls
Almost all consumers use the NDF_ONLY_PNBUF macro, making them avoidably branch a lot in the NDFREE routine. Also note most of them should not need to
vfs: short-circuit the common case NDFREE calls
Almost all consumers use the NDF_ONLY_PNBUF macro, making them avoidably branch a lot in the NDFREE routine. Also note most of them should not need to call any cleanup anyway as they don't request HASBUF.
show more ...
|
#
d3e63e8e |
| 30-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: make sure startdir_used is always assigned to before use
CID: 1431070
|
#
c42b77e6 |
| 25-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: lockless lookup
Provides full scalability as long as all visited filesystems support the lookup and terminal vnodes are different.
Inner workings are explained in the comment above cache_fploo
vfs: lockless lookup
Provides full scalability as long as all visited filesystems support the lookup and terminal vnodes are different.
Inner workings are explained in the comment above cache_fplookup.
Capabilities and fd-relative lookups are not supported and will result in immediate fallback to regular code.
Symlinks, ".." in the path, mount points without support for lockless lookup and mismatched counters will result in an attempt to get a reference to the directory vnode and continue in regular lookup. If this fails, the entire operation is aborted and regular lookup starts from scratch. However, care is taken that data is not copied again from userspace.
Sample benchmark: incremental -j 104 bzImage on tmpfs: before: 142.96s user 1025.63s system 4924% cpu 23.731 total after: 147.36s user 313.40s system 3216% cpu 14.326 total
Sample microbenchmark: access calls to separate files in /tmpfs, 104 workers, ops/s: before: 2165816 after: 151216530
Reviewed by: kib Tested by: pho (in a patchset) Differential Revision: https://reviews.freebsd.org/D25578
show more ...
|
#
422f38d8 |
| 10-Jul-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: fix trivial whitespace issues which don't interefere with blame
.. even without the -w switch
|
Revision tags: release/11.4.0 |
|
#
e43d33d2 |
| 05-Mar-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r358466 through r358677.
|
#
2f423bce |
| 01-Mar-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: stop taking additional refs on root vnode during lookup
They are spurious since introduction of struct pwd, which provides them implicitly.
Reviewed by: kib Differential Revision: https://revi
vfs: stop taking additional refs on root vnode during lookup
They are spurious since introduction of struct pwd, which provides them implicitly.
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D23885
show more ...
|
#
8d03b99b |
| 01-Mar-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
fd: move vnodes out of filedesc into a dedicated structure
The new structure is copy-on-write. With the assumption that path lookups are significantly more frequent than chdirs and chrooting this is
fd: move vnodes out of filedesc into a dedicated structure
The new structure is copy-on-write. With the assumption that path lookups are significantly more frequent than chdirs and chrooting this is a win.
This provides stable root and jail root vnodes without the need to reference them on lookup, which in turn means less work on globally shared structures. Note this also happens to fix a bug where jail vnode was never referenced, meaning subsequent access on lookup could run into use-after-free.
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D23884
show more ...
|
#
24a22d1d |
| 22-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge r358179 through r358238.
PR: 244251
|
#
721a81c3 |
| 21-Feb-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
vfs: stop duplicating vnode work in audit during path lookup
Duplicating the work was putting an avoidable requirement that the filedesc lock is held across the entire operation (otherwise by the ti
vfs: stop duplicating vnode work in audit during path lookup
Duplicating the work was putting an avoidable requirement that the filedesc lock is held across the entire operation (otherwise by the time audit reads vnode pointers another thread in the same process can chdir somewhere else, making audit log things using different vnode than the one which will be used for actual lookup).
Do the obvious thing and pass down vnodes which will be used.
show more ...
|
#
dca7f66f |
| 15-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357931 through r357965.
|