Re: NFS client/buffer cache deadlock

From: Brian Fundakowski Feldman (green_at_freebsd.org)
Date: 04/26/05

  • Next message: Alexander Rusinov: "Re: PostgreSQL in FreeBSD jails"
    Date: Tue, 26 Apr 2005 15:36:02 -0400
    To: Marc Olzheim <marcolz@stack.nl>
    
    

    On Tue, Apr 26, 2005 at 06:43:46PM +0200, Marc Olzheim wrote:
    > [changed cc: from standards@ back to stable@ again.]
    >
    > On Tue, Apr 26, 2005 at 12:25:49PM -0400, Brian Fundakowski Feldman wrote:
    > > You can assure that this happens in only two ways:
    > >
    > > 1. Make a complete copy of the data. This is what currently occurs:
    > > it gets stuffed into the buffer cache as the write happens.
    > > 2. Keep the data around synchronously -- by virtue of the write system
    > > call being used synchronously, the thread's VM context is around,
    > > and duplication need not occur.
    >
    > It seems as though FreeBSD 4.x either used 2) or does something wrong
    > indeed. Why would 2) be a problem on FreeBSD 5.x ? Can't the pages
    > written from be locked during the write, instead of copied internally ?

    I'm still guessing that for whatever reason your writes on the FreeBSD
    4.x NFS client are not using NFSv3/transactions. The second method
    I just now implemented; it works fine except for being slower since
    all data is acknowledged synchronously. Are you using one writev()
    instead of many writes so you can atomically write a large sparse data
    structure? If so, you will probably just have to cope with the lower
    performance than for reasonably-sized writes. If not: why are you
    trying to write it atomically? Just use multiple normal-sized write()
    calls.

    > Btw. running the writev program with 20 * 100 MB on UFS on a 512MB
    > FreeBSD 6-CURRENT system practicly locks the filesystem down _and_
    > causes all processes to be swapped out in favor of the buffer cache.
    > 'top' however, doesnt' show a rise in BUF usage.
    >
    > On FreeBSD 4.x, the system performance as usual during the writev to
    > UFS.

    That's certainly not very optimal. I don't know anything about it, sorry.

    -- 
    Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
      <> green@FreeBSD.org                               \  The Power to Serve! \
     Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\
    _______________________________________________
    freebsd-stable@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-stable
    To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"
    

  • Next message: Alexander Rusinov: "Re: PostgreSQL in FreeBSD jails"