History log of /dragonfly/sys/kern/subr_disklabel64.c (Results 1 – 19 of 19)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3
# dae65060 20-Oct-2019 zrj <rimvydas.jasinskas@gmail.com>

<sys/sysref.h>: Switch to lighter <sys/_malloc.h> header.

* Make <sys/sysref2.h> a kernel only header.
* Remove sys/types.h includes that follow <sys/param.h> in devfs(5).
* Add sys/malloc.h incl

<sys/sysref.h>: Switch to lighter <sys/_malloc.h> header.

* Make <sys/sysref2.h> a kernel only header.
* Remove sys/types.h includes that follow <sys/param.h> in devfs(5).
* Add sys/malloc.h includes where it is actually used in sources.

While there, minor whitespace cleanup.

show more ...


Revision tags: v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2
# 46acecf8 28-Feb-2019 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Add /dev/part-by-label

* The DragonFly disklabel has a 'label' field which accepts up to
a 63 byte ascii label.

* When this field is not empty, the kernel will now create a
"/dev/part-

kernel - Add /dev/part-by-label

* The DragonFly disklabel has a 'label' field which accepts up to
a 63 byte ascii label.

* When this field is not empty, the kernel will now create a
"/dev/part-by-label/<label>.<part>" alias.

For example, if the label is FUBAR and you create a label with
partitions 'a', 'b', and 'd', then you will get:

# ls /dev/part-by-label
FUBAR.a FUBAR.b FUBAR.d

* WARNING! Duplicate labels will replace each other, so the
label that shows up will be non-deterministic.

Suggested-by: Aaron LI

show more ...


Revision tags: v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc
# 0a319615 10-Mar-2018 Matthew Dillon <dillon@apollo.backplane.com>

disklabel64 - Make disktype optional, fix alignment bug

* Make the disktype optional, use 'auto' automatically

* Fix a bug in the kernel's l64_makevirginlabel() calculation.
It was not properly c

disklabel64 - Make disktype optional, fix alignment bug

* Make the disktype optional, use 'auto' automatically

* Fix a bug in the kernel's l64_makevirginlabel() calculation.
It was not properly calculating the alignment relative to
the physical disk.

* Refactor some of the documentation

* Refactor examples

Submitted-by: Aaron LI <aly@aaronly.me>

show more ...


Revision tags: v5.0.2, v5.0.1, v5.0.0
# bf20632c 01-Oct-2017 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Remove geteblk()

* Remove geteblk(), the last B_MALLOC buffer cache API. Generally
use getpbuf_mem() instead.


Revision tags: v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1, v4.8.0, v4.6.2, v4.9.0, v4.8.0rc, v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0, v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc, v4.2.4, v4.3.1, v4.2.3
# 965b839f 04-Jul-2015 Sascha Wildner <saw@online.de>

Use roundup2() from <sys/param.h> in a number of places.


Revision tags: v4.2.1, v4.2.0, v4.0.6, v4.3.0, v4.2.0rc, v4.0.5, v4.0.4
# a06d536b 03-Mar-2015 Matthew Dillon <dillon@apollo.backplane.com>

dmsg - Stabilization work

* Add a refs field to dmsg_state and kdmsg_state for retention and
disposal.

* Separate out the tracking of state->subq and the state RB trees.

* Greatly simplify the i

dmsg - Stabilization work

* Add a refs field to dmsg_state and kdmsg_state for retention and
disposal.

* Separate out the tracking of state->subq and the state RB trees.

* Greatly simplify the iocom shutdown code and functions related
to handling communications failures. When iterating states for
shutdown, which requires simulating a received failure message,
we can now simply iterate via state->subq.

* Greatly simplify how the simulated failures are generated and
handled (See dmsg_msg_simulate_failure()). This is probably the
most complex part of the library.

* Fix a memory leak in kern_dmsg.c.

* Replace xdisk's per-softc token with a lockmgr lock. Atomicy
has to be guaranteed across blocking conditions in certain cases
and it was easier to simply use a lock for everything.

Cleanup the locking.

* Ripout the shutdown check in the I/O path, which can deadlock
the disk management threads. This will need to be revisited
as it means that /dev/xa* and /dev/serno* devices remain in
/dev after a link failure even when there are no opens on the
device.

* Add the B_FAILONDIS flag to struct buf. This flag allows the disk
probe code to tell xdisk that it is ok for the I/O to fail, allowing
xdisk to discard I/Os that would otherwise block or deadlock the
disk probe code when the related network connection is lost.

show more ...


Revision tags: v4.0.3, v4.0.2, v4.0.1, v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0, v3.8.2, v3.8.1, v3.6.3, v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc, v3.6.2, v3.6.1, v3.6.0, v3.7.1, v3.6.0rc, v3.7.0, v3.4.3, v3.4.2, v3.4.0, v3.4.1, v3.4.0rc, v3.5.0, v3.2.2, v3.2.1, v3.2.0, v3.3.0, v3.0.3, v3.0.2
# 2fa1a664 27-Feb-2012 Alex Hornung <ahornung@gmail.com>

disklabel - add new freedisklabel op

* The freedisklabel op is simply used to free the disklabel stored in a
disklabel_t (in a diskslice).

* It deallocates the memory and sets the pointer to N

disklabel - add new freedisklabel op

* The freedisklabel op is simply used to free the disklabel stored in a
disklabel_t (in a diskslice).

* It deallocates the memory and sets the pointer to NULL.

show more ...


Revision tags: v3.0.1, v3.1.0, v3.0.0
# 86d7f5d3 26-Nov-2011 John Marino <draco@marino.st>

Initial import of binutils 2.22 on the new vendor branch

Future versions of binutils will also reside on this branch rather
than continuing to create new binutils branches for each new version.


Revision tags: v2.12.0, v2.13.0, v2.10.1, v2.11.0, v2.10.0, v2.9.1, v2.8.2, v2.8.1, v2.8.0, v2.9.0, v2.6.3, v2.7.3, v2.6.2, v2.7.2, v2.7.1, v2.6.1, v2.7.0, v2.6.0, v2.5.1, v2.4.1, v2.5.0, v2.4.0
# e5db8356 20-Aug-2009 Matthew Dillon <dillon@apollo.backplane.com>

disklabel64 - Fix DIOCSDINFO64, DIOCWDINFO64 bugs

* A loop iterator was using the wrong variable, causing the disklabel
operation to fail and potentially also (on 64-bit boxes) crashing the
box.


# aec8eea4 04-Aug-2009 Matthew Dillon <dillon@apollo.backplane.com>

DEVS - rollup - kernel core

* Remove dead code.

* Reference count adjustments for devfs.

* DEVFS integration into kernel core, including automatic probe/reprobe.

* Dummy vnops support for depreca

DEVS - rollup - kernel core

* Remove dead code.

* Reference count adjustments for devfs.

* DEVFS integration into kernel core, including automatic probe/reprobe.

* Dummy vnops support for deprecated VCHR and VBLK devices in filesystems.

* Silence MBR warnings for VN with DSO_MBRQUIET flag.

* Change rootdevnames for CD boot. DEVFS provides e.g. "cd0", "cd0s0".
The old compatibility-slice partition "c" names are no longer generated
and have been removed.

Submitted-by: Alex Hornung <ahornung@gmail.com>, and Matthew Dillon

show more ...


# cd29885a 01-Aug-2009 Matthew Dillon <dillon@apollo.backplane.com>

DEVFS - Bring in Alex's GSOC kernel adjustments.

This is a rollup commit bringing in Alex Hornung's GSOC adjustments
to the main kernel codebase for DEVFS.

Submitted-by: Alex Hornung <ahornung@gmai

DEVFS - Bring in Alex's GSOC kernel adjustments.

This is a rollup commit bringing in Alex Hornung's GSOC adjustments
to the main kernel codebase for DEVFS.

Submitted-by: Alex Hornung <ahornung@gmail.com>

show more ...


# ae8e83e6 15-Jul-2009 Matthew Dillon <dillon@apollo.backplane.com>

MPSAFE - tsleep_interlock, BUF/BIO, cluster, swap_pager.

* tsleep_interlock()/tsleep() could miss wakeups during periods of
heavy cpu activity. What would happen is code inbetween the two
calls

MPSAFE - tsleep_interlock, BUF/BIO, cluster, swap_pager.

* tsleep_interlock()/tsleep() could miss wakeups during periods of
heavy cpu activity. What would happen is code inbetween the two
calls would try to send an IPI (say, issue a wakeup()), but while
sending the IPI the kernel would be forced to process incoming IPIs
synchronous to avoid a deadlock.

The new tsleep_interlock()/tsleep() code adds another TAILQ_ENTRY to
the thread structure allowing tsleep_interlock() to formally place
the thread on the appropriate sleep queue without having to deschedule
the thread. Any wakeup which occurs between the interlock and the
real tsleep() call will remove the thread from the queue and the
later tsleep() call will recognize this and simply return without sleeping.

The new tsleep() call requires PINTERLOCKED to be passed to tsleep
so tsleep() knows that the thread has already been placed on a sleep
queue.

* Continue making BUF/BIO MPSAFE. Remove B_ASYNC and B_WANT from buf->b_flag
and add a new bio->bio_flags field to the bio. Add BIO_SYNC, BIO_WANT,
and BIO_DONE. Use atomic_cmpset_int() (aka cmpxchg) to interlock
biodone() against biowait().

vn_strategy() and dev_dstrategy() call semantics now require that
synchronous BIO's install a bio_done function and set BIO_SYNC in
the bio.

* Clean up the cluster code a bit.

* Redo the swap_pager code. Instead of issuing I/O during the collection,
which depended on critical sections to avoid races in the cluster append,
we now build the entire collection first and then dispatch the I/O.
This allows us to use only async completion for the BIOs, instead of
a hybrid sync-or-async completion.

show more ...


Revision tags: v2.3.2, v2.3.1, v2.2.1, v2.2.0, v2.3.0, v2.1.1, v2.0.1
# c34665ce 20-Jul-2007 Matthew Dillon <dillon@dragonflybsd.org>

Remove the requirement that calls to vn_strategy() be limited to the
DMA capabilities of the underlying device. In particular this fixes issues
with NATA which does not break up large requests when

Remove the requirement that calls to vn_strategy() be limited to the
DMA capabilities of the underlying device. In particular this fixes issues
with NATA which does not break up large requests when operating on hardware
with limited DMA capabilities. The old ATA driver did break up requests.

vn_strategy() -> spec_strategy(). spec_strategy(), which converts vnode
strategy calls to device strategy calls, now checks the maximum DMA
capability of the device and breaks up large requests to fit.

Old IDE hardware often can't even transfer a whole 64KB of data and there
are many subsystems in the kernel which assume that >= 64KB can be transfered
in a single I/O. Subsystems include: The pageout code, the buffer clustering
code, AIO, and the swapin/swapout code.

Reported-by: YONETANI Tomokazu <qhwt+dfly@les.ath.cx>

show more ...


# eb484664 19-Jun-2007 Matthew Dillon <dillon@dragonflybsd.org>

Rename d_obj_uuid to d_stor_uuid to conform to the naming convention being
used in other structures.


# 18cb7add 19-Jun-2007 Matthew Dillon <dillon@dragonflybsd.org>

Make some adjustments to clean up structural field names. Add type and
storage uuid's to the partinfo structure for the DIOCGPART ioctl and
load the fields up for GPT slices and disklabel64 partitio

Make some adjustments to clean up structural field names. Add type and
storage uuid's to the partinfo structure for the DIOCGPART ioctl and
load the fields up for GPT slices and disklabel64 partitions.

show more ...


# 0ffe40b3 19-Jun-2007 Matthew Dillon <dillon@dragonflybsd.org>

Implement non-booting support for the DragonFly 64 bit disklabel:

* Add full kernel support. Both 32 and 64 bit labels will be probed.
* Add a new program, disklabel64, which allows you to create a

Implement non-booting support for the DragonFly 64 bit disklabel:

* Add full kernel support. Both 32 and 64 bit labels will be probed.
* Add a new program, disklabel64, which allows you to create and edit
the new disklabel.
* Add some logic to prevent foot shooting.

DragonFly's 64 bit disklabels start at byte offset 0 on the disk slice
or GPT partition and operate in a slice-relative fashion. No translation
is required when going from on-disk to in-core or vise-versa, unlike the
existing 32 bit disklabels. 512 bytes at the beginning of the label are
reserved for legacy boot code. Specifically, the label starts at sector 0,
NOT sector 1, which means its location on the disk is the same regardless
of the sector size.

The label has a UUID to uniquely identify the storage and a type and
object uuid for each partition. All location specifications are 64 bit
byte offsets, NOT logical blocks. The label enforces an alignment
requirement for label-related I/O and partitions which defaults to 4K
regardless of the sector size. This makes the label 100% portable across
media with different sector sizes within the constraints of the alignment
requirement.

All partitions are specified using byte offsets and sizes, constrained
by the alignment requirement, relative to the base of the label (i.e.
offset 0 in the slice). disklabel64 will adjust the offsets for display
purposes to be relative to the partition table area. The label headers,
partition table, and boot2 areas come BEFORE the partition table area and
partitions which overlap any of those objects are not allowed.

By default, a virgin 64 bit disklabel will reserve 32K for boot2. As of
this writing, boot1 and boot2 blocks have not yet been implemented.

show more ...


# ba0cc1ab 17-Jun-2007 Matthew Dillon <dillon@dragonflybsd.org>

Disklabel separation work - Generally shift all disklabel-specific
procedures for the kernel proper to a new source file, subr_disklabel32.c.
Move the DTYPE_ and FS_ defines out of sys/disklabel.h an

Disklabel separation work - Generally shift all disklabel-specific
procedures for the kernel proper to a new source file, subr_disklabel32.c.
Move the DTYPE_ and FS_ defines out of sys/disklabel.h and into a new
header files sys/dtype.h

Make adjustments to the uuids file, renaming "DragonFly Label" to
"DragonFly Label32" and creating a "DragonFly Label64" uuid.

show more ...


# 4921cba1 20-Feb-2010 Matthew Dillon <dillon@apollo.backplane.com>

kernel - disklabel64 - Increase partition start alignment to 1 megabyte.

* Someone suggested that instead of using a 32K alignment we use a larger
alignment. I forgot who suggested it but after t

kernel - disklabel64 - Increase partition start alignment to 1 megabyte.

* Someone suggested that instead of using a 32K alignment we use a larger
alignment. I forgot who suggested it but after thinking about it a bit
and messing around with swapcache on a SSD I decided it was a good idea.

SSDs using MLC flash have a physical block size of 128K. SLC flash has
a physical block size of 64K. Most typical cluster operations in
DragonFly are 64K to 128K but clustered writes are often linear on disk
leading to larger linear writes from the point of view of the physical
drive's write cache.

swapcache and swap operation tends to have even larger write linearities
and write amplification effects on SSDs can be reduced to better than 1:2
(verses the 1:10 the vendor typically assumes).

* Virgin disklabel64's layed down by the kernel will now align the
start of the partition space to 1MB (1024 * 1024). In for a penny,
in for a pound.

* Adjust the manual page and note the benefits of using a larger alignment,
particularly when swapcache is used with SSDs.

show more ...


# a3123c28 14-Feb-2010 Matthew Dillon <dillon@apollo.backplane.com>

kernel - disklabel64 - Adjust partition base to be physically aligned

* When creating a new pristine label the kernel will align the
partition base to the physical drive instead of to the logical

kernel - disklabel64 - Adjust partition base to be physically aligned

* When creating a new pristine label the kernel will align the
partition base to the physical drive instead of to the logical
slice.

This is to accomodate fdisk/slice setups which do not align the
slice properly (which is nearly all of them).

show more ...