[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 5/8] util/compatfd.c: Replaced a malloc with GLib's variant
From: |
Alex Bennée |
Subject: |
Re: [PATCH 5/8] util/compatfd.c: Replaced a malloc with GLib's variant |
Date: |
Mon, 15 Mar 2021 16:15:54 +0000 |
User-agent: |
mu4e 1.5.10; emacs 28.0.50 |
Thomas Huth <thuth@redhat.com> writes:
> On 15/03/2021 07.43, Mahmoud Mandour wrote:
>> If it's unrelated, then maybe better do it in a separate patch.
>> I thought so but I didn't know whether it was a so-small change
>> that it didn't require its own patch or not. I will amend that.
>> Since this is only a very small allocation, I think it would be
>> better to
>> use g_malloc() here and then simply remove the "if (info == NULL) ..."
>> part.
>> I was thinking of always maintaining the semantics of the existing
>> code and since g_malloc() does not behave like malloc() on
>> error, I refrained from using g_malloc() anywhere, but of course
>> I'll do it since it's the better thing to do.
>
> Keeping the semantics is normally a good idea, but the common sense in
> the QEMU project is to rather use g_malloc() for small allocations (if
> allocating some few bytes already fails, then the system is pretty
> much dead anyway), and only g_try_malloc() for huge allocations that
> really might fail on a healthy system, too.
>
> We should likely add some text to our coding style document to make
> this more obvious...
So while there are some places where we may try to dynamically scale the
memory we allocate on failure of a large allocation generally memory
allocation failure is considered fatal (ergo g_malloc, no NULL check).
However some care has to be taken depending on where we are - for
example calling abort() because something the guest did triggered us to
try an allocate more memory than we could is a no no.
We could certainly be clearer in style.rst though.
>> I will split the patches to a two-patch series regarding the
>> util/compactfd.c file (one for the style change and one for
>> changing the malloc() call into g_malloc()) and send them
>> again, is that ok?
>
> Sounds good, thanks!
>
> Thomas
--
Alex Bennée
[PATCH 4/8] target/xtensa: Replaced malloc/free with GLib's variants, Mahmoud Mandour, 2021/03/13
[PATCH 7/8] tools/virtiofsd/fuse_opt.c: Replaced a malloc with GLib's g_try_malloc, Mahmoud Mandour, 2021/03/13
[PATCH 3/8] hw/audio/fmopl.c: Replaced calls to malloc with GLib's variants, Mahmoud Mandour, 2021/03/13
[PATCH 6/8] tools/virtiofsd/buffer.c: replaced a calloc call with GLib's g_try_new0, Mahmoud Mandour, 2021/03/13
[PATCH 8/8] tools/virtiofsd: Replacing malloc-like calls with GLib's variants, Mahmoud Mandour, 2021/03/13