Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Feb 2003 14:54:07 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Alfred Perlstein <bright@mu.org>
Cc:        Morten Rodal <morten@rodal.no>, phk@phk.freebsd.dk, David Schultz <dschultz@uclink.Berkeley.EDU>, arch@FreeBSD.ORG
Subject:   Re: Our lemming-syncer caught in the act.
Message-ID:  <200302102254.h1AMs7ra023931@apollo.backplane.com>
References:  <20030210091317.GD5165@HAL9000.homeunix.com> <37473.1044868995@critter.freebsd.dk> <20030210204523.GF12240@slurp.rodal.no> <20030210205443.GA88781@elvis.mu.org> <200302102225.h1AMPkTE023700@apollo.backplane.com> <20030210223904.GG88781@elvis.mu.org>

next in thread | previous in thread | raw e-mail | index | archive | help

:There are several good points in your mail, especially about performing
:partial fsyncs, however this doesn't really explain why 4.x is "ok" versus
:5.x having issues.  The only explanation I can think of is that the syncer
:runs with giant for a long time but under 4.x only needs splbio() for short
:periods.

    The syncer tends to block quite a bit under normal operation, so it
    seems unlikely that Giant would be an issue unless the syncer is looping
    without getting any work accomplished.  *THIS* is possible, since we've
    already had to hack the syncer considerably to prevent it from looping
    on unflushable softupdates buffers.  There could be new cases that have
    not been addressed.

    If I recall I have made one change in the last few months which might
    be worth looking at.

dillon      2002/12/28 13:03:42 PST

  Modified files:
    sys/vm               vm_object.c vm_pager.h vnode_pager.c 
  Log:
  Allow the VM object flushing code to cluster.  When the filesystem syncer
  comes along and flushes a file which has been mmap()'d SHARED/RW, with
  dirty pages, it was flushing the underlying VM object asynchronously,
  resulting in thousands of 8K writes.  With this change the VM Object flushing
  code will cluster dirty pages in 64K blocks.
  
  Note that until the low memory deadlock issue is reviewed, it is not safe
  to allow the pageout daemon to use this feature.  Forced pageouts still
  use fs block size'd ops for the moment.
  
  MFC after:      3 days
  
  Revision  Changes    Path
  1.250     +10 -3     src/sys/vm/vm_object.c
  1.37      +4 -2      src/sys/vm/vm_pager.h
  1.165     +8 -2      src/sys/vm/vnode_pager.c


    But, as you can see, it is in -stable as well.  I doubt the above could
    be the cause.

    Profiling the problem in action might give us some more clues.

						-Matt


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




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