DragonFly BSD
DragonFly commits List (threaded) for 2005-07
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

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


From: "Simon 'corecode' Schubert" <corecode@xxxxxxxxxxxx>
Date: Sat, 23 Jul 2005 09:37:30 +0200

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   / \



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]