[PATCH 1/1] riscv: enable Docker requirements in defconfig
Palmer Dabbelt
palmer at dabbelt.com
Fri Jul 22 15:29:15 PDT 2022
On Fri, 22 Jul 2022 01:03:47 PDT (-0700), heinrich.schuchardt at canonical.com wrote:
> On 7/22/22 07:06, Palmer Dabbelt wrote:
>> On Tue, 07 Jun 2022 17:02:51 PDT (-0700),
>> heinrich.schuchardt at 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 at 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.
More information about the linux-riscv
mailing list