cvs commit: src/sys/kern vfs_bio.c
Jeff Roberson
jroberson at chesapeake.net
Thu Jun 9 16:39:32 GMT 2005
On Thu, 9 Jun 2005, Alfred Perlstein wrote:
> MFC? :D
Yes, after a few weeks.
>
> * Jeff Roberson <jeff at 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 at mu.org cell: 408-480-4684
>
More information about the cvs-src
mailing list