|
From: | Philippe Mathieu-Daudé |
Subject: | Re: [PATCH] hw/net: move allocation to the heap due to very large stack frame |
Date: | Mon, 12 Oct 2020 13:09:22 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.3.1 |
On 10/10/20 8:07 AM, David Gibson wrote:
On Fri, Oct 09, 2020 at 07:02:56AM -0700, Elena Afanasova wrote:>From 09905773a00e417d3a37c12350d9e55466fdce8a Mon Sep 17 00:00:00 2001 From: Elena Afanasova <eafanasova@gmail.com> Date: Fri, 9 Oct 2020 06:41:36 -0700 Subject: [PATCH] hw/net: move allocation to the heap due to very large stack framePatch looks fine, but some more details of the motivation would be nice. I wouldn't have thought that the size of a network packet counted as a "very large" stack frame by userspace standards.
Maybe academia doing research on "super jumbo frames"? "Super jumbo frames ... increase the path MTU of high-performance national research and education networks from 1500 bytes to 9000 bytes or so, a subsequent increase, possibly to 64,000 bytes" (https://en.wikipedia.org/wiki/Jumbo_frame#Super_jumbo_frames)
Signed-off-by: Elena Afanasova <eafanasova@gmail.com> --- hw/net/spapr_llan.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/net/spapr_llan.c b/hw/net/spapr_llan.c index 2093f1bad0..581320a0e7 100644 --- a/hw/net/spapr_llan.c +++ b/hw/net/spapr_llan.c @@ -688,7 +688,8 @@ static target_ulong h_send_logical_lan(PowerPCCPU *cpu, SpaprVioDevice *sdev = spapr_vio_find_by_reg(spapr->vio_bus, reg); SpaprVioVlan *dev = VIO_SPAPR_VLAN_DEVICE(sdev); unsigned total_len; - uint8_t *lbuf, *p; + uint8_t *p; + g_autofree uint8_t *lbuf = NULL; int i, nbufs; int ret;@@ -729,7 +730,7 @@ static target_ulong h_send_logical_lan(PowerPCCPU *cpu,return H_RESOURCE; }- lbuf = alloca(total_len);+ lbuf = g_malloc(total_len); p = lbuf; for (i = 0; i < nbufs; i++) { ret = spapr_vio_dma_read(sdev, VLAN_BD_ADDR(bufs[i]),
[Prev in Thread] | Current Thread | [Next in Thread] |