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

SPL: Fixing allocation for task txg_sync which used GFP flags 0x7aebba4 with PF_NOFS set #2569

Closed
edillmann opened this issue Aug 5, 2014 · 2 comments
Milestone

Comments

@edillmann
Copy link
Contributor

Hi,

I get the following stacktrace when doing a rollback on a zvol,

[ 3659.072377] SPL: Fixing allocation for task txg_sync (1355) which used GFP flags 0x7aebba4 with PF_NOFS set
[ 3659.072379] SPL: Skipped 4 previous similar messages
[ 3659.072380] SPL: Showing stack for process 1355
[ 3659.072381] CPU: 0 PID: 1355 Comm: txg_sync Tainted: P OE 3.15.6-jave2 #4
[ 3659.072382] Hardware name: ASUS All Series/Z97-A, BIOS 1205 07/07/2014
[ 3659.072383] ffff88081b6e4b60 ffff880807aebae8 ffffffff816ead16 ffff88081b6e4b60
[ 3659.072385] ffff880807aebb00 ffffffffa01a94d5 ffff880807aebba4 ffff880807aebb40
[ 3659.072386] ffffffffa01bca3f ffffffffa01bfb60 ffff88081b6e5118 ffffffff0000054b
[ 3659.072387] Call Trace:
[ 3659.072392] [] dump_stack+0x45/0x56
[ 3659.072409] [] spl_debug_dumpstack+0x45/0x60 [spl]
[ 3659.072415] [] sanitize_flags.part.6+0x68/0x77 [spl]
[ 3659.072421] [] kmem_alloc_debug+0x391/0x3c0 [spl]
[ 3659.072436] [] ? dbuf_rele_and_unlock+0x179/0x250 [zfs]
[ 3659.072443] [] nv_alloc_sleep_spl+0x28/0x30 [znvpair]
[ 3659.072447] [] nvlist_xalloc.part.13+0x27/0xd0 [znvpair]
[ 3659.072451] [] nvlist_alloc+0x4a/0x50 [znvpair]
[ 3659.072455] [] fnvlist_alloc+0x20/0x70 [znvpair]
[ 3659.072468] [] dsl_dataset_rollback_check+0x85/0x250 [zfs]
[ 3659.072482] [] dsl_sync_task_sync+0x9d/0xe0 [zfs]
[ 3659.072495] [] dsl_pool_sync+0x36b/0x460 [zfs]
[ 3659.072509] [] spa_sync+0x44d/0xaf0 [zfs]
[ 3659.072513] [] ? ktime_get_ts+0x48/0xe0
[ 3659.072529] [] txg_sync_thread+0x37e/0x5c0 [zfs]
[ 3659.072544] [] ? txg_quiesce_thread+0x340/0x340 [zfs]
[ 3659.072549] [] thread_generic_wrapper+0x7a/0x90 [spl]
[ 3659.072554] [] ? __thread_exit+0xa0/0xa0 [spl]
[ 3659.072556] [] kthread+0xd2/0xf0
[ 3659.072558] [] ? kthread_create_on_node+0x180/0x180
[ 3659.072559] [] ret_from_fork+0x7c/0xb0
[ 3659.072561] [] ? kthread_create_on_node+0x180/0x180

I am running latest master on vanilla kernel 3.15.6 with following pull requests applied
#2484
#2351

Any clues ?

Thanks,
Eric

@behlendorf behlendorf added this to the 0.6.4 milestone Aug 6, 2014
@behlendorf behlendorf added the Bug label Aug 6, 2014
behlendorf added a commit to behlendorf/zfs that referenced this issue Aug 6, 2014
The dsl_dataset_rollback_check() function is executed in the
txg_sync context.  To prevent a potential deadlock due to direct
memory reclaim it must use KM_PUSHPAGE.  This was introduced by
the recent 'zfs bookmark' features, commit da53684.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue openzfs#2569
@behlendorf
Copy link
Contributor

@edillmann Thanks for reporting this so quickly. The warning is just informational so we can quickly catch these sorts of issues. I've opened a pull request #2574 with the fix. If you could add it to your patch stack to verify the fix that would be helpful.

@edillmann
Copy link
Contributor Author

Many thank's for this quick fix, i confirm that it does the job ;-)

behlendorf added a commit that referenced this issue Aug 6, 2014
The dsl_dataset_rollback_check() function is executed in the
txg_sync context.  To prevent a potential deadlock due to direct
memory reclaim it must use KM_PUSHPAGE.  This was introduced by
the recent 'zfs bookmark' features, commit da53684.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Eric Dillmann <eric@jave.fr>
Closes #2569
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