cvs commit: src/sys/kern uipc_socket.c uipc_socket2.c src/sys/sys socketvar.h

Simon 'corecode' Schubert corecode at fs.ei.tum.de
Sat Jul 23 00:38:50 PDT 2005


Matthew Dillon wrote:
  Fix a sockbuf race.  Currently the m_free*() path can block, due to
  objcache_put() blocking when it must access the global depot.  This breaks
  the critical section *AND the BGL during a time when the sockbuf state is
  inconsistent.  Another process accessing the same sockbuf would then
  corrupt it.  Since depot access is fairly rare, this bug typically required
  a number of hours to reproduce.
Would it work better if we would pass down flags to objcache_put, which 
can indicate that blocking is bad, and then either spin with trytoken or 
plainly destruct the object directly?

cheers
  simon
--
Serve - BSD     +++  RENT this banner advert  +++    ASCII Ribbon   /"\
Work - Mac      +++  space for low $$$ NOW!1  +++      Campaign     \ /
Party Enjoy Relax   |   http://dragonflybsd.org      Against  HTML   \
Dude 2c 2 the max   !   http://golden-apple.biz       Mail + News   / \




More information about the Commits mailing list