History log of /dflybsd-src/sys/vfs/hammer/hammer_io.c (Results 1 – 25 of 128)
Revision Date Author Comments
# 374a548a 09-Sep-2017 Matthew Dillon <dillon@apollo.backplane.com>

hammer - Adjust hammer to new breadnx / cluster_readx API

* API adjustments for breadnx() and cluster_readx() calls


# 4c09d9c4 17-Mar-2017 Matthew Dillon <dillon@apollo.backplane.com>

hammer - HAMMER Version 7

* Add support for version 7 which changes the CRC mechanic from the
old slow CRC code to the faster ISCSI CRC code. We don't use the CRC
instruction yet but ths base I

hammer - HAMMER Version 7

* Add support for version 7 which changes the CRC mechanic from the
old slow CRC code to the faster ISCSI CRC code. We don't use the CRC
instruction yet but ths base ISCSI CRC from FreeBSD is 6x faster than
the CRC code we were using before.

* Change newfs_hammer default to version 7 (for master).

show more ...


# f6d29b27 17-Dec-2016 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Rename misleading macro hammer_is_zone2_mapped_index()

All zones are mapped to zone2 (whether directly or indirectly),
so hammer_is_zone2_mapped_index() is a misleading name.
It shou

sys/vfs/hammer: Rename misleading macro hammer_is_zone2_mapped_index()

All zones are mapped to zone2 (whether directly or indirectly),
so hammer_is_zone2_mapped_index() is a misleading name.
It should have indicated it's for B-Tree records related zones.

show more ...


# 4eb78dd2 07-Nov-2016 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Add HAMMER_BIGBLOCK_DOALIGN()

The only reason it's "DOALIGN" instead of just "ALIGN" is
because that's how macros have been named in HAMMER1/2.
"ALIGN" macros represent alignment siz

sys/vfs/hammer: Add HAMMER_BIGBLOCK_DOALIGN()

The only reason it's "DOALIGN" instead of just "ALIGN" is
because that's how macros have been named in HAMMER1/2.
"ALIGN" macros represent alignment size.

show more ...


# 7fb33ff0 27-Oct-2016 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Rename HAMMER_STRUCTURE_XXX to HAMMER_IOTYPE_XXX

enum hammer_io_type has existed since 2007, but the name of each
element HAMMER_STRUCTURE_XXX doesn't clearly show the purpose of
thi

sys/vfs/hammer: Rename HAMMER_STRUCTURE_XXX to HAMMER_IOTYPE_XXX

enum hammer_io_type has existed since 2007, but the name of each
element HAMMER_STRUCTURE_XXX doesn't clearly show the purpose of
this enum. It should be HAMMER_IOTYPE_XXX.

This isn't for ondisk structures, so it doesn't affect userspace.

show more ...


# 4fcdc8b4 27-Oct-2016 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Add hammer_zone_to_iotype()/hammer_io_to_iostring()

hammer_io_read() uses iotype string only for debugging purpose.
It has nothing to do with the code logic, so separate it from
hamm

sys/vfs/hammer: Add hammer_zone_to_iotype()/hammer_io_to_iostring()

hammer_io_read() uses iotype string only for debugging purpose.
It has nothing to do with the code logic, so separate it from
hammer_io_read().

show more ...


# 3ff3ba13 27-Oct-2016 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Fix zone/iotype/iostring conversion

This isn't explcitly mentioned in documentations/comments/etc,
but HAMMER_STRUCTURE_META_BUFFER is mapped to zone-{2,4,8,9}.
Avoid using default:

sys/vfs/hammer: Fix zone/iotype/iostring conversion

This isn't explcitly mentioned in documentations/comments/etc,
but HAMMER_STRUCTURE_META_BUFFER is mapped to zone-{2,4,8,9}.
Avoid using default: case when we know that.

hammer_io_read() needs a case for zone-2 with "buffer" string.
This avoids using a wrong message "meta?" for zone-2.

show more ...


# 7251986a 28-Aug-2016 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Use typedef'd for enum hammer_io_type


# ba2be8e9 28-Aug-2016 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Use typedef'd for struct hammer_mount*

The whole hammer code is mix of using struct and typedef'd.
Use typedef'd because majority of the code use typedef'd.

The last 17 commits incl

sys/vfs/hammer: Use typedef'd for struct hammer_mount*

The whole hammer code is mix of using struct and typedef'd.
Use typedef'd because majority of the code use typedef'd.

The last 17 commits including this one don't affect binary.

show more ...


# 6b482339 28-Aug-2016 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Use typedef'd for struct hammer_io*

The whole hammer code is mix of using struct and typedef'd.
Use typedef'd because majority of the code use typedef'd.


# 237baba3 24-Jul-2016 Matthew Dillon <dillon@apollo.backplane.com>

hammer - remove commented out code, move a biodone()

* Remove commented-out code which is no longer applicable.

* Move the biodone() call in hammer_io_direct_write_complete() to after
the token-r

hammer - remove commented out code, move a biodone()

* Remove commented-out code which is no longer applicable.

* Move the biodone() call in hammer_io_direct_write_complete() to after
the token-release, reducing stacking of tokens in biodone().

show more ...


# 3b2afb67 11-Jun-2016 Matthew Dillon <dillon@apollo.backplane.com>

kernel - B_IODEBUG -> B_IOISSUED

* Rename this flag. It still operates the same way.

This flag is set by the kernel upon an actual I/O read into a buffer
cache buffer and may be cleared by the

kernel - B_IODEBUG -> B_IOISSUED

* Rename this flag. It still operates the same way.

This flag is set by the kernel upon an actual I/O read into a buffer
cache buffer and may be cleared by the filesystem code to allow the
filesystem code to detect when re-reads of the block cause another I/O
or not. This allows HAMMER1 and HAMMER2 to avoid calculating the check
code over and over again if it has already been calculated.

show more ...


# e7d75765 08-Jun-2016 Matthew Dillon <dillon@apollo.backplane.com>

hammer - Make vfs.hammer.cluster_enable an integer

* Instead of being a boolean, make it an integer and use it to control
how much read-ahead is requested (in 64KB blocks).

* Change cluster_enabl

hammer - Make vfs.hammer.cluster_enable an integer

* Instead of being a boolean, make it an integer and use it to control
how much read-ahead is requested (in 64KB blocks).

* Change cluster_enable from 1 to 2 to roughly match the cluster_read()
changes committed to the kernel.

* Make hammer_io_indirect_read() use cluster_readcb() instead of breadcb()
so we get read-ahead on this path.

show more ...


# 35a5249b 22-Mar-2016 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Use "%016jx",intmax_t

Some kprintf use long long, others use intmax_t
for HAMMER offsets and B-Tree keys in hexadecimal.
Make them all use intmax_t.


# e1545c47 19-Mar-2016 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Add hammer_is_zone_xxx()


# 5bce7157 19-Mar-2016 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Add HAMMER_ZONE()


# c242ffec 18-Mar-2016 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Rename clist to node_list

The name clist comes from 2007 when there were clist and alist.

Rename it to node_list.
General naming rule in hammer is `name`_list.
e.g. target_list, cur

sys/vfs/hammer: Rename clist to node_list

The name clist comes from 2007 when there were clist and alist.

Rename it to node_list.
General naming rule in hammer is `name`_list.
e.g. target_list, cursor_list, cache_list.

show more ...


# af3e4d3e 02-Mar-2016 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Add missing hammer_crc_set_btree()

set_btree is the only one missing in pairs of set/test crc functions,
though other set functions are not inlined.


# 516655e8 09-Dec-2015 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Add hammer_xlate_to_phys()

This macro is zone2 --> physical offset version of
hammer_xlate_to_zone2() and hammer_xlate_to_zoneX().


# b0cce327 09-Dec-2015 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Cleanup assertion for zone

Don't hardcode ZONE_BTREE (zone-8).

Alhough it requires slightly more calculation than just >ZONE_BTREE,
this is what blockmap does on every allocation/re

sys/vfs/hammer: Cleanup assertion for zone

Don't hardcode ZONE_BTREE (zone-8).

Alhough it requires slightly more calculation than just >ZONE_BTREE,
this is what blockmap does on every allocation/reservation/etc.

show more ...


# 65d9d14f 08-Dec-2015 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Make offset kprintf message explicit

bp->b_bio2.bio_offset (bp->b_bio_array[1].bio_offset)
is zone2 offset, so make it print "zone2_offset" instead of "doff".


# 9e6939a5 08-Dec-2015 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Make hammer_io_flush_mark() inline


# b49481fb 08-Dec-2015 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Use HAMMER_ENCODE() for hammer_mod_rb_compare()

Try not to hardcode 8 for volume fields.

The 60 bits offset format changes, but the change doesn't affect
RB-Tree's elements comparis

sys/vfs/hammer: Use HAMMER_ENCODE() for hammer_mod_rb_compare()

Try not to hardcode 8 for volume fields.

The 60 bits offset format changes, but the change doesn't affect
RB-Tree's elements comparison. It works as long as it has volume
bits and 52 bits offset within that volume. Whether HAMMER_ENCODE()
is used or not, io[12]_offset are not valid offsets anyway.
These offset values just need to be unique for physical locations.

(A) before this commit
----oooooooooooooooooooooooooooooooooooooooooooooooooooovvvvvvvv
(B) this commit
----vvvvvvvvoooooooooooooooooooooooooooooooooooooooooooooooooooo

show more ...


# e397030b 08-Dec-2015 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Make bio ops static

Only functions that initialize bios need to see this.


# 0ae73f43 07-Dec-2015 Tomohiro Kusumi <kusumi.tomohiro@gmail.com>

sys/vfs/hammer: Add hammer_buf_peek_io()/hammer_buf_attach_io()

HAMMER doesn't really use bp->b_dep as a list, because it only
has one io entry linked to it (buf and io are 1:1).

Add hammer_buf_pee

sys/vfs/hammer: Add hammer_buf_peek_io()/hammer_buf_attach_io()

HAMMER doesn't really use bp->b_dep as a list, because it only
has one io entry linked to it (buf and io are 1:1).

Add hammer_buf_peek_io() and hammer_buf_attach_io() to hide the
implication of list (that isn't really a list). These functions
also hide bunch of void* casts between worklist and hammer_io.

show more ...


123456