Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No need to check bio_alloc(GFP_NOIO, ) returns. #2703

Closed
thegreatgazoo opened this issue Sep 15, 2014 · 2 comments
Closed

No need to check bio_alloc(GFP_NOIO, ) returns. #2703

thegreatgazoo opened this issue Sep 15, 2014 · 2 comments
Milestone

Comments

@thegreatgazoo
Copy link

It looks like bio_alloc(GFP_NOIO, ) will never return NULL:
https://lkml.org/lkml/2009/4/14/499

So there's no need for the error handling code in module/zfs/vdev_disk.c for NULL returns from bio_alloc(GFP_NOIO, ). Some assertions should suffice.

But it made me wonder whether GFP_NOIO is the right flag. I saw that GFP_NOIO was used due to a deadlock when a zvol is used for swap. It made sense. But on a system where ZFS is running, the ARC is most likely the best place to reclaim memory. With GFP_NOIO, would the arc_shrinker be called upon to free up memory? My understanding is that the ARC can free up cold buffers without doing any IO.

I'm interested because I'm troubleshooting a Lustre IO timeout where I saw:

z_ioctl_iss/0 S 0000000000000001 0 3996 2 0x00000080
ffff880079dc9e20 0000000000000046 ffff880079dc9da0 ffffffffa024aa46
ffff880079dc9de0 ffffc900192865f8 ffff880079a76000 0000000000000200
ffff8800730c8638 ffff880079dc9fd8 000000000000fbc8 ffff8800730c8638
Call Trace:
[<ffffffffa024aa46>] ? vdev_disk_io_start+0x156/0x1b0 [zfs]
[<ffffffffa013f686>] taskq_thread+0x3c6/0x3f0 [spl]

Likely it's really stuck in vdev_disk_io_flush() which is probably inlined. It seemed like the syncing txg is about to complete and a WRITE_FLUSH_FUA is to be issued after the uberblocks have been updated. There's also other threads waiting for the txg to be synced.
The only place it could get stuck in vdev_disk_io_flush() seemed to be in bio_alloc(), which indicated a deadlock under memory pressure.

The z_ioctl_iss thread got stuck there for more than a minute, which indicated that no memory was freed up during the wait.

@thegreatgazoo
Copy link
Author

Actually the WRITE_FLUSH_FUA had been submitted and vdev_disk_io_start had returned, so txg_sync was likely stuck waiting for WRITE_FLUSH_FUA to complete. But it's relevant here.

@behlendorf
Copy link
Contributor

@thegreatgazoo GFP_NOIO must be used in bio_alloc() otherwise bio_alloc() could enter the direct reclaim call path when memory is low. Since bio_alloc() can be called in the context of the txg_sync thread that would introduce a possible deadlock. Effectively the txg_sync thread could end up blocked in reclaim waiting on IO to be written which it is responsible for writing.

Do you have a full stack trace for where the z_ioctl_iss thread was stuck? Normally when you see a stack like you posted above it's just an idle taskq thread waiting to receive some work. For example,

cat /proc/582/stack 
[<ffffffffa0043b61>] taskq_thread+0x3c1/0x4b0 [spl]
[<ffffffff8108b96c>] kthread+0x8c/0xa0
[<ffffffff8166e3b4>] kernel_thread_helper+0x4/0x10

@behlendorf behlendorf added the Bug label Sep 22, 2014
@behlendorf behlendorf added this to the 0.6.4 milestone Sep 22, 2014
ryao pushed a commit to ryao/zfs that referenced this issue Nov 29, 2014
Mark the error handling branch as unlikely() because the current
kernel interface can never return NULL.  However, we want to keep
the error handling in case this behavior changes in the futre.

Plus fix a small style issue.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Isaac Huang <he.huang@intel.com>
Closes openzfs#2703
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 22, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time

diverged code base from Illumos:

fc5bb51 Fix stack dbuf_hold_impl()
34229a2 Reduce stack usage for recursive traverse_visitbp()
0f37d0c Linux 3.11 compat: fops->iterate() [module/zfs/zfs_vnops.c]
module/zfs/dmu.c (c90 vs. c99)
37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 22, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

fc5bb51 Fix stack dbuf_hold_impl()
34229a2 Reduce stack usage for recursive traverse_visitbp()
0f37d0c Linux 3.11 compat: fops->iterate() [module/zfs/zfs_vnops.c]
module/zfs/dmu.c (c90 vs. c99)
37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 22, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

fc5bb51 Fix stack dbuf_hold_impl()
34229a2 Reduce stack usage for recursive traverse_visitbp()
0f37d0c Linux 3.11 compat: fops->iterate() [module/zfs/zfs_vnops.c]
module/zfs/dmu.c (c90 vs. c99)
37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 22, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

fc5bb51 Fix stack dbuf_hold_impl()
34229a2 Reduce stack usage for recursive traverse_visitbp()
0f37d0c Linux 3.11 compat: fops->iterate() [module/zfs/zfs_vnops.c]
module/zfs/dmu.c (c90 vs. c99)
37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]

Ported-by: kernelOfTruth kerneloftruth@gmail.com
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 22, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

fc5bb51 Fix stack dbuf_hold_impl()
34229a2 Reduce stack usage for recursive traverse_visitbp()
0f37d0c Linux 3.11 compat: fops->iterate() [module/zfs/zfs_vnops.c]
module/zfs/dmu.c (c90 vs. c99)
37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]

Ported-by: kernelOfTruth kerneloftruth@gmail.com
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 22, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

[lib/libzfs/libzfs_sendrecv.c]
b8864a2 Fix gcc cast warnings
325f023 Add linux kernel device support
5c3f61e Increase Linux pipe buffer size on 'zfs receive'

fc5bb51 Fix stack dbuf_hold_impl()
34229a2 Reduce stack usage for recursive traverse_visitbp()
0f37d0c Linux 3.11 compat: fops->iterate() [module/zfs/zfs_vnops.c]
module/zfs/dmu.c (c90 vs. c99)
37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]

Ported-by: kernelOfTruth kerneloftruth@gmail.com
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 22, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

[lib/libzfs/libzfs_sendrecv.c]
b8864a2 Fix gcc cast warnings
325f023 Add linux kernel device support
5c3f61e Increase Linux pipe buffer size on 'zfs receive'

[module/zfs/zfs_vnops.c]
3558fd7 Prototype/structure update for Linux
c12e3a5 Restructure zfs_readdir() to fix regressions

fc5bb51 Fix stack dbuf_hold_impl()
34229a2 Reduce stack usage for recursive traverse_visitbp()
module/zfs/dmu.c (c90 vs. c99)
37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]

Ported-by: kernelOfTruth kerneloftruth@gmail.com
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 22, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

[lib/libzfs/libzfs_sendrecv.c]
b8864a2 Fix gcc cast warnings
325f023 Add linux kernel device support
5c3f61e Increase Linux pipe buffer size on 'zfs receive'

[module/zfs/zfs_vnops.c]
3558fd7 Prototype/structure update for Linux
c12e3a5 Restructure zfs_readdir() to fix regressions

[module/zfs/zvol.c]
function
@zvol_map_block(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
is non-existent in ZoL

[module/zfs/dmu.c]
in function
dmu_prefetch(objset_t *os, uint64_t object, uint64_t offset, uint64_t len)
int i
is initialized before the following code block (c90 vs. c99)

fc5bb51 Fix stack dbuf_hold_impl()
34229a2 Reduce stack usage for recursive traverse_visitbp()
37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]

Ported-by: kernelOfTruth kerneloftruth@gmail.com
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 22, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

[lib/libzfs/libzfs_sendrecv.c]
b8864a2 Fix gcc cast warnings
325f023 Add linux kernel device support
5c3f61e Increase Linux pipe buffer size on 'zfs receive'

[module/zfs/zfs_vnops.c]
3558fd7 Prototype/structure update for Linux
c12e3a5 Restructure zfs_readdir() to fix regressions

[module/zfs/zvol.c]
function
@zvol_map_block(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
is non-existent in ZoL

[module/zfs/dmu.c]
in function
dmu_prefetch(objset_t *os, uint64_t object, uint64_t offset, uint64_t len)
int i
is initialized before the following code block (c90 vs. c99)

fc5bb51 Fix stack dbuf_hold_impl()
34229a2 Reduce stack usage for recursive traverse_visitbp()
37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]

Ported-by: kernelOfTruth kerneloftruth@gmail.com
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 22, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

[lib/libzfs/libzfs_sendrecv.c]
b8864a2 Fix gcc cast warnings
325f023 Add linux kernel device support
5c3f61e Increase Linux pipe buffer size on 'zfs receive'

[module/zfs/zfs_vnops.c]
3558fd7 Prototype/structure update for Linux
c12e3a5 Restructure zfs_readdir() to fix regressions

[module/zfs/zvol.c]
function
@zvol_map_block(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
is non-existent in ZoL

[module/zfs/dmu.c]
in function
dmu_prefetch(objset_t *os, uint64_t object, uint64_t offset, uint64_t len)
int i
is initialized before the following code block (c90 vs. c99)

[module/zfs/Makefile.in + lib/libzpool/Makefile.am]
47a4a6f Support parallel build trees (VPATH builds)

fc5bb51 Fix stack dbuf_hold_impl()
34229a2 Reduce stack usage for recursive traverse_visitbp()
37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]

Ported-by: kernelOfTruth kerneloftruth@gmail.com
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 23, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

[lib/libzfs/libzfs_sendrecv.c]
b8864a2 Fix gcc cast warnings
325f023 Add linux kernel device support
5c3f61e Increase Linux pipe buffer size on 'zfs receive'

[module/zfs/zfs_vnops.c]
3558fd7 Prototype/structure update for Linux
c12e3a5 Restructure zfs_readdir() to fix regressions

[module/zfs/zvol.c]
function
@zvol_map_block(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
is non-existent in ZoL

[module/zfs/dmu.c]
in function
dmu_prefetch(objset_t *os, uint64_t object, uint64_t offset, uint64_t len)
int i
is initialized before the following code block (c90 vs. c99)

[module/zfs/Makefile.in + lib/libzpool/Makefile.am]
47a4a6f Support parallel build trees (VPATH builds)

[module/zfs/dbuf.c]
fc5bb51 Fix stack dbuf_hold_impl()
9b67f60 Illumos 4757, 4913
{4757 ZFS embedded-data block pointers ("zero block compression") ,
 4913 zfs release should not be subject to space checks}
{reference} 34229a2 Reduce stack usage for recursive traverse_visitbp()

37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]

Ported-by: kernelOfTruth kerneloftruth@gmail.com
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 23, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

[lib/libzfs/libzfs_sendrecv.c]
b8864a2 Fix gcc cast warnings
325f023 Add linux kernel device support
5c3f61e Increase Linux pipe buffer size on 'zfs receive'

[module/zfs/zfs_vnops.c]
3558fd7 Prototype/structure update for Linux
c12e3a5 Restructure zfs_readdir() to fix regressions

[module/zfs/zvol.c]
function
@zvol_map_block(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
is non-existent in ZoL

[module/zfs/dmu.c]
in function
dmu_prefetch(objset_t *os, uint64_t object, uint64_t offset, uint64_t len)
int i
is initialized before the following code block (c90 vs. c99)

[module/zfs/Makefile.in + lib/libzpool/Makefile.am]
47a4a6f Support parallel build trees (VPATH builds)

[module/zfs/dbuf.c]
fc5bb51 Fix stack dbuf_hold_impl()
9b67f60 Illumos 4757, 4913
{4757 ZFS embedded-data block pointers ("zero block compression") ,
 4913 zfs release should not be subject to space checks}
{reference} 34229a2 Reduce stack usage for recursive traverse_visitbp()

[module/zfs/dmu_send.c]
b58986e Use large stacks when available
241b541 Illumos 5959 - clean up per-dataset feature count code

37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]

Ported-by: kernelOfTruth kerneloftruth@gmail.com
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 23, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

[lib/libzfs/libzfs_sendrecv.c]
b8864a2 Fix gcc cast warnings
325f023 Add linux kernel device support
5c3f61e Increase Linux pipe buffer size on 'zfs receive'

[module/zfs/zfs_vnops.c]
3558fd7 Prototype/structure update for Linux
c12e3a5 Restructure zfs_readdir() to fix regressions

[module/zfs/zvol.c]
function
@zvol_map_block(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
is non-existent in ZoL

[module/zfs/dmu.c]
in function
dmu_prefetch(objset_t *os, uint64_t object, uint64_t offset, uint64_t len)
int i
is initialized before the following code block (c90 vs. c99)

[module/zfs/Makefile.in + lib/libzpool/Makefile.am]
47a4a6f Support parallel build trees (VPATH builds)

[module/zfs/dbuf.c]
fc5bb51 Fix stack dbuf_hold_impl()
9b67f60 Illumos 4757, 4913
{4757 ZFS embedded-data block pointers ("zero block compression") ,
 4913 zfs release should not be subject to space checks}
{reference} 34229a2 Reduce stack usage for recursive traverse_visitbp()

[module/zfs/dmu_send.c]
b58986e Use large stacks when available
241b541 Illumos 5959 - clean up per-dataset feature count code

WIP
@restore_read_payload_and_next_header(struct restorearg *ra, int len, void *buf)

37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]

Ported-by: kernelOfTruth kerneloftruth@gmail.com
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 23, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

[lib/libzfs/libzfs_sendrecv.c]
b8864a2 Fix gcc cast warnings
325f023 Add linux kernel device support
5c3f61e Increase Linux pipe buffer size on 'zfs receive'

[module/zfs/zfs_vnops.c]
3558fd7 Prototype/structure update for Linux
c12e3a5 Restructure zfs_readdir() to fix regressions

[module/zfs/zvol.c]
function
@zvol_map_block(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
is non-existent in ZoL

[module/zfs/dmu.c]
in function
dmu_prefetch(objset_t *os, uint64_t object, uint64_t offset, uint64_t len)
int i
is initialized before the following code block (c90 vs. c99)

[module/zfs/Makefile.in + lib/libzpool/Makefile.am]
47a4a6f Support parallel build trees (VPATH builds)

[module/zfs/dbuf.c]
fc5bb51 Fix stack dbuf_hold_impl()
9b67f60 Illumos 4757, 4913
{4757 ZFS embedded-data block pointers ("zero block compression") ,
 4913 zfs release should not be subject to space checks}
{reference} 34229a2 Reduce stack usage for recursive traverse_visitbp()

[module/zfs/dmu_send.c]
b58986e Use large stacks when available
241b541 Illumos 5959 - clean up per-dataset feature count code

[module/zfs/dmu_send.c, C90 warnings - somewhat less clear to read]
Illumos 5746 more checksumming in zfs send

WIP
dmu_recv_stream(dmu_recv_cookie_t *drc, vnode_t *vp, offset_t *voffp,

37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]

Ported-by: kernelOfTruth kerneloftruth@gmail.com
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 24, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

[lib/libzfs/libzfs_sendrecv.c]
b8864a2 Fix gcc cast warnings
325f023 Add linux kernel device support
5c3f61e Increase Linux pipe buffer size on 'zfs receive'

[module/zfs/zfs_vnops.c]
3558fd7 Prototype/structure update for Linux
c12e3a5 Restructure zfs_readdir() to fix regressions

[module/zfs/zvol.c]
function
@zvol_map_block(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
is non-existent in ZoL

[module/zfs/dmu.c]
in function
dmu_prefetch(objset_t *os, uint64_t object, uint64_t offset, uint64_t len)
int i
is initialized before the following code block (c90 vs. c99)

[module/zfs/Makefile.in + lib/libzpool/Makefile.am]
47a4a6f Support parallel build trees (VPATH builds)

[module/zfs/dbuf.c]
fc5bb51 Fix stack dbuf_hold_impl()
9b67f60 Illumos 4757, 4913
{4757 ZFS embedded-data block pointers ("zero block compression") ,
 4913 zfs release should not be subject to space checks}
{reference} 34229a2 Reduce stack usage for recursive traverse_visitbp()

[module/zfs/dmu_send.c]
b58986e Use large stacks when available
241b541 Illumos 5959 - clean up per-dataset feature count code
{reference} 77aef6f Use vmem_alloc() for nvlists
00b4602 Add linux kernel memory support

[module/zfs/dmu_send.c, C90 warnings - somewhat less clear to read]
Illumos 5746 more checksumming in zfs send

WIP
dmu_recv_stream(dmu_recv_cookie_t *drc, vnode_t *vp, offset_t *voffp,

37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]

Ported-by: kernelOfTruth kerneloftruth@gmail.com
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 24, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

[lib/libzfs/libzfs_sendrecv.c]
b8864a2 Fix gcc cast warnings
325f023 Add linux kernel device support
5c3f61e Increase Linux pipe buffer size on 'zfs receive'

[module/zfs/zfs_vnops.c]
3558fd7 Prototype/structure update for Linux
c12e3a5 Restructure zfs_readdir() to fix regressions

[module/zfs/zvol.c]
function
@zvol_map_block(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
is non-existent in ZoL

[module/zfs/dmu.c]
in function
dmu_prefetch(objset_t *os, uint64_t object, uint64_t offset, uint64_t len)
int i
is initialized before the following code block (c90 vs. c99)

[module/zfs/Makefile.in + lib/libzpool/Makefile.am]
47a4a6f Support parallel build trees (VPATH builds)

[module/zfs/dbuf.c]
fc5bb51 Fix stack dbuf_hold_impl()
9b67f60 Illumos 4757, 4913
{4757 ZFS embedded-data block pointers ("zero block compression") ,
 4913 zfs release should not be subject to space checks}
{reference} 34229a2 Reduce stack usage for recursive traverse_visitbp()

[module/zfs/dmu_send.c]
b58986e Use large stacks when available
241b541 Illumos 5959 - clean up per-dataset feature count code
{reference} 77aef6f Use vmem_alloc() for nvlists
00b4602 Add linux kernel memory support

[module/zfs/dmu_send.c, C90 warnings - somewhat less clear to read]
Illumos 5746 more checksumming in zfs send

WIP
@dbuf_prefetch(dnode_t *dn, uint64_t blkid, zio_priority_t prio)
-	if (dbuf_findbp(dn, 0, blkid, TRUE, &db, &bp) == 0) {

37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]

Ported-by: kernelOfTruth kerneloftruth@gmail.com
kernelOfTruth pushed a commit to kernelOfTruth/zfs that referenced this issue Dec 24, 2015
5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

depends on openzfs#3574 Illumos 5745 zfs set allows only one dataset property to be set at a time
depends on openzfs#3611 Illumos 5746 more checksumming in zfs send

diverged code base from Illumos:

[lib/libzfs/libzfs_sendrecv.c]
b8864a2 Fix gcc cast warnings
325f023 Add linux kernel device support
5c3f61e Increase Linux pipe buffer size on 'zfs receive'

[module/zfs/zfs_vnops.c]
3558fd7 Prototype/structure update for Linux
c12e3a5 Restructure zfs_readdir() to fix regressions

[module/zfs/zvol.c]
function
@zvol_map_block(spa_t *spa, zilog_t *zilog, const blkptr_t *bp,
is non-existent in ZoL

[module/zfs/dmu.c]
in function
dmu_prefetch(objset_t *os, uint64_t object, uint64_t offset, uint64_t len)
int i
is initialized before the following code block (c90 vs. c99)

[module/zfs/Makefile.in + lib/libzpool/Makefile.am]
47a4a6f Support parallel build trees (VPATH builds)

[module/zfs/dbuf.c]
fc5bb51 Fix stack dbuf_hold_impl()
9b67f60 Illumos 4757, 4913
{4757 ZFS embedded-data block pointers ("zero block compression") ,
 4913 zfs release should not be subject to space checks}
{reference} 34229a2 Reduce stack usage for recursive traverse_visitbp()

[module/zfs/dmu_send.c]
b58986e Use large stacks when available
241b541 Illumos 5959 - clean up per-dataset feature count code
{reference} 77aef6f Use vmem_alloc() for nvlists
00b4602 Add linux kernel memory support

[module/zfs/dmu_send.c, C90 warnings - somewhat less clear to read]
Illumos 5746 more checksumming in zfs send

WIP
@dbuf_prefetch(dnode_t *dn, uint64_t blkid, zio_priority_t prio)
-	if (dbuf_findbp(dn, 0, blkid, TRUE, &db, &bp) == 0) {

37abac6 Illumos openzfs#2703: add mechanism to report ZFS send progress [module/zfs/dmu_send.c]

Ported-by: kernelOfTruth kerneloftruth@gmail.com
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants