Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Jun 2005 12:39:27 -0400 (EDT)
From:      Jeff Roberson <jroberson@chesapeake.net>
To:        Alfred Perlstein <alfred@FreeBSD.org>
Cc:        cvs-src@FreeBSD.org, Jeff Roberson <jeff@FreeBSD.org>, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/kern vfs_bio.c
Message-ID:  <20050609123920.T16943@mail.chesapeake.net>
In-Reply-To: <20050609135438.GS17867@elvis.mu.org>
References:  <200506082026.j58KQ6cT052316@repoman.freebsd.org> <20050609135438.GS17867@elvis.mu.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 9 Jun 2005, Alfred Perlstein wrote:

> MFC? :D

Yes, after a few weeks.

>
> * Jeff Roberson <jeff@FreeBSD.org> [050608 13:26] wrote:
> > jeff        2005-06-08 20:26:06 UTC
> >
> >   FreeBSD src repository
> >
> >   Modified files:
> >     sys/kern             vfs_bio.c
> >   Log:
> >    - Under heavy IO load the buf daemon can run for many hundereds of
> >      milliseconds due to what is essentially n^2 algorithmic complexity.  This
> >      change makes the algorithm N*2 instead.  This heavy processing manifested
> >      itself as skipping in audio and video playback due to the long scheduling
> >      latencies and contention on giant by pcm.
> >    - flushbufqueues() is now responsible for flushing multiple buffers
> >      rather than one at a time.  This allows us to save our progress in the
> >      list by using a sentinal.  We must do the numdirtywakeup() and
> >      waitrunningbufspace() here now rather than in buf_daemon().
> >    - Also add a uio_yield() after we have processed the list once for bufs
> >      without deps and again for bufs with deps.  This is to release Giant
> >      and allow any other giant locked code to proceed.
> >
> >   Tested by:      Many users on current@
> >   Revealed by:    schedgraph traces sent by Emil Mikulic & Anthony Ginepro
> >
> >   Revision  Changes    Path
> >   1.487     +28 -6     src/sys/kern/vfs_bio.c
>
> --
> - Alfred Perlstein
> - email: bright@mu.org cell: 408-480-4684
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050609123920.T16943>