#
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 ...
|