Annotate geom modules with MODULE_VERSIONGEOM ELI may double ask the password during boot. Once at loader time, andonce at init time.This happens due a module loading bug. By default GEOM ELI ca
Annotate geom modules with MODULE_VERSIONGEOM ELI may double ask the password during boot. Once at loader time, andonce at init time.This happens due a module loading bug. By default GEOM ELI caches thepassword in the kernel, but without the MODULE_VERSION annotation, thekernel loads over the kernel module, even if the GEOM ELI was compiled intothe kernel. In this case, the newly loaded modulepurges/invalidates/overwrites the GEOM ELI's password cache, which causesthe double asking.MFC Note: There's a pc98 component to the original submission that isomitted here due to pc98 removal in head. This part will need to be revivedupon MFC.Reviewed by: impSubmitted by: opObtained from: opBSDMFC after: 1 weekDifferential Revision: https://reviews.freebsd.org/D14992
show more ...
sys/geom: adoption of SPDX licensing ID tags.Mainly focus on files that use BSD 2-Clause license, however the tool Iwas using misidentified many licenses so this was mostly a manual - errorprone
sys/geom: adoption of SPDX licensing ID tags.Mainly focus on files that use BSD 2-Clause license, however the tool Iwas using misidentified many licenses so this was mostly a manual - errorprone - task.The Software Package Data Exchange (SPDX) group provides a specificationto make it easier for automated tools to detect and summarize well knownopensource licenses. We are gradually adopting the specification, notingthat the tags are considered only advisory and do not, in any way,superceed or replace the license texts.
Merge GEOM direct dispatch changes from the projects/camlock branch.When safety requirements are met, it allows to avoid passing I/O requeststo GEOM g_up/g_down thread, executing them directly in
Merge GEOM direct dispatch changes from the projects/camlock branch.When safety requirements are met, it allows to avoid passing I/O requeststo GEOM g_up/g_down thread, executing them directly in the caller context.That allows to avoid CPU bottlenecks in g_up/g_down threads, plus avoidseveral context switches per I/O.The defined now safety requirements are: - caller should not hold any locks and should be reenterable; - callee should not depend on GEOM dual-threaded concurency semantics; - on the way down, if request is unmapped while callee doesn't support it, the context should be sleepable; - kernel thread stack usage should be below 50%.To keep compatibility with GEOM classes not meeting above requirementsnew provider and consumer flags added: - G_CF_DIRECT_SEND -- consumer code meets caller requirements (request); - G_CF_DIRECT_RECEIVE -- consumer code meets callee requirements (done); - G_PF_DIRECT_SEND -- provider code meets caller requirements (done); - G_PF_DIRECT_RECEIVE -- provider code meets callee requirements (request).Capable GEOM class can set them, allowing direct dispatch in cases whereit is safe. If any of requirements are not met, request is queued tog_up or g_down thread same as before.Such GEOM classes were reviewed and updated to support direct dispatch:CONCAT, DEV, DISK, GATE, MD, MIRROR, MULTIPATH, NOP, PART, RAID, STRIPE,VFS, ZERO, ZFS::VDEV, ZFS::ZVOL, all classes based on g_slice KPI (LABEL,MAP, FLASHMAP, etc).To declare direct completion capability disk(9) KPI got new flag equivalentto G_PF_DIRECT_SEND -- DISKFLAG_DIRECT_COMPLETION. da(4) and ada(4) diskdrivers got it set now thanks to earlier CAM locking work.This change more then twice increases peak block storage performance onsystems with manu CPUs, together with earlier CAM locking changes reachingmore then 1 million IOPS (512 byte raw reads from 16 SATA SSDs on 4 HBAs to256 user-level threads).Sponsored by: iXsystems, Inc.MFC after: 2 months
MFprojects/camlock r254895:Add unmapped BIO support to GEOM ZERO if kern.geom.zero.clear is cleared.
Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.The SYSCTL_NODE macro defines a list that stores all child-elements ofthat node. If there's no SYSCTL_DECL macro anywhere else,
Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.The SYSCTL_NODE macro defines a list that stores all child-elements ofthat node. If there's no SYSCTL_DECL macro anywhere else, there's noreason why it shouldn't be static.
In g_zero_destroy_geom(), return 0 instead of EBUSY in the success case.EBUSY was probably used as a workaround for the deadlock fixed in r207671.Approved by: pjdX-MFC after: r207671
Remove trailing spaces.
Move $FreeBSD$ from comment to __FBSDID().
- Allow to specify the byte which will be used for filling read buffer.- Improve sysctl description a bit.Submitted by: Ivan Voras <[email protected]>
Add a very simple and small GEOM class - ZERO.It creates very huge provider (41PB) /dev/gzero.On BIO_READ request it zero-fills bio_data and on BIO_WRITE it does nothing.You can also set kern.geom
Add a very simple and small GEOM class - ZERO.It creates very huge provider (41PB) /dev/gzero.On BIO_READ request it zero-fills bio_data and on BIO_WRITE it does nothing.You can also set kern.geom.zero.clear sysctl to 0 to do nothing even forBIO_READ.I'm using it for performance testing where it is very helpful.MFC after: 3 days