cvs commit: src/sys/kern uipc_mbuf.c

Matthew Dillon dillon at apollo.backplane.com
Wed Jun 8 14:49:36 PDT 2005


:
:Matthew Dillon wrote:
:> dillon      2005/06/08 12:29:32 PDT
:> 
:> DragonFly src repository
:> 
:>   Modified files:
:>     sys/kern             uipc_mbuf.c 
:>   Log:
:>   Temporary hack to fix interrupt race when decrementing a shared
:>   mbuf cluster count.
:
:I was kinda hoping this would fix my panic-on-boot, but no luck.
:
:Can I do anything to give you more helpful data?

    Wait for the next commit and see if that helps.

    There are multiple bugs in the mbuf code.  I've fixed at least half a
    dozen and buildworld still stalls out, but I think I've found the last
    one (related to the buildworld issue anyway).  Jeff is trying to 
    ultra-optimize the mbuf allocator by creating separate object caches
    for mbufs, mbufs with packet headers, mbuf clusters, and mbuf clusters
    with packet headers.  The main problem seems to be that the m_free()
    path is getting really confused as to which objcache an mbuf should be
    freed to because it is checking based on M_PKTHDR and M_EXT.  But
    M_PKTHDR can move between mbufs, and shared clusters can be deref'd
    by unrelated mbufs, so that doesn't work.

    I'm not entirely sure what your problem is if it isn't that interrupt
    race, but as I said there are multiple bugs so wait for the rollup
    commit and then try again.

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>





More information about the Commits mailing list