#
cd853791 |
| 28-Nov-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
Make MAXPHYS tunable. Bump MAXPHYS to 1M.
Replace MAXPHYS by runtime variable maxphys. It is initialized from MAXPHYS by default, but can be also adjusted with the tunable kern.maxphys.
Make b_pag
Make MAXPHYS tunable. Bump MAXPHYS to 1M.
Replace MAXPHYS by runtime variable maxphys. It is initialized from MAXPHYS by default, but can be also adjusted with the tunable kern.maxphys.
Make b_pages[] array in struct buf flexible. Size b_pages[] for buffer cache buffers exactly to atop(maxbcachebuf) (currently it is sized to atop(MAXPHYS)), and b_pages[] for pbufs is sized to atop(maxphys) + 1. The +1 for pbufs allow several pbuf consumers, among them vmapbuf(), to use unaligned buffers still sized to maxphys, esp. when such buffers come from userspace (*). Overall, we save significant amount of otherwise wasted memory in b_pages[] for buffer cache buffers, while bumping MAXPHYS to desired high value.
Eliminate all direct uses of the MAXPHYS constant in kernel and driver sources, except a place which initialize maxphys. Some random (and arguably weird) uses of MAXPHYS, e.g. in linuxolator, are converted straight. Some drivers, which use MAXPHYS to size embeded structures, get private MAXPHYS-like constant; their convertion is out of scope for this work.
Changes to cam/, dev/ahci, dev/ata, dev/mpr, dev/mpt, dev/mvs, dev/siis, where either submitted by, or based on changes by mav.
Suggested by: mav (*) Reviewed by: imp, mav, imp, mckusick, scottl (intermediate versions) Tested by: pho Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D27225
show more ...
|
Revision tags: release/12.2.0 |
|
#
f8503fde |
| 07-Oct-2020 |
Warner Losh <imp@FreeBSD.org> |
nvme: Note where the CCB was released for passthrough command
|
#
27dcd3d9 |
| 02-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
cam: clean up empty lines in .c and .h files
|
#
e2515283 |
| 27-Aug-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
de6fc2e3 |
| 15-Aug-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r364082 through r364250.
|
#
1c7decd4 |
| 12-Aug-2020 |
Alexander Motin <mav@FreeBSD.org> |
Report proper stripesize for nda(4).
Same as for nvd(4) report NPWG if present, otherise NOIOB.
MFC after: 1 week
|
Revision tags: release/11.4.0 |
|
#
1868c484 |
| 06-Jun-2020 |
Warner Losh <imp@FreeBSD.org> |
Add a tunable for the nvd symlink creation.
Some automation tries to detect if nvd or nda is in used, and the presence of both confuses it. Provide a knob to turn off nvd alias creation (kern.cam.nd
Add a tunable for the nvd symlink creation.
Some automation tries to detect if nvd or nda is in used, and the presence of both confuses it. Provide a knob to turn off nvd alias creation (kern.cam.nda.nvd_compat=0) for these situations. The default is the same: create the nvd compat link.
show more ...
|
#
ead4c1b4 |
| 06-Jun-2020 |
Warner Losh <imp@FreeBSD.org> |
Ensure that we send at least LBA range per TRIM.
|
#
fd26063f |
| 13-May-2020 |
Warner Losh <imp@FreeBSD.org> |
Add nvd alias back to nda now that it actually works.
|
#
4f397ed2 |
| 03-May-2020 |
Warner Losh <imp@FreeBSD.org> |
We need to hold the periph lock when we release the ccb (and when we run it). Make sure that we do. Simplify the flow a bit, and fix a comment since we do need to do these things.
Noticed by: cperci
We need to hold the periph lock when we release the ccb (and when we run it). Make sure that we do. Simplify the flow a bit, and fix a comment since we do need to do these things.
Noticed by: cperciva (not sure why my invariants kernel didn't trigger)
show more ...
|
#
2d76f4aa |
| 30-Apr-2020 |
Warner Losh <imp@FreeBSD.org> |
Fix three bugs highlighted by review:
- maxio should be dp->d_maxsize. This is often MAXPHYS, but not always (especially if MAXPHYS is > 1MB). - Unlock the periph before returning. We don't need t
Fix three bugs highlighted by review:
- maxio should be dp->d_maxsize. This is often MAXPHYS, but not always (especially if MAXPHYS is > 1MB). - Unlock the periph before returning. We don't need to relock it to release the ccb. - Make sure we release the ccb in error paths.
Reviewed by: cperciva
show more ...
|
#
2446ce7a |
| 30-Apr-2020 |
Warner Losh <imp@FreeBSD.org> |
Implement the NVME_GET_NSID and NVME_PASSTHROUGH_CMD ioctls
With these two ioctls implemented in the nda driver, nvmecontrol now works with nda just like it does with nvd. It eliminates the need to
Implement the NVME_GET_NSID and NVME_PASSTHROUGH_CMD ioctls
With these two ioctls implemented in the nda driver, nvmecontrol now works with nda just like it does with nvd. It eliminates the need to jump through odd hoops to get this data.
show more ...
|
#
75ce4227 |
| 28-Apr-2020 |
Warner Losh <imp@FreeBSD.org> |
Export the nda device's flags as a sysctl.
|
#
35c5ccf6 |
| 19-Mar-2020 |
David Bright <dab@FreeBSD.org> |
Fix parameter reversal potentially causing buffer overrun.
Two arguments were reversed in calls to cam_strvis() in nvme_da.c. This was found by a Coverity scan of this code within Dell (Isilon). The
Fix parameter reversal potentially causing buffer overrun.
Two arguments were reversed in calls to cam_strvis() in nvme_da.c. This was found by a Coverity scan of this code within Dell (Isilon). These are also marked in the FreeBSD Coverity scan as CIDs 1400526 & 1400531.
Submitted by: robert.herndon@dell.com Reviewed by: vangyzen@, imp@ MFC after: 3 days Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D24117
show more ...
|
#
75dfc66c |
| 27-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r358269 through r358399.
|
#
7029da5c |
| 26-Feb-2020 |
Pawel Biernacki <kaktus@FreeBSD.org> |
Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)
r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly mark
Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)
r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes.
This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags.
Mark all obvious cases as MPSAFE. All entries that haven't been marked as MPSAFE before are by default marked as NEEDGIANT
Approved by: kib (mentor, blanket) Commented by: kib, gallatin, melifaro Differential Revision: https://reviews.freebsd.org/D23718
show more ...
|
#
3c4ad300 |
| 17-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r358000 through r358048.
|
#
13532153 |
| 17-Feb-2020 |
Scott Long <scottl@FreeBSD.org> |
Add rudamentary support for UFS to probe whether a block device supports the BIO_SPEEDUP command. Add complimentary support to the CAM periphs that support it. This is a redo of r357710.
|
#
85eb41f7 |
| 10-Feb-2020 |
Scott Long <scottl@FreeBSD.org> |
Revert r357710 and 357711 until they can be debugged
|
#
7d99bda7 |
| 10-Feb-2020 |
Scott Long <scottl@FreeBSD.org> |
Add rudamentary support for UFS to probe whether a block device supports the BIO_SPEEDUP command. Add complimentary support to the CAM periphs that support it.
|
#
bc02c18c |
| 07-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357408 through r357661.
|
#
d176b803 |
| 07-Feb-2020 |
Scott Long <scottl@FreeBSD.org> |
Ever since the block layer expanded its command syntax beyond just BIO_READ and BIO_WRITE, we've handled this expanded syntax poorly in drivers when the driver doesn't support a particular command.
Ever since the block layer expanded its command syntax beyond just BIO_READ and BIO_WRITE, we've handled this expanded syntax poorly in drivers when the driver doesn't support a particular command. Do a sweep and fix that.
Reported by: imp
show more ...
|
#
359e4dba |
| 17-Dec-2019 |
Warner Losh <imp@FreeBSD.org> |
Revert r355831
It wasn't supposed to change the defaults, but actually does. Back this out until that can be sorted out.
|
#
211b0f2d |
| 17-Dec-2019 |
Warner Losh <imp@FreeBSD.org> |
NVME trim stuff.
Add two sysctls to control pacing of nvme trims. kern.cam.nda.X.goal_trim is the number of upper layer BIO_DEELETE requests to try to collecet before sending TRIM down too the nvme
NVME trim stuff.
Add two sysctls to control pacing of nvme trims. kern.cam.nda.X.goal_trim is the number of upper layer BIO_DEELETE requests to try to collecet before sending TRIM down too the nvme drive. trim_ticks is the number of ticks, at mosot, to wait for at least goal_trim BIOS_DELEETE requests to come in.
Trim pacing is useful when a large number off disjoint trims are comoing in from the upper layers. Since we have no way to chain toogether trims from the upper layers that are sent down, this acts as a hueristic to group trims into reasonable sized chunks. What's reasonable varies from drive to drive.
Sponsored by: Netflix
show more ...
|
#
b5961be1 |
| 09-Nov-2019 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Add GEOM attribute to report physical device name, and report it via 'diskinfo -v'. This avoids the need to track it down via CAM, and should also work for disks that don't use CAM. And since it's
Add GEOM attribute to report physical device name, and report it via 'diskinfo -v'. This avoids the need to track it down via CAM, and should also work for disks that don't use CAM. And since it's inherited thru the GEOM hierarchy, in most cases one doesn't need to walk the GEOM graph either, eg you can use it on a partition instead of disk itself.
Reviewed by: allanjude, imp Sponsored by: Klara Inc Differential Revision: https://reviews.freebsd.org/D22249
show more ...
|