Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Feb 2017 12:56:44 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Sean Bruno <sbruno@freebsd.org>
Cc:        John Baldwin <jhb@freebsd.org>, "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org>
Subject:   Re: Thinning out GENERIC
Message-ID:  <CANCZdfrWycNbmmwmjacHf5KJxnRHoLeZW1s%2B1F1XWfHyWxtn_w@mail.gmail.com>
In-Reply-To: <ff6d9a9d-36f2-459f-78c5-a7269c2caae9@freebsd.org>
References:  <34e4e9bd-c7a8-e3e2-4cef-98a691ea7944@freebsd.org> <2553875.ilSvFZYQZ6@ralph.baldwin.cx> <bf4931ec-2c05-2b90-8bc6-affac684bd23@freebsd.org> <1907688.dXvDEfTesD@ralph.baldwin.cx> <ff6d9a9d-36f2-459f-78c5-a7269c2caae9@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Feb 17, 2017 at 12:54 PM, Sean Bruno <sbruno@freebsd.org> wrote:
>
>
> On 02/17/17 12:49, John Baldwin wrote:
>> On Friday, February 17, 2017 11:43:45 AM Sean Bruno wrote:
>>>
>>> On 02/13/17 11:33, John Baldwin wrote:
>>>> On Monday, February 13, 2017 10:51:36 AM Warner Losh wrote:
>>>>> [[ It isn't just GENERIC, it's in every single kernel ]]
>>>>>
>>>>> On Sun, Feb 12, 2017 at 7:59 AM, Sean Bruno <sbruno@freebsd.org> wrote:
>>>>>> Index: sys/conf/files
>>>>>> ===================================================================
>>>>>> --- sys/conf/files      (revision 313683)
>>>>>> +++ sys/conf/files      (working copy)
>>>>>> @@ -2419,7 +2419,7 @@
>>>>>>  dev/pci/pci_user.c             optional pci
>>>>>>  dev/pci/pcib_if.m              standard
>>>>>>  dev/pci/pcib_support.c         standard
>>>>>> -dev/pci/vga_pci.c              optional pci
>>>>>> +#dev/pci/vga_pci.c             optional pci
>>>>>>  dev/pcn/if_pcn.c               optional pcn pci
>>>>>>  dev/pdq/if_fea.c               optional fea eisa
>>>>>>  dev/pdq/if_fpa.c               optional fpa pci
>>>>>>
>>>>>> I'm playing around with small x86 builds and wanted to come up with a
>>>>>> knob that disables the vga_pci driver.  Obviously I still want pci(4) to
>>>>>> be enabled, but I definitely do not need the vga interfaces for
>>>>>> anything.  Any suggestions?
>>>>>
>>>>> You could make it dependent on vt or sc as well as pci, no?
>>>>
>>>> This is a fairly small driver:
>>>>
>>>>      6139      340         8      6487     0x1957   /usr/obj/usr/src/sys/GENERIC
>>>> /vga_pci.o
>>>>
>>>> (From an 11.0-stable build)
>>>>
>>>> device ppc and friends is a lot more for example:
>>>>
>>>>   text   data   bss    dec      hex   filename
>>>>   6238      0     0   6238   0x185e   /usr/obj/usr/src/sys/GENERIC/ppb_1284.o
>>>>   1675     28     0   1703    0x6a7   /usr/obj/usr/src/sys/GENERIC/ppb_base.o
>>>>   2042      0     0   2042    0x7fa   /usr/obj/usr/src/sys/GENERIC/ppb_msq.o
>>>>   6025    296     8   6329   0x18b9   /usr/obj/usr/src/sys/GENERIC/ppbconf.o
>>>>      0    168     0    168     0xa8   /usr/obj/usr/src/sys/GENERIC/ppbus_if.o
>>>>   9099     36     0   9135   0x23af   /usr/obj/usr/src/sys/GENERIC/ppc.o
>>>>    495    256     0    751    0x2ef   /usr/obj/usr/src/sys/GENERIC/ppc_acpi.o
>>>>   1671    256     0   1927    0x787   /usr/obj/usr/src/sys/GENERIC/ppc_isa.o
>>>>   1124    208     0   1332    0x534   /usr/obj/usr/src/sys/GENERIC/ppc_pci.o
>>>>    451    208     0    659    0x293   /usr/obj/usr/src/sys/GENERIC/ppc_puc.o
>>>>   2751    428     8   3187    0xc73   /usr/obj/usr/src/sys/GENERIC/ppi.o
>>>>
>>>> It is needed for drm.
>>>>
>>>
>>> Ok, so ... make it dependant on drm, vt, sc and pci?
>>
>> You can kldload drm at runtime, so a static dependency isn't sufficient.
>> It's not clear why removing this from GENERIC is that important.  ppc is on far
>> fewer machines than vga_pci and takes up 10x more space.
>>
>
> I don't want to remove it from GENERIC.  I want to add the capability to
> remove it.  Sorry if that wasn't clear from my subject line, because it
> doesn't look clear now that I re-read it.

He likely wants to remove a lot of other things too. He's not asking
about those because the are already easy to remove :)

You'd want to make it a module, then have drm depend on the module as
well as the static dependencies you outlines.

And yes, this does highlight some issues with our current build system...

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfrWycNbmmwmjacHf5KJxnRHoLeZW1s%2B1F1XWfHyWxtn_w>