[SLOF] [PATCH v2 07/11] libnet: Wire up pxelinux.cfg network booting
Alexey Kardashevskiy
aik at ozlabs.ru
Fri May 25 15:27:23 AEST 2018
On 25/5/18 2:42 pm, Thomas Huth wrote:
> On 25.05.2018 04:44, Alexey Kardashevskiy wrote:
>> On 25/5/18 12:39 am, Thomas Huth wrote:
>>> On 24.05.2018 11:01, Alexey Kardashevskiy wrote:
> [...]
>>>> And why static?
>>>
>>> Allocating big buffers on the stack is always critical within paflof,
>>> we've seen more than enough buffer overruns in the past already. But I
>>> could malloc() the buffer instead if you prefer that.
>>
>> It is just 2KB, is it still too much for slof? And when it is static - this
>> space is always taken even if pxelinux is not used so malloc seems
>> appropriate here.
>
> Yeah, stack size is very, very sensitive, since a lot of code is calling
> engine() recursively, and this uses quite some bit of stack space each
> time. See commits 8c41240bc4e9, 271fd45605c11, baa834884c90, ... for
> example.
>
> So I'll try to switch to malloc here instead.
May be then embed cfgbuf/cfgsize into "lkia" so it is obvious lkia's
entries point into this cfgbuf?
struct pxe_cfg {
struct {
const char *label;
const char *kernel;
const char *initrd;
const char *append;
} lkia[MAX_LKIA_ENTRIES];
unsigned entries;
unsigned default;
char buf[CFG_BUF_SIZE];
};
and malloc/free that?
/me wonders if I am asking too much :)
>
> Thomas
>
>
> PS:
> By the way, something for our TODO lists: We really should add some
> logic to the libc free() function to merge freed memory blocks again if
> possible...
Do you have any measurements of how much loose on this?
--
Alexey
More information about the SLOF
mailing list