On 8/16/14, Paolo Bonzini <pbonz...@redhat.com> wrote: > Il 14/08/2014 12:46, Kevin Wolf ha scritto: >> So to finally reply with some numbers... I'm running fio tests based on >> Ming's configuration on a loop-mounted tmpfs image using dataplane. > > I'm not sure tmpfs is a particularly useful comparison, since it doesn't > support O_DIRECT. O_DIRECT over ramdisk ("modprobe brd rd_nr=1 > rd_size=524288 max_part=1", either directly or via a filesystem) is > probably a better benchmark.
If loop is over file from tmpfs, that is fine since loop itself supports O_DIRECT and the sync ->read()/->write() inside loop driver can return without block. I have tested loop over tmpfs file, and can't reproduce Kevin's issue. > > Also, I'm not sure how the I/O scheduler works over tmpfs. A ramdisk > should just do the right thing. (Are you using deadline or cfq?) > >> | Random throughput | Sequential throughput >> ----------------+-------------------+----------------------- >> master | 442 MB/s | 730 MB/s >> base | 453 MB/s | 757 MB/s >> bypass (Ming) | 461 MB/s | 734 MB/s >> coroutine | 468 MB/s | 716 MB/s >> bypass (Paolo) | 476 MB/s | 682 MB/s > > This is pretty large, but it really smells like either a setup problem > or a kernel bug... > > Paolo > Thanks, -- Ming Lei