Commit Graph

11 Commits

Author SHA1 Message Date
Alan Somers
f05b724ecb Modernize geom_stats_snapshot_get
* A logically useless memset() is used to fault in some memory pages.
  Change it to explicit_bzero so the compiler won't eliminate it.

* Eliminate the second memset.  It made sense in the days of the Big
  Kernel Lock, but not in the days of fine-grained SMP and especially
  not in the days of VDSO.

MFC after:	2 weeks
Sponsored by:	Axcient
Reviewed by:	phk
Differential Revision:	https://reviews.freebsd.org/D29047
2021-03-04 07:45:48 -07:00
Alan Somers
ab63da3564 Speed up geom_stats_resync in the presence of many devices
The old code had a O(n) loop, where n is the size of /dev/devstat.
Multiply that by another O(n) loop in devstat_mmap for a total of
O(n^2).

This change adds DIOCGMEDIASIZE support to /dev/devstat so userland can
quickly determine the right amount of memory to map, eliminating the
O(n) loop in userland.

This change decreases the time to run "gstat -bI0.001" with 16,384 md
devices from 29.7s to 4.2s.

Also, fix a memory leak first reported as PR 203097.

Sponsored by:	Axcient
Reviewed by:	mav, imp
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D28968
2021-03-02 18:33:45 -07:00
Pedro F. Giffuni
5e53a4f90f lib: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I
was using mis-identified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.
2017-11-26 02:00:33 +00:00
Enji Cooper
3d98877013 Remove getpagesize(3) error checking added in r317312
getpagesize(3) no longer fails as of r317436.

MFC after:	3 days
Sponsored by:	Dell EMC Isilon
2017-05-28 00:28:11 +00:00
Enji Cooper
3bacccb6f1 Fix type for pagesize to match the return type for getpagesize(3)
to fix the build

MFC after:	5 weeks
X-MFC with:	r317311
Pointyhat to:	ngie
Sponsored by:	Dell EMC Isilon
2017-04-23 01:50:47 +00:00
Enji Cooper
2cebfa7bbf Check for failures from getpagesize(3)
Return errno on failure, similar to the open(2) call above it.

MFC after:	5 weeks
Reported by:	Coverity
CID:		1193753
Sponsored by:	Dell EMC Isilon
2017-04-23 01:47:51 +00:00
Enji Cooper
ae0cf296c9 Minor style(9) fixups
Delete trailing whitespace and sort headers.

Leave libgeom.h's placement alone, per reasoning in r317289.

MFC after:	5 weeks
Sponsored by:	Dell EMC Isilon
2017-04-23 01:17:59 +00:00
John Baldwin
2c2cd2c14c Explicitly specify MAP_SHARED when mapping the stats file descriptor.
Reviewed by:	kib
MFC after:	1 week
2014-09-17 19:37:58 +00:00
Poul-Henning Kamp
2892a228ad Use devstat instead of GEOM private statistics structure. 2003-03-18 09:53:46 +00:00
Poul-Henning Kamp
7bd4e7b4a0 Leak more stuff into libgeom. 2003-02-10 00:11:43 +00:00
Poul-Henning Kamp
e13db58757 Add libgeom to the system.
Initially this only contains the functions for accessing the I/O
statistics data.
2003-02-08 15:15:56 +00:00