Skip to content

chore(zone): reduce linux config - #239

Draft
alexandermerritt wants to merge 3 commits into
mainfrom
alexm/zone-slim-config
Draft

chore(zone): reduce linux config#239
alexandermerritt wants to merge 3 commits into
mainfrom
alexm/zone-slim-config

Conversation

@alexandermerritt

@alexandermerritt alexandermerritt commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Our current fragment is quite small.

What that means: default-enabled config options in Kconfig that are not explicitly disabled in our fragment, will be enabled once merged with a defconfig for the architecture. Examples include wireless hardware support and networking, bluetooth, sound, etc. which we all do not need for zone kernels.

Goals: reduce the amount of text in the kernel, second to reduce build times.

This is one of many in the future to come; we'll need to is not set any default-enabled configuration options we do not want. For future kernels, we'll need to check for any newly introduce configuration options that are default-enabled and repeat for them.

I'd like to properly generate the fragment rather than have us go with manually editing the config when we want to tweak something.

@alexandermerritt

alexandermerritt commented Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

Kernel finished building for me on a 32-core EPYC machine with no caching:

________________________________________________________
Executed in  376.62 secs    fish           external
   usr time  101.27 mins  654.00 micros  101.27 mins
   sys time   15.08 mins  489.00 micros   15.08 mins

@alexandermerritt

Copy link
Copy Markdown
Contributor Author

I want to try this kernel out with the e2e tests somehow before we merge in.

Signed-off-by: Alexander M. Merritt <alexander@edera.dev>
Signed-off-by: Alexander M. Merritt <alexander@edera.dev>
Signed-off-by: Alexander M. Merritt <alexander@edera.dev>
@alexandermerritt

alexandermerritt commented Aug 12, 2026

Copy link
Copy Markdown
Contributor Author

Still lots of time spent on net drivers. I captured the build output to a log file. This is the count of directories associated with a C file that is built:

~> rg CC build.log | rg drivers/net | awk '{print $NF}' | xargs dirname | sort | uniq -c | sort | tail -40
      9 drivers/net/ethernet/wangxun/libwx
     10 drivers/net/can/sja1000
     10 drivers/net/ethernet/netronome/nfp/flower
     11 drivers/net/arcnet
     11 drivers/net/ethernet/google/gve
     11 drivers/net/ethernet/intel/e1000e
     11 drivers/net/ethernet/intel/igb
     11 drivers/net/ethernet/mellanox/mlx5/core/esw
     11 drivers/net/ethernet/mscc
     12 drivers/net/can/spi/mcp251xfd
     12 drivers/net/ethernet/intel/fm10k
     12 drivers/net/ethernet/intel/idpf
     13 drivers/net/ethernet/intel/igc
     13 drivers/net/ethernet/pensando/ionic
     13 drivers/net/netdevsim
     13 drivers/net/ovpn
     14 drivers/net/ethernet/qlogic/qlcnic
     14 drivers/net/ethernet/sfc/falcon
     14 drivers/net/wireguard
     15 drivers/net/ethernet/marvell/prestera
     15 drivers/net/ethernet/mellanox/mlx5/core/en_accel
     16 drivers/net/ethernet/intel/i40e
     17 drivers/net/ethernet/meta/fbnic
     18 drivers/net/ethernet/huawei/hinic
     18 drivers/net/ethernet/mellanox/mlx5/core/steering/hws
     19 drivers/net/ethernet/mellanox/mlx5/core/en/tc/act
     20 drivers/net/ethernet/huawei/hinic3
     20 drivers/net/ethernet/mellanox/mlx5/core/steering/sws
     20 drivers/net/ethernet/netronome/nfp
     20 drivers/net/ethernet/sfc/siena
     22 drivers/net/ethernet/mellanox/mlx5/core/lib
     23 drivers/net/ethernet/intel/ixgbe
     27 drivers/net/ethernet/qlogic/qed
     30 drivers/net/ethernet/mellanox/mlx5/core/en
     32 drivers/net/ethernet/mellanox/mlx4
     33 drivers/net/ethernet/stmicro/stmmac
     39 drivers/net/ethernet/sfc
     49 drivers/net/ethernet/intel/ice
     49 drivers/net/ethernet/mellanox/mlxsw
     54 drivers/net/ethernet/mellanox/mlx5/core

and overall

~> rg CC build.log | awk '{print $NF}' | xargs dirname | sort | uniq -c | sort | tail -40
     30 drivers/net/ethernet/mellanox/mlx5/core/en
     31 fs/ubifs
     31 net/netfilter/ipvs
     32 drivers/net/ethernet/mellanox/mlx4
     33 drivers/net/ethernet/stmicro/stmmac
     34 drivers/iio/pressure
     35 drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr
     36 drivers/staging/fbtft
     37 fs/afs
     39 drivers/gpu/drm/amd/amdgpu/../amdkfd
     39 drivers/net/ethernet/sfc
     43 fs/smb/client
     44 drivers/infiniband/hw/hfi1
     46 drivers/md
     49 drivers/iio/dac
     49 drivers/net/ethernet/intel/ice
     49 drivers/net/ethernet/mellanox/mlxsw
     54 drivers/net/ethernet/mellanox/mlx5/core
     58 drivers/infiniband/core
     59 drivers/iio/accel
     61 drivers/crypto/intel/qat/qat_common
     63 drivers/hwmon/pmbus
     63 drivers/iio/light
     63 fs/btrfs
     86 drivers/hwmon
     89 drivers/hid
     96 drivers/iio/adc
    122 drivers/comedi/drivers
    233 drivers/gpu/drm/amd/amdgpu

@alexandermerritt

Copy link
Copy Markdown
Contributor Author

Shouldn't all the GPU options live in a fragment we have, not the base zone configuration file?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant