qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4] socket: Allocating Large sized arrays to hea


From: Jaya Tiwari
Subject: Re: [Qemu-devel] [PATCH v4] socket: Allocating Large sized arrays to heap
Date: Fri, 18 Mar 2016 18:57:30 +0530



On Fri, Mar 18, 2016 at 5:21 PM, Paolo Bonzini <address@hidden> wrote:


On 18/03/2016 12:24, Pooja Dhannawat wrote:
>
>
> On Fri, Mar 18, 2016 at 4:20 AM, Paolo Bonzini <address@hidden
> <mailto:address@hidden>> wrote:
>
>
>
>     On 17/03/2016 16:31, Pooja Dhannawat wrote:
>     >
>     >
>     > On Thu, Mar 17, 2016 at 8:20 PM, Stefan Hajnoczi <address@hidden <mailto:address@hidden>
>     > <mailto:address@hidden <mailto:address@hidden>>> wrote:
>     >
>     >     On Tue, Mar 15, 2016 at 09:29:58PM +0530, Pooja Dhannawat wrote:
>     >     > @@ -170,8 +170,8 @@ static void net_socket_send(void *opaque)
>     >     >          s->index = 0;
>     >     >          s->packet_len = 0;
>     >     >          s->nc.link_down = true;
>     >     > -        memset(s->buf, 0, sizeof(s->buf));
>     >
>     >     This change is unrelated to allocating buf1 on the heap.  What is the
>     >     purpose of this line?
>     >
>     >
>     > I moved buf from stack to Heap, used g_new(), but I got your point if we
>     > need to initialize it with 0 then I have to keep that one.
>     >
>     > Other wise doing so it gets whatever garbage it has already.
>
>     This is s->buf, not buf.  Also, the BiteSizedTasks page says "Make the
>     stack array smaller and allocate on the heap in the rare case that the
>     data does not fit in the small array".
>
> So here, should I check with stack consumption(size of array) and if it
> is greater than accepted level, then only keep on heap?

If it is greater than the accepted level, the on-stack buffer is not
used and you allocate one that has the right size on the heap.
Yes Okay. Thank you for the comments.
I had one more question.
size = qemu_recv(s->fd, buf1, sizeof(buf1), 0); 
The one above returns bytes read into buf1 (if large then bytes equivalent to len(buf1) is read) ?
If true, size is the correct measure of buf1? Hence, I should compare the allowed stack size to "size" variable?

Paolo

> If no, Can you please help me with this one?
>
>     Paolo
>
>




--
Regards,
Jaya

reply via email to

[Prev in Thread] Current Thread [Next in Thread]