[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/2] io/buffer: avoid memmove at each qio_buffer
From: |
Gerd Hoffmann |
Subject: |
Re: [Qemu-devel] [PATCH 2/2] io/buffer: avoid memmove at each qio_buffer_advance |
Date: |
Tue, 03 Nov 2015 11:52:49 +0100 |
> diff --git a/include/io/buffer.h b/include/io/buffer.h
> index f63869e..43688cc 100644
> --- a/include/io/buffer.h
> +++ b/include/io/buffer.h
> @@ -39,6 +39,8 @@ struct QIOBuffer {
> size_t offset;
> uint64_t avg_size;
> uint8_t *buffer;
> + size_t base_offs;
> + uint8_t *base_ptr;
Why a separate base_ptr?
While being at it I'd much prefer to replace offset with start & end.
The buffer content is buffer[start] ... buffer[end-1] then.
We can allow the buffer to wrap around, i.e. end < start. Buffer
content is buf[start] ... buffer[size-1] and buffer[0] .. buffer[end-1]
then. Makes the buffer management a bit more complicated, but we never
have to memmove then (except when changing buffer size) and the
WASTED_SIZE logic isn't needed too ...
cheers,
Gerd