Am 29.01.2019 um 12:18 hat Vladimir Sementsov-Ogievskiy geschrieben: > 29.01.2019 13:32, Stefan Hajnoczi wrote: > > On Tue, Jan 29, 2019 at 6:24 PM Vladimir Sementsov-Ogievskiy > > <vsement...@virtuozzo.com> wrote: > >> 29.01.2019 6:31, Stefan Hajnoczi wrote: > >>> On Fri, Jan 25, 2019 at 07:46:01PM +0300, Vladimir Sementsov-Ogievskiy > >>> wrote: > >> Hmm. In this case we definitely will have tiny extra memory usage, but we > >> gain beautiful > >> readability. > >> > >> So, like this: > >> > >> diff --git a/include/qemu/iov.h b/include/qemu/iov.h > >> index 5f433c7768..53de1b38bb 100644 > >> --- a/include/qemu/iov.h > >> +++ b/include/qemu/iov.h > >> @@ -134,9 +134,31 @@ typedef struct QEMUIOVector { > >> struct iovec *iov; > >> int niov; > >> int nalloc; > >> - size_t size; > >> + union { > >> + struct { > >> + void *__unused_iov_base; > > > > This could be struct iovec *iov for nalloc > 0 users. Must resist > > hackiness! :) > > can't be iov, gcc complains: > include/qemu/iov.h:139:27: error: duplicate member ‘iov’ > struct iovec *iov;
I think Stefan meant moving the existing iov here. But then we would have to make sure that it's never used for local qiovs, which would probably involve touching a lot more code. Your original suggestion to put nalloc there looks a bit more practical if we want to save those bytes. Kevin