linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] arm64: configs: Provide slimmed down configuration for guests
@ 2023-02-06 16:26 Mark Brown
  2023-02-06 16:26 ` [PATCH 1/2] arm64: configs: Split defconfig into base and platform configs Mark Brown
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Mark Brown @ 2023-02-06 16:26 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, soc
  Cc: Mark Rutland, Peter Zijlstra, linux-arm-kernel, Mark Brown

It has been noted that due to the extensive platform support it
enables the arm64 defconfig is rather large and takes a while to
build in comparison with other architectures which can be a
burden when doing cross architecture work, especially when
testing is mainly in emulation.  We can mitigate this by providing
a configuration that only enables the support required to run in
mach-virt, this will be much smaller and quicker to build.

Having two completely separate configurations would mean that we'd
need to make any changes to the architecture wide configuration in
both the existing defconfig and the new configuration if we wanted to
ensure consistent default behaviour.  We can reduce this by splitting
the existing defconfig into a base fragment which enables options for
the architecture itself and one for platform configuration which has
all the platform enablement options, merging them to produce
defconfig.  We can then add another fragment enabling only options for
mach-virt and merge that with the base config to provide a new
virtconfig configuration.

The split of configurations is somewhat arbitrary, there will be some
room for discussion there, and it may be that splitting things up in
this manner is considered more trouble than it's worth.  If we're
going to start doing this then there may also be some desire for other
configurations. 

This is based on current -next since it's very late in the
release cycle.

Signed-off-by: Mark Brown <broonie@kernel.org>
---
Mark Brown (2):
      arm64: configs: Split defconfig into base and platform configs
      arm64: configs: Add virtconfig

 arch/arm64/Makefile                                |  10 ++
 arch/arm64/configs/base.config                     | 169 +++++++++++++++++++++
 arch/arm64/configs/{defconfig => platforms.config} | 169 ---------------------
 arch/arm64/configs/virt.config                     |  43 ++++++
 4 files changed, 222 insertions(+), 169 deletions(-)
---
base-commit: 4fafd96910add124586b549ad005dcd179de8a18
change-id: 20230203-arm64-defconfigs-c04cf5fa6288

Best regards,
-- 
Mark Brown <broonie@kernel.org>


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] arm64: configs: Split defconfig into base and platform configs
  2023-02-06 16:26 [PATCH 0/2] arm64: configs: Provide slimmed down configuration for guests Mark Brown
@ 2023-02-06 16:26 ` Mark Brown
  2023-02-06 16:26 ` [PATCH 2/2] arm64: configs: Add virtconfig Mark Brown
  2023-02-10 13:34 ` [PATCH 0/2] arm64: configs: Provide slimmed down configuration for guests Arnd Bergmann
  2 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2023-02-06 16:26 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, soc
  Cc: Mark Rutland, Peter Zijlstra, linux-arm-kernel, Mark Brown

In preparation for providing some smaller defconfigs split out
the architecture defconfig into smaller fragments, one with the
base enablement for the architecture and one with the platform
support.  There is definitely plenty of room for discussion on
the split here, the basic concept is that hardware enablement is
in the platforms config and everything else in the base config.

The resulting .config is identical.

Signed-off-by: Mark Brown <broonie@kernel.org>
---
 arch/arm64/Makefile                                |   6 +
 arch/arm64/configs/base.config                     | 169 +++++++++++++++++++++
 arch/arm64/configs/{defconfig => platforms.config} | 169 ---------------------
 3 files changed, 175 insertions(+), 169 deletions(-)

diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index c33b5da95b4a..491ec81ae0b6 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -205,6 +205,12 @@ ifdef CONFIG_COMPAT_VDSO
 endif
 endif
 
+include $(srctree)/scripts/Makefile.defconf
+
+PHONY += defconfig
+defconfig:
+	$(call merge_into_defconfig,base.config,platforms)
+
 define archhelp
   echo  '* Image.gz      - Compressed kernel image (arch/$(ARCH)/boot/Image.gz)'
   echo  '  Image         - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
diff --git a/arch/arm64/configs/base.config b/arch/arm64/configs/base.config
new file mode 100644
index 000000000000..0c5b8a8d1cae
--- /dev/null
+++ b/arch/arm64/configs/base.config
@@ -0,0 +1,169 @@
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_AUDIT=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPF_JIT=y
+CONFIG_PREEMPT=y
+CONFIG_IRQ_TIME_ACCOUNTING=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_NUMA_BALANCING=y
+CONFIG_MEMCG=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_HUGETLB=y
+CONFIG_CPUSETS=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CGROUP_BPF=y
+CONFIG_USER_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_PROFILING=y
+CONFIG_ARM64_VA_BITS_48=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_SMT=y
+CONFIG_NUMA=y
+CONFIG_KEXEC=y
+CONFIG_KEXEC_FILE=y
+CONFIG_CRASH_DUMP=y
+CONFIG_XEN=y
+CONFIG_COMPAT=y
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_HIBERNATION=y
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=y
+CONFIG_CRYPTO_SHA1_ARM64_CE=y
+CONFIG_CRYPTO_SHA2_ARM64_CE=y
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
+CONFIG_CRYPTO_SHA3_ARM64=m
+CONFIG_CRYPTO_SM3_ARM64_CE=m
+CONFIG_CRYPTO_GHASH_ARM64_CE=y
+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
+CONFIG_CRYPTO_CHACHA20_NEON=m
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+# CONFIG_COMPAT_BRK is not set
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_KSM=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IPV6=m
+CONFIG_NETFILTER=y
+CONFIG_BRIDGE_NETFILTER=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_IP_VS=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_NET_DSA=m
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_CBS=m
+CONFIG_NET_SCH_ETF=m
+CONFIG_NET_SCH_TAPRIO=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_FLOWER=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_GACT=m
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_GATE=m
+CONFIG_QRTR_SMD=m
+CONFIG_QRTR_TUN=m
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_LEGACY_PTY_COUNT=16
+CONFIG_SYSCON_REBOOT_MODE=y
+CONFIG_ARM_SPE_PMU=m
+CONFIG_EXT2_FS=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_QUOTA=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_OVERLAY_FS=m
+CONFIG_VFAT_FS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_HUGETLBFS=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_SQUASHFS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_9P_FS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_SECURITY=y
+CONFIG_CRYPTO_USER=y
+CONFIG_CRYPTO_ECHAINIV=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_ANSI_CPRNG=y
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_DMA_RESTRICTED_POOL=y
+CONFIG_CMA_SIZE_MBYTES=32
+CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_KERNEL=y
+CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
+CONFIG_DEBUG_INFO_REDUCED=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_FS=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_FTRACE is not set
+CONFIG_MEMTEST=y
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/platforms.config
similarity index 88%
rename from arch/arm64/configs/defconfig
rename to arch/arm64/configs/platforms.config
index a8c74a419d95..0217cac34620 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/platforms.config
@@ -1,35 +1,3 @@
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_AUDIT=y
-CONFIG_NO_HZ_IDLE=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_BPF_SYSCALL=y
-CONFIG_BPF_JIT=y
-CONFIG_PREEMPT=y
-CONFIG_IRQ_TIME_ACCOUNTING=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_NUMA_BALANCING=y
-CONFIG_MEMCG=y
-CONFIG_BLK_CGROUP=y
-CONFIG_CGROUP_PIDS=y
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_HUGETLB=y
-CONFIG_CPUSETS=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_CGROUP_PERF=y
-CONFIG_CGROUP_BPF=y
-CONFIG_USER_NS=y
-CONFIG_SCHED_AUTOGROUP=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_PROFILING=y
 CONFIG_ARCH_ACTIONS=y
 CONFIG_ARCH_SUNXI=y
 CONFIG_ARCH_ALPINE=y
@@ -69,18 +37,6 @@ CONFIG_ARCH_VEXPRESS=y
 CONFIG_ARCH_VISCONTI=y
 CONFIG_ARCH_XGENE=y
 CONFIG_ARCH_ZYNQMP=y
-CONFIG_ARM64_VA_BITS_48=y
-CONFIG_SCHED_MC=y
-CONFIG_SCHED_SMT=y
-CONFIG_NUMA=y
-CONFIG_KEXEC=y
-CONFIG_KEXEC_FILE=y
-CONFIG_CRASH_DUMP=y
-CONFIG_XEN=y
-CONFIG_COMPAT=y
-CONFIG_RANDOMIZE_BASE=y
-CONFIG_HIBERNATION=y
-CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
 CONFIG_ENERGY_MODEL=y
 CONFIG_ARM_PSCI_CPUIDLE=y
 CONFIG_CPU_FREQ=y
@@ -110,81 +66,6 @@ CONFIG_ACPI_APEI_GHES=y
 CONFIG_ACPI_APEI_PCIEAER=y
 CONFIG_ACPI_APEI_MEMORY_FAILURE=y
 CONFIG_ACPI_APEI_EINJ=y
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=y
-CONFIG_CRYPTO_SHA1_ARM64_CE=y
-CONFIG_CRYPTO_SHA2_ARM64_CE=y
-CONFIG_CRYPTO_SHA512_ARM64_CE=m
-CONFIG_CRYPTO_SHA3_ARM64=m
-CONFIG_CRYPTO_SM3_ARM64_CE=m
-CONFIG_CRYPTO_GHASH_ARM64_CE=y
-CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
-CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
-CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
-CONFIG_CRYPTO_CHACHA20_NEON=m
-CONFIG_CRYPTO_AES_ARM64_BS=m
-CONFIG_JUMP_LABEL=y
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_MEMORY_HOTPLUG=y
-CONFIG_MEMORY_HOTREMOVE=y
-CONFIG_KSM=y
-CONFIG_MEMORY_FAILURE=y
-CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IPV6=m
-CONFIG_NETFILTER=y
-CONFIG_BRIDGE_NETFILTER=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NETFILTER_XT_MARK=m
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_NETFILTER_XT_TARGET_LOG=m
-CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_IPVS=m
-CONFIG_IP_VS=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_NAT=m
-CONFIG_IP6_NF_TARGET_MASQUERADE=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_VLAN_FILTERING=y
-CONFIG_NET_DSA=m
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_VLAN_8021Q_MVRP=y
-CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CBS=m
-CONFIG_NET_SCH_ETF=m
-CONFIG_NET_SCH_TAPRIO=m
-CONFIG_NET_SCH_MQPRIO=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_FLOWER=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_GACT=m
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_GATE=m
-CONFIG_QRTR_SMD=m
-CONFIG_QRTR_TUN=m
 CONFIG_CAN=m
 CONFIG_CAN_FLEXCAN=m
 CONFIG_CAN_RCAR=m
@@ -209,8 +90,6 @@ CONFIG_CFG80211=m
 CONFIG_MAC80211=m
 CONFIG_MAC80211_LEDS=y
 CONFIG_RFKILL=m
-CONFIG_NET_9P=y
-CONFIG_NET_9P_VIRTIO=y
 CONFIG_NFC=m
 CONFIG_NFC_NCI=m
 CONFIG_NFC_S3FWRN5_I2C=m
@@ -247,8 +126,6 @@ CONFIG_PCIE_LAYERSCAPE_GEN4=y
 CONFIG_PCI_ENDPOINT=y
 CONFIG_PCI_ENDPOINT_CONFIGFS=y
 CONFIG_PCI_EPF_TEST=m
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_FW_LOADER_USER_HELPER=y
 CONFIG_HISILICON_LPC=y
 CONFIG_TEGRA_ACONNECT=m
@@ -433,7 +310,6 @@ CONFIG_INPUT_PWM_VIBRA=m
 CONFIG_INPUT_HISI_POWERKEY=y
 # CONFIG_SERIO_SERPORT is not set
 CONFIG_SERIO_AMBAKMI=y
-CONFIG_LEGACY_PTY_COUNT=16
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250_CONSOLE=y
 CONFIG_SERIAL_8250_EXTENDED=y
@@ -602,7 +478,6 @@ CONFIG_POWER_RESET_MSM=y
 CONFIG_POWER_RESET_QCOM_PON=m
 CONFIG_POWER_RESET_XGENE=y
 CONFIG_POWER_RESET_SYSCON=y
-CONFIG_SYSCON_REBOOT_MODE=y
 CONFIG_BATTERY_SBS=m
 CONFIG_BATTERY_BQ27XXX=y
 CONFIG_BATTERY_MAX17042=m
@@ -1336,7 +1211,6 @@ CONFIG_ARM_CMN=m
 CONFIG_ARM_SMMU_V3_PMU=m
 CONFIG_ARM_DSU_PMU=m
 CONFIG_FSL_IMX8_DDR_PMU=m
-CONFIG_ARM_SPE_PMU=m
 CONFIG_ARM_DMC620_PMU=m
 CONFIG_QCOM_L2_PMU=y
 CONFIG_QCOM_L3_PMU=y
@@ -1389,38 +1263,7 @@ CONFIG_INTERCONNECT_QCOM_SM8550=y
 CONFIG_HTE=y
 CONFIG_HTE_TEGRA194=y
 CONFIG_HTE_TEGRA194_TEST=m
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_BTRFS_FS=m
-CONFIG_BTRFS_FS_POSIX_ACL=y
-CONFIG_FANOTIFY=y
-CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
-CONFIG_QUOTA=y
-CONFIG_AUTOFS4_FS=y
-CONFIG_FUSE_FS=m
-CONFIG_CUSE=m
-CONFIG_OVERLAY_FS=m
-CONFIG_VFAT_FS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_HUGETLBFS=y
-CONFIG_CONFIGFS_FS=y
 CONFIG_EFIVAR_FS=y
-CONFIG_SQUASHFS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_V4_1=y
-CONFIG_NFS_V4_2=y
-CONFIG_ROOT_NFS=y
-CONFIG_9P_FS=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_SECURITY=y
-CONFIG_CRYPTO_USER=y
-CONFIG_CRYPTO_ECHAINIV=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_ANSI_CPRNG=y
-CONFIG_CRYPTO_USER_API_RNG=m
 CONFIG_CRYPTO_DEV_SUN8I_CE=m
 CONFIG_CRYPTO_DEV_FSL_CAAM=m
 CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m
@@ -1431,17 +1274,6 @@ CONFIG_CRYPTO_DEV_HISI_SEC2=m
 CONFIG_CRYPTO_DEV_HISI_ZIP=m
 CONFIG_CRYPTO_DEV_HISI_HPRE=m
 CONFIG_CRYPTO_DEV_HISI_TRNG=m
-CONFIG_DMA_RESTRICTED_POOL=y
-CONFIG_CMA_SIZE_MBYTES=32
-CONFIG_PRINTK_TIME=y
-CONFIG_DEBUG_KERNEL=y
-CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
-CONFIG_DEBUG_INFO_REDUCED=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_FS=y
-# CONFIG_SCHED_DEBUG is not set
-# CONFIG_DEBUG_PREEMPT is not set
-# CONFIG_FTRACE is not set
 CONFIG_CORESIGHT=m
 CONFIG_CORESIGHT_LINK_AND_SINK_TMC=m
 CONFIG_CORESIGHT_CATU=m
@@ -1450,4 +1282,3 @@ CONFIG_CORESIGHT_SINK_ETBV10=m
 CONFIG_CORESIGHT_STM=m
 CONFIG_CORESIGHT_CPU_DEBUG=m
 CONFIG_CORESIGHT_CTI=m
-CONFIG_MEMTEST=y

-- 
2.30.2


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] arm64: configs: Add virtconfig
  2023-02-06 16:26 [PATCH 0/2] arm64: configs: Provide slimmed down configuration for guests Mark Brown
  2023-02-06 16:26 ` [PATCH 1/2] arm64: configs: Split defconfig into base and platform configs Mark Brown
@ 2023-02-06 16:26 ` Mark Brown
  2023-02-10 13:34 ` [PATCH 0/2] arm64: configs: Provide slimmed down configuration for guests Arnd Bergmann
  2 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2023-02-06 16:26 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, soc
  Cc: Mark Rutland, Peter Zijlstra, linux-arm-kernel, Mark Brown

Provide a slimline configuration intended to be booted on virtual
machines, providing a light configuration which will boot and
enable features available in mach-virt.

Signed-off-by: Mark Brown <broonie@kernel.org>
---
 arch/arm64/Makefile            |  4 ++++
 arch/arm64/configs/virt.config | 43 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+)

diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 491ec81ae0b6..e86bf0ff5327 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -211,6 +211,10 @@ PHONY += defconfig
 defconfig:
 	$(call merge_into_defconfig,base.config,platforms)
 
+PHONY += virtconfig
+virtconfig:
+	$(call merge_into_defconfig,base.config,virt)
+
 define archhelp
   echo  '* Image.gz      - Compressed kernel image (arch/$(ARCH)/boot/Image.gz)'
   echo  '  Image         - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
diff --git a/arch/arm64/configs/virt.config b/arch/arm64/configs/virt.config
new file mode 100644
index 000000000000..a67903e15196
--- /dev/null
+++ b/arch/arm64/configs/virt.config
@@ -0,0 +1,43 @@
+CONFIG_ACPI=y
+CONFIG_ACPI_HOTPLUG_MEMORY=y
+CONFIG_ACPI_HMAT=y
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=y
+CONFIG_ACPI_APEI_PCIEAER=y
+CONFIG_ACPI_APEI_MEMORY_FAILURE=y
+CONFIG_ACPI_APEI_EINJ=y
+CONFIG_PCI=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIEAER=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_PASID=y
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_ACPI=y
+CONFIG_MHI_BUS_PCI_GENERIC=m
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_DRM=m
+CONFIG_DRM_VIRTIO_GPU=m
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_NBD=m
+CONFIG_VIRTIO_BLK=y
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_TUN=y
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=m
+CONFIG_SOUND=m
+CONFIG_SND_VIRTIO=m
+CONFIG_VFIO=y
+CONFIG_VFIO_PCI=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_BALLOON=y
+CONFIG_VIRTIO_MEM=m
+CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MMIO=y
+CONFIG_VIRTIO_IOMMU=y
+CONFIG_XEN_GNTDEV=y
+CONFIG_XEN_GRANT_DEV_ALLOC=y
+CONFIG_EFIVAR_FS=y

-- 
2.30.2


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/2] arm64: configs: Provide slimmed down configuration for guests
  2023-02-06 16:26 [PATCH 0/2] arm64: configs: Provide slimmed down configuration for guests Mark Brown
  2023-02-06 16:26 ` [PATCH 1/2] arm64: configs: Split defconfig into base and platform configs Mark Brown
  2023-02-06 16:26 ` [PATCH 2/2] arm64: configs: Add virtconfig Mark Brown
@ 2023-02-10 13:34 ` Arnd Bergmann
  2023-02-10 14:51   ` Mark Brown
  2 siblings, 1 reply; 6+ messages in thread
From: Arnd Bergmann @ 2023-02-10 13:34 UTC (permalink / raw)
  To: Mark Brown, Catalin Marinas, Will Deacon, soc
  Cc: Mark Rutland, Peter Zijlstra, linux-arm-kernel

On Mon, Feb 6, 2023, at 17:26, Mark Brown wrote:
> It has been noted that due to the extensive platform support it
> enables the arm64 defconfig is rather large and takes a while to
> build in comparison with other architectures which can be a
> burden when doing cross architecture work, especially when
> testing is mainly in emulation.  We can mitigate this by providing
> a configuration that only enables the support required to run in
> mach-virt, this will be much smaller and quicker to build.
>
> Having two completely separate configurations would mean that we'd
> need to make any changes to the architecture wide configuration in
> both the existing defconfig and the new configuration if we wanted to
> ensure consistent default behaviour.  We can reduce this by splitting
> the existing defconfig into a base fragment which enables options for
> the architecture itself and one for platform configuration which has
> all the platform enablement options, merging them to produce
> defconfig.  We can then add another fragment enabling only options for
> mach-virt and merge that with the base config to provide a new
> virtconfig configuration.
>
> The split of configurations is somewhat arbitrary, there will be some
> room for discussion there, and it may be that splitting things up in
> this manner is considered more trouble than it's worth.  If we're
> going to start doing this then there may also be some desire for other
> configurations. 
>
> This is based on current -next since it's very late in the
> release cycle.
>
> Signed-off-by: Mark Brown <broonie@kernel.org>

I definitely like the idea of splitting the platform specific
options from generic settings, that seems extremely useful. My fear
with your specific patch is that this will lead to the config
getting out of sync because it is very hard to compare the
contents with the 'make savedefconfig' output, at least with
the tools I usually use.

I wonder if we could get to a similar result by having 'defconfig'
still contain all platform support, but then use a fragment to
turn off most of the CONFIG_ARCH_* symbols which in theory
should also disable any platform specific drivers, provided
they have the usual 'depends on ARCH* || COMPILE_TEST' guard.

A related fragment we could have would be to configure anything
as built-in that is needed for booting a typical Debian rootfs
in a virtual machine, and then just run 'make Image' to boot
that without having to even build the modules.

      Arnd

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/2] arm64: configs: Provide slimmed down configuration for guests
  2023-02-10 13:34 ` [PATCH 0/2] arm64: configs: Provide slimmed down configuration for guests Arnd Bergmann
@ 2023-02-10 14:51   ` Mark Brown
  2023-02-10 15:37     ` Mark Brown
  0 siblings, 1 reply; 6+ messages in thread
From: Mark Brown @ 2023-02-10 14:51 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Catalin Marinas, Will Deacon, soc, Mark Rutland, Peter Zijlstra,
	linux-arm-kernel


[-- Attachment #1.1: Type: text/plain, Size: 1739 bytes --]

On Fri, Feb 10, 2023 at 02:34:03PM +0100, Arnd Bergmann wrote:

> I definitely like the idea of splitting the platform specific
> options from generic settings, that seems extremely useful. My fear
> with your specific patch is that this will lead to the config
> getting out of sync because it is very hard to compare the
> contents with the 'make savedefconfig' output, at least with
> the tools I usually use.

You can do a hack with removing all the options that are defined in one
config file from another but yes, the tooling isn't ideal for that right
now AFAICT.

> I wonder if we could get to a similar result by having 'defconfig'
> still contain all platform support, but then use a fragment to
> turn off most of the CONFIG_ARCH_* symbols which in theory
> should also disable any platform specific drivers, provided
> they have the usual 'depends on ARCH* || COMPILE_TEST' guard.

That does knock out quite a lot of stuff (about 2400 options), but
there's still a bunch of widely deployed architecture neutral stuff -
it's about 25% of the build time of defconfig for me, whereas the
virtconfig in these patches is about 50% of the build time.  It's a 
combination of widely used IPs, subsystems that can't be used in
mach-virt and off SoC devices.  We can obviously build on that approach
though, and 25% of a big number is still a win.

> A related fragment we could have would be to configure anything
> as built-in that is needed for booting a typical Debian rootfs
> in a virtual machine, and then just run 'make Image' to boot
> that without having to even build the modules.

That should already be true AFAIR for defconfig, I don't bother with
modules for testing on virtual systems.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/2] arm64: configs: Provide slimmed down configuration for guests
  2023-02-10 14:51   ` Mark Brown
@ 2023-02-10 15:37     ` Mark Brown
  0 siblings, 0 replies; 6+ messages in thread
From: Mark Brown @ 2023-02-10 15:37 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Catalin Marinas, Will Deacon, soc, Mark Rutland, Peter Zijlstra,
	linux-arm-kernel


[-- Attachment #1.1: Type: text/plain, Size: 1514 bytes --]

On Fri, Feb 10, 2023 at 02:51:23PM +0000, Mark Brown wrote:
> On Fri, Feb 10, 2023 at 02:34:03PM +0100, Arnd Bergmann wrote:

> > I wonder if we could get to a similar result by having 'defconfig'
> > still contain all platform support, but then use a fragment to
> > turn off most of the CONFIG_ARCH_* symbols which in theory
> > should also disable any platform specific drivers, provided
> > they have the usual 'depends on ARCH* || COMPILE_TEST' guard.

> That does knock out quite a lot of stuff (about 2400 options), but
> there's still a bunch of widely deployed architecture neutral stuff -
> it's about 25% of the build time of defconfig for me, whereas the
> virtconfig in these patches is about 50% of the build time.  It's a 
> combination of widely used IPs, subsystems that can't be used in
> mach-virt and off SoC devices.  We can obviously build on that approach
> though, and 25% of a big number is still a win.

Ah, now I try it properly I remember the problem with this approach: the
tooling doesn't like turning off configuration options that were
explicitly set by the base configuration:

| Value of CONFIG_ARCH_ZYNQMP is redefined by fragment ./arch/arm64/configs/virt.config:
| Previous value: CONFIG_ARCH_ZYNQMP=y
| New value: # CONFIG_ARCH_ZYNQMP is not set

It produces the expected result but does so rather loudly.  It looks
like those warnings have just been there from the start and not thought
about too hard so we should be able to fix the tool though.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-02-10 15:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-06 16:26 [PATCH 0/2] arm64: configs: Provide slimmed down configuration for guests Mark Brown
2023-02-06 16:26 ` [PATCH 1/2] arm64: configs: Split defconfig into base and platform configs Mark Brown
2023-02-06 16:26 ` [PATCH 2/2] arm64: configs: Add virtconfig Mark Brown
2023-02-10 13:34 ` [PATCH 0/2] arm64: configs: Provide slimmed down configuration for guests Arnd Bergmann
2023-02-10 14:51   ` Mark Brown
2023-02-10 15:37     ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).