Re: [PATCH v2 0/5] minitty: a minimal TTY layer alternative for embedded systems

From: Tom Zanussi
Date: Tue Apr 04 2017 - 13:59:16 EST


On Tue, 2017-04-04 at 20:08 +0300, Andy Shevchenko wrote:
> On Tue, Apr 4, 2017 at 7:59 PM, Tom Zanussi <tom.zanussi@xxxxxxxxxxxxxxx> wrote:
> > On Tue, 2017-04-04 at 00:05 +0300, Andy Shevchenko wrote:
>
> > Yes, in a previous project, I had been working toward getting a < 1M
> > system to boot on Galileo hardware (which it did, but using more than
> > that - the Galileo2 has 256MB, but it was the target hardware at the
> > time, and I was hoping eventually to be able to boot out of the 512k
> > on-chip SRAM).
> >
> > I was focused at that point mainly on the kernel static size, and using
> > a combination of Josh Triplett's tinification tree, Andi Kleen's LTO and
> > net-diet patches, and my own miscellaneous patches that I was planning
> > on eventually upstreaming, I ended up with a system that I could boot to
> > shell with a 455k text size:
> >
> > Memory: 235636K/245176K available (455K kernel code, 61K rwdata,
> > 64K rodata, 132K init, 56K bss, 3056K reserved, 0K cma-reserved)
> >
> > virtual kernel memory layout:
> > fixmap : 0xfffe5000 - 0xfffff000 ( 104 kB)
> > vmalloc : 0xd05f0000 - 0xfffe3000 ( 761 MB)
> > lowmem : 0xc0000000 - 0xcfdf0000 ( 253 MB)
> > .init : 0xc1094000 - 0xc10b5000 ( 132 kB)
> > .data : 0xc1071fac - 0xc1092760 ( 129 kB)
> > .text : 0xc1000000 - 0xc1071fac ( 455 kB)
> >
> > That was without networking. Enabling networking added about 250k, and
> > at that point I could ssh in and run a webserver, still less than 1M as
> > far as kernel static size, which of course completely ignores the kernel
> > dynamic size and userspace.
>
> Thanks for sharing your experience. The question closer to this
> discussion what did you do against TTY/UART/(related) layer(s)?
>

I'd have to go back and take a look, but nothing special AFIAR.

No patches or hacks along those lines, and the only related thing I see
as far as config is:

cfg/pty-disable.scc \

which maps to:

# CONFIG_UNIX98_PTYS is not set