| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
PR: 142174
Submitted by: Przemyslaw Laczynski <torindel@gmail.com>
Pointy hat to: rpaulo
Notes:
svn path=/head/; revision=201374
|
|
|
|
| |
Notes:
svn path=/head/; revision=201264
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix some wrong usages.
Note: this does not affect generated binaries as this argument is not used.
PR: 137213
Submitted by: Eygene Ryabinkin (initial version)
MFC after: 1 month
Notes:
svn path=/head/; revision=201145
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- For SSDs use TRIM feature of DATA SET MANAGEMENT command, as defined by
ACS-2 specification working draft.
- For CompactFlash use CFA ERASE command, same as ad(4) does.
With this patch, `newfs -E /dev/ada1` was able to restore write speed of
my heavily weared OCZ Vertex SSD (firmware 1.4) up to the initial level
for the most part of it's capacity. Previous 1.3 firmware, even reportiong
TRIM capabilty bit set, was not working, reporting ABORT error for every
DSM command.
I have no idea whether it is normal, but for some reason it takes 200ms
to handle any TRIM command on this drive, that was making delete extremely
slow. But TRIM command is able to accept long list of LBAs and the length of
that list seems doesn't affect it's execution time. Implemented request
clusting algorithm allowed me to rise delete rate up to reasonable numbers,
when many parallel DELETE requests running.
Notes:
svn path=/head/; revision=201139
|
|
|
|
|
|
|
| |
hoping that rest will fit.
Notes:
svn path=/head/; revision=200942
|
|
|
|
|
|
|
|
| |
underlying provider's stripe, multiplied by number of data disks in array,
due to transformation done, as array stripe.
Notes:
svn path=/head/; revision=200940
|
|
|
|
|
|
|
| |
components, hoping others fit, if they are not equal.
Notes:
svn path=/head/; revision=200935
|
|
|
|
|
|
|
| |
stripe (optimal access block) size and offset.
Notes:
svn path=/head/; revision=200934
|
|
|
|
| |
Notes:
svn path=/head/; revision=200933
|
|
|
|
|
|
|
| |
then maximal prepared UMA zone size. This fixes crash with MAXPHYS > 128K.
Notes:
svn path=/head/; revision=200821
|
|
|
|
| |
Notes:
svn path=/head/; revision=200539
|
|
|
|
|
|
|
| |
While there add more Apple and Linux partition types.
Notes:
svn path=/head/; revision=200534
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Instead of measuring last request execution time for each drive and
choosing one with smallest time, use averaged number of requests, running
on each drive. This information is more accurate and timely. It allows to
distribute load between drives in more even and predictable way.
- For each drive track offset of the last submitted request. If new request
offset matches previous one or close for some drive, prefer that drive.
It allows to significantly speedup simultaneous sequential reads.
PR: kern/113885
Reviewed by: sobomax
Notes:
svn path=/head/; revision=200086
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for specific "kinds" of disk labels - for example, GPT UUIDs. Reason
for this is that sometimes, other GEOM classes attach to these device
nodes instead of the proper ones - e.g. they attach to /dev/gptid/XXX
instead of /dev/ada0p2, which is annoying.
Reviewed by: pjd (earlier version)
MFC after: 1 month
Notes:
svn path=/head/; revision=199875
|
|
|
|
|
|
|
| |
MFC after: 1 week
Notes:
svn path=/head/; revision=199232
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a null pointer dereference with "gpart create -s GPT" after
the previous commit.
Reported by: Yuri Pankov
Pointyhat to: me
MFC after: 1 week
Notes:
svn path=/head/; revision=199228
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is valid for an on-disk GPT header to report a header size which is
greater than 92 bytes. Previously, we would read in the sector and copy
only the 92 bytes that we know how to deal with before calculating the
checksum for comparison. This meant that when we did the checksum, we
overshot the buffer and took in random memory, so the checksum would fail.
We now determine the size of the header and allocate enough space to
preserve the entire on-disk contents. This allows us to be correctly
calculate the checksum and be able to modify and write the header back
to the disk, while preserving data that we might not understand.
Reported by: Kris Weston
Approved by: marcel@
MFC after: 2 weeks
Notes:
svn path=/head/; revision=199017
|
|
|
|
|
|
|
|
|
|
|
| |
partitioned disk. Some BIOS require this to be set before they will
boot the device.
Approved by: marcel
MFC after: 2 weeks
Notes:
svn path=/head/; revision=198097
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
depend on on-disk metadata. This was we won't attach to providers that are used
by other classes. For example we don't want to configure partitions on da0 if
it is part of gmirror, what we really want is partitions on mirror/foo.
During regular work it works like this: if provider is open for writing a class
receives the spoiled event from GEOM and detaches, once provider is closed the
taste event is send again and class can rediscover its metadata if it is still
there. This doesn't work that way when new class arrives, because GEOM gives
all existing providers for it to taste, also those open for writing. Classes
have to decided on their own if they want to deal with such providers (eg.
geom_dev) or not (classes modified by this commit).
Reported by: des, Oliver Lehmann <lehmann@ans-netz.de>
Tested by: des, Oliver Lehmann <lehmann@ans-netz.de>
Discussed with: phk, marcel
Reviewed by: marcel
MFC after: 3 days
Notes:
svn path=/head/; revision=197898
|
|
|
|
| |
Notes:
svn path=/head/; revision=197767
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
code that merely emits an error and waits for a key press before
rebooting. The error being that extended partitions are not
bootable. The origin is presumed to be Windows 2000; Windows XP
does not do this...
For now, ignore the first 96 bytes when checking that the EBR is
(for the most part) all zeroes.
Tested by: Mario Lobo <mlobo@digiart.art.br>
MFC after: 1 week
Notes:
svn path=/head/; revision=197608
|
|
|
|
|
|
|
| |
that the index is within bounds.
Notes:
svn path=/head/; revision=197449
|
|
|
|
| |
Notes:
svn path=/head/; revision=196986
|
|
|
|
|
|
|
|
|
|
| |
It will be checked any way later by g_io_check() in g_io_schedule_down().
It is only needed here to not trigger panic from additional check, when
INVARIANTS enabled. So cover it with #ifdef INVARIANTS. It saves two
64bit divisions per request.
Notes:
svn path=/head/; revision=196964
|
|
|
|
|
|
|
|
|
| |
Remove msleep() timeout from g_io_schedule_up/down(). It works fine
without it, saving few percents of CPU on high request rates without
need to rearm callout twice per request.
Notes:
svn path=/head/; revision=196904
|
|
|
|
|
|
|
| |
Submitted by: Mel Flynn
Notes:
svn path=/head/; revision=196879
|
|
|
|
|
|
|
|
| |
instead. It is NULL change for GENERIC kernel, but allows 'fast' mode to
work on systems with increased MAXPHYS.
Notes:
svn path=/head/; revision=196837
|
|
|
|
|
|
|
|
|
|
| |
in serial number.
Discussed with: trasz
Obtained from: Wheel Sp. z o.o. (http://www.wheel.pl)
Notes:
svn path=/head/; revision=196823
|
|
|
|
| |
Notes:
svn path=/head/; revision=196580
|
|
|
|
|
|
|
| |
MFC after: 3 days
Notes:
svn path=/head/; revision=196579
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
by CHS addressing. Don't define these fields as 0xff, but rather define
them correctly. This prevents boot problems on PCs where GPT is being
used.
PR: 115406
Submitted by: Kent Hauser <kent@khauser.net>
Approved by: re (kib)
Notes:
svn path=/head/; revision=196333
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the access counts were not increased and decreased in equal numbers by
gvinum consumers, the read access count would be inconsistent with the write
access count. Instead, modify the read access count with the write access
count directly to prevent any inconsistencies.
Approved by: re (kib)
Notes:
svn path=/head/; revision=195752
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is invalid because the ioctl happens without prior open. The ioctl
got introduced to provide backward compatibility for extended
partitions, but it ended up not being used because it didn't work
as expected. Since there are no consumers of the ioctl and the
implementation is broken, the best fix is to remove the code
entirely.
Spotted by: phk
Approved by: re (kensmith)
Notes:
svn path=/head/; revision=195436
|
|
|
|
|
|
|
|
|
|
|
|
| |
with I/O requests in flight on kernels compiled with "options INVARIANTS".
Also, make it obvious it's not right to call g_valid_obj() (and macros
using it, e.g. G_VALID_CONSUMER()) without topology lock held.
Approved by: re (kib)
Reported by: pho
Notes:
svn path=/head/; revision=195257
|
|
|
|
|
|
|
|
|
|
| |
Previously, it would panic immediately.
Reviewed by: pjd
Approved by: re (kib)
Notes:
svn path=/head/; revision=195195
|
|
|
|
|
|
|
| |
PR: kern/135874
Notes:
svn path=/head/; revision=194924
|
|
|
|
|
|
|
| |
Rather just skip over it.
Notes:
svn path=/head/; revision=194811
|
|
|
|
|
|
|
|
| |
Approved by: gnn (mentor) (original)
Noticed by: stas
Notes:
svn path=/head/; revision=194433
|
|
|
|
|
|
|
|
|
|
| |
Approved by: gnn (mentor)
Reviewed by: pjd
PR: 128398
Submitted by: Marius Nuennerich < marius at nuenneri.ch >
Notes:
svn path=/head/; revision=194092
|
|
|
|
|
|
|
|
|
|
| |
struct bio to store classification information, and a hook
for classifier functions that can be called by g_io_request().
This code is from Fabio Checconi as part of his GSOC work.
Notes:
svn path=/head/; revision=193981
|
|
|
|
| |
Notes:
svn path=/head/; revision=193547
|
|
|
|
|
|
|
| |
and "Label for provider ..." messages up from 0 to 1.
Notes:
svn path=/head/; revision=193131
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The system hostname is now stored in prison0, and the global variable
"hostname" has been removed, as has the hostname_mtx mutex. Jails may
have their own host information, or they may inherit it from the
parent/system. The proper way to read the hostname is via
getcredhostname(), which will copy either the hostname associated with
the passed cred, or the system hostname if you pass NULL. The system
hostname can still be accessed directly (and without locking) at
prison0.pr_host, but that should be avoided where possible.
The "similar information" referred to is domainname, hostid, and
hostuuid, which have also become prison parameters and had their
associated global variables removed.
Approved by: bz (mentor)
Notes:
svn path=/head/; revision=193066
|
|
|
|
| |
Notes:
svn path=/head/; revision=192808
|
|
|
|
|
|
|
|
|
|
| |
- Use db_printf instead of printf. While here, apply this to other ddb commands
as well.
Pointed out by: pjd
Notes:
svn path=/head/; revision=192803
|
|
|
|
|
|
|
| |
MFC after: 3 weeks
Notes:
svn path=/head/; revision=192797
|
|
|
|
|
|
|
|
| |
Found with: Coverity Prevent(tm)
CID: 1118
Notes:
svn path=/head/; revision=192021
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the VFS. Now all the VFS_* functions and relating parts don't want the
context as long as it always refers to curthread.
In some points, in particular when dealing with VOPs and functions living
in the same namespace (eg. vflush) which still need to be converted,
pass curthread explicitly in order to retain the old behaviour.
Such loose ends will be fixed ASAP.
While here fix a bug: now, UFS_EXTATTR can be compiled alone without the
UFS_EXTATTR_AUTOSTART option.
VFS KPI is heavilly changed by this commit so thirdy parts modules needs
to be recompiled. Bump __FreeBSD_version in order to signal such
situation.
Notes:
svn path=/head/; revision=191990
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is necessary for two reasons:
1) In order to avoid collisions with the use of a BIOs flags set by a consumer
or a provider
2) Because GV_BIO_DONE was used to mark a BIO as done, not enough flags was
available, so the consumer flags of a BIO had to be misused in order to
support enough flags. The new queue makes it possible to recycle the
GV_BIO_DONE flag into GV_BIO_GROW.
As a consequence, gvinum will now work with any other GEOM class under it or
on top of it.
- Use bio_pflags for storing internal flags on downgoing BIOs, as the requests
appear to come from a consumer of a gvinum volume. Use bio_cflags only for
cloned BIOs.
- Move gv_post_bio to be used internally for maintenance requests.
- Remove some cases where flags where set without need.
PR: kern/133604
Notes:
svn path=/head/; revision=191856
|
|
|
|
|
|
|
| |
subdisk after a parity rebuild.
Notes:
svn path=/head/; revision=191855
|