Running >2 hours with your patch now and everything's fine.
As this is the longest splassert error free time frame in
the last 24 hours, i'd say -> fixed.

Thanks,

        -Mark

On Wed, Jan 11, 2017 at 07:33:49PM +0100, Martin Pieuchot wrote:
> On 11/01/17(Wed) 18:27, Martin Pieuchot wrote:
> > Mark Patruck reported the following assertion:
> >  
> >     splassert: pool_put: want 5 have 7
> >     Starting stack trace...
> >     pool_put() at pool_put+0x4e
> >     pf_pkt_unlink_state_key() at pf_pkt_unlink_state_key+0x15
> >     m_free() at m_free+0xa0
> >     m_freem() at m_freem+0x19
> >     vmxnet3_txintr() at vmxnet3_txintr+0x9c
> >     vmxnet3_intr() at vmxnet3_intr+0x70
> >     intr_handler() at intr_handler+0x28
> >     Xintr_ioapic_level7() at Xintr_ioapic_level7+0xcd
> >     --- interrupt ---
> >     acpicpu_idle() at acpicpu_idle+0xcb
> >     cpu_idle_cycle() at cpu_idle_cycle+0x10
> >     end trace frame: 0x0, count: 247
> >     End of stack trace.
> > 
> > Since state keys can be pool_put(9)'d in interrupt handlers the correct
> > IPL should be IPL_NET.
> 
> After discussing the issue with bluhm@ a better solution would be to
> unlink the state key before passing the mbuf to the driver.  This way
> we would respect the contract that PF data structures are only accessed
> at IPL_SOFTNET.
> 
> ok?
> 
> Index: net/if.c
> ===================================================================
> RCS file: /cvs/src/sys/net/if.c,v
> retrieving revision 1.473
> diff -u -p -r1.473 if.c
> --- net/if.c  4 Jan 2017 03:56:15 -0000       1.473
> +++ net/if.c  11 Jan 2017 18:30:41 -0000
>  */
> @@ -597,6 +599,10 @@ if_enqueue(struct ifnet *ifp, struct mbu
>  
>       length = m->m_pkthdr.len;
>       mflags = m->m_flags;
> +
> +#if NPF > 0
> +     pf_pkt_unlink_state_key(m);
> +#endif       /* NPF > 0 */
>  
>       /*
>        * Queue message on interface, and start output if interface
> 

-- 
Mark Patruck ( mark at wrapped.cx )
GPG key 0xF2865E51 / 187F F6D3 EE04 1DCE 1C74  F644 0D3C F66F F286 5E51

http://www.wrapped.cx

Reply via email to