Li Feng 2916405a11 block/nvme: optimize the performance of nvme driver based on vfio-pci
When the IO size is larger than 2 pages, we move the the pointer one by
one in the pagelist, this is inefficient.

This is a simple benchmark result:

Before:
$ qemu-io -c 'write 0 1G' nvme://0000:00:04.0/1

wrote 1073741824/1073741824 bytes at offset 0
1 GiB, 1 ops; 0:00:02.41 (424.504 MiB/sec and 0.4146 ops/sec)

 $ qemu-io -c 'read 0 1G' nvme://0000:00:04.0/1

read 1073741824/1073741824 bytes at offset 0
1 GiB, 1 ops; 0:00:02.03 (503.055 MiB/sec and 0.4913 ops/sec)

After:
$ qemu-io -c 'write 0 1G' nvme://0000:00:04.0/1

wrote 1073741824/1073741824 bytes at offset 0
1 GiB, 1 ops; 0:00:02.17 (471.517 MiB/sec and 0.4605 ops/sec)

 $ qemu-io -c 'read 0 1G' nvme://0000:00:04.0/1

read 1073741824/1073741824 bytes at offset 0
1 GiB, 1 ops; 0:00:01.94 (526.770 MiB/sec and 0.5144 ops/sec)

Signed-off-by: Li Feng <lifeng1519@gmail.com>
Message-Id: <20181101103807.25862-1-lifeng1519@gmail.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
2019-01-09 09:38:34 +08:00
..
2018-07-10 16:01:52 +02:00
2018-08-31 16:28:33 +02:00
2018-11-05 15:09:55 +01:00
2016-10-07 14:14:06 +02:00
2019-01-04 11:15:09 +00:00
2018-09-25 15:50:15 +02:00
2018-11-05 15:09:55 +01:00
2018-08-15 12:50:39 +02:00
2018-02-09 05:05:11 +01:00
2018-12-14 11:52:41 +01:00
2017-07-17 11:34:11 +08:00
2018-08-15 12:50:39 +02:00
2018-07-10 16:01:52 +02:00
2018-11-05 15:09:54 +01:00
2018-11-19 12:51:40 +01:00
2018-06-15 14:49:44 +02:00