[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Qemu-block] [PATCH v5 0/2] block: enforce minimal 4096
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [Qemu-block] [PATCH v5 0/2] block: enforce minimal 4096 alignment in qemu_blockalign |
Date: |
Tue, 12 May 2015 12:46:57 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 |
On 12/05/2015 12:19, Denis V. Lunev wrote:
>
>
> hades /vol $ strace -f -e pwrite -e raw=write,pwrite qemu-io -n -c
> "write -P 0x11 0 64M" ./1.img
> Process 19326 attached
> [pid 19326] pwrite(0x6, 0x7fac07fff200, 0x4000000, 0x50000) = 0x4000000
> <---- 1 GB Write from userspace
FWIW this is 64 MB (as expected).
> wrote 67108864/67108864 bytes at offset 0
> 64 MiB, 1 ops; 0.2964 sec (215.863 MiB/sec and 3.3729 ops/sec)
> [pid 19326] +++ exited with 0 +++
> +++ exited with 0 +++
> hades /vol $
> 9,0 1 266 74.030359772 19326 Q WS 473095 + 1016 [(null)]
> 9,0 1 267 74.030361546 19326 Q WS 474111 + 8 [(null)]
> 9,0 1 268 74.030395522 19326 Q WS 474119 + 1016 [(null)]
> 9,0 1 269 74.030397509 19326 Q WS 475135 + 8 [(null)]
>
> This means, yes, kernel is INEFFECTIVE performing direct IO with
> not aligned address. For example, without direct IO the pattern is
> much better.
I think this means that the kernel is DMAing at most 128 pages at a
time. If the buffer is misaligned, you need 129 pages and the kernel
then splits the request into a 128 page and a 1 page part.
This looks like a hardware limit, and the kernel probably cannot really
do anything about it because we requested O_DIRECT. So your patch makes
sense.
Paolo
- [Qemu-devel] [PATCH 2/2] block: align bounce buffers to page, (continued)
- [Qemu-devel] [PATCH 1/2] block: minimal bounce buffer alignment, Denis V. Lunev, 2015/05/04
- Re: [Qemu-devel] [Qemu-block] [PATCH v5 0/2] block: enforce minimal 4096 alignment in qemu_blockalign, Stefan Hajnoczi, 2015/05/11
- Re: [Qemu-devel] [Qemu-block] [PATCH v5 0/2] block: enforce minimal 4096 alignment in qemu_blockalign, Denis V. Lunev, 2015/05/11
- Re: [Qemu-devel] [Qemu-block] [PATCH v5 0/2] block: enforce minimal 4096 alignment in qemu_blockalign, Denis V. Lunev, 2015/05/11
- Re: [Qemu-devel] [Qemu-block] [PATCH v5 0/2] block: enforce minimal 4096 alignment in qemu_blockalign, Stefan Hajnoczi, 2015/05/12
- Re: [Qemu-devel] [Qemu-block] [PATCH v5 0/2] block: enforce minimal 4096 alignment in qemu_blockalign, Denis V. Lunev, 2015/05/12
- Re: [Qemu-devel] [Qemu-block] [PATCH v5 0/2] block: enforce minimal 4096 alignment in qemu_blockalign,
Paolo Bonzini <=
- Re: [Qemu-devel] [Qemu-block] [PATCH v5 0/2] block: enforce minimal 4096 alignment in qemu_blockalign, Stefan Hajnoczi, 2015/05/13
- Re: [Qemu-devel] [Qemu-block] [PATCH v5 0/2] block: enforce minimal 4096 alignment in qemu_blockalign, Denis V. Lunev, 2015/05/13
- Re: [Qemu-devel] [PATCH v5 0/2] block: enforce minimal 4096 alignment in qemu_blockalign, Paolo Bonzini, 2015/05/29
- Re: [Qemu-devel] [Qemu-block] [PATCH v5 0/2] block: enforce minimal 4096 alignment in qemu_blockalign, Paolo Bonzini, 2015/05/14
- Re: [Qemu-devel] [Qemu-block] [PATCH v5 0/2] block: enforce minimal 4096 alignment in qemu_blockalign, Denis V. Lunev, 2015/05/11