[remove: linux-unionfs] [add: Jan Kara] On Tue, Jul 10, 2018 at 5:16 PM, Rafael David Tinoco <rafael.tinoco@xxxxxxxxxx> wrote: [...] > Greg, > > As spoke in this thread last week, I have prepared a patchset for v4.9 > tree for one of the bugs I mentioned > (https://bugs.linaro.org/show_bug.cgi?id=3303). This bug is related to > a dead-lock in kernel waiting for userland events (fanotify). > Jan may already have backports to this bug fix? I don't suppose customers were complaining about the bug in mainline kernel. Thanks, Amir. > Short Summary of BUG: > https://bugs.linaro.org/show_bug.cgi?id=3303#c16 > > Full conclusion after kdump analysis: > https://bugs.linaro.org/show_bug.cgi?id=3303#c14 > > The patch list for resolution is: > > ** [35/35] 054c636e5c80 fsnotify: Move ->free_mark callback to fsnotify_ops > ok [34/35] 7b1293234084 fsnotify: Add group pointer in fsnotify_init_mark() > ok [33/35] ebb3b47e37a4 fsnotify: Drop inode_mark.c > ok [32/35] b1362edfe15b fsnotify: Remove fsnotify_find_{inode|vfsmount}_mark() > ok [31/35] 2e37c6ca8d76 fsnotify: Remove fsnotify_detach_group_marks() > ok [30/35] 18f2e0d3a436 fsnotify: Rename fsnotify_clear_marks_by_group_flags() > ok [29/35] 416bcdbcbbb4 fsnotify: Inline > fsnotify_clear_{inode|vfsmount}_mark_group() > ok [28/35] 8920d2734d9a fsnotify: Remove fsnotify_recalc_{inode|vfsmount}_mask() > ok [27/35] 66d2b81bcb92 fsnotify: Remove > fsnotify_set_mark_{,ignored_}mask_locked() > ok [26/35] 05f0e38724e8 fanotify: Release SRCU lock when waiting for > userspace response > ok [25/35] 9385a84d7e1f fsnotify: Pass fsnotify_iter_info into > handle_event handler > ** [NEED ] 3cd5eca8d7a2 fsnotify: constify 'data' passed to ->handle_event() > ok [24/35] abc77577a669 fsnotify: Provide framework for dropping SRCU > lock in ->handle_event > ok [23/35] f09b04a03e02 fsnotify: Remove special handling of mark > destruction on group shutdown > ok [22/35] 6b3f05d24d35 fsnotify: Detach mark from object list when > last reference is dropped > ok [21/35] 11375145a70d fsnotify: Move queueing of mark for > destruction into fsnotify_put_mark() > ok [20/35] e7253760587e inotify: Do not drop mark reference under idr_lock > ok [19/35] 08991e83b728 fsnotify: Free fsnotify_mark_connector when > there is no mark attached > ok [18/35] 04662cab59fc fsnotify: Lock object list with connector lock > ok [17/35] 2629718dd26f fsnotify: Remove useless list deletion and comment > ok [16/35] 73cd3c33ab79 fsnotify: Avoid double locking in > fsnotify_detach_from_object() > ok [15/35] 8212a6097a72 fsnotify: Remove indirection from fsnotify_detach_mark() > ok [14/35] a03e2e4f0783 fsnotify: Determine lock in fsnotify_destroy_marks() > ok [13/35] f06fd9875945 fsnotify: Move locking into fsnotify_find_mark() > ok [12/35] a242677bb1e6 fsnotify: Move locking into fsnotify_recalc_mask() > ok [11/35] 0810b4f9f207 fsnotify: Move fsnotify_destroy_marks() > ok [10/35] 755b5bc681eb fsnotify: Remove indirection from mark list addition > ok [09/35] e911d8af87db fsnotify: Make fsnotify_mark_connector hold > inode reference > ok [08/35] 86ffe245c430 fsnotify: Move object pointer to fsnotify_mark_connector > ok [NEED ] be29d20f3f5d audit: Fix sleep in atomic > ok [NEED ] e3ba730702af fsnotify: Remove fsnotify_duplicate_mark() > ** [07/35] 9dd813c15b2c fsnotify: Move mark list head from object into > dedicated structure -> THIS ONE > ok [06/35] c1f33073ac1b fsnotify: Update comments > ok [05/35] 43471d15df0e audit_tree: Use mark flags to check whether > mark is alive > ok [04/35] f410ff65548c audit: Abstract hash key handling > ok [03/35] c97476400d3b fanotify: Move recalculation of inode / > vfsmount mask under mark_mutex > ok [02/35] 25c829afbd74 inotify: Remove inode pointers from debug messages > ok [01/35] 5198adf649a0 fsnotify: Remove unnecessary tests when showing fdinfo > > ok = cherry-pick (no changes needed) > ** = backport > [NEED] = needed for original patchset to be cherry-picked > > (Original patchset came from > https://www.spinics.net/lists/linux-fsdevel/msg109131.html and there > was 3 backports for positional changes and 3 patches to satisfy the > cherry-picks). > > And it merges with no issues in stable v4.9 tree (as you can see in > https://bugs.linaro.org/show_bug.cgi?id=3303#c21). I can submit in a > thread in stable list if you are willing to move further. > > As you can see, this patchset solves the issue: > > BUG [unpatched] https://bugs.linaro.org/show_bug.cgi?id=3303#c18 > SOLVED [patched] https://bugs.linaro.org/show_bug.cgi?id=3303#c19 > > And introduces NO regressions in LTP or KSELFTEST: > > KSELFTEST: https://bugs.linaro.org/show_bug.cgi?id=3303#c23 > LTP: https://bugs.linaro.org/show_bug.cgi?id=3303#c27 > > I think now we've reached the "It depends" phase =). Let me know if > you think this is good to be acceptable for v4.9. We can run full > round of tests (on all boards and x86/amd64) if you choose to pull > this, during stable review. > > I can try same thing for v4.4 if it is worth. > > Cheers o/ > > -Rafael