Re: [PATCH 9/9] kernel/x86: remove DRM support

2023-05-01 Thread Philip Prindeville


> On Apr 28, 2023, at 9:45 PM, Elliott Mitchell  wrote:
> 
> On Thu, Apr 27, 2023 at 11:21:28AM +0200, Thibaut wrote:
>> 
>>> Le 27 avr. 2023 à 02:11, Elliott Mitchell  a écrit :
>>> 
>>> On Thu, Apr 27, 2023 at 12:50:52AM +0200, Stefan Lippers-Hollmann wrote:
 On 2023-04-19, Elliott Mitchell wrote:
> Direct Rendering Manager is mainly for running X (possibly Wayland
> too).  As OpenWRT is meant for networking devices, there is no need
> for the support to be present.
 
 That is only partially true, the Linux kernel is making a strong push
 away from deprecated (FB_*) graphics drivers to DRM based ones, with 
 kernel based mode setting this is getting more (any) attention for 
 console support as well. Even without getting anywhere near X/ Wayland,
 there is more than just a 80x25 tty on real hardware (and even VMs).
>>> 
>>> Real x86 hardware often has the capability to use a serial port as
>>> console.  The conventional UEFI implementation fully supports this use
>>> case.  I can well believe a number of manufacturers disabling the
>>> functionality though.
>>> 
>>> VMs *can* have more than a 80x25 tty.  By the time you're getting to 4
>>> or more VMs you should be thinking about disabling the functionality due
>>> to the heavy overhead (unless the OS in the VM doesn't support serial
>>> consoles).
>> 
>> You seem to assume that x86 is only/mainly run on VMs.
>> That is not necessarily the case, and I see no reason to degrade device 
>> support that way.
> 
> Okay, as already stated there are at least two solutions to this.
> 
> 1> Turn most functionality into modules and include support for runtime
> loading of kernel modules.
> 
> 2> Create more kernel variants for OpenWRT/x86.
> 
> 
>> Would you mind documenting the measurable gains from your changes, so we 
>> have some metric to assess their relevance?
>> 
> 
> I had suspected as much, but fully disabling ISA DMA didn't directly
> have much impact (less than 4195 byte reduction).  I was already guessing
> most of the gain was CONFIG_ISA=n, but hoped purging ISA DMA might
> squeeze out a bit more.
> 
> Removing AGP shrunk vmlinux.bin by 4KB.  Since the kernel is a multiple
> of page size, this means a reduction of 1-8191 bytes.  This though may
> have translated into a larger impact when CONFIG_DRM was set to no.
> 
> Setting CONFIG_DRM=n resulted in a vmlinux.bin delta of -2203648 bytes.
> Not quite a 10% reduction in kernel runtime size, but close.  Here we
> have a major impact on kernel size.
> 
> Removing USB support is certainly inappropriate for a desktop build, but
> appropriate for something using a serial console (some types of VM).
> That has a delta of -2117632 bytes.


I occasionally use the USB pass-thru with memory sticks to install or recover 
an VM.

-Philip


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [PATCH 9/9] kernel/x86: remove DRM support

2023-04-29 Thread Thibaut

> Le 29 avr. 2023 à 05:45, Elliott Mitchell  a écrit :
> 
> On Thu, Apr 27, 2023 at 11:21:28AM +0200, Thibaut wrote:
>> 
>>> Le 27 avr. 2023 à 02:11, Elliott Mitchell  a écrit :
>>> 
[…]
>> You seem to assume that x86 is only/mainly run on VMs.
>> That is not necessarily the case, and I see no reason to degrade device 
>> support that way.
> 
> Okay, as already stated there are at least two solutions to this.
> 
> 1> Turn most functionality into modules and include support for runtime
> loading of kernel modules.
> 
> 2> Create more kernel variants for OpenWRT/x86.

3> leave things as they are.

The current setup supports a very large scope of hardware and virtualizations 
with minimal fuss, and will happily run with 128M RAM with Luci enabled (I just 
tested that with 22.03.4 x86/64 stock image in a 128M RAM VM: after boot it had 
64M free). Maybe this info could be added to the x86 wiki page.

It’s likely it could even be convinced to run with 64M only if you really 
needed(?) that, which is the current lowest recommandation across all OpenWrt 
targets.

So it seems to me you’re trying to fix a problem that isn’t there.

As pointed out by Felix, if you need something highly tailored it’s easy to 
achieve as well.

HTH
T
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [PATCH 9/9] kernel/x86: remove DRM support

2023-04-28 Thread Elliott Mitchell
On Thu, Apr 27, 2023 at 11:21:28AM +0200, Thibaut wrote:
> 
> > Le 27 avr. 2023 à 02:11, Elliott Mitchell  a écrit :
> > 
> > On Thu, Apr 27, 2023 at 12:50:52AM +0200, Stefan Lippers-Hollmann wrote:
> >> On 2023-04-19, Elliott Mitchell wrote:
> >>> Direct Rendering Manager is mainly for running X (possibly Wayland
> >>> too).  As OpenWRT is meant for networking devices, there is no need
> >>> for the support to be present.
> >> 
> >> That is only partially true, the Linux kernel is making a strong push
> >> away from deprecated (FB_*) graphics drivers to DRM based ones, with 
> >> kernel based mode setting this is getting more (any) attention for 
> >> console support as well. Even without getting anywhere near X/ Wayland,
> >> there is more than just a 80x25 tty on real hardware (and even VMs).
> > 
> > Real x86 hardware often has the capability to use a serial port as
> > console.  The conventional UEFI implementation fully supports this use
> > case.  I can well believe a number of manufacturers disabling the
> > functionality though.
> > 
> > VMs *can* have more than a 80x25 tty.  By the time you're getting to 4
> > or more VMs you should be thinking about disabling the functionality due
> > to the heavy overhead (unless the OS in the VM doesn't support serial
> > consoles).
> 
> You seem to assume that x86 is only/mainly run on VMs.
> That is not necessarily the case, and I see no reason to degrade device 
> support that way.

Okay, as already stated there are at least two solutions to this.

1> Turn most functionality into modules and include support for runtime
loading of kernel modules.

2> Create more kernel variants for OpenWRT/x86.


> Would you mind documenting the measurable gains from your changes, so we have 
> some metric to assess their relevance?
> 

I had suspected as much, but fully disabling ISA DMA didn't directly
have much impact (less than 4195 byte reduction).  I was already guessing
most of the gain was CONFIG_ISA=n, but hoped purging ISA DMA might
squeeze out a bit more.

Removing AGP shrunk vmlinux.bin by 4KB.  Since the kernel is a multiple
of page size, this means a reduction of 1-8191 bytes.  This though may
have translated into a larger impact when CONFIG_DRM was set to no.

Setting CONFIG_DRM=n resulted in a vmlinux.bin delta of -2203648 bytes.
Not quite a 10% reduction in kernel runtime size, but close.  Here we
have a major impact on kernel size.

Removing USB support is certainly inappropriate for a desktop build, but
appropriate for something using a serial console (some types of VM).
That has a delta of -2117632 bytes.

Looks like Hyper-V support is a pig.  I'm merely going from the size of
handy distribution modules, but appears to need ~1MB of memory.

Again going by handy distribution modules, the Fusion MPT used by
VMware is closer to ~350KB (not including the need for the SCSI layer).

Xen meanwhile is ~200KB total.


-- 
(\___(\___(\__  --=> 8-) EHM <=--  __/)___/)___/)
 \BS (| ehem+sig...@m5p.com  PGP 87145445 |)   /
  \_CS\   |  _  -O #include  O-   _  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445



___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [PATCH 9/9] kernel/x86: remove DRM support

2023-04-28 Thread Philip Prindeville


> On Apr 27, 2023, at 3:21 AM, Thibaut  wrote:
> 
> 
> 
>> Le 27 avr. 2023 à 02:11, Elliott Mitchell  a écrit :
>> 
>> On Thu, Apr 27, 2023 at 12:50:52AM +0200, Stefan Lippers-Hollmann wrote:
>>> On 2023-04-19, Elliott Mitchell wrote:
 Direct Rendering Manager is mainly for running X (possibly Wayland
 too).  As OpenWRT is meant for networking devices, there is no need
 for the support to be present.
>>> 
>>> That is only partially true, the Linux kernel is making a strong push
>>> away from deprecated (FB_*) graphics drivers to DRM based ones, with 
>>> kernel based mode setting this is getting more (any) attention for 
>>> console support as well. Even without getting anywhere near X/ Wayland,
>>> there is more than just a 80x25 tty on real hardware (and even VMs).
>> 
>> Real x86 hardware often has the capability to use a serial port as
>> console.  The conventional UEFI implementation fully supports this use
>> case.  I can well believe a number of manufacturers disabling the
>> functionality though.
>> 
>> VMs *can* have more than a 80x25 tty.  By the time you're getting to 4
>> or more VMs you should be thinking about disabling the functionality due
>> to the heavy overhead (unless the OS in the VM doesn't support serial
>> consoles).
> 
> You seem to assume that x86 is only/mainly run on VMs.
> That is not necessarily the case, and I see no reason to degrade device 
> support that way.
> 
> Would you mind documenting the measurable gains from your changes, so we have 
> some metric to assess their relevance?
> 
> Cheers,
> T


True enough.  I have net4801 (Geode), net5501 (Geode), alix2 (Geode), apu6 
(GX-412TC), and Supermicro Xeon D1548 based routers right in front of me.

Let's also not forget that Openwrt is used downstream in many projects that we 
have limited visibility into.


-Philip


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [PATCH 9/9] kernel/x86: remove DRM support

2023-04-27 Thread Thibaut


> Le 27 avr. 2023 à 02:11, Elliott Mitchell  a écrit :
> 
> On Thu, Apr 27, 2023 at 12:50:52AM +0200, Stefan Lippers-Hollmann wrote:
>> On 2023-04-19, Elliott Mitchell wrote:
>>> Direct Rendering Manager is mainly for running X (possibly Wayland
>>> too).  As OpenWRT is meant for networking devices, there is no need
>>> for the support to be present.
>> 
>> That is only partially true, the Linux kernel is making a strong push
>> away from deprecated (FB_*) graphics drivers to DRM based ones, with 
>> kernel based mode setting this is getting more (any) attention for 
>> console support as well. Even without getting anywhere near X/ Wayland,
>> there is more than just a 80x25 tty on real hardware (and even VMs).
> 
> Real x86 hardware often has the capability to use a serial port as
> console.  The conventional UEFI implementation fully supports this use
> case.  I can well believe a number of manufacturers disabling the
> functionality though.
> 
> VMs *can* have more than a 80x25 tty.  By the time you're getting to 4
> or more VMs you should be thinking about disabling the functionality due
> to the heavy overhead (unless the OS in the VM doesn't support serial
> consoles).

You seem to assume that x86 is only/mainly run on VMs.
That is not necessarily the case, and I see no reason to degrade device support 
that way.

Would you mind documenting the measurable gains from your changes, so we have 
some metric to assess their relevance?

Cheers,
T
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [PATCH 9/9] kernel/x86: remove DRM support

2023-04-26 Thread Elliott Mitchell
On Thu, Apr 27, 2023 at 12:50:52AM +0200, Stefan Lippers-Hollmann wrote:
> On 2023-04-19, Elliott Mitchell wrote:
> > Direct Rendering Manager is mainly for running X (possibly Wayland
> > too).  As OpenWRT is meant for networking devices, there is no need
> > for the support to be present.
> 
> That is only partially true, the Linux kernel is making a strong push
> away from deprecated (FB_*) graphics drivers to DRM based ones, with 
> kernel based mode setting this is getting more (any) attention for 
> console support as well. Even without getting anywhere near X/ Wayland,
> there is more than just a 80x25 tty on real hardware (and even VMs).

Real x86 hardware often has the capability to use a serial port as
console.  The conventional UEFI implementation fully supports this use
case.  I can well believe a number of manufacturers disabling the
functionality though.

VMs *can* have more than a 80x25 tty.  By the time you're getting to 4
or more VMs you should be thinking about disabling the functionality due
to the heavy overhead (unless the OS in the VM doesn't support serial
consoles).


-- 
(\___(\___(\__  --=> 8-) EHM <=--  __/)___/)___/)
 \BS (| ehem+sig...@m5p.com  PGP 87145445 |)   /
  \_CS\   |  _  -O #include  O-   _  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445



___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [PATCH 9/9] kernel/x86: remove DRM support

2023-04-26 Thread Stefan Lippers-Hollmann
Hi

On 2023-04-19, Elliott Mitchell wrote:
> Direct Rendering Manager is mainly for running X (possibly Wayland
> too).  As OpenWRT is meant for networking devices, there is no need
> for the support to be present.

That is only partially true, the Linux kernel is making a strong push
away from deprecated (FB_*) graphics drivers to DRM based ones, with 
kernel based mode setting this is getting more (any) attention for 
console support as well. Even without getting anywhere near X/ Wayland,
there is more than just a 80x25 tty on real hardware (and even VMs).

Regards
Stefan Lippers-Hollmann


pgp63BeoHYHk5.pgp
Description: Digitale Signatur von OpenPGP
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


[PATCH 9/9] kernel/x86: remove DRM support

2023-04-26 Thread Elliott Mitchell
Direct Rendering Manager is mainly for running X (possibly Wayland
too).  As OpenWRT is meant for networking devices, there is no need
for the support to be present.

Signed-off-by: Elliott Mitchell 
---
 target/linux/x86/64/config-5.10  | 40 
 target/linux/x86/64/config-5.15  | 40 
 target/linux/x86/generic/config-5.10 | 39 ---
 target/linux/x86/generic/config-5.15 | 39 ---
 target/linux/x86/legacy/config-5.10  | 40 
 target/linux/x86/legacy/config-5.15  | 40 
 6 files changed, 238 deletions(-)

diff --git a/target/linux/x86/64/config-5.10 b/target/linux/x86/64/config-5.10
index b226b347bd..07e7505c98 100644
--- a/target/linux/x86/64/config-5.10
+++ b/target/linux/x86/64/config-5.10
@@ -95,46 +95,6 @@ CONFIG_CRYPTO_XTS=y
 CONFIG_DMA_ACPI=y
 CONFIG_DMA_OPS=y
 CONFIG_DMA_SHARED_BUFFER=y
-CONFIG_DRM=y
-CONFIG_DRM_BOCHS=y
-CONFIG_DRM_BRIDGE=y
-CONFIG_DRM_FBDEV_EMULATION=y
-CONFIG_DRM_FBDEV_OVERALLOC=100
-CONFIG_DRM_GEM_SHMEM_HELPER=y
-CONFIG_DRM_I915=y
-CONFIG_DRM_I915_CAPTURE_ERROR=y
-CONFIG_DRM_I915_COMPRESS_ERROR=y
-# CONFIG_DRM_I915_DEBUG is not set
-# CONFIG_DRM_I915_DEBUG_GUC is not set
-# CONFIG_DRM_I915_DEBUG_MMIO is not set
-# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
-# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
-CONFIG_DRM_I915_FENCE_TIMEOUT=1
-CONFIG_DRM_I915_FORCE_PROBE=""
-CONFIG_DRM_I915_GVT=y
-CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
-# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
-CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
-CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
-# CONFIG_DRM_I915_SELFTEST is not set
-CONFIG_DRM_I915_STOP_TIMEOUT=100
-# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
-# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
-CONFIG_DRM_I915_TIMESLICE_DURATION=1
-CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
-CONFIG_DRM_I915_USERPTR=y
-# CONFIG_DRM_I915_WERROR is not set
-CONFIG_DRM_KMS_FB_HELPER=y
-CONFIG_DRM_KMS_HELPER=y
-CONFIG_DRM_MIPI_DSI=y
-CONFIG_DRM_PANEL=y
-CONFIG_DRM_PANEL_BRIDGE=y
-CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
-CONFIG_DRM_TTM=y
-CONFIG_DRM_TTM_DMA_PAGE_POOL=y
-CONFIG_DRM_TTM_HELPER=y
-CONFIG_DRM_VIRTIO_GPU=y
-CONFIG_DRM_VRAM_HELPER=y
 CONFIG_EFI=y
 CONFIG_EFIVAR_FS=m
 # CONFIG_EFI_BOOTLOADER_CONTROL is not set
diff --git a/target/linux/x86/64/config-5.15 b/target/linux/x86/64/config-5.15
index 7f5b80e54a..fa7fd3993c 100644
--- a/target/linux/x86/64/config-5.15
+++ b/target/linux/x86/64/config-5.15
@@ -105,46 +105,6 @@ CONFIG_CRYPTO_XTS=y
 CONFIG_DMA_ACPI=y
 CONFIG_DMA_OPS=y
 CONFIG_DMA_SHARED_BUFFER=y
-CONFIG_DRM=y
-CONFIG_DRM_BOCHS=y
-CONFIG_DRM_BRIDGE=y
-CONFIG_DRM_FBDEV_EMULATION=y
-CONFIG_DRM_FBDEV_OVERALLOC=100
-CONFIG_DRM_GEM_SHMEM_HELPER=y
-# CONFIG_DRM_HYPERV is not set
-CONFIG_DRM_I915=y
-CONFIG_DRM_I915_CAPTURE_ERROR=y
-CONFIG_DRM_I915_COMPRESS_ERROR=y
-# CONFIG_DRM_I915_DEBUG is not set
-# CONFIG_DRM_I915_DEBUG_GUC is not set
-# CONFIG_DRM_I915_DEBUG_MMIO is not set
-# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
-# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
-CONFIG_DRM_I915_FENCE_TIMEOUT=1
-CONFIG_DRM_I915_FORCE_PROBE=""
-CONFIG_DRM_I915_GVT=y
-CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
-# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
-CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
-CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
-CONFIG_DRM_I915_REQUEST_TIMEOUT=2
-# CONFIG_DRM_I915_SELFTEST is not set
-CONFIG_DRM_I915_STOP_TIMEOUT=100
-# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
-# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
-CONFIG_DRM_I915_TIMESLICE_DURATION=1
-CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
-CONFIG_DRM_I915_USERPTR=y
-# CONFIG_DRM_I915_WERROR is not set
-CONFIG_DRM_KMS_HELPER=y
-CONFIG_DRM_MIPI_DSI=y
-CONFIG_DRM_PANEL=y
-CONFIG_DRM_PANEL_BRIDGE=y
-CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
-CONFIG_DRM_TTM=y
-CONFIG_DRM_TTM_HELPER=y
-CONFIG_DRM_VIRTIO_GPU=y
-CONFIG_DRM_VRAM_HELPER=y
 CONFIG_EFI=y
 CONFIG_EFIVAR_FS=m
 # CONFIG_EFI_BOOTLOADER_CONTROL is not set
diff --git a/target/linux/x86/generic/config-5.10 
b/target/linux/x86/generic/config-5.10
index 6da10e3776..6cc3f3d809 100644
--- a/target/linux/x86/generic/config-5.10
+++ b/target/linux/x86/generic/config-5.10
@@ -54,45 +54,6 @@ CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
 CONFIG_DMA_ACPI=y
 CONFIG_DMA_OPS=y
 CONFIG_DMA_SHARED_BUFFER=y
-CONFIG_DRM=y
-CONFIG_DRM_BOCHS=y
-CONFIG_DRM_BRIDGE=y
-CONFIG_DRM_FBDEV_EMULATION=y
-CONFIG_DRM_FBDEV_OVERALLOC=100
-CONFIG_DRM_GEM_SHMEM_HELPER=y
-CONFIG_DRM_I915=y
-CONFIG_DRM_I915_CAPTURE_ERROR=y
-CONFIG_DRM_I915_COMPRESS_ERROR=y
-# CONFIG_DRM_I915_DEBUG is not set
-# CONFIG_DRM_I915_DEBUG_GUC is not set
-# CONFIG_DRM_I915_DEBUG_MMIO is not set
-# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
-# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
-CONFIG_DRM_I915_FENCE_TIMEOUT=1
-CONFIG_DRM_I915_FORCE_PROBE=""
-CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
-# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS