diff mbox series

[1/1] riscv: enable Docker requirements in defconfig

Message ID 20220608000251.55271-1-heinrich.schuchardt@canonical.com (mailing list archive)
State New, archived
Headers show
Series [1/1] riscv: enable Docker requirements in defconfig | expand

Commit Message

Heinrich Schuchardt June 8, 2022, 12:02 a.m. UTC
The defconfig kernel should be able to run Docker.

Enable the missing settings according to [1].
make savedefconfig eliminates CONFIG_STACKTRACE
which is enabled by default.

Many of the settings are also needed to run a defconfig kernel
on default distro installations or to run snaps.

[1] https://github.com/moby/moby/blob/master/contrib/check-config.sh

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
---
Cf. [PATCH] arm64: Enable docker support in defconfig
https://lore.kernel.org/lkml/20220606140103.32779-1-vincenzo.frascino@arm.com/
---
 arch/riscv/configs/defconfig | 65 +++++++++++++++++++++++++++++++++++-
 1 file changed, 64 insertions(+), 1 deletion(-)

Comments

Guo Ren June 8, 2022, 2:25 a.m. UTC | #1
Agree make docker support default in riscv.

Acked-by: Guo Ren <guoren@kernel.org>

On Wed, Jun 8, 2022 at 8:03 AM Heinrich Schuchardt
<heinrich.schuchardt@canonical.com> wrote:
>
> The defconfig kernel should be able to run Docker.
>
> Enable the missing settings according to [1].
> make savedefconfig eliminates CONFIG_STACKTRACE
> which is enabled by default.
>
> Many of the settings are also needed to run a defconfig kernel
> on default distro installations or to run snaps.
>
> [1] https://github.com/moby/moby/blob/master/contrib/check-config.sh
>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
> ---
> Cf. [PATCH] arm64: Enable docker support in defconfig
> https://lore.kernel.org/lkml/20220606140103.32779-1-vincenzo.frascino@arm.com/
> ---
>  arch/riscv/configs/defconfig | 65 +++++++++++++++++++++++++++++++++++-
>  1 file changed, 64 insertions(+), 1 deletion(-)
>
> diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
> index 0cc17db8aaba..d4fffcd3cc05 100644
> --- a/arch/riscv/configs/defconfig
> +++ b/arch/riscv/configs/defconfig
> @@ -6,8 +6,18 @@ CONFIG_BPF_SYSCALL=y
>  CONFIG_IKCONFIG=y
>  CONFIG_IKCONFIG_PROC=y
>  CONFIG_CGROUPS=y
> +CONFIG_MEMCG=y
> +CONFIG_BLK_CGROUP=y
>  CONFIG_CGROUP_SCHED=y
>  CONFIG_CFS_BANDWIDTH=y
> +CONFIG_RT_GROUP_SCHED=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_NAMESPACES=y
>  CONFIG_USER_NS=y
> @@ -28,9 +38,11 @@ CONFIG_KVM=m
>  CONFIG_JUMP_LABEL=y
>  CONFIG_MODULES=y
>  CONFIG_MODULE_UNLOAD=y
> +CONFIG_BLK_DEV_THROTTLING=y
>  CONFIG_NET=y
>  CONFIG_PACKET=y
>  CONFIG_UNIX=y
> +CONFIG_XFRM_USER=m
>  CONFIG_INET=y
>  CONFIG_IP_MULTICAST=y
>  CONFIG_IP_ADVANCED_ROUTER=y
> @@ -38,7 +50,43 @@ CONFIG_IP_PNP=y
>  CONFIG_IP_PNP_DHCP=y
>  CONFIG_IP_PNP_BOOTP=y
>  CONFIG_IP_PNP_RARP=y
> +CONFIG_INET_ESP=m
> +CONFIG_NETFILTER=y
> +CONFIG_BRIDGE_NETFILTER=m
> +CONFIG_NF_CONNTRACK=m
> +CONFIG_NF_CONNTRACK_FTP=m
> +CONFIG_NF_CONNTRACK_TFTP=m
> +CONFIG_NETFILTER_XT_MARK=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_VS_PROTO_TCP=y
> +CONFIG_IP_VS_PROTO_UDP=y
> +CONFIG_IP_VS_RR=m
> +CONFIG_IP_VS_NFCT=y
> +CONFIG_NF_LOG_ARP=m
> +CONFIG_NF_LOG_IPV4=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_TARGET_REDIRECT=m
> +CONFIG_IP_NF_MANGLE=m
> +CONFIG_NF_LOG_IPV6=m
> +CONFIG_IP6_NF_IPTABLES=m
> +CONFIG_IP6_NF_MATCH_IPV6HEADER=m
> +CONFIG_IP6_NF_FILTER=m
> +CONFIG_IP6_NF_TARGET_REJECT=m
> +CONFIG_IP6_NF_MANGLE=m
> +CONFIG_BRIDGE=m
> +CONFIG_BRIDGE_VLAN_FILTERING=y
> +CONFIG_VLAN_8021Q=m
> +CONFIG_NET_SCHED=y
> +CONFIG_NET_CLS_CGROUP=m
>  CONFIG_NETLINK_DIAG=y
> +CONFIG_CGROUP_NET_PRIO=y
>  CONFIG_NET_9P=y
>  CONFIG_NET_9P_VIRTIO=y
>  CONFIG_PCI=y
> @@ -57,7 +105,15 @@ CONFIG_SCSI_VIRTIO=y
>  CONFIG_ATA=y
>  CONFIG_SATA_AHCI=y
>  CONFIG_SATA_AHCI_PLATFORM=y
> +CONFIG_MD=y
> +CONFIG_BLK_DEV_DM=m
> +CONFIG_DM_THIN_PROVISIONING=m
>  CONFIG_NETDEVICES=y
> +CONFIG_DUMMY=m
> +CONFIG_MACVLAN=m
> +CONFIG_IPVLAN=m
> +CONFIG_VXLAN=m
> +CONFIG_VETH=m
>  CONFIG_VIRTIO_NET=y
>  CONFIG_MACB=y
>  CONFIG_E1000E=y
> @@ -105,7 +161,11 @@ CONFIG_RPMSG_CTRL=y
>  CONFIG_RPMSG_VIRTIO=y
>  CONFIG_EXT4_FS=y
>  CONFIG_EXT4_FS_POSIX_ACL=y
> +CONFIG_EXT4_FS_SECURITY=y
> +CONFIG_BTRFS_FS=m
> +CONFIG_BTRFS_FS_POSIX_ACL=y
>  CONFIG_AUTOFS4_FS=y
> +CONFIG_OVERLAY_FS=m
>  CONFIG_MSDOS_FS=y
>  CONFIG_VFAT_FS=y
>  CONFIG_TMPFS=y
> @@ -119,6 +179,10 @@ CONFIG_ROOT_NFS=y
>  CONFIG_9P_FS=y
>  CONFIG_NLS_CODEPAGE_437=y
>  CONFIG_NLS_ISO8859_1=m
> +CONFIG_SECURITY=y
> +CONFIG_SECURITY_SELINUX=y
> +CONFIG_SECURITY_APPARMOR=y
> +CONFIG_DEFAULT_SECURITY_DAC=y
>  CONFIG_CRYPTO_USER_API_HASH=y
>  CONFIG_CRYPTO_DEV_VIRTIO=y
>  CONFIG_PRINTK_TIME=y
> @@ -137,7 +201,6 @@ CONFIG_DEBUG_SPINLOCK=y
>  CONFIG_DEBUG_MUTEXES=y
>  CONFIG_DEBUG_RWSEMS=y
>  CONFIG_DEBUG_ATOMIC_SLEEP=y
> -CONFIG_STACKTRACE=y
>  CONFIG_DEBUG_LIST=y
>  CONFIG_DEBUG_PLIST=y
>  CONFIG_DEBUG_SG=y
> --
> 2.36.1
>
Anup Patel June 8, 2022, 4:24 a.m. UTC | #2
On Wed, Jun 8, 2022 at 5:33 AM Heinrich Schuchardt
<heinrich.schuchardt@canonical.com> wrote:
>
> The defconfig kernel should be able to run Docker.
>
> Enable the missing settings according to [1].
> make savedefconfig eliminates CONFIG_STACKTRACE
> which is enabled by default.
>
> Many of the settings are also needed to run a defconfig kernel
> on default distro installations or to run snaps.
>
> [1] https://github.com/moby/moby/blob/master/contrib/check-config.sh
>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>

Looks good to me.

Reviewed-by: Anup Patel <anup@brainfault.org>

Regards,
Anup

> ---
> Cf. [PATCH] arm64: Enable docker support in defconfig
> https://lore.kernel.org/lkml/20220606140103.32779-1-vincenzo.frascino@arm.com/
> ---
>  arch/riscv/configs/defconfig | 65 +++++++++++++++++++++++++++++++++++-
>  1 file changed, 64 insertions(+), 1 deletion(-)
>
> diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
> index 0cc17db8aaba..d4fffcd3cc05 100644
> --- a/arch/riscv/configs/defconfig
> +++ b/arch/riscv/configs/defconfig
> @@ -6,8 +6,18 @@ CONFIG_BPF_SYSCALL=y
>  CONFIG_IKCONFIG=y
>  CONFIG_IKCONFIG_PROC=y
>  CONFIG_CGROUPS=y
> +CONFIG_MEMCG=y
> +CONFIG_BLK_CGROUP=y
>  CONFIG_CGROUP_SCHED=y
>  CONFIG_CFS_BANDWIDTH=y
> +CONFIG_RT_GROUP_SCHED=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_NAMESPACES=y
>  CONFIG_USER_NS=y
> @@ -28,9 +38,11 @@ CONFIG_KVM=m
>  CONFIG_JUMP_LABEL=y
>  CONFIG_MODULES=y
>  CONFIG_MODULE_UNLOAD=y
> +CONFIG_BLK_DEV_THROTTLING=y
>  CONFIG_NET=y
>  CONFIG_PACKET=y
>  CONFIG_UNIX=y
> +CONFIG_XFRM_USER=m
>  CONFIG_INET=y
>  CONFIG_IP_MULTICAST=y
>  CONFIG_IP_ADVANCED_ROUTER=y
> @@ -38,7 +50,43 @@ CONFIG_IP_PNP=y
>  CONFIG_IP_PNP_DHCP=y
>  CONFIG_IP_PNP_BOOTP=y
>  CONFIG_IP_PNP_RARP=y
> +CONFIG_INET_ESP=m
> +CONFIG_NETFILTER=y
> +CONFIG_BRIDGE_NETFILTER=m
> +CONFIG_NF_CONNTRACK=m
> +CONFIG_NF_CONNTRACK_FTP=m
> +CONFIG_NF_CONNTRACK_TFTP=m
> +CONFIG_NETFILTER_XT_MARK=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_VS_PROTO_TCP=y
> +CONFIG_IP_VS_PROTO_UDP=y
> +CONFIG_IP_VS_RR=m
> +CONFIG_IP_VS_NFCT=y
> +CONFIG_NF_LOG_ARP=m
> +CONFIG_NF_LOG_IPV4=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_TARGET_REDIRECT=m
> +CONFIG_IP_NF_MANGLE=m
> +CONFIG_NF_LOG_IPV6=m
> +CONFIG_IP6_NF_IPTABLES=m
> +CONFIG_IP6_NF_MATCH_IPV6HEADER=m
> +CONFIG_IP6_NF_FILTER=m
> +CONFIG_IP6_NF_TARGET_REJECT=m
> +CONFIG_IP6_NF_MANGLE=m
> +CONFIG_BRIDGE=m
> +CONFIG_BRIDGE_VLAN_FILTERING=y
> +CONFIG_VLAN_8021Q=m
> +CONFIG_NET_SCHED=y
> +CONFIG_NET_CLS_CGROUP=m
>  CONFIG_NETLINK_DIAG=y
> +CONFIG_CGROUP_NET_PRIO=y
>  CONFIG_NET_9P=y
>  CONFIG_NET_9P_VIRTIO=y
>  CONFIG_PCI=y
> @@ -57,7 +105,15 @@ CONFIG_SCSI_VIRTIO=y
>  CONFIG_ATA=y
>  CONFIG_SATA_AHCI=y
>  CONFIG_SATA_AHCI_PLATFORM=y
> +CONFIG_MD=y
> +CONFIG_BLK_DEV_DM=m
> +CONFIG_DM_THIN_PROVISIONING=m
>  CONFIG_NETDEVICES=y
> +CONFIG_DUMMY=m
> +CONFIG_MACVLAN=m
> +CONFIG_IPVLAN=m
> +CONFIG_VXLAN=m
> +CONFIG_VETH=m
>  CONFIG_VIRTIO_NET=y
>  CONFIG_MACB=y
>  CONFIG_E1000E=y
> @@ -105,7 +161,11 @@ CONFIG_RPMSG_CTRL=y
>  CONFIG_RPMSG_VIRTIO=y
>  CONFIG_EXT4_FS=y
>  CONFIG_EXT4_FS_POSIX_ACL=y
> +CONFIG_EXT4_FS_SECURITY=y
> +CONFIG_BTRFS_FS=m
> +CONFIG_BTRFS_FS_POSIX_ACL=y
>  CONFIG_AUTOFS4_FS=y
> +CONFIG_OVERLAY_FS=m
>  CONFIG_MSDOS_FS=y
>  CONFIG_VFAT_FS=y
>  CONFIG_TMPFS=y
> @@ -119,6 +179,10 @@ CONFIG_ROOT_NFS=y
>  CONFIG_9P_FS=y
>  CONFIG_NLS_CODEPAGE_437=y
>  CONFIG_NLS_ISO8859_1=m
> +CONFIG_SECURITY=y
> +CONFIG_SECURITY_SELINUX=y
> +CONFIG_SECURITY_APPARMOR=y
> +CONFIG_DEFAULT_SECURITY_DAC=y
>  CONFIG_CRYPTO_USER_API_HASH=y
>  CONFIG_CRYPTO_DEV_VIRTIO=y
>  CONFIG_PRINTK_TIME=y
> @@ -137,7 +201,6 @@ CONFIG_DEBUG_SPINLOCK=y
>  CONFIG_DEBUG_MUTEXES=y
>  CONFIG_DEBUG_RWSEMS=y
>  CONFIG_DEBUG_ATOMIC_SLEEP=y
> -CONFIG_STACKTRACE=y
>  CONFIG_DEBUG_LIST=y
>  CONFIG_DEBUG_PLIST=y
>  CONFIG_DEBUG_SG=y
> --
> 2.36.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv
Palmer Dabbelt July 22, 2022, 5:06 a.m. UTC | #3
On Tue, 07 Jun 2022 17:02:51 PDT (-0700), heinrich.schuchardt@canonical.com wrote:
> The defconfig kernel should be able to run Docker.
>
> Enable the missing settings according to [1].
> make savedefconfig eliminates CONFIG_STACKTRACE
> which is enabled by default.
>
> Many of the settings are also needed to run a defconfig kernel
> on default distro installations or to run snaps.
>
> [1] https://github.com/moby/moby/blob/master/contrib/check-config.sh
>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
> ---
> Cf. [PATCH] arm64: Enable docker support in defconfig
> https://lore.kernel.org/lkml/20220606140103.32779-1-vincenzo.frascino@arm.com/
> ---
>  arch/riscv/configs/defconfig | 65 +++++++++++++++++++++++++++++++++++-
>  1 file changed, 64 insertions(+), 1 deletion(-)
>
> diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
> index 0cc17db8aaba..d4fffcd3cc05 100644
> --- a/arch/riscv/configs/defconfig
> +++ b/arch/riscv/configs/defconfig
> @@ -6,8 +6,18 @@ CONFIG_BPF_SYSCALL=y
>  CONFIG_IKCONFIG=y
>  CONFIG_IKCONFIG_PROC=y
>  CONFIG_CGROUPS=y
> +CONFIG_MEMCG=y
> +CONFIG_BLK_CGROUP=y
>  CONFIG_CGROUP_SCHED=y
>  CONFIG_CFS_BANDWIDTH=y
> +CONFIG_RT_GROUP_SCHED=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_NAMESPACES=y
>  CONFIG_USER_NS=y
> @@ -28,9 +38,11 @@ CONFIG_KVM=m
>  CONFIG_JUMP_LABEL=y
>  CONFIG_MODULES=y
>  CONFIG_MODULE_UNLOAD=y
> +CONFIG_BLK_DEV_THROTTLING=y
>  CONFIG_NET=y
>  CONFIG_PACKET=y
>  CONFIG_UNIX=y
> +CONFIG_XFRM_USER=m
>  CONFIG_INET=y
>  CONFIG_IP_MULTICAST=y
>  CONFIG_IP_ADVANCED_ROUTER=y
> @@ -38,7 +50,43 @@ CONFIG_IP_PNP=y
>  CONFIG_IP_PNP_DHCP=y
>  CONFIG_IP_PNP_BOOTP=y
>  CONFIG_IP_PNP_RARP=y
> +CONFIG_INET_ESP=m
> +CONFIG_NETFILTER=y
> +CONFIG_BRIDGE_NETFILTER=m
> +CONFIG_NF_CONNTRACK=m
> +CONFIG_NF_CONNTRACK_FTP=m
> +CONFIG_NF_CONNTRACK_TFTP=m
> +CONFIG_NETFILTER_XT_MARK=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_VS_PROTO_TCP=y
> +CONFIG_IP_VS_PROTO_UDP=y
> +CONFIG_IP_VS_RR=m
> +CONFIG_IP_VS_NFCT=y
> +CONFIG_NF_LOG_ARP=m
> +CONFIG_NF_LOG_IPV4=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_TARGET_REDIRECT=m
> +CONFIG_IP_NF_MANGLE=m
> +CONFIG_NF_LOG_IPV6=m
> +CONFIG_IP6_NF_IPTABLES=m
> +CONFIG_IP6_NF_MATCH_IPV6HEADER=m
> +CONFIG_IP6_NF_FILTER=m
> +CONFIG_IP6_NF_TARGET_REJECT=m
> +CONFIG_IP6_NF_MANGLE=m
> +CONFIG_BRIDGE=m
> +CONFIG_BRIDGE_VLAN_FILTERING=y
> +CONFIG_VLAN_8021Q=m
> +CONFIG_NET_SCHED=y
> +CONFIG_NET_CLS_CGROUP=m
>  CONFIG_NETLINK_DIAG=y
> +CONFIG_CGROUP_NET_PRIO=y
>  CONFIG_NET_9P=y
>  CONFIG_NET_9P_VIRTIO=y
>  CONFIG_PCI=y
> @@ -57,7 +105,15 @@ CONFIG_SCSI_VIRTIO=y
>  CONFIG_ATA=y
>  CONFIG_SATA_AHCI=y
>  CONFIG_SATA_AHCI_PLATFORM=y
> +CONFIG_MD=y
> +CONFIG_BLK_DEV_DM=m
> +CONFIG_DM_THIN_PROVISIONING=m
>  CONFIG_NETDEVICES=y
> +CONFIG_DUMMY=m
> +CONFIG_MACVLAN=m
> +CONFIG_IPVLAN=m
> +CONFIG_VXLAN=m
> +CONFIG_VETH=m
>  CONFIG_VIRTIO_NET=y
>  CONFIG_MACB=y
>  CONFIG_E1000E=y
> @@ -105,7 +161,11 @@ CONFIG_RPMSG_CTRL=y
>  CONFIG_RPMSG_VIRTIO=y
>  CONFIG_EXT4_FS=y
>  CONFIG_EXT4_FS_POSIX_ACL=y
> +CONFIG_EXT4_FS_SECURITY=y
> +CONFIG_BTRFS_FS=m
> +CONFIG_BTRFS_FS_POSIX_ACL=y
>  CONFIG_AUTOFS4_FS=y
> +CONFIG_OVERLAY_FS=m
>  CONFIG_MSDOS_FS=y
>  CONFIG_VFAT_FS=y
>  CONFIG_TMPFS=y
> @@ -119,6 +179,10 @@ CONFIG_ROOT_NFS=y
>  CONFIG_9P_FS=y
>  CONFIG_NLS_CODEPAGE_437=y
>  CONFIG_NLS_ISO8859_1=m
> +CONFIG_SECURITY=y
> +CONFIG_SECURITY_SELINUX=y
> +CONFIG_SECURITY_APPARMOR=y
> +CONFIG_DEFAULT_SECURITY_DAC=y
>  CONFIG_CRYPTO_USER_API_HASH=y
>  CONFIG_CRYPTO_DEV_VIRTIO=y
>  CONFIG_PRINTK_TIME=y
> @@ -137,7 +201,6 @@ CONFIG_DEBUG_SPINLOCK=y
>  CONFIG_DEBUG_MUTEXES=y
>  CONFIG_DEBUG_RWSEMS=y
>  CONFIG_DEBUG_ATOMIC_SLEEP=y
> -CONFIG_STACKTRACE=y
>  CONFIG_DEBUG_LIST=y
>  CONFIG_DEBUG_PLIST=y
>  CONFIG_DEBUG_SG=y

Sorry for being so slow here.  I don't have any issues with this as a 
concept, but it makes a handful of my test configs panic on boot.  Seems 
like something is tripping up a kasan failure.  I guess it's kind of 
arbitrary to call that a regression, as I'm sure it's just uncovering 
some issue that already exists, but turning something on in defconfig 
that panics with kasan is going to have a bunch of fallout.

It looks like BLK_CGROUP is the problem here, so if you're OK with it 
then I'm happy to take the rest of these.  I put that over at 
kernel.org/palmer/linux/riscv-docker_no_blk_cgroup, if that's OK I'll 
cherry-pick it onto for-next.

There's almost certainly a bug here that warrants fixing.
Heinrich Schuchardt July 22, 2022, 8:03 a.m. UTC | #4
On 7/22/22 07:06, Palmer Dabbelt wrote:
> On Tue, 07 Jun 2022 17:02:51 PDT (-0700), 
> heinrich.schuchardt@canonical.com wrote:
>> The defconfig kernel should be able to run Docker.
>>
>> Enable the missing settings according to [1].
>> make savedefconfig eliminates CONFIG_STACKTRACE
>> which is enabled by default.
>>
>> Many of the settings are also needed to run a defconfig kernel
>> on default distro installations or to run snaps.
>>
>> [1] https://github.com/moby/moby/blob/master/contrib/check-config.sh
>>
>> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
>> ---
>> Cf. [PATCH] arm64: Enable docker support in defconfig
>> https://lore.kernel.org/lkml/20220606140103.32779-1-vincenzo.frascino@arm.com/
>> ---
>>  arch/riscv/configs/defconfig | 65 +++++++++++++++++++++++++++++++++++-
>>  1 file changed, 64 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
>> index 0cc17db8aaba..d4fffcd3cc05 100644
>> --- a/arch/riscv/configs/defconfig
>> +++ b/arch/riscv/configs/defconfig
>> @@ -6,8 +6,18 @@ CONFIG_BPF_SYSCALL=y
>>  CONFIG_IKCONFIG=y
>>  CONFIG_IKCONFIG_PROC=y
>>  CONFIG_CGROUPS=y
>> +CONFIG_MEMCG=y
>> +CONFIG_BLK_CGROUP=y
>>  CONFIG_CGROUP_SCHED=y
>>  CONFIG_CFS_BANDWIDTH=y
>> +CONFIG_RT_GROUP_SCHED=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_NAMESPACES=y
>>  CONFIG_USER_NS=y
>> @@ -28,9 +38,11 @@ CONFIG_KVM=m
>>  CONFIG_JUMP_LABEL=y
>>  CONFIG_MODULES=y
>>  CONFIG_MODULE_UNLOAD=y
>> +CONFIG_BLK_DEV_THROTTLING=y
>>  CONFIG_NET=y
>>  CONFIG_PACKET=y
>>  CONFIG_UNIX=y
>> +CONFIG_XFRM_USER=m
>>  CONFIG_INET=y
>>  CONFIG_IP_MULTICAST=y
>>  CONFIG_IP_ADVANCED_ROUTER=y
>> @@ -38,7 +50,43 @@ CONFIG_IP_PNP=y
>>  CONFIG_IP_PNP_DHCP=y
>>  CONFIG_IP_PNP_BOOTP=y
>>  CONFIG_IP_PNP_RARP=y
>> +CONFIG_INET_ESP=m
>> +CONFIG_NETFILTER=y
>> +CONFIG_BRIDGE_NETFILTER=m
>> +CONFIG_NF_CONNTRACK=m
>> +CONFIG_NF_CONNTRACK_FTP=m
>> +CONFIG_NF_CONNTRACK_TFTP=m
>> +CONFIG_NETFILTER_XT_MARK=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_VS_PROTO_TCP=y
>> +CONFIG_IP_VS_PROTO_UDP=y
>> +CONFIG_IP_VS_RR=m
>> +CONFIG_IP_VS_NFCT=y
>> +CONFIG_NF_LOG_ARP=m
>> +CONFIG_NF_LOG_IPV4=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_TARGET_REDIRECT=m
>> +CONFIG_IP_NF_MANGLE=m
>> +CONFIG_NF_LOG_IPV6=m
>> +CONFIG_IP6_NF_IPTABLES=m
>> +CONFIG_IP6_NF_MATCH_IPV6HEADER=m
>> +CONFIG_IP6_NF_FILTER=m
>> +CONFIG_IP6_NF_TARGET_REJECT=m
>> +CONFIG_IP6_NF_MANGLE=m
>> +CONFIG_BRIDGE=m
>> +CONFIG_BRIDGE_VLAN_FILTERING=y
>> +CONFIG_VLAN_8021Q=m
>> +CONFIG_NET_SCHED=y
>> +CONFIG_NET_CLS_CGROUP=m
>>  CONFIG_NETLINK_DIAG=y
>> +CONFIG_CGROUP_NET_PRIO=y
>>  CONFIG_NET_9P=y
>>  CONFIG_NET_9P_VIRTIO=y
>>  CONFIG_PCI=y
>> @@ -57,7 +105,15 @@ CONFIG_SCSI_VIRTIO=y
>>  CONFIG_ATA=y
>>  CONFIG_SATA_AHCI=y
>>  CONFIG_SATA_AHCI_PLATFORM=y
>> +CONFIG_MD=y
>> +CONFIG_BLK_DEV_DM=m
>> +CONFIG_DM_THIN_PROVISIONING=m
>>  CONFIG_NETDEVICES=y
>> +CONFIG_DUMMY=m
>> +CONFIG_MACVLAN=m
>> +CONFIG_IPVLAN=m
>> +CONFIG_VXLAN=m
>> +CONFIG_VETH=m
>>  CONFIG_VIRTIO_NET=y
>>  CONFIG_MACB=y
>>  CONFIG_E1000E=y
>> @@ -105,7 +161,11 @@ CONFIG_RPMSG_CTRL=y
>>  CONFIG_RPMSG_VIRTIO=y
>>  CONFIG_EXT4_FS=y
>>  CONFIG_EXT4_FS_POSIX_ACL=y
>> +CONFIG_EXT4_FS_SECURITY=y
>> +CONFIG_BTRFS_FS=m
>> +CONFIG_BTRFS_FS_POSIX_ACL=y
>>  CONFIG_AUTOFS4_FS=y
>> +CONFIG_OVERLAY_FS=m
>>  CONFIG_MSDOS_FS=y
>>  CONFIG_VFAT_FS=y
>>  CONFIG_TMPFS=y
>> @@ -119,6 +179,10 @@ CONFIG_ROOT_NFS=y
>>  CONFIG_9P_FS=y
>>  CONFIG_NLS_CODEPAGE_437=y
>>  CONFIG_NLS_ISO8859_1=m
>> +CONFIG_SECURITY=y
>> +CONFIG_SECURITY_SELINUX=y
>> +CONFIG_SECURITY_APPARMOR=y
>> +CONFIG_DEFAULT_SECURITY_DAC=y
>>  CONFIG_CRYPTO_USER_API_HASH=y
>>  CONFIG_CRYPTO_DEV_VIRTIO=y
>>  CONFIG_PRINTK_TIME=y
>> @@ -137,7 +201,6 @@ CONFIG_DEBUG_SPINLOCK=y
>>  CONFIG_DEBUG_MUTEXES=y
>>  CONFIG_DEBUG_RWSEMS=y
>>  CONFIG_DEBUG_ATOMIC_SLEEP=y
>> -CONFIG_STACKTRACE=y
>>  CONFIG_DEBUG_LIST=y
>>  CONFIG_DEBUG_PLIST=y
>>  CONFIG_DEBUG_SG=y
> 
> Sorry for being so slow here.  I don't have any issues with this as a 
> concept, but it makes a handful of my test configs panic on boot.  Seems 
> like something is tripping up a kasan failure.  I guess it's kind of 

Hello Palmer,

thanks for sharing your test experience. Could you, please, provide the 
config file and the test configuration that leads the regression.

> arbitrary to call that a regression, as I'm sure it's just uncovering 
> some issue that already exists, but turning something on in defconfig 
> that panics with kasan is going to have a bunch of fallout.
> 
> It looks like BLK_CGROUP is the problem here, so if you're OK with it 
> then I'm happy to take the rest of these.  I put that over at 
> kernel.org/palmer/linux/riscv-docker_no_blk_cgroup, if that's OK I'll 
> cherry-pick it onto for-next.

I am fine with cherry picking.

Best regards

Heinrich

> 
> There's almost certainly a bug here that warrants fixing.
Palmer Dabbelt July 22, 2022, 10:29 p.m. UTC | #5
On Fri, 22 Jul 2022 01:03:47 PDT (-0700), heinrich.schuchardt@canonical.com wrote:
> On 7/22/22 07:06, Palmer Dabbelt wrote:
>> On Tue, 07 Jun 2022 17:02:51 PDT (-0700),
>> heinrich.schuchardt@canonical.com wrote:
>>> The defconfig kernel should be able to run Docker.
>>>
>>> Enable the missing settings according to [1].
>>> make savedefconfig eliminates CONFIG_STACKTRACE
>>> which is enabled by default.
>>>
>>> Many of the settings are also needed to run a defconfig kernel
>>> on default distro installations or to run snaps.
>>>
>>> [1] https://github.com/moby/moby/blob/master/contrib/check-config.sh
>>>
>>> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
>>> ---
>>> Cf. [PATCH] arm64: Enable docker support in defconfig
>>> https://lore.kernel.org/lkml/20220606140103.32779-1-vincenzo.frascino@arm.com/
>>> ---
>>>  arch/riscv/configs/defconfig | 65 +++++++++++++++++++++++++++++++++++-
>>>  1 file changed, 64 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
>>> index 0cc17db8aaba..d4fffcd3cc05 100644
>>> --- a/arch/riscv/configs/defconfig
>>> +++ b/arch/riscv/configs/defconfig
>>> @@ -6,8 +6,18 @@ CONFIG_BPF_SYSCALL=y
>>>  CONFIG_IKCONFIG=y
>>>  CONFIG_IKCONFIG_PROC=y
>>>  CONFIG_CGROUPS=y
>>> +CONFIG_MEMCG=y
>>> +CONFIG_BLK_CGROUP=y
>>>  CONFIG_CGROUP_SCHED=y
>>>  CONFIG_CFS_BANDWIDTH=y
>>> +CONFIG_RT_GROUP_SCHED=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_NAMESPACES=y
>>>  CONFIG_USER_NS=y
>>> @@ -28,9 +38,11 @@ CONFIG_KVM=m
>>>  CONFIG_JUMP_LABEL=y
>>>  CONFIG_MODULES=y
>>>  CONFIG_MODULE_UNLOAD=y
>>> +CONFIG_BLK_DEV_THROTTLING=y
>>>  CONFIG_NET=y
>>>  CONFIG_PACKET=y
>>>  CONFIG_UNIX=y
>>> +CONFIG_XFRM_USER=m
>>>  CONFIG_INET=y
>>>  CONFIG_IP_MULTICAST=y
>>>  CONFIG_IP_ADVANCED_ROUTER=y
>>> @@ -38,7 +50,43 @@ CONFIG_IP_PNP=y
>>>  CONFIG_IP_PNP_DHCP=y
>>>  CONFIG_IP_PNP_BOOTP=y
>>>  CONFIG_IP_PNP_RARP=y
>>> +CONFIG_INET_ESP=m
>>> +CONFIG_NETFILTER=y
>>> +CONFIG_BRIDGE_NETFILTER=m
>>> +CONFIG_NF_CONNTRACK=m
>>> +CONFIG_NF_CONNTRACK_FTP=m
>>> +CONFIG_NF_CONNTRACK_TFTP=m
>>> +CONFIG_NETFILTER_XT_MARK=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_VS_PROTO_TCP=y
>>> +CONFIG_IP_VS_PROTO_UDP=y
>>> +CONFIG_IP_VS_RR=m
>>> +CONFIG_IP_VS_NFCT=y
>>> +CONFIG_NF_LOG_ARP=m
>>> +CONFIG_NF_LOG_IPV4=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_TARGET_REDIRECT=m
>>> +CONFIG_IP_NF_MANGLE=m
>>> +CONFIG_NF_LOG_IPV6=m
>>> +CONFIG_IP6_NF_IPTABLES=m
>>> +CONFIG_IP6_NF_MATCH_IPV6HEADER=m
>>> +CONFIG_IP6_NF_FILTER=m
>>> +CONFIG_IP6_NF_TARGET_REJECT=m
>>> +CONFIG_IP6_NF_MANGLE=m
>>> +CONFIG_BRIDGE=m
>>> +CONFIG_BRIDGE_VLAN_FILTERING=y
>>> +CONFIG_VLAN_8021Q=m
>>> +CONFIG_NET_SCHED=y
>>> +CONFIG_NET_CLS_CGROUP=m
>>>  CONFIG_NETLINK_DIAG=y
>>> +CONFIG_CGROUP_NET_PRIO=y
>>>  CONFIG_NET_9P=y
>>>  CONFIG_NET_9P_VIRTIO=y
>>>  CONFIG_PCI=y
>>> @@ -57,7 +105,15 @@ CONFIG_SCSI_VIRTIO=y
>>>  CONFIG_ATA=y
>>>  CONFIG_SATA_AHCI=y
>>>  CONFIG_SATA_AHCI_PLATFORM=y
>>> +CONFIG_MD=y
>>> +CONFIG_BLK_DEV_DM=m
>>> +CONFIG_DM_THIN_PROVISIONING=m
>>>  CONFIG_NETDEVICES=y
>>> +CONFIG_DUMMY=m
>>> +CONFIG_MACVLAN=m
>>> +CONFIG_IPVLAN=m
>>> +CONFIG_VXLAN=m
>>> +CONFIG_VETH=m
>>>  CONFIG_VIRTIO_NET=y
>>>  CONFIG_MACB=y
>>>  CONFIG_E1000E=y
>>> @@ -105,7 +161,11 @@ CONFIG_RPMSG_CTRL=y
>>>  CONFIG_RPMSG_VIRTIO=y
>>>  CONFIG_EXT4_FS=y
>>>  CONFIG_EXT4_FS_POSIX_ACL=y
>>> +CONFIG_EXT4_FS_SECURITY=y
>>> +CONFIG_BTRFS_FS=m
>>> +CONFIG_BTRFS_FS_POSIX_ACL=y
>>>  CONFIG_AUTOFS4_FS=y
>>> +CONFIG_OVERLAY_FS=m
>>>  CONFIG_MSDOS_FS=y
>>>  CONFIG_VFAT_FS=y
>>>  CONFIG_TMPFS=y
>>> @@ -119,6 +179,10 @@ CONFIG_ROOT_NFS=y
>>>  CONFIG_9P_FS=y
>>>  CONFIG_NLS_CODEPAGE_437=y
>>>  CONFIG_NLS_ISO8859_1=m
>>> +CONFIG_SECURITY=y
>>> +CONFIG_SECURITY_SELINUX=y
>>> +CONFIG_SECURITY_APPARMOR=y
>>> +CONFIG_DEFAULT_SECURITY_DAC=y
>>>  CONFIG_CRYPTO_USER_API_HASH=y
>>>  CONFIG_CRYPTO_DEV_VIRTIO=y
>>>  CONFIG_PRINTK_TIME=y
>>> @@ -137,7 +201,6 @@ CONFIG_DEBUG_SPINLOCK=y
>>>  CONFIG_DEBUG_MUTEXES=y
>>>  CONFIG_DEBUG_RWSEMS=y
>>>  CONFIG_DEBUG_ATOMIC_SLEEP=y
>>> -CONFIG_STACKTRACE=y
>>>  CONFIG_DEBUG_LIST=y
>>>  CONFIG_DEBUG_PLIST=y
>>>  CONFIG_DEBUG_SG=y
>>
>> Sorry for being so slow here.  I don't have any issues with this as a
>> concept, but it makes a handful of my test configs panic on boot.  Seems
>> like something is tripping up a kasan failure.  I guess it's kind of
>
> Hello Palmer,
>
> thanks for sharing your test experience. Could you, please, provide the
> config file and the test configuration that leads the regression.

My test setup is at 
<http://github.com/palmer-dabbelt/riscv-systems-ci.git>.  I don't 
advertise it all that much because it's pretty flaky, but some folks 
have gotten it working recently.  `make 
check/qemu-rv64gc-virt-smp8/halt-kasan-glibc/stdout` hangs for me with 
your patch, that's running the "kasan" config from here 
<https://github.com/palmer-dabbelt/riscv-systems-ci/blob/master/configs/linux/kasan>, 
it just flips on CONFIG_KASAN so it shouldn't be all that hard to 
reproduce outside the setup (those configs are all additions to 
defconfig).

I don't have a trace lying around, but it triggers asan failures in a 
handful of block driver initialization routines (I remember seeing 
SD/MMC and USB storage).  I can dig them up if you can't reproduce it, 
but hopefully it's simple.

>> arbitrary to call that a regression, as I'm sure it's just uncovering
>> some issue that already exists, but turning something on in defconfig
>> that panics with kasan is going to have a bunch of fallout.
>>
>> It looks like BLK_CGROUP is the problem here, so if you're OK with it
>> then I'm happy to take the rest of these.  I put that over at
>> kernel.org/palmer/linux/riscv-docker_no_blk_cgroup, if that's OK I'll
>> cherry-pick it onto for-next.
>
> I am fine with cherry picking.

OK, it's on for-next.  Thanks!

>
> Best regards
>
> Heinrich
>
>>
>> There's almost certainly a bug here that warrants fixing.
Guenter Roeck Aug. 13, 2022, 3:58 p.m. UTC | #6
On Wed, Jun 08, 2022 at 02:02:51AM +0200, Heinrich Schuchardt wrote:
> The defconfig kernel should be able to run Docker.
> 
> Enable the missing settings according to [1].
> make savedefconfig eliminates CONFIG_STACKTRACE
> which is enabled by default.
> 
> Many of the settings are also needed to run a defconfig kernel
> on default distro installations or to run snaps.
> 
> [1] https://github.com/moby/moby/blob/master/contrib/check-config.sh
> 
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>

This patch results in (or exposes) the following boot warning with all
riscv32 and riscv64 qemu boots.

[   12.278014] DEBUG_LOCKS_WARN_ON(!lockdep_hardirqs_enabled())
[   12.278218] WARNING: CPU: 0 PID: 140 at kernel/locking/lockdep.c:5510 check_flags+0xe2/0x1c2
[   12.278446] Modules linked in:
[   12.278623] CPU: 0 PID: 140 Comm: S01syslogd Tainted: G                 N 5.19.0-14184-g69dac8e431af #1
[   12.278791] Hardware name: riscv-virtio,qemu (DT)
[   12.278931] epc : check_flags+0xe2/0x1c2
[   12.279024]  ra : check_flags+0xe2/0x1c2
[   12.279092] epc : ffffffff80a8ea50 ra : ffffffff80a8ea50 sp : ff200000107f3cb0
[   12.279180]  gp : ffffffff819fec50 tp : ff600000049895c0 t0 : ffffffff81833520
[   12.279287]  t1 : 0000000000000001 t2 : 2d2d2d2d2d2d2d2d s0 : ff200000107f3cd0
[   12.279395]  s1 : ffffffff81a00130 a0 : 0000000000000030 a1 : ffffffff818925e8
[   12.279502]  a2 : 0000000000000010 a3 : fffffffffffffffe a4 : 0000000000000000
[   12.279608]  a5 : 0000000000000000 a6 : ffffffff80066d80 a7 : 0000000000000038
[   12.279714]  s2 : ffffffff81a024e0 s3 : ffffffff818935b0 s4 : ff200000107f3e28
[   12.279825]  s5 : ffffffff80e27708 s6 : 0000000200000022 s7 : ffffffffffffffff
[   12.279932]  s8 : ffffffff8249da18 s9 : 0000000000001000 s10: 0000000000000001
[   12.280037]  s11: 0000000000000001 t3 : ffffffff824740af t4 : ffffffff824740af
[   12.280142]  t5 : ffffffff824740b0 t6 : ff200000107f3aa8
[   12.280227] status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000003
[   12.280382] [<ffffffff80a8eba8>] lock_is_held_type+0x78/0x14a
[   12.280505] [<ffffffff8003d648>] __might_resched+0x26/0x232
[   12.280608] [<ffffffff8003d892>] __might_sleep+0x3e/0x66
[   12.280690] [<ffffffff8002262c>] get_signal+0xa6/0x8f6
[   12.280771] [<ffffffff800051da>] do_notify_resume+0x68/0x418
[   12.280863] [<ffffffff80003af4>] ret_from_exception+0x0/0x10
[   12.280978] irq event stamp: 2900
[   12.281041] hardirqs last  enabled at (2899): [<ffffffff80a9761c>] _raw_spin_unlock_irqrestore+0x54/0x62
[   12.281176] hardirqs last disabled at (2900): [<ffffffff8000812c>] __trace_hardirqs_off+0xc/0x14
[   12.281303] softirqs last  enabled at (1860): [<ffffffff80a98092>] __do_softirq+0x3e2/0x51c
[   12.281435] softirqs last disabled at (1843): [<ffffffff80016fc8>] __irq_exit_rcu+0xb4/0xdc
[   12.281564] ---[ end trace 0000000000000000 ]---
[   12.281735] possible reason: unannotated irqs-on.
[   12.281815] irq event stamp: 2900
[   12.281875] hardirqs last  enabled at (2899): [<ffffffff80a9761c>] _raw_spin_unlock_irqrestore+0x54/0x62
[   12.282004] hardirqs last disabled at (2900): [<ffffffff8000812c>] __trace_hardirqs_off+0xc/0x14
[   12.282125] softirqs last  enabled at (1860): [<ffffffff80a98092>] __do_softirq+0x3e2/0x51c
[   12.282242] softirqs last disabled at (1843): [<ffffffff80016fc8>] __irq_exit_rcu+0xb4/0xdc

Reverting this patch fixes the problem. Bisect log attached.

Guenter

---
# bad: [69dac8e431af26173ca0a1ebc87054e01c585bcc] Merge tag 'riscv-for-linus-5.20-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux
# good: [6614a3c3164a5df2b54abb0b3559f51041cf705b] Merge tag 'mm-stable-2022-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
git bisect start 'HEAD' '6614a3c3164a'
# bad: [24cb958695724ffb4488ef4f65892c0767bcd2f2] Merge tag 's390-5.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
git bisect bad 24cb958695724ffb4488ef4f65892c0767bcd2f2
# good: [a3b5d4715fd5a839857f8b7be78dff258a8d5a47] Merge tag 'asoc-v5.20-2' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
git bisect good a3b5d4715fd5a839857f8b7be78dff258a8d5a47
# good: [1d239c1eb873c7d6c6cbc80d68330c939fd86136] Merge tag 'iommu-updates-v5.20-or-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu
git bisect good 1d239c1eb873c7d6c6cbc80d68330c939fd86136
# good: [4cfa6ff24a9744ba484521c38bea613134fbfcb3] powerpc/64e: Fix kexec build error
git bisect good 4cfa6ff24a9744ba484521c38bea613134fbfcb3
# good: [ea0c39260d0c1d8e11d89c9d42ca48e172d1c868] Merge tag '9p-for-5.20' of https://github.com/martinetd/linux
git bisect good ea0c39260d0c1d8e11d89c9d42ca48e172d1c868
# bad: [d77771c926671e0362af3fe792391be66072b242] Merge tag 'mips_6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
git bisect bad d77771c926671e0362af3fe792391be66072b242
# good: [3f1901110a89b0e2e13adb2ac8d1a7102879ea98] RISC-V: Add fast call path of crash_kexec()
git bisect good 3f1901110a89b0e2e13adb2ac8d1a7102879ea98
# good: [d3164e2f3b0ac003c401d419cda2da0571724352] MIPS: Remove VR41xx support
git bisect good d3164e2f3b0ac003c401d419cda2da0571724352
# good: [534ea58b3ceb41d668adf18c4e68a846e770a6c8] Revert "MIPS: octeon: Remove vestiges of CONFIG_CAVIUM_RESERVE32"
git bisect good 534ea58b3ceb41d668adf18c4e68a846e770a6c8
# bad: [ba6cfef057e1c594c456627aad81c2343fdb5d13] riscv: enable Docker requirements in defconfig
git bisect bad ba6cfef057e1c594c456627aad81c2343fdb5d13
# good: [9c2ea4a36364bfb5cf068c6fbea5c40292b119a5] riscv: convert the t-head pbmt errata to use the __nops macro
git bisect good 9c2ea4a36364bfb5cf068c6fbea5c40292b119a5
# good: [f4361718f7654f31fee6bf323147e7062d825599] riscv: Add macro for multiple nop instructions
git bisect good f4361718f7654f31fee6bf323147e7062d825599
# first bad commit: [ba6cfef057e1c594c456627aad81c2343fdb5d13] riscv: enable Docker requirements in defconfig
Palmer Dabbelt Sept. 20, 2022, 8:25 p.m. UTC | #7
On Sat, 13 Aug 2022 08:58:51 PDT (-0700), linux@roeck-us.net wrote:
> On Wed, Jun 08, 2022 at 02:02:51AM +0200, Heinrich Schuchardt wrote:
>> The defconfig kernel should be able to run Docker.
>>
>> Enable the missing settings according to [1].
>> make savedefconfig eliminates CONFIG_STACKTRACE
>> which is enabled by default.
>>
>> Many of the settings are also needed to run a defconfig kernel
>> on default distro installations or to run snaps.
>>
>> [1] https://github.com/moby/moby/blob/master/contrib/check-config.sh
>>
>> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
>
> This patch results in (or exposes) the following boot warning with all
> riscv32 and riscv64 qemu boots.
>
> [   12.278014] DEBUG_LOCKS_WARN_ON(!lockdep_hardirqs_enabled())
> [   12.278218] WARNING: CPU: 0 PID: 140 at kernel/locking/lockdep.c:5510 check_flags+0xe2/0x1c2
> [   12.278446] Modules linked in:
> [   12.278623] CPU: 0 PID: 140 Comm: S01syslogd Tainted: G                 N 5.19.0-14184-g69dac8e431af #1
> [   12.278791] Hardware name: riscv-virtio,qemu (DT)
> [   12.278931] epc : check_flags+0xe2/0x1c2
> [   12.279024]  ra : check_flags+0xe2/0x1c2
> [   12.279092] epc : ffffffff80a8ea50 ra : ffffffff80a8ea50 sp : ff200000107f3cb0
> [   12.279180]  gp : ffffffff819fec50 tp : ff600000049895c0 t0 : ffffffff81833520
> [   12.279287]  t1 : 0000000000000001 t2 : 2d2d2d2d2d2d2d2d s0 : ff200000107f3cd0
> [   12.279395]  s1 : ffffffff81a00130 a0 : 0000000000000030 a1 : ffffffff818925e8
> [   12.279502]  a2 : 0000000000000010 a3 : fffffffffffffffe a4 : 0000000000000000
> [   12.279608]  a5 : 0000000000000000 a6 : ffffffff80066d80 a7 : 0000000000000038
> [   12.279714]  s2 : ffffffff81a024e0 s3 : ffffffff818935b0 s4 : ff200000107f3e28
> [   12.279825]  s5 : ffffffff80e27708 s6 : 0000000200000022 s7 : ffffffffffffffff
> [   12.279932]  s8 : ffffffff8249da18 s9 : 0000000000001000 s10: 0000000000000001
> [   12.280037]  s11: 0000000000000001 t3 : ffffffff824740af t4 : ffffffff824740af
> [   12.280142]  t5 : ffffffff824740b0 t6 : ff200000107f3aa8
> [   12.280227] status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000003
> [   12.280382] [<ffffffff80a8eba8>] lock_is_held_type+0x78/0x14a
> [   12.280505] [<ffffffff8003d648>] __might_resched+0x26/0x232
> [   12.280608] [<ffffffff8003d892>] __might_sleep+0x3e/0x66
> [   12.280690] [<ffffffff8002262c>] get_signal+0xa6/0x8f6
> [   12.280771] [<ffffffff800051da>] do_notify_resume+0x68/0x418
> [   12.280863] [<ffffffff80003af4>] ret_from_exception+0x0/0x10
> [   12.280978] irq event stamp: 2900
> [   12.281041] hardirqs last  enabled at (2899): [<ffffffff80a9761c>] _raw_spin_unlock_irqrestore+0x54/0x62
> [   12.281176] hardirqs last disabled at (2900): [<ffffffff8000812c>] __trace_hardirqs_off+0xc/0x14
> [   12.281303] softirqs last  enabled at (1860): [<ffffffff80a98092>] __do_softirq+0x3e2/0x51c
> [   12.281435] softirqs last disabled at (1843): [<ffffffff80016fc8>] __irq_exit_rcu+0xb4/0xdc
> [   12.281564] ---[ end trace 0000000000000000 ]---
> [   12.281735] possible reason: unannotated irqs-on.
> [   12.281815] irq event stamp: 2900
> [   12.281875] hardirqs last  enabled at (2899): [<ffffffff80a9761c>] _raw_spin_unlock_irqrestore+0x54/0x62
> [   12.282004] hardirqs last disabled at (2900): [<ffffffff8000812c>] __trace_hardirqs_off+0xc/0x14
> [   12.282125] softirqs last  enabled at (1860): [<ffffffff80a98092>] __do_softirq+0x3e2/0x51c
> [   12.282242] softirqs last disabled at (1843): [<ffffffff80016fc8>] __irq_exit_rcu+0xb4/0xdc
>
> Reverting this patch fixes the problem. Bisect log attached.

Sorry for having missed this report, but I don't see this now and don't 
remember having seen it before.  Are you still seeing the issue?

>
> Guenter
>
> ---
> # bad: [69dac8e431af26173ca0a1ebc87054e01c585bcc] Merge tag 'riscv-for-linus-5.20-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux
> # good: [6614a3c3164a5df2b54abb0b3559f51041cf705b] Merge tag 'mm-stable-2022-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
> git bisect start 'HEAD' '6614a3c3164a'
> # bad: [24cb958695724ffb4488ef4f65892c0767bcd2f2] Merge tag 's390-5.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
> git bisect bad 24cb958695724ffb4488ef4f65892c0767bcd2f2
> # good: [a3b5d4715fd5a839857f8b7be78dff258a8d5a47] Merge tag 'asoc-v5.20-2' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
> git bisect good a3b5d4715fd5a839857f8b7be78dff258a8d5a47
> # good: [1d239c1eb873c7d6c6cbc80d68330c939fd86136] Merge tag 'iommu-updates-v5.20-or-v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu
> git bisect good 1d239c1eb873c7d6c6cbc80d68330c939fd86136
> # good: [4cfa6ff24a9744ba484521c38bea613134fbfcb3] powerpc/64e: Fix kexec build error
> git bisect good 4cfa6ff24a9744ba484521c38bea613134fbfcb3
> # good: [ea0c39260d0c1d8e11d89c9d42ca48e172d1c868] Merge tag '9p-for-5.20' of https://github.com/martinetd/linux
> git bisect good ea0c39260d0c1d8e11d89c9d42ca48e172d1c868
> # bad: [d77771c926671e0362af3fe792391be66072b242] Merge tag 'mips_6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
> git bisect bad d77771c926671e0362af3fe792391be66072b242
> # good: [3f1901110a89b0e2e13adb2ac8d1a7102879ea98] RISC-V: Add fast call path of crash_kexec()
> git bisect good 3f1901110a89b0e2e13adb2ac8d1a7102879ea98
> # good: [d3164e2f3b0ac003c401d419cda2da0571724352] MIPS: Remove VR41xx support
> git bisect good d3164e2f3b0ac003c401d419cda2da0571724352
> # good: [534ea58b3ceb41d668adf18c4e68a846e770a6c8] Revert "MIPS: octeon: Remove vestiges of CONFIG_CAVIUM_RESERVE32"
> git bisect good 534ea58b3ceb41d668adf18c4e68a846e770a6c8
> # bad: [ba6cfef057e1c594c456627aad81c2343fdb5d13] riscv: enable Docker requirements in defconfig
> git bisect bad ba6cfef057e1c594c456627aad81c2343fdb5d13
> # good: [9c2ea4a36364bfb5cf068c6fbea5c40292b119a5] riscv: convert the t-head pbmt errata to use the __nops macro
> git bisect good 9c2ea4a36364bfb5cf068c6fbea5c40292b119a5
> # good: [f4361718f7654f31fee6bf323147e7062d825599] riscv: Add macro for multiple nop instructions
> git bisect good f4361718f7654f31fee6bf323147e7062d825599
> # first bad commit: [ba6cfef057e1c594c456627aad81c2343fdb5d13] riscv: enable Docker requirements in defconfig
Guenter Roeck Sept. 20, 2022, 9:55 p.m. UTC | #8
On 9/20/22 13:25, Palmer Dabbelt wrote:
> On Sat, 13 Aug 2022 08:58:51 PDT (-0700), linux@roeck-us.net wrote:
>> On Wed, Jun 08, 2022 at 02:02:51AM +0200, Heinrich Schuchardt wrote:
>>> The defconfig kernel should be able to run Docker.
>>>
>>> Enable the missing settings according to [1].
>>> make savedefconfig eliminates CONFIG_STACKTRACE
>>> which is enabled by default.
>>>
>>> Many of the settings are also needed to run a defconfig kernel
>>> on default distro installations or to run snaps.
>>>
>>> [1] https://github.com/moby/moby/blob/master/contrib/check-config.sh
>>>
>>> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
>>
>> This patch results in (or exposes) the following boot warning with all
>> riscv32 and riscv64 qemu boots.
>>
>> [   12.278014] DEBUG_LOCKS_WARN_ON(!lockdep_hardirqs_enabled())
>> [   12.278218] WARNING: CPU: 0 PID: 140 at kernel/locking/lockdep.c:5510 check_flags+0xe2/0x1c2
>> [   12.278446] Modules linked in:
>> [   12.278623] CPU: 0 PID: 140 Comm: S01syslogd Tainted: G                 N 5.19.0-14184-g69dac8e431af #1
>> [   12.278791] Hardware name: riscv-virtio,qemu (DT)
>> [   12.278931] epc : check_flags+0xe2/0x1c2
>> [   12.279024]  ra : check_flags+0xe2/0x1c2
>> [   12.279092] epc : ffffffff80a8ea50 ra : ffffffff80a8ea50 sp : ff200000107f3cb0
>> [   12.279180]  gp : ffffffff819fec50 tp : ff600000049895c0 t0 : ffffffff81833520
>> [   12.279287]  t1 : 0000000000000001 t2 : 2d2d2d2d2d2d2d2d s0 : ff200000107f3cd0
>> [   12.279395]  s1 : ffffffff81a00130 a0 : 0000000000000030 a1 : ffffffff818925e8
>> [   12.279502]  a2 : 0000000000000010 a3 : fffffffffffffffe a4 : 0000000000000000
>> [   12.279608]  a5 : 0000000000000000 a6 : ffffffff80066d80 a7 : 0000000000000038
>> [   12.279714]  s2 : ffffffff81a024e0 s3 : ffffffff818935b0 s4 : ff200000107f3e28
>> [   12.279825]  s5 : ffffffff80e27708 s6 : 0000000200000022 s7 : ffffffffffffffff
>> [   12.279932]  s8 : ffffffff8249da18 s9 : 0000000000001000 s10: 0000000000000001
>> [   12.280037]  s11: 0000000000000001 t3 : ffffffff824740af t4 : ffffffff824740af
>> [   12.280142]  t5 : ffffffff824740b0 t6 : ff200000107f3aa8
>> [   12.280227] status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000003
>> [   12.280382] [<ffffffff80a8eba8>] lock_is_held_type+0x78/0x14a
>> [   12.280505] [<ffffffff8003d648>] __might_resched+0x26/0x232
>> [   12.280608] [<ffffffff8003d892>] __might_sleep+0x3e/0x66
>> [   12.280690] [<ffffffff8002262c>] get_signal+0xa6/0x8f6
>> [   12.280771] [<ffffffff800051da>] do_notify_resume+0x68/0x418
>> [   12.280863] [<ffffffff80003af4>] ret_from_exception+0x0/0x10
>> [   12.280978] irq event stamp: 2900
>> [   12.281041] hardirqs last  enabled at (2899): [<ffffffff80a9761c>] _raw_spin_unlock_irqrestore+0x54/0x62
>> [   12.281176] hardirqs last disabled at (2900): [<ffffffff8000812c>] __trace_hardirqs_off+0xc/0x14
>> [   12.281303] softirqs last  enabled at (1860): [<ffffffff80a98092>] __do_softirq+0x3e2/0x51c
>> [   12.281435] softirqs last disabled at (1843): [<ffffffff80016fc8>] __irq_exit_rcu+0xb4/0xdc
>> [   12.281564] ---[ end trace 0000000000000000 ]---
>> [   12.281735] possible reason: unannotated irqs-on.
>> [   12.281815] irq event stamp: 2900
>> [   12.281875] hardirqs last  enabled at (2899): [<ffffffff80a9761c>] _raw_spin_unlock_irqrestore+0x54/0x62
>> [   12.282004] hardirqs last disabled at (2900): [<ffffffff8000812c>] __trace_hardirqs_off+0xc/0x14
>> [   12.282125] softirqs last  enabled at (1860): [<ffffffff80a98092>] __do_softirq+0x3e2/0x51c
>> [   12.282242] softirqs last disabled at (1843): [<ffffffff80016fc8>] __irq_exit_rcu+0xb4/0xdc
>>
>> Reverting this patch fixes the problem. Bisect log attached.
> 
> Sorry for having missed this report, but I don't see this now and don't remember having seen it before.  Are you still seeing the issue?
> 

Yes and no. The backtrace is only seen if CONFIG_CGROUP_FREEZER is enabled.
I disabled it in my boot tests, so I don't see it anymore.

Guenter
diff mbox series

Patch

diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
index 0cc17db8aaba..d4fffcd3cc05 100644
--- a/arch/riscv/configs/defconfig
+++ b/arch/riscv/configs/defconfig
@@ -6,8 +6,18 @@  CONFIG_BPF_SYSCALL=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_CGROUPS=y
+CONFIG_MEMCG=y
+CONFIG_BLK_CGROUP=y
 CONFIG_CGROUP_SCHED=y
 CONFIG_CFS_BANDWIDTH=y
+CONFIG_RT_GROUP_SCHED=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_NAMESPACES=y
 CONFIG_USER_NS=y
@@ -28,9 +38,11 @@  CONFIG_KVM=m
 CONFIG_JUMP_LABEL=y
 CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
+CONFIG_BLK_DEV_THROTTLING=y
 CONFIG_NET=y
 CONFIG_PACKET=y
 CONFIG_UNIX=y
+CONFIG_XFRM_USER=m
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
@@ -38,7 +50,43 @@  CONFIG_IP_PNP=y
 CONFIG_IP_PNP_DHCP=y
 CONFIG_IP_PNP_BOOTP=y
 CONFIG_IP_PNP_RARP=y
+CONFIG_INET_ESP=m
+CONFIG_NETFILTER=y
+CONFIG_BRIDGE_NETFILTER=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NETFILTER_XT_MARK=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_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_NFCT=y
+CONFIG_NF_LOG_ARP=m
+CONFIG_NF_LOG_IPV4=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_TARGET_REDIRECT=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_NF_LOG_IPV6=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_VLAN_8021Q=m
+CONFIG_NET_SCHED=y
+CONFIG_NET_CLS_CGROUP=m
 CONFIG_NETLINK_DIAG=y
+CONFIG_CGROUP_NET_PRIO=y
 CONFIG_NET_9P=y
 CONFIG_NET_9P_VIRTIO=y
 CONFIG_PCI=y
@@ -57,7 +105,15 @@  CONFIG_SCSI_VIRTIO=y
 CONFIG_ATA=y
 CONFIG_SATA_AHCI=y
 CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_MD=y
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_THIN_PROVISIONING=m
 CONFIG_NETDEVICES=y
+CONFIG_DUMMY=m
+CONFIG_MACVLAN=m
+CONFIG_IPVLAN=m
+CONFIG_VXLAN=m
+CONFIG_VETH=m
 CONFIG_VIRTIO_NET=y
 CONFIG_MACB=y
 CONFIG_E1000E=y
@@ -105,7 +161,11 @@  CONFIG_RPMSG_CTRL=y
 CONFIG_RPMSG_VIRTIO=y
 CONFIG_EXT4_FS=y
 CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
 CONFIG_AUTOFS4_FS=y
+CONFIG_OVERLAY_FS=m
 CONFIG_MSDOS_FS=y
 CONFIG_VFAT_FS=y
 CONFIG_TMPFS=y
@@ -119,6 +179,10 @@  CONFIG_ROOT_NFS=y
 CONFIG_9P_FS=y
 CONFIG_NLS_CODEPAGE_437=y
 CONFIG_NLS_ISO8859_1=m
+CONFIG_SECURITY=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_DEFAULT_SECURITY_DAC=y
 CONFIG_CRYPTO_USER_API_HASH=y
 CONFIG_CRYPTO_DEV_VIRTIO=y
 CONFIG_PRINTK_TIME=y
@@ -137,7 +201,6 @@  CONFIG_DEBUG_SPINLOCK=y
 CONFIG_DEBUG_MUTEXES=y
 CONFIG_DEBUG_RWSEMS=y
 CONFIG_DEBUG_ATOMIC_SLEEP=y
-CONFIG_STACKTRACE=y
 CONFIG_DEBUG_LIST=y
 CONFIG_DEBUG_PLIST=y
 CONFIG_DEBUG_SG=y