On Fri, 2 May 2014, Peter Zijlstra wrote:

> In principle the vfs file refcounting should be responsible for that.
> But I'll go over it in a bit.

The poll code is ancient and the C-parser in my head really can't handle 
it very well.

Anyway for completeness this is the kind of thing I'm seeing.
The poll() manpage isn't very clear about what is supposed to happen if 
you poll() on a closed file descriptor.


FD#3 closed
        perf_fuzzer-2293  [003]   286.500137: sys_enter:            NR 3 (3, 
7fff841b9eac, 0, 22, 7ff17078110c, 7ff170781120)

Child killed:
        perf_fuzzer-2293  [003]   286.505587: sys_exit:             NR 62 = 0

Poll started, seems to have freed fd #3 as an argument:
        perf_fuzzer-2293  [003]   286.505703: sys_enter:            NR 7 
(7fff841b9b00, 55, 3, 40e3e3, 7ff1707810dc, 7ff170781120)

(child is still closing out at this point)


Event freed:
        <...>-2701  [004]   286.505904: bprint:               _free_event: 
freeing with 0 refs; ptr=0x0xffff8800ce88e000

fd#3 is still being polled despite the event being completely gone now:
        perf_fuzzer-2293  [003]   286.508846: bprint:               
do_sys_poll: VMW: poll 3
        perf_fuzzer-2293  [003]   286.508847: function:             perf_poll
        perf_fuzzer-2293  [003]   286.508848: bprint:               
do_sys_poll: VMW: poll 3
        perf_fuzzer-2293  [003]   286.508849: function:             perf_poll
        perf_fuzzer-2293  [003]   286.508850: bprint:               
do_sys_poll: VMW: poll 3
        perf_fuzzer-2293  [003]   286.508846: bprint:               
do_sys_poll: VMW: poll 3
        perf_fuzzer-2293  [003]   286.508847: function:             perf_poll
        perf_fuzzer-2293  [003]   286.508848: bprint:               
do_sys_poll: VMW: poll 3
        perf_fuzzer-2293  [003]   286.508849: function:             perf_poll
        perf_fuzzer-2293  [003]   286.508850: bprint:               
do_sys_poll: VMW: poll 3
        perf_fuzzer-2293  [003]   286.508850: function:             perf_poll
        perf_fuzzer-2293  [003]   286.508851: bprint:               
do_sys_poll: VMW: poll 12
        perf_fuzzer-2293  [003]   286.508850: function:             perf_poll
        perf_fuzzer-2293  [003]   286.508851: bprint:               
do_sys_poll: VMW: poll 12

Finally done polling:
        perf_fuzzer-2293  [003]   286.509002: sys_exit:             NR 7 = 0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to