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