Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Aug 2016 08:27:02 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        Toomas Soome <tsoome@me.com>
Cc:        Konstantin Belousov <kostikbel@gmail.com>, Julian Elischer <julian@freebsd.org>,  John Baldwin <jhb@freebsd.org>, src-committers <src-committers@freebsd.org>,  "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>,  "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r304187 - in head: . share/man/man4 sys/conf sys/dev/mcd sys/modules sys/modules/mcd
Message-ID:  <CANCZdfoFheJLyUMJxqjFt0__ZTZC4ws-LqnP%2BPAyWVC%2B_n_-Ag@mail.gmail.com>
In-Reply-To: <514987E4-B953-467C-B53B-824B172A5211@me.com>
References:  <201608152038.u7FKc2NL026330@repo.freebsd.org> <2065331.KaGOSftJhd@ralph.baldwin.cx> <0d6c2e45-e4da-9bb7-a50c-212135d9ac4f@freebsd.org> <CANCZdfpY9S8ErwD6b7pHeH%2BRVF9JEszBb7zJ9m-wybfBr1ujAg@mail.gmail.com> <20160819073955.GC83214@kib.kiev.ua> <50AAF049-C8A7-4C69-A206-C3983FFA7867@me.com> <20160819092424.GE83214@kib.kiev.ua> <514987E4-B953-467C-B53B-824B172A5211@me.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Aug 19, 2016 at 3:35 AM, Toomas Soome <tsoome@me.com> wrote:
>
>> On 19. aug 2016, at 12:24, Konstantin Belousov <kostikbel@gmail.com> wro=
te:
>>
>> On Fri, Aug 19, 2016 at 11:50:35AM +0300, Toomas Soome wrote:
>>>
>>>> On 19. aug 2016, at 10:39, Konstantin Belousov <kostikbel@gmail.com> w=
rote:
>>>>
>>>> On Thu, Aug 18, 2016 at 09:28:57PM -0600, Warner Losh wrote:
>>>>> On Thu, Aug 18, 2016 at 12:50 AM, Julian Elischer <julian@freebsd.org=
> wrote:
>>>>>> On 16/08/2016 4:54 AM, John Baldwin wrote:
>>>>>>>
>>>>>>> On Monday, August 15, 2016 08:38:02 PM John Baldwin wrote:
>>>>>>>>
>>>>>>>> Author: jhb
>>>>>>>> Date: Mon Aug 15 20:38:02 2016
>>>>>>>> New Revision: 304187
>>>>>>>> URL: https://svnweb.freebsd.org/changeset/base/304187
>>>>>>>>
>>>>>>>> Log:
>>>>>>>> Remove the mcd(4) driver for Mitsumi CD-ROM players.
>>>>>>>>    This is a driver for a pre-ATAPI ISA CD-ROM adapter.  As noted =
in
>>>>>>>> the manpage, this driver is only useful as a backend to cdcontrol =
to
>>>>>>>> play audio CDs since it doesn't use DMA, so its data performance i=
s
>>>>>>>> "abysmal" (and that was true in the mid 90's).
>>>>>>>
>>>>>>> No one stepped up to test patches for it either when I last posted =
patches
>>>>>>> to
>>>>>>> convert it from timeout(9) to callout(9).  I have a few more driver=
s that
>>>>>>> are
>>>>>>> both very old and that people have no business using in 12 (think I=
SA
>>>>>>> adapters that don't do DMA and can't be used with pccard) that I wi=
ll be
>>>>>>> removing over the next little while.  I brought up a list of driver=
s on
>>>>>>> arch@
>>>>>>> a couple of years ago and the conversation drifted off into the wee=
ds
>>>>>>> about
>>>>>>> trimming GENERIC, etc.  No one objected to the specific drivers I l=
isted
>>>>>>> though (and I got a few pleas of "please remove").  If someone show=
s up
>>>>>>> desperately clutching an ISA adapter they can always dig up the sou=
rce
>>>>>>> from
>>>>>>> svn and deal with forward porting it for whatever API changes have
>>>>>>> happened
>>>>>>> since it was removed.
>>>>>>
>>>>>>
>>>>>> I would imagine any machine still holding one of these probably has =
not
>>>>>> enough memory to run FreeBSD.
>>>>>>
>>>>>> would we still run in 2MB?
>>>>>
>>>>> With insane levels of tuning, we can run in 32MB userland that can do
>>>>> things. Even 64MB is tight w/o some tuning. 16MB is almost certainly
>>>>> right out except for very specialized situations. 2MB? We can't even
>>>>> load the loader in that :(. Oh, and all these memory configs are only
>>>>> possible if you tweak the loader's block cache...
>>>>>
>>>>
>>>> 32MB is quite usable.  Without any tuning, you get slightly less than =
10MB
>>>> for userspace, which is enough to for many things, and plenty if swap =
is
>>>> added.
>>>>
>>>> Note that you cannot boot on such configurations since loader was brok=
en,
>>>> but if you do manage to jump to kernel, things were fine several month=
s
>>>> ago.  I tested my relatively recent OOM changes on 32MB qemu config.
>>>>> Warner
>>>>
>>>
>>> If the target is to go as low memory as possible, sure, you can strip a=
ll off, from boot loader point, you should load kernel from stage2 and not =
use loader at all (you can load and jump kernel even now from stage2, assum=
ing it wont need any special configuration from loader config) etc etc. Thi=
s means highly specialized build and has nothing to do with generic all pur=
pose system.
>>>
>> Why you describe this as an 'alternative' ? Before that loader changes,
>> I regularly tested on 32MB qemy i386 image and 64MB amd64 image. I do
>> not see anything extreme in these configs. They use normal boot path,
>> which provides kernels with debugging symbols, metadata, loaded modules
>> etc. Why should I use deficient boot2-only loading, which, additionally,
>> cannot work on amd64 ?
>>
>> More, this is the only reasonable way for most developers to ensure that
>> system is still usable on tiny configs found on embedded devices. Right
>> now the min which I have to set up is 128MB, and VM changes are simply n=
ot
>> tested on anything smaller. It is guaranteed that small systems will gro=
w
>> regressions fast.  And I will not jump through the hoops to mitigate
>> breakage induced by other people' changes.
>>
>>> Also at some point, there is an question about how reasonable it is to =
have such configuration as part of generic code base for special bits like =
boot loader itself, as the problem is, testing all those variants is becomi=
ng impossible and even keeping reasonable code base in all of the #if #else=
 #endif spaghetti is getting quite hard and error prone.
>>>
>>>> From developers point of view, it is not really encouraging to have po=
ssible feedback like ???oh, but you did break my 32MB system boot??? ;) Thi=
s does bring back some memories however. For first 2 unix systems I was dea=
ling with, one had 8MB and another had 12MB of memory??? it was ~ 1992-1993=
;)
>>>
>> Not mine, but you (?) indirectly broke system for people who do use 32MB
>> on other arches, since low memory config on dev systems become 128MB.
>> I cared about 32MB before, but not any longer.
>
>
> Yep, I did set it to 64MB. And this is exactly why I wrote that small sys=
tems do need special approaches, because getting updates for new features a=
nd keeping tiny systems functional are conflicting options. So far freebsd =
boot loader has managed this in some extent by massive amount of preprocess=
or conditions and the result is insane list of different boot programs in

There's only one boot program that's bloated recently, and that's
/boot/loader. the static allocation of large buffers because malloc
isn't working well is the problem. This isn't a small system vs large
system problem, but a convenience vs complexity problem.

Installing the base boot loader (that loads /boot/loader or kernel) is
and always will be system dependent with very real constraints.

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfoFheJLyUMJxqjFt0__ZTZC4ws-LqnP%2BPAyWVC%2B_n_-Ag>