|Subject:||Re: [Qemu-devel] [PATCH v4] socket: Allocating Large sized arrays to heap|
|Date:||Fri, 18 Mar 2016 18:59:12 +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?
> If no, Can you please help me with this one?
|[Prev in Thread]||Current Thread||[Next in Thread]|