HomeFreeBSD

Fix zfs_dirty_data_max overflow on 32-bit

Description

Fix zfs_dirty_data_max overflow on 32-bit

On 32 bit, the calculation of zfs_dirty_data_max from phymem will overflow,
causing it to be smaller than zfs_dirty_data_sync, and will cause txg being
delayed while no one write to disk. The end result is horrendous write speed.

On 4G ram 32-bit VM, before this patch, simple dd results in ~7MB/s. Now it
can reach speed on par with 64-bit VM.

Signed-off-by: Chunwei Chen <tuxoko@gmail.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #3973

Details

Provenance
tuxoko <tuxoko@gmail.com>Authored on Oct 30 2015, 11:10 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Nov 20 2015, 12:02 AM
Parents
rGd0c614ecf9eb: Fix null pointer in arc_kmem_reap_now on 32-bit
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rG43518d92fd92: Fix zfs_dirty_data_max overflow on 32-bit (authored by tuxoko <tuxoko@gmail.com>).Nov 20 2015, 12:02 AM