:Thomas Nikolajsen <[email protected]> added the comment:
:
:The file system is 20GB.
:
:I know this is rather small for a HAMMER FS.
:It is just a root file system, for a x86_64 setup,
:had to 'steal' from swap partition (still have 12GB for 8 GB mem)
:it is not full at all.
:Disklabel was already setup with i386 DragonFly system;
:btw setting up dual boot i386/x86_64 works out quite easily w/ dloader ;-)
:
:show-undo output is put on leaf:
:http://leaf.dragonflybsd.org/~thomas/issue1984
:
:Feb  9 21:58:32 octopus kernel: HAMMER: Warning: UNDO area too small!
:Feb  9 21:58:32 octopus kernel: HAMMER: Warning: UNDO area too small!
:..
:priority:  -> bug

    Ok, I'm fairly certain that it is an UNDO/REDO FIFO overflow due to
    the mechanics of how HAMMER operates when this warning is active.

    Right now when HAMMER is forced to do mini-flushes inside the main
    flush due to the UNDO area being too small it still doesn't flush
    the volume header until the more encompassing meta-flush is done.
    I'm certain this is causing the FIFO to overflow and blowing up
    the recovery code.

    A 20GB HAMMER filesystem only reserves a 100MB UNDO/REDO FIFO.  Even
    a 200GB HAMMER filesystem only reserves a 232MB UNDO/REDO FIFO.  The
    real problem here is that the required size for the UNDO/REDO FIFO
    is related more to the system's ram and buffer cache configuration
    than to the filesystem size.  I think I'm going to have to change
    newfs_hammer to create a minimum 500MB UNDO/REDO FIFO.

    I will also have to change the flush mechanics to avoid the mini-flushes
    in the first place.

                                        -Matt
                                        Matthew Dillon 
                                        <[email protected]>

Reply via email to