Linux 5.8-rc1 がでたので(既に rc4 になってるけど),5.7.8 から .config
がどう変更されるのか見てみた.以下 -
は削除されたもの,+
は追加されたもの.x86_64.New features 等は https://www.phoronix.com/scan.php?page=article&item=linux-58-features 参照.
追加
-
+CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
mm/debug: add tests validating architecture page table helpers
X86
でselect
される.CONFIG_DEBUG_VM_PGTABLE=y
にすると有効になる. -
+CONFIG_ARCH_HAS_DEBUG_WX=y
x86: mm: use ARCH_HAS_DEBUG_WX instead of arch defined
mm: add DEBUG_WX supportX86
でselect
される.v4.4 で導入されたCONFIG_DEBUG_WX
はarch/x86/Kconfig.debug
からmm/Kconfig.debug
に移動した. -
+CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
x86/asm: Provide a Kconfig symbol for disabling old assembly annotations
X86
でselect
される. -
+CONFIG_AS_TPAUSE=y
x86/delay: Introduce TPAUSE delay
as
がtpause
命令に対応していればy
になる.See https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.8-Intel-TPAUSE. -
+CONFIG_CC_CAN_LINK_STATIC=y
bpfilter: check if $(CC) can link static libc in Kconfig
cc
が static link できればy
になる.CONFIG_BPFILTER_UMH
が依存(←使ってない). -
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
kasan: Bump required compiler version
CONFIG_KASAN
(KASAN: runtime memory debugger)が依存.GCC 8 以上であればy
になる. -
+CONFIG_CC_VERSION_TEXT="gcc (Debian 8.3.0-6) 8.3.0"
kbuild: ensure full rebuild when the compiler is updated
default は Makefile でチェックされる `CC_VERSION_TEXT = $(shell $(CC) --version 2>/dev/null | head -n 1)`. コンパイラが更新された場合に full build を行うため,とのこと.
-
+CONFIG_DEFAULT_INIT=""
-
+CONFIG_DRM_I915_FENCE_TIMEOUT=10000
drm/i915: Replace the hardcoded I915_FENCE_TIMEOUT
ハードコーディングされていたものを設定できるようになった(もとも10sまま).
-
+CONFIG_DYNAMIC_DEBUG_CORE=y
dynamic_debug: add an option to enable dynamic debug for modules only
Module の Compile で dynamic debug の On/Off ができるように導入された.
CONFIG_DYNAMIC_DEBUG
でselect
される.Module compile の際にDYNAMIC_DEBUG_MODULE
を define しておくと dynamic debug が有効になる.This is useful for people who only want to enable dynamic debug for kernel modules without worrying about kernel image size and memory consumption is increasing too much.
とのこと.
-
+CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
efi/libstub: Make initrd file loader configurable
efi/libstub: Re-enable command line initrd loading for x86X86
でy
になる. -
+CONFIG_HAVE_ARCH_KCSAN=y
kcsan: Add Kernel Concurrency Sanitizer infrastructure
Kernel Concurrency Sanitizer (KCSAN) 関連.
X86
でy
になるが,CONFIG_KCSAN=y
にするにはCONFIG_HAVE_KCSAN_COMPILER
が必要で,これはCC_IS_CLANG
に依存する. -
+CONFIG_HIBERNATION_SNAPSHOT_DEV=y
PM: hibernate: Split off snapshot dev option
y
のままにしておく. -
+CONFIG_TASKS_RCU_GENERIC=y
+CONFIG_TASKS_RUDE_RCU=y
rcu-tasks: Refactor RCU-tasks to allow variants to be added
rcu-tasks: Add an RCU-tasks rude variant手元では
FUNCTION_TRACER [=y] && TRACING_SUPPORT [=y] && FTRACE [=y] && HAVE_FUNCTION_TRACER [=y]
でCONFIG_TASKS_RUDE_RCU=y
になって,それに依存してCONFIG_TASKS_RCU_GENERIC=y
に. -
+CONFIG_XFRM_AH=m
+CONFIG_XFRM_ESP=m
esp, ah: consolidate the crypto algorithm selections
Instead of duplicating the algorithm selections between INET_AH and INET6_AH and between INET_ESP and INET6_ESP, create new tristates XFRM_AH and XFRM_ESP that do the algorithm selections, and make these be selected by the corresponding INET* options.
とのこと.
CONFIG_MEDIA_SUPPORT_FILTER
関連
-
+CONFIG_DVB_CORE=m
+CONFIG_DVB_DYNAMIC_MINORS=y
+CONFIG_DVB_MAX_ADAPTERS=16
+CONFIG_DVB_NET=y
+CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
+CONFIG_MEDIA_PLATFORM_SUPPORT=y
+CONFIG_MEDIA_RADIO_SUPPORT=y
+CONFIG_MEDIA_SDR_SUPPORT=y
+CONFIG_MEDIA_TEST_SUPPORT=y
+CONFIG_MEDIA_TUNER=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_RADIO_ADAPTERS=y
media: Kconfig: make filtering devices optional
自動的に選択されるようになった.
The per-device option selection is a feature that some developers love, while others hate... So, let's make both happy by making it optional.
とのこと.自動選択を無効にするには
CONFIG_MEDIA_SUPPORT_FILTER=n
とする.面倒なのでこのままにしてく.
削除
-
-CONFIG_DOUBLEFAULT=y
-
-CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
x86/entry: Use idtentry for interrupts
X86
(X86_64
) でselect
されなくなった. -
-CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
-
-CONFIG_MEMCG_SWAP_ENABLED=y
mm: memcontrol: make swap tracking an integral part of memory control
-
-CONFIG_NODES_SPAN_OTHER_NODES=y
mm: remove early_pfn_in_nid() and CONFIG_NODES_SPAN_OTHER_NODES
-
-CONFIG_VHOST_DPN=y
追記 (2020/8/21)
cachefiles
の挙動が 5.8.x で怪しい.以下でコケる.5.6 でも cachefiles
にはバグがあって,それは 5.6.14 で修正されたのだけど (Linux 5.6.x fs/cachefiles/rdwr.c bug参照),そもそも cachefiles
ユーザ(あるいは NFS ユーザ?)はそんなに多くないのかな...cachefiles
自体のコードは 5.7 から 5.8 でほぼ変更が加えられていない様子なのだけど.
Aug 21 19:14:42 qemu kernel: [ 323.988885] CacheFiles:
Aug 21 19:14:42 qemu kernel: [ 323.988888] CacheFiles: Assertion failed
Aug 21 19:14:42 qemu kernel: [ 323.988926] ------------[ cut here ]------------
Aug 21 19:14:42 qemu kernel: [ 323.988927] kernel BUG at fs/cachefiles/rdwr.c:715!
Aug 21 19:14:42 qemu kernel: [ 323.988934] invalid opcode: 0000 [#13] SMP PTI
Aug 21 19:14:42 qemu kernel: [ 323.988937] CPU: 2 PID: 4214 Comm: sshd Tainted: P D O 5.8.2-20200821-diskless-01 #313
Aug 21 19:14:42 qemu kernel: [ 323.988938] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-1 04/01/2014
Aug 21 19:14:42 qemu kernel: [ 323.988946] RIP: 0010:cachefiles_read_or_alloc_pages.cold.20+0x307/0x3b3 [cachefiles]
Aug 21 19:14:42 qemu kernel: [ 323.988948] Code: 10 e8 69 db cc e0 48 8b 44 24 28 8b 10 e9 50 c2 ff ff 48 c7 c7 43 87 40 a0 e8 51 db cc e0 48 c7 c7 60 9d 40 a0 e8 45 db cc e0 <0f> 0b 49 8b 57 20 44 89 e9 48 c7 c7 e7 87 40 a0 65 48 8b 34 25 00
Aug 21 19:14:42 qemu kernel: [ 323.988950] RSP: 0018:ffffc9000192f9c0 EFLAGS: 00010246
Aug 21 19:14:42 qemu kernel: [ 323.988952] RAX: 000000000000001c RBX: ffff8881fbc8ac00 RCX: 0000000000000027
Aug 21 19:14:42 qemu kernel: [ 323.988953] RDX: 0000000000000000 RSI: ffff88822be979c0 RDI: ffff88822be979c8
Aug 21 19:14:42 qemu kernel: [ 323.988954] RBP: ffff8881dec0a068 R08: 0000000000000534 R09: 000000000000002b
Aug 21 19:14:42 qemu kernel: [ 323.988955] R10: 0000000000000000 R11: ffffc9000192f875 R12: ffff8881c84dfa58
Aug 21 19:14:42 qemu kernel: [ 323.988956] R13: ffffc9000192fcd0 R14: ffff888227a36900 R15: ffff8881dec0a000
Aug 21 19:14:42 qemu kernel: [ 323.988958] FS: 00007f725f467e40(0000) GS:ffff88822be80000(0000) knlGS:0000000000000000
Aug 21 19:14:42 qemu kernel: [ 323.988961] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Aug 21 19:14:42 qemu kernel: [ 323.988963] CR2: 0000564ddd7d6168 CR3: 0000000187cfc000 CR4: 00000000000006e0
Aug 21 19:14:42 qemu kernel: [ 323.988964] Call Trace:
Aug 21 19:14:42 qemu kernel: [ 323.988971] ? out_of_line_wait_on_bit+0x91/0xb0
Aug 21 19:14:42 qemu kernel: [ 323.988976] ? fscache_run_op.isra.12+0x55/0xb0
Aug 21 19:14:42 qemu kernel: [ 323.988978] __fscache_read_or_alloc_pages+0x28e/0x300
Aug 21 19:14:42 qemu kernel: [ 323.988982] __nfs_readpages_from_fscache+0x60/0x160
Aug 21 19:14:42 qemu kernel: [ 323.988985] nfs_readpages+0xb5/0x1a0
Aug 21 19:14:42 qemu kernel: [ 323.988990] read_pages+0x1c1/0x1f0
Aug 21 19:14:42 qemu kernel: [ 323.988993] page_cache_readahead_unbounded+0x1ad/0x200
Aug 21 19:14:42 qemu kernel: [ 323.988997] generic_file_buffered_read+0x5c3/0x960
Aug 21 19:14:42 qemu kernel: [ 323.989001] ? nfs4_do_check_delegation+0x18/0x40
Aug 21 19:14:42 qemu kernel: [ 323.989005] ? nfs_check_cache_invalid+0x33/0x90
Aug 21 19:14:42 qemu kernel: [ 323.989007] nfs_file_read+0x6b/0x90
Aug 21 19:14:42 qemu kernel: [ 323.989011] new_sync_read+0x114/0x1a0
Aug 21 19:14:42 qemu kernel: [ 323.989013] vfs_read+0x151/0x180
Aug 21 19:14:42 qemu kernel: [ 323.989015] ksys_read+0x59/0xd0
Aug 21 19:14:42 qemu kernel: [ 323.989018] do_syscall_64+0x3e/0xb0
Aug 21 19:14:42 qemu kernel: [ 323.989020] entry_SYSCALL_64_after_hwframe+0x44/0xa9
Aug 21 19:14:42 qemu kernel: [ 323.989023] RIP: 0033:0x7f725f80a461
Aug 21 19:14:42 qemu kernel: [ 323.989025] Code: fe ff ff 50 48 8d 3d fe d0 09 00 e8 e9 03 02 00 66 0f 1f 84 00 00 00 00 00 48 8d 05 99 62 0d 00 8b 00 85 c0 75 13 31 c0 0f 05 <48> 3d 00 f0 ff ff 77 57 c3 66 0f 1f 44 00 00 41 54 49 89 d4 55 48
Aug 21 19:14:42 qemu kernel: [ 323.989026] RSP: 002b:00007ffd776e1588 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
Aug 21 19:14:42 qemu kernel: [ 323.989028] RAX: ffffffffffffffda RBX: 0000564ddd7bdf90 RCX: 00007f725f80a461
Aug 21 19:14:42 qemu kernel: [ 323.989029] RDX: 0000000000002000 RSI: 0000564ddd7d4160 RDI: 0000000000000004
Aug 21 19:14:42 qemu kernel: [ 323.989030] RBP: 0000000000000d68 R08: 0000000000000003 R09: 00007f725f8dbd30
Aug 21 19:14:42 qemu kernel: [ 323.989031] R10: 0000564ddd79e010 R11: 0000000000000246 R12: 00007f725f8d7760
Aug 21 19:14:42 qemu kernel: [ 323.989032] R13: 00007f725f8d82a0 R14: 0000000000000000 R15: 0000000000000000
Aug 21 19:14:42 qemu kernel: [ 323.989034] Modules linked in: fuse ext4 crc16 mbcache jbd2 dm_crypt ecb aes_generic libaes crypto_simd cryptd glue_helper xts algif_skcipher af_alg dm_mod xt_conntrack xt_MASQUERADE xfrm_user xfrm_algo nft_counter xt_addrtype nft_compat nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 br_netfilter cpufreq_userspace cpufreq_powersave cpufreq_ondemand cpufreq_conservative rpcsec_gss_krb5 btrfs blake2b_generic zstd_decompress zstd_compress bochs_drm drm_vram_helper drm_ttm_helper ttm drm_kms_helper syscopyarea intel_agp sysfillrect intel_gtt snd_pcm sg sysimgblt fb_sys_fops snd_timer joydev evdev snd serio_raw button soundcore pcspkr cachefiles lm78 i5k_amb nf_tables hwmon_vid nfnetlink msr drm agpgart nfsd binfmt_misc ip_tables x_tables autofs4 loop squashfs overlay raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c crc32c_generic raid1 raid0 multipath linear md_mod sd_mod t10_pi crc_t10dif crct10dif_generic sr_mod cdrom crct10dif_common
Aug 21 19:14:42 qemu kernel: [ 323.989066] ata_generic ata_piix libata psmouse scsi_mod rtc_cmos
Aug 21 19:14:42 qemu kernel: [ 323.989072] ---[ end trace f27e8415c423cf4c ]---
Aug 21 19:14:42 qemu kernel: [ 323.989076] RIP: 0010:cachefiles_read_or_alloc_pages.cold.20+0x307/0x3b3 [cachefiles]
Aug 21 19:14:42 qemu kernel: [ 323.989078] Code: 10 e8 69 db cc e0 48 8b 44 24 28 8b 10 e9 50 c2 ff ff 48 c7 c7 43 87 40 a0 e8 51 db cc e0 48 c7 c7 60 9d 40 a0 e8 45 db cc e0 <0f> 0b 49 8b 57 20 44 89 e9 48 c7 c7 e7 87 40 a0 65 48 8b 34 25 00
Aug 21 19:14:42 qemu kernel: [ 323.989079] RSP: 0018:ffffc900005cf9c0 EFLAGS: 00010246
Aug 21 19:14:42 qemu kernel: [ 323.989081] RAX: 000000000000001c RBX: ffff8881fbc8ac00 RCX: 0000000000000027
Aug 21 19:14:42 qemu kernel: [ 323.989082] RDX: 0000000000000000 RSI: ffff88822bf179c0 RDI: ffff88822bf179c8
Aug 21 19:14:42 qemu kernel: [ 323.989083] RBP: ffff8881dec0a068 R08: 000000000000027c R09: 000000000000002b
Aug 21 19:14:42 qemu kernel: [ 323.989084] R10: 0000000000000000 R11: ffffc900005cf875 R12: ffff8881c84dfa58
Aug 21 19:14:42 qemu kernel: [ 323.989085] R13: ffffc900005cfcd0 R14: ffff88822a584f00 R15: ffff8881dec0a000
Aug 21 19:14:42 qemu kernel: [ 323.989086] FS: 00007f725f467e40(0000) GS:ffff88822be80000(0000) knlGS:0000000000000000
Aug 21 19:14:42 qemu kernel: [ 323.989087] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Aug 21 19:14:42 qemu kernel: [ 323.989088] CR2: 0000564ddd7d6168 CR3: 0000000187cfc000 CR4: 00000000000006e0
https://bugzilla.kernel.org/show_bug.cgi?id=208883 にも報告されていて,ここでは https://lkml.org/lkml/2020/8/3/960 の fscache-iterを merge すれば解決するという案が示されているが,https://lkml.org/lkml/2020/8/10/454でこの pull request は一旦取り下げられている.
追記 (2020/9/2)
cachefiles
の挙動が 5.8.x で怪しい問題,https://lkml.org/lkml/2020/8/27/714 の patch をあてたら解決する.少なくとも 5.8.5 ではこの patch が必要.
追記 (2021/1/30)
cachefiles
の挙動が怪しい問題,https://lkml.org/lkml/2020/8/27/714 の patch がようやく cachefiles: Drop superfluous readpages aops NULL checkのように取り込まれた様子.5.11-rc5 および 5.10.11 (commit)で修正されている.
追記 (2020/8/21)
以下の compile には https://gitlab.com/-/snippets/1986228/ のパッチが必要.
- nvidia-kernel-dkms 440.100-1~bpo10+1
- nvidia-legacy-390xx-kernel-dkms 390.138-1~deb10u1
また,nvidia-legacy-390xx-kernel-dkms
については kernel 側に https://www.spinics.net/lists/linux-fsdevel/msg173844.html のパッチが必要(なぜか radix_tree_preloads
が EXPORT_PER_CPU_SYMBOL_GPL
されていてリンクできない,とかだったはず).