On Thu, Aug 18, 2016 at 12:49:07AM +0200, Alexander Bluhm wrote:
> On Wed, Aug 17, 2016 at 09:21:21PM +0200, Claudio Jeker wrote:
> > On Wed, Aug 17, 2016 at 02:29:49PM +0200, Alexander Bluhm wrote:
> > > As I understand, we are hitting the global mbuf cluster limit.  I
> > > don't see how a changed pool wakeup policy could fix this hang.
> > > 
> > 
> > Choose your poision.
> 
> According to the commit messages M_NOWAIT fixed real world problems
> in OpenBSD and NetBSD.  So I would not remove it.
> 

I would not call it a fix. It is more of a workaround. In the old times
the number of clusters in a system was very limited and not tunable. It
made sense to expect the allocation of a cluster to fail and use an
alternative instead. With the introduction of mbuf cluster pools the
allocation became much more reliable and so over time our subsystems
became more and more dependent on requiering clusters to operate correctly.
If cluster allocation fails the socketbuffer is probably our least problem
and by having it actually happily allocate more mbufs and try to issue
more packets it will not make the situation better. I think a proper fix
would require to ensure that the socketbuffers can not consume all clusters.

I will commit my diff without the M_NOWAIT change (as suggested by dlg).
-- 
:wq Claudio

Reply via email to