* [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-27 6:25 ` kernel test robot 0 siblings, 0 replies; 154+ messages in thread From: kernel test robot @ 2018-11-27 6:25 UTC (permalink / raw) To: Andrea Arcangeli Cc: Linus Torvalds, Michal Hocko, Stefan Priebe, Alex Williamson, Mel Gorman, Zi Yan, Vlastimil Babka, David Rientjes, Kirill A. Shutemov, Andrew Morton, LKML, lkp [-- Attachment #1: Type: text/plain, Size: 33202 bytes --] Greeting, FYI, we noticed a -61.3% regression of vm-scalability.throughput due to commit: commit: ac5b2c18911ffe95c08d69273917f90212cf5659 ("mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings") https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master in testcase: vm-scalability on test machine: 72 threads Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz with 128G memory with following parameters: runtime: 300 thp_enabled: always thp_defrag: always nr_task: 32 nr_ssd: 1 test: swap-w-seq ucode: 0x3d cpufreq_governor: performance test-description: The motivation behind this suite is to exercise functions and regions of the mm/ of the Linux kernel which are of interest to us. test-url: https://git.kernel.org/cgit/linux/kernel/git/wfg/vm-scalability.git/ Details are as below: --------------------------------------------------------------------------------------------------> To reproduce: git clone https://github.com/intel/lkp-tests.git cd lkp-tests bin/lkp install job.yaml # job file is attached in this email bin/lkp run job.yaml ========================================================================================= compiler/cpufreq_governor/kconfig/nr_ssd/nr_task/rootfs/runtime/tbox_group/test/testcase/thp_defrag/thp_enabled/ucode: gcc-7/performance/x86_64-rhel-7.2/1/32/debian-x86_64-2018-04-03.cgz/300/lkp-hsw-ep4/swap-w-seq/vm-scalability/always/always/0x3d commit: 94e297c50b ("include/linux/notifier.h: SRCU: fix ctags") ac5b2c1891 ("mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings") 94e297c50b529f5d ac5b2c18911ffe95c08d692739 ---------------- -------------------------- %stddev %change %stddev \ | \ 0.57 ± 35% +258.8% 2.05 ± 4% vm-scalability.free_time 146022 ± 14% -40.5% 86833 ± 2% vm-scalability.median 29.29 ± 40% -89.6% 3.06 ± 26% vm-scalability.stddev 7454656 ± 9% -61.3% 2885836 ± 3% vm-scalability.throughput 189.21 ± 10% +52.4% 288.34 ± 2% vm-scalability.time.elapsed_time 189.21 ± 10% +52.4% 288.34 ± 2% vm-scalability.time.elapsed_time.max 8768 ± 3% +11.6% 9781 ± 5% vm-scalability.time.involuntary_context_switches 20320196 ± 2% -33.4% 13531732 ± 3% vm-scalability.time.maximum_resident_set_size 425945 ± 9% +17.4% 499908 ± 4% vm-scalability.time.minor_page_faults 253.79 ± 6% +62.0% 411.07 ± 4% vm-scalability.time.system_time 322.52 +8.0% 348.18 vm-scalability.time.user_time 246150 ± 12% +50.3% 370019 ± 4% vm-scalability.time.voluntary_context_switches 7746519 ± 11% +49.0% 11538799 ± 4% cpuidle.C6.usage 192240 ± 10% +44.3% 277460 ± 8% interrupts.CAL:Function_call_interrupts 22.45 ± 85% -80.6% 4.36 ±173% sched_debug.cfs_rq:/.MIN_vruntime.avg 22.45 ± 85% -80.6% 4.36 ±173% sched_debug.cfs_rq:/.max_vruntime.avg 29.36 ± 13% +10.8% 32.52 ± 14% boot-time.boot 24.28 ± 16% +12.4% 27.30 ± 16% boot-time.dhcp 1597 ± 15% +10.2% 1760 ± 15% boot-time.idle 68.25 -9.8 58.48 ± 2% mpstat.cpu.idle% 27.12 ± 5% +10.3 37.42 ± 3% mpstat.cpu.iowait% 2.48 ± 11% -0.8 1.73 ± 2% mpstat.cpu.usr% 3422396 ± 14% +46.6% 5018492 ± 7% softirqs.RCU 1776561 ± 10% +52.4% 2707785 ± 2% softirqs.SCHED 5685772 ± 7% +54.3% 8774055 ± 3% softirqs.TIMER 7742519 ± 11% +49.0% 11534924 ± 4% turbostat.C6 29922317 ± 10% +55.0% 46366941 turbostat.IRQ 9.49 ± 64% -83.0% 1.62 ± 54% turbostat.Pkg%pc2 36878790 ± 27% -84.9% 5570259 ± 47% vmstat.memory.free 1.117e+08 ± 15% +73.5% 1.939e+08 ± 10% vmstat.memory.swpd 25.25 ± 4% +34.7% 34.00 vmstat.procs.b 513725 ± 7% +47.9% 759561 ± 12% numa-numastat.node0.local_node 35753 ±160% +264.7% 130386 ± 39% numa-numastat.node0.numa_foreign 519403 ± 6% +48.7% 772182 ± 12% numa-numastat.node0.numa_hit 35753 ±160% +264.7% 130386 ± 39% numa-numastat.node1.numa_miss 44315 ±138% +198.5% 132279 ± 40% numa-numastat.node1.other_node 32798032 ± 46% +80.6% 59228165 ± 2% numa-meminfo.node0.Active 32798009 ± 46% +80.6% 59228160 ± 2% numa-meminfo.node0.Active(anon) 33430762 ± 46% +80.8% 60429537 ± 2% numa-meminfo.node0.AnonHugePages 33572119 ± 46% +80.2% 60512777 ± 2% numa-meminfo.node0.AnonPages 1310559 ± 64% +86.4% 2442244 ± 2% numa-meminfo.node0.Inactive 1309969 ± 64% +86.4% 2442208 ± 2% numa-meminfo.node0.Inactive(anon) 30385359 ± 53% -90.7% 2821023 ± 44% numa-meminfo.node0.MemFree 35505047 ± 45% +77.6% 63055165 ± 2% numa-meminfo.node0.MemUsed 166560 ± 42% +130.2% 383345 ± 6% numa-meminfo.node0.PageTables 23702 ±105% -89.0% 2617 ± 44% numa-meminfo.node0.Shmem 1212 ± 65% +402.8% 6093 ± 57% numa-meminfo.node1.Shmem 8354144 ± 44% +77.1% 14798964 ± 2% numa-vmstat.node0.nr_active_anon 8552787 ± 44% +76.8% 15122222 ± 2% numa-vmstat.node0.nr_anon_pages 16648 ± 44% +77.1% 29492 ± 2% numa-vmstat.node0.nr_anon_transparent_hugepages 7436650 ± 53% -90.4% 712936 ± 44% numa-vmstat.node0.nr_free_pages 332106 ± 63% +83.8% 610268 ± 2% numa-vmstat.node0.nr_inactive_anon 41929 ± 41% +130.6% 96703 ± 6% numa-vmstat.node0.nr_page_table_pages 5900 ±106% -89.0% 650.75 ± 45% numa-vmstat.node0.nr_shmem 43336 ± 92% +151.2% 108840 ± 7% numa-vmstat.node0.nr_vmscan_write 43110 ± 92% +150.8% 108110 ± 7% numa-vmstat.node0.nr_written 8354142 ± 44% +77.1% 14798956 ± 2% numa-vmstat.node0.nr_zone_active_anon 332105 ± 63% +83.8% 610269 ± 2% numa-vmstat.node0.nr_zone_inactive_anon 321.50 ± 66% +384.9% 1559 ± 59% numa-vmstat.node1.nr_shmem 88815743 ± 10% +33.8% 1.188e+08 ± 2% meminfo.Active 88815702 ± 10% +33.8% 1.188e+08 ± 2% meminfo.Active(anon) 90446011 ± 11% +34.0% 1.212e+08 ± 2% meminfo.AnonHugePages 90613587 ± 11% +34.0% 1.214e+08 ± 2% meminfo.AnonPages 5.15e+08 ± 3% +22.2% 6.293e+08 ± 2% meminfo.Committed_AS 187419 ± 10% -19.6% 150730 ± 7% meminfo.DirectMap4k 3620693 ± 18% +35.3% 4897093 ± 2% meminfo.Inactive 3620054 ± 18% +35.3% 4896961 ± 2% meminfo.Inactive(anon) 36144979 ± 28% -87.0% 4715681 ± 57% meminfo.MemAvailable 36723121 ± 27% -85.9% 5179468 ± 52% meminfo.MemFree 395801 ± 2% +56.9% 620816 ± 4% meminfo.PageTables 178672 +15.1% 205668 ± 2% meminfo.SUnreclaim 249496 +12.6% 280897 meminfo.Slab 1751813 ± 2% +34.7% 2360437 ± 3% meminfo.SwapCached 6.716e+08 -12.4% 5.88e+08 ± 2% meminfo.SwapFree 3926 ± 17% +72.9% 6788 ± 13% meminfo.Writeback 1076 ± 3% +42.9% 1538 ± 4% slabinfo.biovec-max.active_objs 275.75 ± 2% +41.1% 389.00 ± 4% slabinfo.biovec-max.active_slabs 1104 ± 2% +41.0% 1557 ± 4% slabinfo.biovec-max.num_objs 275.75 ± 2% +41.1% 389.00 ± 4% slabinfo.biovec-max.num_slabs 588.25 ± 7% +17.9% 693.75 ± 7% slabinfo.file_lock_cache.active_objs 588.25 ± 7% +17.9% 693.75 ± 7% slabinfo.file_lock_cache.num_objs 13852 ± 3% +37.5% 19050 ± 3% slabinfo.kmalloc-4k.active_objs 1776 ± 3% +37.7% 2446 ± 3% slabinfo.kmalloc-4k.active_slabs 14217 ± 3% +37.7% 19577 ± 3% slabinfo.kmalloc-4k.num_objs 1776 ± 3% +37.7% 2446 ± 3% slabinfo.kmalloc-4k.num_slabs 158.25 ± 15% +54.0% 243.75 ± 18% slabinfo.nfs_read_data.active_objs 158.25 ± 15% +54.0% 243.75 ± 18% slabinfo.nfs_read_data.num_objs 17762 ± 4% +44.3% 25638 ± 4% slabinfo.pool_workqueue.active_objs 563.25 ± 3% +43.7% 809.25 ± 4% slabinfo.pool_workqueue.active_slabs 18048 ± 3% +43.5% 25906 ± 4% slabinfo.pool_workqueue.num_objs 563.25 ± 3% +43.7% 809.25 ± 4% slabinfo.pool_workqueue.num_slabs 34631 ± 3% +21.0% 41905 ± 2% slabinfo.radix_tree_node.active_objs 624.50 ± 3% +20.7% 753.75 ± 2% slabinfo.radix_tree_node.active_slabs 34998 ± 3% +20.7% 42228 ± 2% slabinfo.radix_tree_node.num_objs 624.50 ± 3% +20.7% 753.75 ± 2% slabinfo.radix_tree_node.num_slabs 9.727e+11 ± 8% +50.4% 1.463e+12 ± 12% perf-stat.branch-instructions 1.11 ± 12% +1.2 2.31 ± 8% perf-stat.branch-miss-rate% 1.078e+10 ± 13% +214.9% 3.395e+10 ± 17% perf-stat.branch-misses 3.17 ± 11% -1.5 1.65 ± 9% perf-stat.cache-miss-rate% 8.206e+08 ± 7% +49.4% 1.226e+09 ± 11% perf-stat.cache-misses 2.624e+10 ± 14% +187.0% 7.532e+10 ± 17% perf-stat.cache-references 1174249 ± 9% +52.3% 1788442 ± 3% perf-stat.context-switches 2.921e+12 ± 8% +71.1% 4.998e+12 ± 9% perf-stat.cpu-cycles 1437 ± 14% +85.1% 2661 ± 20% perf-stat.cpu-migrations 7.586e+08 ± 21% +134.7% 1.78e+09 ± 30% perf-stat.dTLB-load-misses 7.943e+11 ± 11% +84.3% 1.464e+12 ± 14% perf-stat.dTLB-loads 93963731 ± 22% +40.9% 1.324e+08 ± 10% perf-stat.dTLB-store-misses 3.394e+11 ± 6% +60.5% 5.449e+11 ± 10% perf-stat.dTLB-stores 1.531e+08 ± 22% +44.0% 2.204e+08 ± 11% perf-stat.iTLB-load-misses 1.688e+08 ± 23% +71.1% 2.888e+08 ± 12% perf-stat.iTLB-loads 3.267e+12 ± 7% +58.5% 5.177e+12 ± 13% perf-stat.instructions 3988 ± 43% +123.9% 8930 ± 22% perf-stat.major-faults 901474 ± 5% +34.2% 1209877 ± 2% perf-stat.minor-faults 31.24 ± 10% +21.7 52.91 ± 2% perf-stat.node-load-miss-rate% 1.135e+08 ± 16% +187.6% 3.264e+08 ± 13% perf-stat.node-load-misses 6.27 ± 17% +26.9 33.19 ± 4% perf-stat.node-store-miss-rate% 27354489 ± 15% +601.2% 1.918e+08 ± 13% perf-stat.node-store-misses 905482 ± 5% +34.6% 1218833 ± 2% perf-stat.page-faults 4254 ± 7% +58.5% 6741 ± 13% perf-stat.path-length 6364 ± 25% +84.1% 11715 ± 14% proc-vmstat.allocstall_movable 46439 ± 12% +100.4% 93049 ± 21% proc-vmstat.compact_migrate_scanned 22425696 ± 10% +29.0% 28932634 ± 6% proc-vmstat.nr_active_anon 22875703 ± 11% +29.2% 29560082 ± 6% proc-vmstat.nr_anon_pages 44620 ± 11% +29.2% 57643 ± 6% proc-vmstat.nr_anon_transparent_hugepages 879436 ± 28% -77.3% 199768 ± 98% proc-vmstat.nr_dirty_background_threshold 1761029 ± 28% -77.3% 400034 ± 98% proc-vmstat.nr_dirty_threshold 715724 +17.6% 841386 ± 3% proc-vmstat.nr_file_pages 8960545 ± 28% -76.4% 2111248 ± 93% proc-vmstat.nr_free_pages 904330 ± 18% +31.2% 1186458 ± 7% proc-vmstat.nr_inactive_anon 11137 ± 2% +27.1% 14154 ± 9% proc-vmstat.nr_isolated_anon 12566 +3.5% 13012 proc-vmstat.nr_kernel_stack 97491 ± 2% +52.6% 148790 ± 10% proc-vmstat.nr_page_table_pages 17674 +6.2% 18763 ± 2% proc-vmstat.nr_slab_reclaimable 44820 +13.0% 50645 ± 2% proc-vmstat.nr_slab_unreclaimable 135763 ± 9% +68.4% 228600 ± 6% proc-vmstat.nr_vmscan_write 1017 ± 10% +54.7% 1573 ± 14% proc-vmstat.nr_writeback 220023 ± 5% +73.5% 381732 ± 6% proc-vmstat.nr_written 22425696 ± 10% +29.0% 28932635 ± 6% proc-vmstat.nr_zone_active_anon 904330 ± 18% +31.2% 1186457 ± 7% proc-vmstat.nr_zone_inactive_anon 1018 ± 10% +55.3% 1581 ± 13% proc-vmstat.nr_zone_write_pending 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_foreign 671.50 ± 96% +479.4% 3890 ± 71% proc-vmstat.numa_hint_faults 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated 1.1e+08 ± 5% +21.6% 1.337e+08 ± 3% proc-vmstat.numa_pte_updates 688332 ±106% +177.9% 1913062 ± 3% proc-vmstat.pgalloc_dma32 72593045 ± 10% +51.1% 1.097e+08 ± 3% proc-vmstat.pgdeactivate 919059 ± 4% +35.1% 1241472 ± 2% proc-vmstat.pgfault 3716 ± 45% +120.3% 8186 ± 25% proc-vmstat.pgmajfault 7.25 ± 26% +4.2e+05% 30239 ± 25% proc-vmstat.pgmigrate_fail 5340 ±106% +264.0% 19438 ± 33% proc-vmstat.pgmigrate_success 2.837e+08 ± 10% +51.7% 4.303e+08 ± 3% proc-vmstat.pgpgout 211428 ± 6% +74.1% 368188 ± 4% proc-vmstat.pgrefill 219051 ± 5% +73.7% 380419 ± 5% proc-vmstat.pgrotated 559397 ± 8% +43.0% 800110 ± 11% proc-vmstat.pgscan_direct 32894 ± 59% +158.3% 84981 ± 23% proc-vmstat.pgscan_kswapd 207042 ± 8% +71.5% 355174 ± 5% proc-vmstat.pgsteal_direct 14745 ± 65% +104.3% 30121 ± 18% proc-vmstat.pgsteal_kswapd 70934968 ± 10% +51.7% 1.076e+08 ± 3% proc-vmstat.pswpout 5852284 ± 12% +145.8% 14382881 ± 5% proc-vmstat.slabs_scanned 13453 ± 24% +204.9% 41023 ± 8% proc-vmstat.thp_split_page_failed 138385 ± 10% +51.6% 209783 ± 3% proc-vmstat.thp_split_pmd 138385 ± 10% +51.6% 209782 ± 3% proc-vmstat.thp_swpout 4.61 ± 24% -1.2 3.37 ± 10% perf-profile.calltrace.cycles-pp.hrtimer_interrupt.smp_apic_timer_interrupt.apic_timer_interrupt.cpuidle_enter_state.do_idle 2.90 ± 18% -0.7 2.19 ± 8% perf-profile.calltrace.cycles-pp.__hrtimer_run_queues.hrtimer_interrupt.smp_apic_timer_interrupt.apic_timer_interrupt.cpuidle_enter_state 1.86 ± 32% -0.6 1.22 ± 7% perf-profile.calltrace.cycles-pp.tick_sched_timer.__hrtimer_run_queues.hrtimer_interrupt.smp_apic_timer_interrupt.apic_timer_interrupt 1.60 ± 31% -0.5 1.08 ± 10% perf-profile.calltrace.cycles-pp.tick_sched_handle.tick_sched_timer.__hrtimer_run_queues.hrtimer_interrupt.smp_apic_timer_interrupt 2.98 ± 8% -0.5 2.48 ± 10% perf-profile.calltrace.cycles-pp.menu_select.do_idle.cpu_startup_entry.start_secondary.secondary_startup_64 1.46 ± 32% -0.5 0.96 ± 9% perf-profile.calltrace.cycles-pp.update_process_times.tick_sched_handle.tick_sched_timer.__hrtimer_run_queues.hrtimer_interrupt 0.74 ± 27% -0.5 0.28 ±100% perf-profile.calltrace.cycles-pp.scheduler_tick.update_process_times.tick_sched_handle.tick_sched_timer.__hrtimer_run_queues 1.03 ± 52% -0.4 0.63 ± 15% perf-profile.calltrace.cycles-pp.clockevents_program_event.hrtimer_interrupt.smp_apic_timer_interrupt.apic_timer_interrupt.cpuidle_enter_state 1.17 ± 19% -0.3 0.87 ± 11% perf-profile.calltrace.cycles-pp.tick_nohz_next_event.tick_nohz_get_sleep_length.menu_select.do_idle.cpu_startup_entry 0.80 ± 17% +0.4 1.22 ± 7% perf-profile.calltrace.cycles-pp.nvme_queue_rq.__blk_mq_try_issue_directly.blk_mq_try_issue_directly.blk_mq_make_request.generic_make_request 0.81 ± 16% +0.4 1.23 ± 8% perf-profile.calltrace.cycles-pp.blk_mq_try_issue_directly.blk_mq_make_request.generic_make_request.submit_bio.__swap_writepage 0.81 ± 16% +0.4 1.23 ± 8% perf-profile.calltrace.cycles-pp.__blk_mq_try_issue_directly.blk_mq_try_issue_directly.blk_mq_make_request.generic_make_request.submit_bio 0.52 ± 60% +0.5 1.03 ± 6% perf-profile.calltrace.cycles-pp.dma_pool_alloc.nvme_queue_rq.__blk_mq_try_issue_directly.blk_mq_try_issue_directly.blk_mq_make_request 1.64 ± 16% +0.6 2.21 ± 15% perf-profile.calltrace.cycles-pp.find_next_bit.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_done 0.51 ± 64% +0.8 1.31 ± 17% perf-profile.calltrace.cycles-pp.bt_iter.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_start 0.80 ± 25% +0.9 1.67 ± 19% perf-profile.calltrace.cycles-pp.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_start.blk_mq_make_request 0.82 ± 24% +0.9 1.71 ± 19% perf-profile.calltrace.cycles-pp.blk_mq_in_flight.part_round_stats.blk_account_io_start.blk_mq_make_request.generic_make_request 0.82 ± 25% +0.9 1.73 ± 19% perf-profile.calltrace.cycles-pp.part_round_stats.blk_account_io_start.blk_mq_make_request.generic_make_request.submit_bio 0.87 ± 25% +1.0 1.87 ± 14% perf-profile.calltrace.cycles-pp.blk_account_io_start.blk_mq_make_request.generic_make_request.submit_bio.__swap_writepage 2.05 ± 15% +1.4 3.48 ± 7% perf-profile.calltrace.cycles-pp.generic_make_request.submit_bio.__swap_writepage.pageout.shrink_page_list 2.09 ± 15% +1.4 3.53 ± 7% perf-profile.calltrace.cycles-pp.__swap_writepage.pageout.shrink_page_list.shrink_inactive_list.shrink_node_memcg 2.05 ± 15% +1.4 3.49 ± 7% perf-profile.calltrace.cycles-pp.blk_mq_make_request.generic_make_request.submit_bio.__swap_writepage.pageout 2.06 ± 15% +1.4 3.50 ± 7% perf-profile.calltrace.cycles-pp.submit_bio.__swap_writepage.pageout.shrink_page_list.shrink_inactive_list 2.10 ± 15% +1.4 3.54 ± 6% perf-profile.calltrace.cycles-pp.pageout.shrink_page_list.shrink_inactive_list.shrink_node_memcg.shrink_node 3.31 ± 12% +1.5 4.83 ± 5% perf-profile.calltrace.cycles-pp.shrink_page_list.shrink_inactive_list.shrink_node_memcg.shrink_node.do_try_to_free_pages 3.33 ± 12% +1.5 4.86 ± 5% perf-profile.calltrace.cycles-pp.shrink_inactive_list.shrink_node_memcg.shrink_node.do_try_to_free_pages.try_to_free_pages 3.40 ± 12% +1.6 4.97 ± 6% perf-profile.calltrace.cycles-pp.shrink_node_memcg.shrink_node.do_try_to_free_pages.try_to_free_pages.__alloc_pages_slowpath 3.57 ± 12% +1.6 5.19 ± 7% perf-profile.calltrace.cycles-pp.__alloc_pages_nodemask.do_huge_pmd_anonymous_page.__handle_mm_fault.handle_mm_fault.__do_page_fault 3.48 ± 12% +1.6 5.13 ± 6% perf-profile.calltrace.cycles-pp.shrink_node.do_try_to_free_pages.try_to_free_pages.__alloc_pages_slowpath.__alloc_pages_nodemask 3.48 ± 12% +1.6 5.13 ± 6% perf-profile.calltrace.cycles-pp.do_try_to_free_pages.try_to_free_pages.__alloc_pages_slowpath.__alloc_pages_nodemask.do_huge_pmd_anonymous_page 3.49 ± 12% +1.6 5.13 ± 6% perf-profile.calltrace.cycles-pp.try_to_free_pages.__alloc_pages_slowpath.__alloc_pages_nodemask.do_huge_pmd_anonymous_page.__handle_mm_fault 3.51 ± 12% +1.7 5.17 ± 6% perf-profile.calltrace.cycles-pp.__alloc_pages_slowpath.__alloc_pages_nodemask.do_huge_pmd_anonymous_page.__handle_mm_fault.handle_mm_fault 3.34 ± 14% +2.2 5.57 ± 21% perf-profile.calltrace.cycles-pp.blk_mq_check_inflight.bt_iter.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats 9.14 ± 17% +5.5 14.66 ± 22% perf-profile.calltrace.cycles-pp.bt_iter.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_done 12.10 ± 17% +6.8 18.89 ± 20% perf-profile.calltrace.cycles-pp.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_done.blk_mq_end_request 13.88 ± 15% +7.1 21.01 ± 20% perf-profile.calltrace.cycles-pp.handle_irq.do_IRQ.ret_from_intr.cpuidle_enter_state.do_idle 13.87 ± 15% +7.1 21.00 ± 20% perf-profile.calltrace.cycles-pp.handle_edge_irq.handle_irq.do_IRQ.ret_from_intr.cpuidle_enter_state 13.97 ± 15% +7.1 21.10 ± 20% perf-profile.calltrace.cycles-pp.ret_from_intr.cpuidle_enter_state.do_idle.cpu_startup_entry.start_secondary 13.94 ± 15% +7.1 21.07 ± 20% perf-profile.calltrace.cycles-pp.do_IRQ.ret_from_intr.cpuidle_enter_state.do_idle.cpu_startup_entry 12.50 ± 17% +7.2 19.65 ± 20% perf-profile.calltrace.cycles-pp.blk_account_io_done.blk_mq_end_request.blk_mq_complete_request.nvme_irq.__handle_irq_event_percpu 12.70 ± 17% +7.2 19.86 ± 21% perf-profile.calltrace.cycles-pp.blk_mq_end_request.blk_mq_complete_request.nvme_irq.__handle_irq_event_percpu.handle_irq_event_percpu 12.48 ± 17% +7.2 19.65 ± 20% perf-profile.calltrace.cycles-pp.part_round_stats.blk_account_io_done.blk_mq_end_request.blk_mq_complete_request.nvme_irq 12.46 ± 17% +7.2 19.63 ± 21% perf-profile.calltrace.cycles-pp.blk_mq_in_flight.part_round_stats.blk_account_io_done.blk_mq_end_request.blk_mq_complete_request 14.78 ± 18% +8.1 22.83 ± 20% perf-profile.calltrace.cycles-pp.blk_mq_complete_request.nvme_irq.__handle_irq_event_percpu.handle_irq_event_percpu.handle_irq_event 14.87 ± 18% +8.1 22.95 ± 21% perf-profile.calltrace.cycles-pp.nvme_irq.__handle_irq_event_percpu.handle_irq_event_percpu.handle_irq_event.handle_edge_irq 14.89 ± 18% +8.1 22.98 ± 21% perf-profile.calltrace.cycles-pp.handle_irq_event_percpu.handle_irq_event.handle_edge_irq.handle_irq.do_IRQ 14.90 ± 18% +8.1 22.99 ± 21% perf-profile.calltrace.cycles-pp.handle_irq_event.handle_edge_irq.handle_irq.do_IRQ.ret_from_intr 14.88 ± 18% +8.1 22.97 ± 21% perf-profile.calltrace.cycles-pp.__handle_irq_event_percpu.handle_irq_event_percpu.handle_irq_event.handle_edge_irq.handle_irq 4.79 ± 22% -1.3 3.52 ± 9% perf-profile.children.cycles-pp.hrtimer_interrupt 3.04 ± 16% -0.7 2.30 ± 8% perf-profile.children.cycles-pp.__hrtimer_run_queues 1.98 ± 29% -0.7 1.29 ± 7% perf-profile.children.cycles-pp.tick_sched_timer 1.70 ± 27% -0.6 1.14 ± 9% perf-profile.children.cycles-pp.tick_sched_handle 1.57 ± 29% -0.5 1.03 ± 10% perf-profile.children.cycles-pp.update_process_times 3.02 ± 8% -0.5 2.52 ± 10% perf-profile.children.cycles-pp.menu_select 1.19 ± 19% -0.3 0.89 ± 10% perf-profile.children.cycles-pp.tick_nohz_next_event 0.81 ± 25% -0.2 0.56 ± 11% perf-profile.children.cycles-pp.scheduler_tick 0.42 ± 19% -0.1 0.30 ± 14% perf-profile.children.cycles-pp._raw_spin_lock 0.27 ± 13% -0.1 0.21 ± 15% perf-profile.children.cycles-pp.hrtimer_next_event_without 0.11 ± 35% -0.0 0.07 ± 19% perf-profile.children.cycles-pp.run_local_timers 0.10 ± 15% -0.0 0.07 ± 28% perf-profile.children.cycles-pp.cpu_load_update 0.14 ± 9% -0.0 0.11 ± 15% perf-profile.children.cycles-pp.perf_event_task_tick 0.07 ± 17% +0.0 0.10 ± 12% perf-profile.children.cycles-pp.blk_flush_plug_list 0.07 ± 17% +0.0 0.10 ± 12% perf-profile.children.cycles-pp.blk_mq_flush_plug_list 0.06 ± 26% +0.0 0.11 ± 17% perf-profile.children.cycles-pp.read 0.07 ± 17% +0.0 0.11 ± 36% perf-profile.children.cycles-pp.deferred_split_scan 0.15 ± 14% +0.1 0.21 ± 13% perf-profile.children.cycles-pp.blk_mq_sched_dispatch_requests 0.15 ± 16% +0.1 0.21 ± 15% perf-profile.children.cycles-pp.blk_mq_dispatch_rq_list 0.15 ± 14% +0.1 0.22 ± 14% perf-profile.children.cycles-pp.__blk_mq_run_hw_queue 0.08 ± 23% +0.1 0.14 ± 34% perf-profile.children.cycles-pp.shrink_slab 0.08 ± 23% +0.1 0.14 ± 34% perf-profile.children.cycles-pp.do_shrink_slab 0.72 ± 19% +0.3 1.00 ± 8% perf-profile.children.cycles-pp._raw_spin_lock_irqsave 0.44 ± 18% +0.3 0.74 ± 14% perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath 0.86 ± 18% +0.4 1.30 ± 9% perf-profile.children.cycles-pp.blk_mq_try_issue_directly 0.88 ± 18% +0.5 1.34 ± 9% perf-profile.children.cycles-pp.__blk_mq_try_issue_directly 0.82 ± 19% +0.5 1.30 ± 9% perf-profile.children.cycles-pp.dma_pool_alloc 1.02 ± 15% +0.5 1.55 ± 9% perf-profile.children.cycles-pp.nvme_queue_rq 1.07 ± 15% +0.7 1.76 ± 21% perf-profile.children.cycles-pp.__indirect_thunk_start 2.42 ± 16% +0.7 3.16 ± 13% perf-profile.children.cycles-pp.find_next_bit 0.95 ± 26% +1.1 2.00 ± 15% perf-profile.children.cycles-pp.blk_account_io_start 2.19 ± 17% +1.5 3.72 ± 8% perf-profile.children.cycles-pp.blk_mq_make_request 2.20 ± 17% +1.5 3.73 ± 8% perf-profile.children.cycles-pp.submit_bio 2.20 ± 17% +1.5 3.73 ± 8% perf-profile.children.cycles-pp.generic_make_request 2.21 ± 17% +1.5 3.76 ± 8% perf-profile.children.cycles-pp.__swap_writepage 2.23 ± 17% +1.5 3.77 ± 7% perf-profile.children.cycles-pp.pageout 3.60 ± 13% +1.6 5.22 ± 7% perf-profile.children.cycles-pp.__alloc_pages_nodemask 3.51 ± 15% +1.6 5.15 ± 6% perf-profile.children.cycles-pp.shrink_page_list 3.48 ± 12% +1.6 5.13 ± 6% perf-profile.children.cycles-pp.do_try_to_free_pages 3.53 ± 14% +1.6 5.17 ± 6% perf-profile.children.cycles-pp.shrink_inactive_list 3.49 ± 12% +1.6 5.13 ± 6% perf-profile.children.cycles-pp.try_to_free_pages 3.51 ± 12% +1.7 5.19 ± 6% perf-profile.children.cycles-pp.__alloc_pages_slowpath 3.61 ± 14% +1.7 5.30 ± 6% perf-profile.children.cycles-pp.shrink_node_memcg 3.69 ± 15% +1.8 5.45 ± 7% perf-profile.children.cycles-pp.shrink_node 4.10 ± 17% +2.4 6.47 ± 18% perf-profile.children.cycles-pp.blk_mq_check_inflight 10.64 ± 16% +6.8 17.39 ± 17% perf-profile.children.cycles-pp.bt_iter 13.17 ± 16% +7.4 20.59 ± 18% perf-profile.children.cycles-pp.blk_account_io_done 13.39 ± 16% +7.4 20.81 ± 19% perf-profile.children.cycles-pp.blk_mq_end_request 15.67 ± 17% +8.2 23.84 ± 20% perf-profile.children.cycles-pp.handle_irq 15.66 ± 17% +8.2 23.83 ± 20% perf-profile.children.cycles-pp.handle_edge_irq 15.57 ± 17% +8.2 23.73 ± 20% perf-profile.children.cycles-pp.nvme_irq 15.60 ± 17% +8.2 23.77 ± 20% perf-profile.children.cycles-pp.handle_irq_event 15.58 ± 17% +8.2 23.75 ± 20% perf-profile.children.cycles-pp.__handle_irq_event_percpu 15.59 ± 17% +8.2 23.77 ± 20% perf-profile.children.cycles-pp.handle_irq_event_percpu 15.75 ± 17% +8.2 23.93 ± 20% perf-profile.children.cycles-pp.ret_from_intr 15.73 ± 17% +8.2 23.91 ± 20% perf-profile.children.cycles-pp.do_IRQ 15.54 ± 17% +8.2 23.73 ± 19% perf-profile.children.cycles-pp.blk_mq_complete_request 14.07 ± 16% +8.4 22.45 ± 16% perf-profile.children.cycles-pp.part_round_stats 14.05 ± 16% +8.4 22.45 ± 16% perf-profile.children.cycles-pp.blk_mq_queue_tag_busy_iter 14.05 ± 16% +8.4 22.45 ± 16% perf-profile.children.cycles-pp.blk_mq_in_flight 0.38 ± 20% -0.1 0.28 ± 16% perf-profile.self.cycles-pp._raw_spin_lock 0.10 ± 13% -0.0 0.07 ± 17% perf-profile.self.cycles-pp.idle_cpu 0.12 ± 14% -0.0 0.09 ± 7% perf-profile.self.cycles-pp.perf_mux_hrtimer_handler 0.10 ± 15% -0.0 0.07 ± 28% perf-profile.self.cycles-pp.cpu_load_update 0.14 ± 9% -0.0 0.11 ± 15% perf-profile.self.cycles-pp.perf_event_task_tick 0.62 ± 16% +0.3 0.89 ± 12% perf-profile.self.cycles-pp.dma_pool_alloc 0.44 ± 18% +0.3 0.74 ± 14% perf-profile.self.cycles-pp.native_queued_spin_lock_slowpath 0.81 ± 16% +0.5 1.32 ± 25% perf-profile.self.cycles-pp.__indirect_thunk_start 2.07 ± 16% +0.6 2.69 ± 12% perf-profile.self.cycles-pp.find_next_bit 1.77 ± 16% +1.1 2.91 ± 15% perf-profile.self.cycles-pp.blk_mq_queue_tag_busy_iter 3.82 ± 16% +2.2 6.00 ± 18% perf-profile.self.cycles-pp.blk_mq_check_inflight 6.43 ± 15% +4.1 10.56 ± 16% perf-profile.self.cycles-pp.bt_iter vm-scalability.time.system_time 600 +-+-------------------------------------------------------------------+ | | 500 +-O OO | O O OO | | O O O O O O | 400 +-+ O O O O | | | 300 +-+ .+.++. .+ .+ .+ .+.+ +.+ .++.+.++ .++.+.++. | | ++ + :.+ + + + : +.+ : +.+ + .++.+ +.+ .| 200 +-+ + + : : : : + + | |: : : : : | |: :: : : | 100 +-+ :: :: | | : : | 0 +-+-------------------------------------------------------------------+ vm-scalability.time.maximum_resident_set_size 2.5e+07 +-+---------------------------------------------------------------+ | | | ++.++.++.+. +. +. + +.++.+ +.++.+ .+.++. .++. .++.+ .+ | 2e+07 +-+ + .+ + +.+: : : : + ++ + + +.| | : + : : : : | | : : : : : | 1.5e+07 O-+O OO: : : : | |: O O O O : : : : | 1e+07 +-+ O O O O OO O : : : : | |:O O :: :: | |: :: :: | 5e+06 +-+ : : | | : : | | : : | 0 +-+---------------------------------------------------------------+ [*] bisect-good sample [O] bisect-bad sample Disclaimer: Results have been estimated based on internal Intel analysis and are provided for informational purposes only. Any difference in system hardware or software design or configuration may affect actual performance. Thanks, Rong Chen [-- Attachment #2: config-4.19.0-12678-gac5b2c1 --] [-- Type: text/plain, Size: 168446 bytes --] # # Automatically generated file; DO NOT EDIT. # Linux/x86_64 4.19.0 Kernel Configuration # # # Compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 # CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=70300 CONFIG_CLANG_VERSION=0 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y # # General setup # CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_BUILD_SALT="" CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_HAVE_KERNEL_LZ4=y CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set # CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set # CONFIG_KERNEL_LZ4 is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_USELIB=y CONFIG_AUDIT=y CONFIG_HAVE_ARCH_AUDITSYSCALL=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y # # IRQ subsystem # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_SIM=y CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y CONFIG_GENERIC_IRQ_RESERVATION_MODE=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # CONFIG_GENERIC_IRQ_DEBUGFS is not set CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_ARCH_CLOCKSOURCE_INIT=y CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y CONFIG_GENERIC_CMOS_UPDATE=y # # Timers subsystem # CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set # CONFIG_NO_HZ_IDLE is not set CONFIG_NO_HZ_FULL=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set CONFIG_PREEMPT_COUNT=y # # CPU/Task time and stats accounting # CONFIG_VIRT_CPU_ACCOUNTING=y CONFIG_VIRT_CPU_ACCOUNTING_GEN=y # CONFIG_IRQ_TIME_ACCOUNTING is not set CONFIG_HAVE_SCHED_AVG_IRQ=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y CONFIG_TASK_IO_ACCOUNTING=y # CONFIG_PSI is not set CONFIG_CPU_ISOLATION=y # # RCU Subsystem # CONFIG_TREE_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y CONFIG_TREE_SRCU=y CONFIG_TASKS_RCU=y CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y CONFIG_CONTEXT_TRACKING=y # CONFIG_CONTEXT_TRACKING_FORCE is not set CONFIG_RCU_NOCB_CPU=y CONFIG_BUILD_BIN2C=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=20 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_NUMA_BALANCING=y CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y CONFIG_MEMCG=y CONFIG_MEMCG_SWAP=y CONFIG_MEMCG_SWAP_ENABLED=y CONFIG_MEMCG_KMEM=y CONFIG_BLK_CGROUP=y # CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_CGROUP_WRITEBACK=y CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y CONFIG_RT_GROUP_SCHED=y CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_RDMA=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_HUGETLB=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_DEVICE=y # CONFIG_CGROUP_CPUACCT is not set CONFIG_CGROUP_PERF=y CONFIG_CGROUP_BPF=y # CONFIG_CGROUP_DEBUG is not set CONFIG_SOCK_CGROUP_DATA=y CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y CONFIG_USER_NS=y CONFIG_PID_NS=y CONFIG_NET_NS=y CONFIG_CHECKPOINT_RESTORE=y CONFIG_SCHED_AUTOGROUP=y # CONFIG_SYSFS_DEPRECATED is not set CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y CONFIG_RD_LZ4=y CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y CONFIG_HAVE_UID16=y CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BPF=y CONFIG_EXPERT=y CONFIG_UID16=y CONFIG_MULTIUSER=y CONFIG_SGETMASK_SYSCALL=y CONFIG_SYSFS_SYSCALL=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_FHANDLE=y CONFIG_POSIX_TIMERS=y CONFIG_PRINTK=y CONFIG_PRINTK_NMI=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_FUTEX_PI=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_BPF_SYSCALL=y # CONFIG_BPF_JIT_ALWAYS_ON is not set CONFIG_USERFAULTFD=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_RSEQ=y # CONFIG_DEBUG_RSEQ is not set CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y # CONFIG_PC104 is not set # # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y # CONFIG_SLUB_MEMCG_SYSFS_ON is not set # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y # CONFIG_SLOB is not set CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLAB_FREELIST_RANDOM is not set # CONFIG_SLAB_FREELIST_HARDENED is not set CONFIG_SLUB_CPU_PARTIAL=y CONFIG_SYSTEM_DATA_VERIFICATION=y CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y CONFIG_64BIT=y CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_MMU=y CONFIG_ARCH_MMAP_RND_BITS_MIN=28 CONFIG_ARCH_MMAP_RND_BITS_MAX=32 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_FILTER_PGPROT=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ZONE_DMA32=y CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # CONFIG_ZONE_DMA=y CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_X2APIC=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set CONFIG_RETPOLINE=y CONFIG_INTEL_RDT=y CONFIG_X86_EXTENDED_PLATFORM=y # CONFIG_X86_NUMACHIP is not set # CONFIG_X86_VSMP is not set CONFIG_X86_UV=y # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set CONFIG_X86_INTEL_LPSS=y # CONFIG_X86_AMD_PLATFORM_DEVICE is not set CONFIG_IOSF_MBI=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y # CONFIG_SCHED_OMIT_FRAME_POINTER is not set CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y CONFIG_PARAVIRT_XXL=y # CONFIG_PARAVIRT_DEBUG is not set CONFIG_PARAVIRT_SPINLOCKS=y # CONFIG_QUEUED_LOCK_STAT is not set CONFIG_XEN=y CONFIG_XEN_PV=y CONFIG_XEN_PV_SMP=y CONFIG_XEN_DOM0=y CONFIG_XEN_PVHVM=y CONFIG_XEN_PVHVM_SMP=y CONFIG_XEN_512GB=y CONFIG_XEN_SAVE_RESTORE=y # CONFIG_XEN_DEBUG_FS is not set # CONFIG_XEN_PVH is not set CONFIG_KVM_GUEST=y # CONFIG_KVM_DEBUG_FS is not set CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT_CLOCK=y # CONFIG_JAILHOUSE_GUEST is not set # CONFIG_MK8 is not set # CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set CONFIG_GENERIC_CPU=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=64 CONFIG_X86_DEBUGCTLMSR=y # CONFIG_PROCESSOR_SELECT is not set CONFIG_CPU_SUP_INTEL=y CONFIG_CPU_SUP_AMD=y CONFIG_CPU_SUP_HYGON=y CONFIG_CPU_SUP_CENTAUR=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y CONFIG_GART_IOMMU=y # CONFIG_CALGARY_IOMMU is not set CONFIG_MAXSMP=y CONFIG_NR_CPUS_RANGE_BEGIN=8192 CONFIG_NR_CPUS_RANGE_END=8192 CONFIG_NR_CPUS_DEFAULT=8192 CONFIG_NR_CPUS=8192 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y CONFIG_X86_MCE=y CONFIG_X86_MCELOG_LEGACY=y CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y CONFIG_X86_MCE_THRESHOLD=y CONFIG_X86_MCE_INJECT=m CONFIG_X86_THERMAL_VECTOR=y # # Performance monitoring # CONFIG_PERF_EVENTS_INTEL_UNCORE=y CONFIG_PERF_EVENTS_INTEL_RAPL=y CONFIG_PERF_EVENTS_INTEL_CSTATE=y # CONFIG_PERF_EVENTS_AMD_POWER is not set CONFIG_X86_16BIT=y CONFIG_X86_ESPFIX64=y CONFIG_X86_VSYSCALL_EMULATION=y CONFIG_I8K=m CONFIG_MICROCODE=y CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y CONFIG_X86_MSR=y CONFIG_X86_CPUID=y # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y # CONFIG_X86_CPA_STATISTICS is not set CONFIG_ARCH_HAS_MEM_ENCRYPT=y # CONFIG_AMD_MEM_ENCRYPT is not set CONFIG_NUMA=y CONFIG_AMD_NUMA=y CONFIG_X86_64_ACPI_NUMA=y CONFIG_NODES_SPAN_OTHER_NODES=y # CONFIG_NUMA_EMU is not set CONFIG_NODES_SHIFT=10 CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_MEMORY_PROBE=y CONFIG_ARCH_PROC_KCORE_TEXT=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 CONFIG_X86_PMEM_LEGACY_DEVICE=y CONFIG_X86_PMEM_LEGACY=m CONFIG_X86_CHECK_BIOS_CORRUPTION=y # CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set CONFIG_X86_RESERVE_LOW=64 CONFIG_MTRR=y CONFIG_MTRR_SANITIZER=y CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y CONFIG_X86_SMAP=y CONFIG_X86_INTEL_UMIP=y CONFIG_X86_INTEL_MPX=y CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y CONFIG_EFI=y CONFIG_EFI_STUB=y # CONFIG_EFI_MIXED is not set CONFIG_SECCOMP=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y # CONFIG_KEXEC_FILE is not set CONFIG_CRASH_DUMP=y CONFIG_KEXEC_JUMP=y CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 CONFIG_HOTPLUG_CPU=y CONFIG_BOOTPARAM_HOTPLUG_CPU0=y # CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_COMPAT_VDSO is not set CONFIG_LEGACY_VSYSCALL_EMULATE=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set CONFIG_MODIFY_LDT_SYSCALL=y CONFIG_HAVE_LIVEPATCH=y # CONFIG_LIVEPATCH is not set CONFIG_ARCH_HAS_ADD_PAGES=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y CONFIG_USE_PERCPU_NUMA_NODE_ID=y CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y CONFIG_ARCH_ENABLE_THP_MIGRATION=y # # Power management and ACPI options # CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_HIBERNATE_CALLBACKS=y CONFIG_HIBERNATION=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y CONFIG_PM_DEBUG=y CONFIG_PM_ADVANCED_DEBUG=y CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_SLEEP_DEBUG=y # CONFIG_DPM_WATCHDOG is not set # CONFIG_PM_TRACE_RTC is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y # CONFIG_ACPI_DEBUGGER is not set CONFIG_ACPI_SPCR_TABLE=y CONFIG_ACPI_LPIT=y CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS_POWER is not set CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y CONFIG_ACPI_EC_DEBUGFS=m CONFIG_ACPI_AC=y CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=y # CONFIG_ACPI_TAD is not set CONFIG_ACPI_DOCK=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_IPMI=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=m CONFIG_ACPI_THERMAL=y CONFIG_ACPI_NUMA=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_DEBUG=y CONFIG_ACPI_PCI_SLOT=y CONFIG_ACPI_CONTAINER=y CONFIG_ACPI_HOTPLUG_MEMORY=y CONFIG_ACPI_HOTPLUG_IOAPIC=y CONFIG_ACPI_SBS=m CONFIG_ACPI_HED=y CONFIG_ACPI_CUSTOM_METHOD=m CONFIG_ACPI_BGRT=y # CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set CONFIG_ACPI_NFIT=m CONFIG_HAVE_ACPI_APEI=y CONFIG_HAVE_ACPI_APEI_NMI=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=m CONFIG_ACPI_APEI_ERST_DEBUG=y # CONFIG_DPTF_POWER is not set CONFIG_ACPI_WATCHDOG=y CONFIG_ACPI_EXTLOG=m # CONFIG_PMIC_OPREGION is not set # CONFIG_ACPI_CONFIGFS is not set CONFIG_X86_PM_TIMER=y CONFIG_SFI=y # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_ATTR_SET=y CONFIG_CPU_FREQ_GOV_COMMON=y # CONFIG_CPU_FREQ_STAT is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set # # CPU frequency scaling drivers # CONFIG_X86_INTEL_PSTATE=y CONFIG_X86_PCC_CPUFREQ=m CONFIG_X86_ACPI_CPUFREQ=m CONFIG_X86_ACPI_CPUFREQ_CPB=y CONFIG_X86_POWERNOW_K8=m CONFIG_X86_AMD_FREQ_SENSITIVITY=m # CONFIG_X86_SPEEDSTEP_CENTRINO is not set CONFIG_X86_P4_CLOCKMOD=m # # shared options # CONFIG_X86_SPEEDSTEP_LIB=m # # CPU Idle # CONFIG_CPU_IDLE=y # CONFIG_CPU_IDLE_GOV_LADDER is not set CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_INTEL_IDLE=y # # Bus options (PCI etc.) # CONFIG_PCI=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_XEN=y CONFIG_PCI_DOMAINS=y CONFIG_MMCONF_FAM10H=y # CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCIEPORTBUS=y CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_PCIEAER=y CONFIG_PCIEAER_INJECT=m CONFIG_PCIE_ECRC=y CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM_DEFAULT=y # CONFIG_PCIEASPM_POWERSAVE is not set # CONFIG_PCIEASPM_POWER_SUPERSAVE is not set # CONFIG_PCIEASPM_PERFORMANCE is not set CONFIG_PCIE_PME=y # CONFIG_PCIE_DPC is not set # CONFIG_PCIE_PTM is not set CONFIG_PCI_MSI=y CONFIG_PCI_MSI_IRQ_DOMAIN=y CONFIG_PCI_QUIRKS=y # CONFIG_PCI_DEBUG is not set # CONFIG_PCI_REALLOC_ENABLE_AUTO is not set CONFIG_PCI_STUB=y # CONFIG_PCI_PF_STUB is not set # CONFIG_XEN_PCIDEV_FRONTEND is not set CONFIG_PCI_ATS=y CONFIG_PCI_LOCKLESS_CONFIG=y CONFIG_PCI_IOV=y CONFIG_PCI_PRI=y CONFIG_PCI_PASID=y # CONFIG_PCI_P2PDMA is not set CONFIG_PCI_LABEL=y # CONFIG_PCI_HYPERV is not set CONFIG_HOTPLUG_PCI=y CONFIG_HOTPLUG_PCI_ACPI=y CONFIG_HOTPLUG_PCI_ACPI_IBM=m # CONFIG_HOTPLUG_PCI_CPCI is not set # CONFIG_HOTPLUG_PCI_SHPC is not set # # PCI controller drivers # # # Cadence PCIe controllers support # # CONFIG_VMD is not set # # DesignWare PCI Core Support # # CONFIG_PCIE_DW_PLAT_HOST is not set # # PCI Endpoint # # CONFIG_PCI_ENDPOINT is not set # # PCI switch controller drivers # # CONFIG_PCI_SW_SWITCHTEC is not set # CONFIG_ISA_BUS is not set CONFIG_ISA_DMA_API=y CONFIG_AMD_NB=y CONFIG_PCCARD=y # CONFIG_PCMCIA is not set CONFIG_CARDBUS=y # # PC-card bridges # CONFIG_YENTA=m CONFIG_YENTA_O2=y CONFIG_YENTA_RICOH=y CONFIG_YENTA_TI=y CONFIG_YENTA_ENE_TUNE=y CONFIG_YENTA_TOSHIBA=y # CONFIG_RAPIDIO is not set # CONFIG_X86_SYSFB is not set # # Binary Emulations # CONFIG_IA32_EMULATION=y # CONFIG_IA32_AOUT is not set # CONFIG_X86_X32 is not set CONFIG_COMPAT_32=y CONFIG_COMPAT=y CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y CONFIG_X86_DEV_DMA_OPS=y CONFIG_HAVE_GENERIC_GUP=y # # Firmware Drivers # CONFIG_EDD=m # CONFIG_EDD_OFF is not set CONFIG_FIRMWARE_MEMMAP=y CONFIG_DMIID=y CONFIG_DMI_SYSFS=y CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m # CONFIG_FW_CFG_SYSFS is not set # CONFIG_GOOGLE_FIRMWARE is not set # # EFI (Extensible Firmware Interface) Support # CONFIG_EFI_VARS=y CONFIG_EFI_ESRT=y CONFIG_EFI_VARS_PSTORE=y CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y CONFIG_EFI_RUNTIME_MAP=y # CONFIG_EFI_FAKE_MEMMAP is not set CONFIG_EFI_RUNTIME_WRAPPERS=y # CONFIG_EFI_BOOTLOADER_CONTROL is not set # CONFIG_EFI_CAPSULE_LOADER is not set # CONFIG_EFI_TEST is not set # CONFIG_APPLE_PROPERTIES is not set # CONFIG_RESET_ATTACK_MITIGATION is not set CONFIG_UEFI_CPER=y CONFIG_UEFI_CPER_X86=y # # Tegra firmware driver # CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_IRQFD=y CONFIG_HAVE_KVM_IRQ_ROUTING=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_MMIO=y CONFIG_KVM_ASYNC_PF=y CONFIG_HAVE_KVM_MSI=y CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y CONFIG_KVM_VFIO=y CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y CONFIG_KVM_COMPAT=y CONFIG_HAVE_KVM_IRQ_BYPASS=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m CONFIG_KVM_MMU_AUDIT=y CONFIG_VHOST_NET=m # CONFIG_VHOST_SCSI is not set # CONFIG_VHOST_VSOCK is not set CONFIG_VHOST=m # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set # # General architecture-dependent options # CONFIG_CRASH_CORE=y CONFIG_KEXEC_CORE=y CONFIG_HOTPLUG_SMT=y CONFIG_OPROFILE=m CONFIG_OPROFILE_EVENT_MULTIPLEX=y CONFIG_HAVE_OPROFILE=y CONFIG_OPROFILE_NMI_TIMER=y CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_OPTPROBES=y CONFIG_KPROBES_ON_FTRACE=y CONFIG_UPROBES=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_KRETPROBES=y CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_KPROBES_ON_FTRACE=y CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y CONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_RSEQ=y CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y CONFIG_HAVE_CLK=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y CONFIG_HAVE_RCU_TABLE_FREE=y CONFIG_HAVE_RCU_TABLE_INVALIDATE=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y CONFIG_HAVE_CMPXCHG_LOCAL=y CONFIG_HAVE_CMPXCHG_DOUBLE=y CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_SECCOMP_FILTER=y CONFIG_HAVE_ARCH_STACKLEAK=y CONFIG_HAVE_STACKPROTECTOR=y CONFIG_CC_HAS_STACKPROTECTOR_NONE=y CONFIG_STACKPROTECTOR=y CONFIG_STACKPROTECTOR_STRONG=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y CONFIG_HAVE_ARCH_HUGE_VMAP=y CONFIG_HAVE_ARCH_SOFT_DIRTY=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_RELA=y CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_HAVE_EXIT_THREAD=y CONFIG_ARCH_MMAP_RND_BITS=28 CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y CONFIG_HAVE_COPY_THREAD_TLS=y CONFIG_HAVE_STACK_VALIDATION=y CONFIG_HAVE_RELIABLE_STACKTRACE=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_COMPAT_OLD_SIGACTION=y CONFIG_COMPAT_32BIT_TIME=y CONFIG_HAVE_ARCH_VMAP_STACK=y CONFIG_VMAP_STACK=y CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y CONFIG_ARCH_HAS_REFCOUNT=y # CONFIG_REFCOUNT_FULL is not set CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y # # GCOV-based kernel profiling # # CONFIG_GCOV_KERNEL is not set CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y CONFIG_PLUGIN_HOSTCC="g++" CONFIG_HAVE_GCC_PLUGINS=y # CONFIG_GCC_PLUGINS is not set CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_MODULE_SIG is not set # CONFIG_MODULE_COMPRESS is not set # CONFIG_TRIM_UNUSED_KSYMS is not set CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y CONFIG_BLK_SCSI_REQUEST=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y # CONFIG_BLK_DEV_ZONED is not set CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_DEV_THROTTLING_LOW is not set # CONFIG_BLK_CMDLINE_PARSER is not set # CONFIG_BLK_WBT is not set # CONFIG_BLK_CGROUP_IOLATENCY is not set CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_SED_OPAL is not set # # Partition Types # CONFIG_PARTITION_ADVANCED=y # CONFIG_ACORN_PARTITION is not set # CONFIG_AIX_PARTITION is not set CONFIG_OSF_PARTITION=y CONFIG_AMIGA_PARTITION=y # CONFIG_ATARI_PARTITION is not set CONFIG_MAC_PARTITION=y CONFIG_MSDOS_PARTITION=y CONFIG_BSD_DISKLABEL=y CONFIG_MINIX_SUBPARTITION=y CONFIG_SOLARIS_X86_PARTITION=y CONFIG_UNIXWARE_DISKLABEL=y # CONFIG_LDM_PARTITION is not set CONFIG_SGI_PARTITION=y # CONFIG_ULTRIX_PARTITION is not set CONFIG_SUN_PARTITION=y CONFIG_KARMA_PARTITION=y CONFIG_EFI_PARTITION=y # CONFIG_SYSV68_PARTITION is not set # CONFIG_CMDLINE_PARTITION is not set CONFIG_BLOCK_COMPAT=y CONFIG_BLK_MQ_PCI=y CONFIG_BLK_MQ_VIRTIO=y CONFIG_BLK_PM=y # # IO Schedulers # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y CONFIG_CFQ_GROUP_IOSCHED=y CONFIG_DEFAULT_DEADLINE=y # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="deadline" CONFIG_MQ_IOSCHED_DEADLINE=y CONFIG_MQ_IOSCHED_KYBER=y # CONFIG_IOSCHED_BFQ is not set CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y CONFIG_ASN1=y CONFIG_INLINE_SPIN_UNLOCK_IRQ=y CONFIG_INLINE_READ_UNLOCK=y CONFIG_INLINE_READ_UNLOCK_IRQ=y CONFIG_INLINE_WRITE_UNLOCK=y CONFIG_INLINE_WRITE_UNLOCK_IRQ=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_RWSEM_SPIN_ON_OWNER=y CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y CONFIG_FREEZER=y # # Executable file formats # CONFIG_BINFMT_ELF=y CONFIG_COMPAT_BINFMT_ELF=y CONFIG_ELFCORE=y CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_BINFMT_SCRIPT=y CONFIG_BINFMT_MISC=m CONFIG_COREDUMP=y # # Memory Management options # CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SPARSEMEM_MANUAL=y CONFIG_SPARSEMEM=y CONFIG_NEED_MULTIPLE_NODES=y CONFIG_HAVE_MEMORY_PRESENT=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_HAVE_MEMBLOCK_NODE_MAP=y CONFIG_ARCH_DISCARD_MEMBLOCK=y CONFIG_MEMORY_ISOLATION=y CONFIG_HAVE_BOOTMEM_INFO_NODE=y CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTPLUG_SPARSE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTREMOVE=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_MEMORY_BALLOON=y CONFIG_BALLOON_COMPACTION=y CONFIG_COMPACTION=y CONFIG_MIGRATION=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y CONFIG_MEMORY_FAILURE=y CONFIG_HWPOISON_INJECT=m CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y # CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set CONFIG_ARCH_WANTS_THP_SWAP=y CONFIG_THP_SWAP=y CONFIG_TRANSPARENT_HUGE_PAGECACHE=y CONFIG_CLEANCACHE=y CONFIG_FRONTSWAP=y CONFIG_CMA=y # CONFIG_CMA_DEBUG is not set # CONFIG_CMA_DEBUGFS is not set CONFIG_CMA_AREAS=7 # CONFIG_MEM_SOFT_DIRTY is not set CONFIG_ZSWAP=y CONFIG_ZPOOL=y CONFIG_ZBUD=y # CONFIG_Z3FOLD is not set CONFIG_ZSMALLOC=y # CONFIG_PGTABLE_MAPPING is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_GENERIC_EARLY_IOREMAP=y # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set CONFIG_IDLE_PAGE_TRACKING=y CONFIG_ARCH_HAS_ZONE_DEVICE=y CONFIG_ZONE_DEVICE=y CONFIG_ARCH_HAS_HMM=y CONFIG_DEV_PAGEMAP_OPS=y # CONFIG_HMM_MIRROR is not set # CONFIG_DEVICE_PRIVATE is not set # CONFIG_DEVICE_PUBLIC is not set CONFIG_FRAME_VECTOR=y CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y CONFIG_ARCH_HAS_PKEYS=y # CONFIG_PERCPU_STATS is not set # CONFIG_GUP_BENCHMARK is not set CONFIG_ARCH_HAS_PTE_SPECIAL=y CONFIG_NET=y CONFIG_COMPAT_NETLINK_MESSAGES=y CONFIG_NET_INGRESS=y CONFIG_NET_EGRESS=y # # Networking options # CONFIG_PACKET=y CONFIG_PACKET_DIAG=m CONFIG_UNIX=y CONFIG_UNIX_DIAG=m # CONFIG_TLS is not set CONFIG_XFRM=y CONFIG_XFRM_ALGO=y CONFIG_XFRM_USER=y # CONFIG_XFRM_INTERFACE is not set CONFIG_XFRM_SUB_POLICY=y CONFIG_XFRM_MIGRATE=y CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m CONFIG_NET_KEY=m CONFIG_NET_KEY_MIGRATE=y # CONFIG_XDP_SOCKETS is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_FIB_TRIE_STATS=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y CONFIG_IP_ROUTE_CLASSID=y CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y # CONFIG_IP_PNP_BOOTP is not set # CONFIG_IP_PNP_RARP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE_COMMON=y CONFIG_IP_MROUTE=y CONFIG_IP_MROUTE_MULTIPLE_TABLES=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_SYN_COOKIES=y CONFIG_NET_IPVTI=m CONFIG_NET_UDP_TUNNEL=m CONFIG_NET_FOU=m CONFIG_NET_FOU_IP_TUNNELS=y CONFIG_INET_AH=m CONFIG_INET_ESP=m # CONFIG_INET_ESP_OFFLOAD is not set CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m CONFIG_INET_XFRM_MODE_TRANSPORT=m CONFIG_INET_XFRM_MODE_TUNNEL=m CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m CONFIG_INET_UDP_DIAG=m # CONFIG_INET_RAW_DIAG is not set # CONFIG_INET_DIAG_DESTROY is not set CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=m CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m CONFIG_TCP_CONG_HYBLA=m CONFIG_TCP_CONG_VEGAS=m # CONFIG_TCP_CONG_NV is not set CONFIG_TCP_CONG_SCALABLE=m CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m # CONFIG_TCP_CONG_DCTCP is not set # CONFIG_TCP_CONG_CDG is not set # CONFIG_TCP_CONG_BBR is not set CONFIG_DEFAULT_CUBIC=y # CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_TCP_MD5SIG=y CONFIG_IPV6=y CONFIG_IPV6_ROUTER_PREF=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m # CONFIG_INET6_ESP_OFFLOAD is not set CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=m # CONFIG_IPV6_ILA is not set CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m CONFIG_INET6_XFRM_MODE_TRANSPORT=m CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_VTI=m CONFIG_IPV6_SIT=m CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m # CONFIG_IPV6_GRE is not set CONFIG_IPV6_FOU=m CONFIG_IPV6_FOU_TUNNEL=m CONFIG_IPV6_MULTIPLE_TABLES=y # CONFIG_IPV6_SUBTREES is not set CONFIG_IPV6_MROUTE=y CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_SEG6_LWTUNNEL=y # CONFIG_IPV6_SEG6_HMAC is not set CONFIG_IPV6_SEG6_BPF=y CONFIG_NETLABEL=y CONFIG_NETWORK_SECMARK=y CONFIG_NET_PTP_CLASSIFY=y CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y CONFIG_NETFILTER_ADVANCED=y CONFIG_BRIDGE_NETFILTER=m # # Core Netfilter Configuration # CONFIG_NETFILTER_INGRESS=y CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_FAMILY_BRIDGE=y CONFIG_NETFILTER_FAMILY_ARP=y CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NETFILTER_NETLINK_OSF=m CONFIG_NF_CONNTRACK=m CONFIG_NF_LOG_COMMON=m # CONFIG_NF_LOG_NETDEV is not set CONFIG_NETFILTER_CONNCOUNT=m CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y CONFIG_NF_CONNTRACK_ZONES=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y # CONFIG_NF_CONNTRACK_TIMEOUT is not set CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CONNTRACK_LABELS=y CONFIG_NF_CT_PROTO_DCCP=y CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=y CONFIG_NF_CT_PROTO_UDPLITE=y CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m CONFIG_NF_CONNTRACK_BROADCAST=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m CONFIG_NF_CONNTRACK_SNMP=m CONFIG_NF_CONNTRACK_PPTP=m CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m # CONFIG_NETFILTER_NETLINK_GLUE_CT is not set CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y CONFIG_NF_NAT_PROTO_DCCP=y CONFIG_NF_NAT_PROTO_UDPLITE=y CONFIG_NF_NAT_PROTO_SCTP=y CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m CONFIG_NF_NAT_SIP=m CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_REDIRECT=y CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m # CONFIG_NF_TABLES_SET is not set # CONFIG_NF_TABLES_INET is not set # CONFIG_NF_TABLES_NETDEV is not set # CONFIG_NFT_NUMGEN is not set CONFIG_NFT_CT=m CONFIG_NFT_COUNTER=m # CONFIG_NFT_CONNLIMIT is not set CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m # CONFIG_NFT_MASQ is not set # CONFIG_NFT_REDIR is not set CONFIG_NFT_NAT=m # CONFIG_NFT_TUNNEL is not set # CONFIG_NFT_OBJREF is not set # CONFIG_NFT_QUEUE is not set # CONFIG_NFT_QUOTA is not set # CONFIG_NFT_REJECT is not set CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m # CONFIG_NFT_XFRM is not set # CONFIG_NFT_SOCKET is not set # CONFIG_NFT_OSF is not set # CONFIG_NFT_TPROXY is not set # CONFIG_NF_FLOW_TABLE is not set CONFIG_NETFILTER_XTABLES=y # # Xtables combined modules # CONFIG_NETFILTER_XT_MARK=m CONFIG_NETFILTER_XT_CONNMARK=m CONFIG_NETFILTER_XT_SET=m # # Xtables targets # CONFIG_NETFILTER_XT_TARGET_AUDIT=m CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m CONFIG_NETFILTER_XT_TARGET_HMARK=m CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m CONFIG_NETFILTER_XT_TARGET_LOG=m CONFIG_NETFILTER_XT_TARGET_MARK=m CONFIG_NETFILTER_XT_NAT=m CONFIG_NETFILTER_XT_TARGET_NETMAP=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m CONFIG_NETFILTER_XT_TARGET_REDIRECT=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_SECMARK=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m # # Xtables matches # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m CONFIG_NETFILTER_XT_MATCH_BPF=m # CONFIG_NETFILTER_XT_MATCH_CGROUP is not set CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ECN=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m # CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set CONFIG_NETFILTER_XT_MATCH_IPRANGE=m CONFIG_NETFILTER_XT_MATCH_IPVS=m CONFIG_NETFILTER_XT_MATCH_L2TP=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m CONFIG_NETFILTER_XT_MATCH_NFACCT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_RATEEST=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_RECENT=m CONFIG_NETFILTER_XT_MATCH_SCTP=m # CONFIG_NETFILTER_XT_MATCH_SOCKET is not set CONFIG_NETFILTER_XT_MATCH_STATE=m CONFIG_NETFILTER_XT_MATCH_STATISTIC=m CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 CONFIG_IP_SET_BITMAP_IP=m CONFIG_IP_SET_BITMAP_IPMAC=m CONFIG_IP_SET_BITMAP_PORT=m CONFIG_IP_SET_HASH_IP=m # CONFIG_IP_SET_HASH_IPMARK is not set CONFIG_IP_SET_HASH_IPPORT=m CONFIG_IP_SET_HASH_IPPORTIP=m CONFIG_IP_SET_HASH_IPPORTNET=m # CONFIG_IP_SET_HASH_IPMAC is not set # CONFIG_IP_SET_HASH_MAC is not set # CONFIG_IP_SET_HASH_NETPORTNET is not set CONFIG_IP_SET_HASH_NET=m # CONFIG_IP_SET_HASH_NETNET is not set CONFIG_IP_SET_HASH_NETPORT=m CONFIG_IP_SET_HASH_NETIFACE=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set CONFIG_IP_VS_TAB_BITS=12 # # IPVS transport protocol load balancing support # CONFIG_IP_VS_PROTO_TCP=y CONFIG_IP_VS_PROTO_UDP=y CONFIG_IP_VS_PROTO_AH_ESP=y CONFIG_IP_VS_PROTO_ESP=y CONFIG_IP_VS_PROTO_AH=y CONFIG_IP_VS_PROTO_SCTP=y # # IPVS scheduler # CONFIG_IP_VS_RR=m CONFIG_IP_VS_WRR=m CONFIG_IP_VS_LC=m CONFIG_IP_VS_WLC=m # CONFIG_IP_VS_FO is not set # CONFIG_IP_VS_OVF is not set CONFIG_IP_VS_LBLC=m CONFIG_IP_VS_LBLCR=m CONFIG_IP_VS_DH=m CONFIG_IP_VS_SH=m # CONFIG_IP_VS_MH is not set CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m # # IPVS SH scheduler # CONFIG_IP_VS_SH_TAB_BITS=8 # # IPVS MH scheduler # CONFIG_IP_VS_MH_TAB_INDEX=12 # # IPVS application helper # CONFIG_IP_VS_FTP=m CONFIG_IP_VS_NFCT=y CONFIG_IP_VS_PE_SIP=m # # IP: Netfilter Configuration # CONFIG_NF_DEFRAG_IPV4=m # CONFIG_NF_SOCKET_IPV4 is not set CONFIG_NF_TPROXY_IPV4=m # CONFIG_NF_TABLES_IPV4 is not set # CONFIG_NF_TABLES_ARP is not set CONFIG_NF_DUP_IPV4=m # CONFIG_NF_LOG_ARP is not set CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m CONFIG_NF_NAT_IPV4=m CONFIG_NF_NAT_MASQUERADE_IPV4=y CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_TARGET_SYNPROXY=m CONFIG_IP_NF_NAT=m CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_RAW=m CONFIG_IP_NF_SECURITY=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m # # IPv6: Netfilter Configuration # # CONFIG_NF_SOCKET_IPV6 is not set CONFIG_NF_TPROXY_IPV6=m # CONFIG_NF_TABLES_IPV6 is not set CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m CONFIG_NF_NAT_IPV6=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_MATCH_FRAG=m CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m # CONFIG_IP6_NF_MATCH_SRH is not set CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_TARGET_SYNPROXY=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m CONFIG_IP6_NF_SECURITY=m # CONFIG_IP6_NF_NAT is not set CONFIG_NF_DEFRAG_IPV6=m # CONFIG_NF_TABLES_BRIDGE is not set CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m CONFIG_BRIDGE_EBT_T_NAT=m CONFIG_BRIDGE_EBT_802_3=m CONFIG_BRIDGE_EBT_AMONG=m CONFIG_BRIDGE_EBT_ARP=m CONFIG_BRIDGE_EBT_IP=m CONFIG_BRIDGE_EBT_IP6=m CONFIG_BRIDGE_EBT_LIMIT=m CONFIG_BRIDGE_EBT_MARK=m CONFIG_BRIDGE_EBT_PKTTYPE=m CONFIG_BRIDGE_EBT_STP=m CONFIG_BRIDGE_EBT_VLAN=m CONFIG_BRIDGE_EBT_ARPREPLY=m CONFIG_BRIDGE_EBT_DNAT=m CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m CONFIG_BRIDGE_EBT_NFLOG=m # CONFIG_BPFILTER is not set CONFIG_IP_DCCP=m CONFIG_INET_DCCP_DIAG=m # # DCCP CCIDs Configuration # # CONFIG_IP_DCCP_CCID2_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_TFRC_LIB=y # # DCCP Kernel Hacking # # CONFIG_IP_DCCP_DEBUG is not set CONFIG_IP_SCTP=m # CONFIG_SCTP_DBG_OBJCNT is not set # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set CONFIG_SCTP_COOKIE_HMAC_MD5=y CONFIG_SCTP_COOKIE_HMAC_SHA1=y CONFIG_INET_SCTP_DIAG=m # CONFIG_RDS is not set CONFIG_TIPC=m CONFIG_TIPC_MEDIA_UDP=y CONFIG_TIPC_DIAG=m CONFIG_ATM=m CONFIG_ATM_CLIP=m # CONFIG_ATM_CLIP_NO_ICMP is not set CONFIG_ATM_LANE=m # CONFIG_ATM_MPOA is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set CONFIG_L2TP=m CONFIG_L2TP_DEBUGFS=m CONFIG_L2TP_V3=y CONFIG_L2TP_IP=m CONFIG_L2TP_ETH=m CONFIG_STP=m CONFIG_GARP=m CONFIG_MRP=m CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_HAVE_NET_DSA=y # CONFIG_NET_DSA is not set CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q_MVRP=y # CONFIG_DECNET is not set CONFIG_LLC=m # CONFIG_LLC2 is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_PHONET is not set # CONFIG_6LOWPAN is not set CONFIG_IEEE802154=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_MAC802154=m CONFIG_NET_SCHED=y # # Queueing/Scheduling # CONFIG_NET_SCH_CBQ=m CONFIG_NET_SCH_HTB=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_MULTIQ=m CONFIG_NET_SCH_RED=m CONFIG_NET_SCH_SFB=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m # CONFIG_NET_SCH_CBS is not set # CONFIG_NET_SCH_ETF is not set # CONFIG_NET_SCH_TAPRIO is not set CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_DRR=m CONFIG_NET_SCH_MQPRIO=m # CONFIG_NET_SCH_SKBPRIO is not set CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m CONFIG_NET_SCH_CODEL=m CONFIG_NET_SCH_FQ_CODEL=m # CONFIG_NET_SCH_CAKE is not set # CONFIG_NET_SCH_FQ is not set # CONFIG_NET_SCH_HHF is not set # CONFIG_NET_SCH_PIE is not set CONFIG_NET_SCH_INGRESS=m CONFIG_NET_SCH_PLUG=m # CONFIG_NET_SCH_DEFAULT is not set # # Classification # CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_PERF=y CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m CONFIG_NET_CLS_FLOW=m CONFIG_NET_CLS_CGROUP=y CONFIG_NET_CLS_BPF=m # CONFIG_NET_CLS_FLOWER is not set # CONFIG_NET_CLS_MATCHALL is not set CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=m CONFIG_NET_EMATCH_NBYTE=m CONFIG_NET_EMATCH_U32=m CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m # CONFIG_NET_EMATCH_CANID is not set CONFIG_NET_EMATCH_IPSET=m # CONFIG_NET_EMATCH_IPT is not set CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m CONFIG_GACT_PROB=y CONFIG_NET_ACT_MIRRED=m # CONFIG_NET_ACT_SAMPLE is not set CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m CONFIG_NET_ACT_CSUM=m # CONFIG_NET_ACT_VLAN is not set # CONFIG_NET_ACT_BPF is not set # CONFIG_NET_ACT_CONNMARK is not set # CONFIG_NET_ACT_SKBMOD is not set # CONFIG_NET_ACT_IFE is not set # CONFIG_NET_ACT_TUNNEL_KEY is not set CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y CONFIG_DCB=y CONFIG_DNS_RESOLVER=m # CONFIG_BATMAN_ADV is not set CONFIG_OPENVSWITCH=m CONFIG_OPENVSWITCH_GRE=m CONFIG_OPENVSWITCH_VXLAN=m CONFIG_VSOCKETS=m CONFIG_VSOCKETS_DIAG=m CONFIG_VMWARE_VMCI_VSOCKETS=m # CONFIG_VIRTIO_VSOCKETS is not set # CONFIG_HYPERV_VSOCKETS is not set CONFIG_NETLINK_DIAG=m CONFIG_MPLS=y CONFIG_NET_MPLS_GSO=m # CONFIG_MPLS_ROUTING is not set CONFIG_NET_NSH=m # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set CONFIG_NET_L3_MASTER_DEV=y # CONFIG_NET_NCSI is not set CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y # CONFIG_CGROUP_NET_PRIO is not set CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y CONFIG_BPF_JIT=y CONFIG_BPF_STREAM_PARSER=y CONFIG_NET_FLOW_LIMIT=y # # Network testing # CONFIG_NET_PKTGEN=m CONFIG_NET_DROP_MONITOR=y # CONFIG_HAMRADIO is not set CONFIG_CAN=m CONFIG_CAN_RAW=m CONFIG_CAN_BCM=m CONFIG_CAN_GW=m # # CAN Device Drivers # CONFIG_CAN_VCAN=m # CONFIG_CAN_VXCAN is not set # CONFIG_CAN_SLCAN is not set CONFIG_CAN_DEV=m CONFIG_CAN_CALC_BITTIMING=y # CONFIG_CAN_C_CAN is not set # CONFIG_CAN_CC770 is not set # CONFIG_CAN_IFI_CANFD is not set # CONFIG_CAN_M_CAN is not set # CONFIG_CAN_PEAK_PCIEFD is not set # CONFIG_CAN_SJA1000 is not set # CONFIG_CAN_SOFTING is not set # # CAN SPI interfaces # # CONFIG_CAN_HI311X is not set # CONFIG_CAN_MCP251X is not set # # CAN USB interfaces # # CONFIG_CAN_8DEV_USB is not set # CONFIG_CAN_EMS_USB is not set # CONFIG_CAN_ESD_USB2 is not set # CONFIG_CAN_GS_USB is not set # CONFIG_CAN_KVASER_USB is not set # CONFIG_CAN_MCBA_USB is not set # CONFIG_CAN_PEAK_USB is not set # CONFIG_CAN_UCAN is not set # CONFIG_CAN_DEBUG_DEVICES is not set # CONFIG_BT is not set # CONFIG_AF_RXRPC is not set # CONFIG_AF_KCM is not set CONFIG_STREAM_PARSER=y CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y CONFIG_WEXT_CORE=y CONFIG_WEXT_PROC=y CONFIG_WEXT_PRIV=y CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_CERTIFICATION_ONUS is not set CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set CONFIG_CFG80211_CRDA_SUPPORT=y CONFIG_CFG80211_WEXT=y CONFIG_LIB80211=m # CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y CONFIG_MAC80211_DEBUGFS=y # CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 # CONFIG_WIMAX is not set CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y # CONFIG_RFKILL_GPIO is not set CONFIG_NET_9P=y CONFIG_NET_9P_VIRTIO=y # CONFIG_NET_9P_XEN is not set # CONFIG_NET_9P_DEBUG is not set # CONFIG_CAIF is not set # CONFIG_CEPH_LIB is not set # CONFIG_NFC is not set # CONFIG_PSAMPLE is not set # CONFIG_NET_IFE is not set CONFIG_LWTUNNEL=y CONFIG_LWTUNNEL_BPF=y CONFIG_DST_CACHE=y CONFIG_GRO_CELLS=y CONFIG_NET_SOCK_MSG=y # CONFIG_NET_DEVLINK is not set CONFIG_MAY_USE_DEVLINK=y CONFIG_FAILOVER=y CONFIG_HAVE_EBPF_JIT=y # # Device Drivers # # # Generic Driver Options # CONFIG_UEVENT_HELPER=y CONFIG_UEVENT_HELPER_PATH="" CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y # # Firmware loader # CONFIG_FW_LOADER=y CONFIG_EXTRA_FIRMWARE="" CONFIG_FW_LOADER_USER_HELPER=y CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y CONFIG_ALLOW_DEV_COREDUMP=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_SYS_HYPERVISOR=y CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_REGMAP=y CONFIG_REGMAP_I2C=y CONFIG_REGMAP_SPI=y CONFIG_DMA_SHARED_BUFFER=y # CONFIG_DMA_FENCE_TRACE is not set CONFIG_DMA_CMA=y # # Default contiguous memory area size: # CONFIG_CMA_SIZE_MBYTES=200 CONFIG_CMA_SIZE_SEL_MBYTES=y # CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set # CONFIG_CMA_SIZE_SEL_MIN is not set # CONFIG_CMA_SIZE_SEL_MAX is not set CONFIG_CMA_ALIGNMENT=8 # # Bus devices # CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y # CONFIG_GNSS is not set CONFIG_MTD=m # CONFIG_MTD_TESTS is not set # CONFIG_MTD_REDBOOT_PARTS is not set # CONFIG_MTD_CMDLINE_PARTS is not set # CONFIG_MTD_AR7_PARTS is not set # # Partition parsers # # # User Modules And Translation Layers # CONFIG_MTD_BLKDEVS=m CONFIG_MTD_BLOCK=m # CONFIG_MTD_BLOCK_RO is not set # CONFIG_FTL is not set # CONFIG_NFTL is not set # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set # CONFIG_SM_FTL is not set # CONFIG_MTD_OOPS is not set # CONFIG_MTD_SWAP is not set # CONFIG_MTD_PARTITIONED_MASTER is not set # # RAM/ROM/Flash chip drivers # # CONFIG_MTD_CFI is not set # CONFIG_MTD_JEDECPROBE is not set CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y CONFIG_MTD_CFI_I1=y CONFIG_MTD_CFI_I2=y # CONFIG_MTD_RAM is not set # CONFIG_MTD_ROM is not set # CONFIG_MTD_ABSENT is not set # # Mapping drivers for chip access # # CONFIG_MTD_COMPLEX_MAPPINGS is not set # CONFIG_MTD_INTEL_VR_NOR is not set # CONFIG_MTD_PLATRAM is not set # # Self-contained MTD device drivers # # CONFIG_MTD_PMC551 is not set # CONFIG_MTD_DATAFLASH is not set # CONFIG_MTD_MCHP23K256 is not set # CONFIG_MTD_SST25L is not set # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_MTDRAM is not set # CONFIG_MTD_BLOCK2MTD is not set # # Disk-On-Chip Device Drivers # # CONFIG_MTD_DOCG3 is not set # CONFIG_MTD_ONENAND is not set # CONFIG_MTD_NAND is not set # CONFIG_MTD_SPI_NAND is not set # # LPDDR & LPDDR2 PCM memory drivers # # CONFIG_MTD_LPDDR is not set # CONFIG_MTD_SPI_NOR is not set CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_LIMIT=20 # CONFIG_MTD_UBI_FASTMAP is not set # CONFIG_MTD_UBI_GLUEBI is not set # CONFIG_MTD_UBI_BLOCK is not set # CONFIG_OF is not set CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m # CONFIG_PARPORT_PC_FIFO is not set # CONFIG_PARPORT_PC_SUPERIO is not set # CONFIG_PARPORT_AX88796 is not set CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y CONFIG_PNP=y # CONFIG_PNP_DEBUG_MESSAGES is not set # # Protocols # CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_NULL_BLK=m CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y CONFIG_BLK_DEV_FD=m CONFIG_CDROM=m # CONFIG_PARIDE is not set CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m # CONFIG_ZRAM is not set # CONFIG_BLK_DEV_UMEM is not set CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=m # CONFIG_BLK_DEV_SKD is not set CONFIG_BLK_DEV_SX8=m CONFIG_BLK_DEV_RAM=m CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set CONFIG_ATA_OVER_ETH=m CONFIG_XEN_BLKDEV_FRONTEND=m # CONFIG_XEN_BLKDEV_BACKEND is not set CONFIG_VIRTIO_BLK=y # CONFIG_VIRTIO_BLK_SCSI is not set # CONFIG_BLK_DEV_RBD is not set CONFIG_BLK_DEV_RSXX=m # # NVME Support # CONFIG_NVME_CORE=m CONFIG_BLK_DEV_NVME=m CONFIG_NVME_MULTIPATH=y CONFIG_NVME_FABRICS=m # CONFIG_NVME_FC is not set CONFIG_NVME_TARGET=m CONFIG_NVME_TARGET_LOOP=m # CONFIG_NVME_TARGET_FC is not set # # Misc devices # CONFIG_SENSORS_LIS3LV02D=m # CONFIG_AD525X_DPOT is not set # CONFIG_DUMMY_IRQ is not set # CONFIG_IBM_ASM is not set # CONFIG_PHANTOM is not set CONFIG_SGI_IOC4=m CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m # CONFIG_ICS932S401 is not set CONFIG_ENCLOSURE_SERVICES=m CONFIG_SGI_XP=m CONFIG_HP_ILO=m CONFIG_SGI_GRU=m # CONFIG_SGI_GRU_DEBUG is not set CONFIG_APDS9802ALS=m CONFIG_ISL29003=m CONFIG_ISL29020=m CONFIG_SENSORS_TSL2550=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_APDS990X=m # CONFIG_HMC6352 is not set # CONFIG_DS1682 is not set CONFIG_VMWARE_BALLOON=m # CONFIG_USB_SWITCH_FSA9480 is not set # CONFIG_LATTICE_ECP3_CONFIG is not set # CONFIG_SRAM is not set # CONFIG_PCI_ENDPOINT_TEST is not set # CONFIG_C2PORT is not set # # EEPROM support # CONFIG_EEPROM_AT24=m # CONFIG_EEPROM_AT25 is not set CONFIG_EEPROM_LEGACY=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m # CONFIG_EEPROM_93XX46 is not set # CONFIG_EEPROM_IDT_89HPESX is not set # CONFIG_EEPROM_EE1004 is not set CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y # # Texas Instruments shared transport line discipline # # CONFIG_TI_ST is not set CONFIG_SENSORS_LIS3_I2C=m CONFIG_ALTERA_STAPL=m CONFIG_INTEL_MEI=y CONFIG_INTEL_MEI_ME=y # CONFIG_INTEL_MEI_TXE is not set CONFIG_VMWARE_VMCI=m # # Intel MIC & related support # # # Intel MIC Bus Driver # # CONFIG_INTEL_MIC_BUS is not set # # SCIF Bus Driver # # CONFIG_SCIF_BUS is not set # # VOP Bus Driver # # CONFIG_VOP_BUS is not set # # Intel MIC Host Driver # # # Intel MIC Card Driver # # # SCIF Driver # # # Intel MIC Coprocessor State Management (COSM) Drivers # # # VOP Driver # # CONFIG_GENWQE is not set # CONFIG_ECHO is not set # CONFIG_MISC_RTSX_PCI is not set # CONFIG_MISC_RTSX_USB is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set # # SCSI device support # CONFIG_SCSI_MOD=y CONFIG_RAID_ATTRS=m CONFIG_SCSI=y CONFIG_SCSI_DMA=y CONFIG_SCSI_NETLINK=y # CONFIG_SCSI_MQ_DEFAULT is not set CONFIG_SCSI_PROC_FS=y # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=m CONFIG_CHR_DEV_ST=m CONFIG_CHR_DEV_OSST=m CONFIG_BLK_DEV_SR=m CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_CHR_DEV_SG=m CONFIG_CHR_DEV_SCH=m CONFIG_SCSI_ENCLOSURE=m CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y CONFIG_SCSI_SCAN_ASYNC=y # # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=m CONFIG_SCSI_FC_ATTRS=m CONFIG_SCSI_ISCSI_ATTRS=m CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y CONFIG_SCSI_SRP_ATTRS=m CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m CONFIG_ISCSI_BOOT_SYSFS=m CONFIG_SCSI_CXGB3_ISCSI=m CONFIG_SCSI_CXGB4_ISCSI=m CONFIG_SCSI_BNX2_ISCSI=m CONFIG_SCSI_BNX2X_FCOE=m CONFIG_BE2ISCSI=m # CONFIG_BLK_DEV_3W_XXXX_RAID is not set CONFIG_SCSI_HPSA=m CONFIG_SCSI_3W_9XXX=m CONFIG_SCSI_3W_SAS=m # CONFIG_SCSI_ACARD is not set CONFIG_SCSI_AACRAID=m # CONFIG_SCSI_AIC7XXX is not set CONFIG_SCSI_AIC79XX=m CONFIG_AIC79XX_CMDS_PER_DEVICE=4 CONFIG_AIC79XX_RESET_DELAY_MS=15000 # CONFIG_AIC79XX_DEBUG_ENABLE is not set CONFIG_AIC79XX_DEBUG_MASK=0 # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set # CONFIG_SCSI_AIC94XX is not set CONFIG_SCSI_MVSAS=m # CONFIG_SCSI_MVSAS_DEBUG is not set CONFIG_SCSI_MVSAS_TASKLET=y CONFIG_SCSI_MVUMI=m # CONFIG_SCSI_DPT_I2O is not set # CONFIG_SCSI_ADVANSYS is not set CONFIG_SCSI_ARCMSR=m # CONFIG_SCSI_ESAS2R is not set # CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_LEGACY is not set CONFIG_MEGARAID_SAS=m CONFIG_SCSI_MPT3SAS=m CONFIG_SCSI_MPT2SAS_MAX_SGE=128 CONFIG_SCSI_MPT3SAS_MAX_SGE=128 CONFIG_SCSI_MPT2SAS=m # CONFIG_SCSI_SMARTPQI is not set CONFIG_SCSI_UFSHCD=m CONFIG_SCSI_UFSHCD_PCI=m # CONFIG_SCSI_UFS_DWC_TC_PCI is not set # CONFIG_SCSI_UFSHCD_PLATFORM is not set # CONFIG_SCSI_UFS_BSG is not set CONFIG_SCSI_HPTIOP=m # CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_MYRB is not set # CONFIG_SCSI_MYRS is not set CONFIG_VMWARE_PVSCSI=m # CONFIG_XEN_SCSI_FRONTEND is not set CONFIG_HYPERV_STORAGE=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m CONFIG_FCOE=m CONFIG_FCOE_FNIC=m # CONFIG_SCSI_SNIC is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_GDTH is not set CONFIG_SCSI_ISCI=m # CONFIG_SCSI_IPS is not set CONFIG_SCSI_INITIO=m # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_PPA is not set # CONFIG_SCSI_IMM is not set CONFIG_SCSI_STEX=m # CONFIG_SCSI_SYM53C8XX_2 is not set CONFIG_SCSI_IPR=m CONFIG_SCSI_IPR_TRACE=y CONFIG_SCSI_IPR_DUMP=y # CONFIG_SCSI_QLOGIC_1280 is not set CONFIG_SCSI_QLA_FC=m # CONFIG_TCM_QLA2XXX is not set CONFIG_SCSI_QLA_ISCSI=m # CONFIG_SCSI_LPFC is not set # CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_AM53C974 is not set # CONFIG_SCSI_WD719X is not set CONFIG_SCSI_DEBUG=m CONFIG_SCSI_PMCRAID=m CONFIG_SCSI_PM8001=m # CONFIG_SCSI_BFA_FC is not set CONFIG_SCSI_VIRTIO=m CONFIG_SCSI_CHELSIO_FCOE=m CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=y CONFIG_SCSI_DH_HP_SW=y CONFIG_SCSI_DH_EMC=y CONFIG_SCSI_DH_ALUA=y CONFIG_SCSI_OSD_INITIATOR=m CONFIG_SCSI_OSD_ULD=m CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_SCSI_OSD_DEBUG is not set CONFIG_ATA=m CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y # CONFIG_SATA_ZPODD is not set CONFIG_SATA_PMP=y # # Controllers with non-SFF native interface # CONFIG_SATA_AHCI=m CONFIG_SATA_MOBILE_LPM_POLICY=0 CONFIG_SATA_AHCI_PLATFORM=m # CONFIG_SATA_INIC162X is not set CONFIG_SATA_ACARD_AHCI=m CONFIG_SATA_SIL24=m CONFIG_ATA_SFF=y # # SFF controllers with custom DMA interface # CONFIG_PDC_ADMA=m CONFIG_SATA_QSTOR=m CONFIG_SATA_SX4=m CONFIG_ATA_BMDMA=y # # SATA SFF controllers with BMDMA # CONFIG_ATA_PIIX=m # CONFIG_SATA_DWC is not set CONFIG_SATA_MV=m CONFIG_SATA_NV=m CONFIG_SATA_PROMISE=m CONFIG_SATA_SIL=m CONFIG_SATA_SIS=m CONFIG_SATA_SVW=m CONFIG_SATA_ULI=m CONFIG_SATA_VIA=m CONFIG_SATA_VITESSE=m # # PATA SFF controllers with BMDMA # CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m CONFIG_PATA_ARTOP=m CONFIG_PATA_ATIIXP=m CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD64X=m # CONFIG_PATA_CYPRESS is not set # CONFIG_PATA_EFAR is not set CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m # CONFIG_PATA_HPT3X3_DMA is not set CONFIG_PATA_IT8213=m CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m CONFIG_PATA_MARVELL=m CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m # CONFIG_PATA_NS87415 is not set CONFIG_PATA_OLDPIIX=m # CONFIG_PATA_OPTIDMA is not set CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_RADISYS is not set CONFIG_PATA_RDC=m CONFIG_PATA_SCH=m CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m CONFIG_PATA_TOSHIBA=m # CONFIG_PATA_TRIFLEX is not set CONFIG_PATA_VIA=m # CONFIG_PATA_WINBOND is not set # # PIO-only SFF controllers # # CONFIG_PATA_CMD640_PCI is not set # CONFIG_PATA_MPIIX is not set # CONFIG_PATA_NS87410 is not set # CONFIG_PATA_OPTI is not set # CONFIG_PATA_PLATFORM is not set # CONFIG_PATA_RZ1000 is not set # # Generic fallback / legacy drivers # CONFIG_PATA_ACPI=m CONFIG_ATA_GENERIC=m # CONFIG_PATA_LEGACY is not set CONFIG_MD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_AUTODETECT=y CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m CONFIG_MD_MULTIPATH=m CONFIG_MD_FAULTY=m # CONFIG_MD_CLUSTER is not set # CONFIG_BCACHE is not set CONFIG_BLK_DEV_DM_BUILTIN=y CONFIG_BLK_DEV_DM=m CONFIG_DM_DEBUG=y CONFIG_DM_BUFIO=m # CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m # CONFIG_DM_UNSTRIPED is not set CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_CACHE=m CONFIG_DM_CACHE_SMQ=m # CONFIG_DM_WRITECACHE is not set # CONFIG_DM_ERA is not set CONFIG_DM_MIRROR=m CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_RAID=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m CONFIG_DM_DELAY=m CONFIG_DM_UEVENT=y CONFIG_DM_FLAKEY=m CONFIG_DM_VERITY=m # CONFIG_DM_VERITY_FEC is not set CONFIG_DM_SWITCH=m CONFIG_DM_LOG_WRITES=m # CONFIG_DM_INTEGRITY is not set CONFIG_TARGET_CORE=m CONFIG_TCM_IBLOCK=m CONFIG_TCM_FILEIO=m CONFIG_TCM_PSCSI=m # CONFIG_TCM_USER2 is not set CONFIG_LOOPBACK_TARGET=m CONFIG_TCM_FC=m CONFIG_ISCSI_TARGET=m # CONFIG_ISCSI_TARGET_CXGB4 is not set # CONFIG_SBP_TARGET is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m # CONFIG_FUSION_FC is not set CONFIG_FUSION_SAS=m CONFIG_FUSION_MAX_SGE=128 CONFIG_FUSION_CTL=m CONFIG_FUSION_LOGGING=y # # IEEE 1394 (FireWire) support # CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m CONFIG_FIREWIRE_SBP2=m CONFIG_FIREWIRE_NET=m # CONFIG_FIREWIRE_NOSY is not set CONFIG_MACINTOSH_DRIVERS=y CONFIG_MAC_EMUMOUSEBTN=y CONFIG_NETDEVICES=y CONFIG_MII=y CONFIG_NET_CORE=y CONFIG_BONDING=m CONFIG_DUMMY=m # CONFIG_EQUALIZER is not set CONFIG_NET_FC=y CONFIG_IFB=m CONFIG_NET_TEAM=m CONFIG_NET_TEAM_MODE_BROADCAST=m CONFIG_NET_TEAM_MODE_ROUNDROBIN=m CONFIG_NET_TEAM_MODE_RANDOM=m CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m CONFIG_NET_TEAM_MODE_LOADBALANCE=m CONFIG_MACVLAN=m CONFIG_MACVTAP=m # CONFIG_IPVLAN is not set CONFIG_VXLAN=m # CONFIG_GENEVE is not set # CONFIG_GTP is not set CONFIG_MACSEC=y CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y CONFIG_NETPOLL=y CONFIG_NET_POLL_CONTROLLER=y CONFIG_TUN=m CONFIG_TAP=m # CONFIG_TUN_VNET_CROSS_LE is not set CONFIG_VETH=m CONFIG_VIRTIO_NET=y CONFIG_NLMON=m CONFIG_NET_VRF=y # CONFIG_ARCNET is not set # CONFIG_ATM_DRIVERS is not set # # CAIF transport drivers # # # Distributed Switch Architecture drivers # CONFIG_ETHERNET=y CONFIG_MDIO=y # CONFIG_NET_VENDOR_3COM is not set # CONFIG_NET_VENDOR_ADAPTEC is not set CONFIG_NET_VENDOR_AGERE=y # CONFIG_ET131X is not set CONFIG_NET_VENDOR_ALACRITECH=y # CONFIG_SLICOSS is not set # CONFIG_NET_VENDOR_ALTEON is not set # CONFIG_ALTERA_TSE is not set CONFIG_NET_VENDOR_AMAZON=y # CONFIG_ENA_ETHERNET is not set # CONFIG_NET_VENDOR_AMD is not set CONFIG_NET_VENDOR_AQUANTIA=y # CONFIG_AQTION is not set CONFIG_NET_VENDOR_ARC=y CONFIG_NET_VENDOR_ATHEROS=y CONFIG_ATL2=m CONFIG_ATL1=m CONFIG_ATL1E=m CONFIG_ATL1C=m CONFIG_ALX=m # CONFIG_NET_VENDOR_AURORA is not set CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y CONFIG_B44_PCICORE_AUTOSELECT=y CONFIG_B44_PCI=y # CONFIG_BCMGENET is not set CONFIG_BNX2=m CONFIG_CNIC=m CONFIG_TIGON3=y CONFIG_TIGON3_HWMON=y # CONFIG_BNX2X is not set # CONFIG_SYSTEMPORT is not set # CONFIG_BNXT is not set CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=m CONFIG_NET_VENDOR_CADENCE=y # CONFIG_MACB is not set CONFIG_NET_VENDOR_CAVIUM=y # CONFIG_THUNDER_NIC_PF is not set # CONFIG_THUNDER_NIC_VF is not set # CONFIG_THUNDER_NIC_BGX is not set # CONFIG_THUNDER_NIC_RGX is not set CONFIG_CAVIUM_PTP=y # CONFIG_LIQUIDIO is not set # CONFIG_LIQUIDIO_VF is not set CONFIG_NET_VENDOR_CHELSIO=y # CONFIG_CHELSIO_T1 is not set CONFIG_CHELSIO_T3=m CONFIG_CHELSIO_T4=m # CONFIG_CHELSIO_T4_DCB is not set CONFIG_CHELSIO_T4VF=m CONFIG_CHELSIO_LIB=m CONFIG_NET_VENDOR_CISCO=y CONFIG_ENIC=m CONFIG_NET_VENDOR_CORTINA=y # CONFIG_CX_ECAT is not set CONFIG_DNET=m CONFIG_NET_VENDOR_DEC=y CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 CONFIG_TULIP=y # CONFIG_TULIP_MWI is not set CONFIG_TULIP_MMIO=y # CONFIG_TULIP_NAPI is not set CONFIG_DE4X5=m CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m # CONFIG_NET_VENDOR_DLINK is not set CONFIG_NET_VENDOR_EMULEX=y CONFIG_BE2NET=m CONFIG_BE2NET_HWMON=y CONFIG_BE2NET_BE2=y CONFIG_BE2NET_BE3=y CONFIG_BE2NET_LANCER=y CONFIG_BE2NET_SKYHAWK=y CONFIG_NET_VENDOR_EZCHIP=y # CONFIG_NET_VENDOR_HP is not set CONFIG_NET_VENDOR_HUAWEI=y # CONFIG_HINIC is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y # CONFIG_E100 is not set CONFIG_E1000=y CONFIG_E1000E=y CONFIG_E1000E_HWTS=y CONFIG_IGB=y CONFIG_IGB_HWMON=y CONFIG_IGBVF=m CONFIG_IXGB=m CONFIG_IXGBE=y CONFIG_IXGBE_HWMON=y CONFIG_IXGBE_DCB=y CONFIG_IXGBEVF=m CONFIG_I40E=m # CONFIG_I40E_DCB is not set # CONFIG_I40EVF is not set # CONFIG_ICE is not set # CONFIG_FM10K is not set # CONFIG_IGC is not set CONFIG_JME=m CONFIG_NET_VENDOR_MARVELL=y CONFIG_MVMDIO=m CONFIG_SKGE=m CONFIG_SKGE_DEBUG=y CONFIG_SKGE_GENESIS=y CONFIG_SKY2=m CONFIG_SKY2_DEBUG=y CONFIG_NET_VENDOR_MELLANOX=y CONFIG_MLX4_EN=m CONFIG_MLX4_EN_DCB=y CONFIG_MLX4_CORE=m CONFIG_MLX4_DEBUG=y CONFIG_MLX4_CORE_GEN2=y # CONFIG_MLX5_CORE is not set # CONFIG_MLXSW_CORE is not set # CONFIG_MLXFW is not set # CONFIG_NET_VENDOR_MICREL is not set CONFIG_NET_VENDOR_MICROCHIP=y # CONFIG_ENC28J60 is not set # CONFIG_ENCX24J600 is not set # CONFIG_LAN743X is not set CONFIG_NET_VENDOR_MICROSEMI=y CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m # CONFIG_FEALNX is not set # CONFIG_NET_VENDOR_NATSEMI is not set CONFIG_NET_VENDOR_NETERION=y # CONFIG_S2IO is not set # CONFIG_VXGE is not set CONFIG_NET_VENDOR_NETRONOME=y # CONFIG_NFP is not set CONFIG_NET_VENDOR_NI=y # CONFIG_NI_XGE_MANAGEMENT_ENET is not set # CONFIG_NET_VENDOR_NVIDIA is not set CONFIG_NET_VENDOR_OKI=y CONFIG_ETHOC=m CONFIG_NET_VENDOR_PACKET_ENGINES=y # CONFIG_HAMACHI is not set CONFIG_YELLOWFIN=m CONFIG_NET_VENDOR_QLOGIC=y CONFIG_QLA3XXX=m CONFIG_QLCNIC=m CONFIG_QLCNIC_SRIOV=y CONFIG_QLCNIC_DCB=y CONFIG_QLCNIC_HWMON=y CONFIG_QLGE=m CONFIG_NETXEN_NIC=m # CONFIG_QED is not set CONFIG_NET_VENDOR_QUALCOMM=y # CONFIG_QCOM_EMAC is not set # CONFIG_RMNET is not set # CONFIG_NET_VENDOR_RDC is not set CONFIG_NET_VENDOR_REALTEK=y # CONFIG_ATP is not set CONFIG_8139CP=y CONFIG_8139TOO=y CONFIG_8139TOO_PIO=y # CONFIG_8139TOO_TUNE_TWISTER is not set CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set CONFIG_R8169=y CONFIG_NET_VENDOR_RENESAS=y CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SAMSUNG=y # CONFIG_SXGBE_ETH is not set # CONFIG_NET_VENDOR_SEEQ is not set CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_SFC=m CONFIG_SFC_MTD=y CONFIG_SFC_MCDI_MON=y CONFIG_SFC_SRIOV=y CONFIG_SFC_MCDI_LOGGING=y # CONFIG_SFC_FALCON is not set # CONFIG_NET_VENDOR_SILAN is not set # CONFIG_NET_VENDOR_SIS is not set CONFIG_NET_VENDOR_SMSC=y CONFIG_EPIC100=m # CONFIG_SMSC911X is not set CONFIG_SMSC9420=m CONFIG_NET_VENDOR_SOCIONEXT=y # CONFIG_NET_VENDOR_STMICRO is not set # CONFIG_NET_VENDOR_SUN is not set CONFIG_NET_VENDOR_SYNOPSYS=y # CONFIG_DWC_XLGMAC is not set # CONFIG_NET_VENDOR_TEHUTI is not set # CONFIG_NET_VENDOR_TI is not set # CONFIG_NET_VENDOR_VIA is not set # CONFIG_NET_VENDOR_WIZNET is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_NET_SB1000 is not set CONFIG_MDIO_DEVICE=y CONFIG_MDIO_BUS=y # CONFIG_MDIO_BCM_UNIMAC is not set CONFIG_MDIO_BITBANG=m # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_MSCC_MIIM is not set # CONFIG_MDIO_THUNDER is not set CONFIG_PHYLIB=y CONFIG_SWPHY=y # CONFIG_LED_TRIGGER_PHY is not set # # MII PHY device drivers # CONFIG_AMD_PHY=m # CONFIG_AQUANTIA_PHY is not set # CONFIG_ASIX_PHY is not set CONFIG_AT803X_PHY=m # CONFIG_BCM7XXX_PHY is not set CONFIG_BCM87XX_PHY=m CONFIG_BCM_NET_PHYLIB=m CONFIG_BROADCOM_PHY=m CONFIG_CICADA_PHY=m # CONFIG_CORTINA_PHY is not set CONFIG_DAVICOM_PHY=m # CONFIG_DP83822_PHY is not set # CONFIG_DP83TC811_PHY is not set # CONFIG_DP83848_PHY is not set # CONFIG_DP83867_PHY is not set CONFIG_FIXED_PHY=y CONFIG_ICPLUS_PHY=m # CONFIG_INTEL_XWAY_PHY is not set CONFIG_LSI_ET1011C_PHY=m CONFIG_LXT_PHY=m CONFIG_MARVELL_PHY=m # CONFIG_MARVELL_10G_PHY is not set CONFIG_MICREL_PHY=m # CONFIG_MICROCHIP_PHY is not set # CONFIG_MICROCHIP_T1_PHY is not set # CONFIG_MICROSEMI_PHY is not set CONFIG_NATIONAL_PHY=m CONFIG_QSEMI_PHY=m CONFIG_REALTEK_PHY=y # CONFIG_RENESAS_PHY is not set # CONFIG_ROCKCHIP_PHY is not set CONFIG_SMSC_PHY=m CONFIG_STE10XP=m # CONFIG_TERANETICS_PHY is not set CONFIG_VITESSE_PHY=m # CONFIG_XILINX_GMII2RGMII is not set # CONFIG_MICREL_KS8995MA is not set # CONFIG_PLIP is not set CONFIG_PPP=m CONFIG_PPP_BSDCOMP=m CONFIG_PPP_DEFLATE=m CONFIG_PPP_FILTER=y CONFIG_PPP_MPPE=m CONFIG_PPP_MULTILINK=y CONFIG_PPPOATM=m CONFIG_PPPOE=m CONFIG_PPTP=m CONFIG_PPPOL2TP=m CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m CONFIG_SLIP=m CONFIG_SLHC=m CONFIG_SLIP_COMPRESSED=y CONFIG_SLIP_SMART=y # CONFIG_SLIP_MODE_SLIP6 is not set CONFIG_USB_NET_DRIVERS=y CONFIG_USB_CATC=y CONFIG_USB_KAWETH=y CONFIG_USB_PEGASUS=y CONFIG_USB_RTL8150=y CONFIG_USB_RTL8152=m # CONFIG_USB_LAN78XX is not set CONFIG_USB_USBNET=y CONFIG_USB_NET_AX8817X=y CONFIG_USB_NET_AX88179_178A=m CONFIG_USB_NET_CDCETHER=y CONFIG_USB_NET_CDC_EEM=y CONFIG_USB_NET_CDC_NCM=m # CONFIG_USB_NET_HUAWEI_CDC_NCM is not set CONFIG_USB_NET_CDC_MBIM=m CONFIG_USB_NET_DM9601=y # CONFIG_USB_NET_SR9700 is not set # CONFIG_USB_NET_SR9800 is not set CONFIG_USB_NET_SMSC75XX=y CONFIG_USB_NET_SMSC95XX=y CONFIG_USB_NET_GL620A=y CONFIG_USB_NET_NET1080=y CONFIG_USB_NET_PLUSB=y CONFIG_USB_NET_MCS7830=y CONFIG_USB_NET_RNDIS_HOST=y CONFIG_USB_NET_CDC_SUBSET_ENABLE=y CONFIG_USB_NET_CDC_SUBSET=y CONFIG_USB_ALI_M5632=y CONFIG_USB_AN2720=y CONFIG_USB_BELKIN=y CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=y CONFIG_USB_NET_CX82310_ETH=m CONFIG_USB_NET_KALMIA=m CONFIG_USB_NET_QMI_WWAN=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=y CONFIG_USB_IPHETH=y CONFIG_USB_SIERRA_NET=y CONFIG_USB_VL600=m # CONFIG_USB_NET_CH9200 is not set CONFIG_WLAN=y # CONFIG_WIRELESS_WDS is not set CONFIG_WLAN_VENDOR_ADMTEK=y # CONFIG_ADM8211 is not set CONFIG_WLAN_VENDOR_ATH=y # CONFIG_ATH_DEBUG is not set # CONFIG_ATH5K is not set # CONFIG_ATH5K_PCI is not set # CONFIG_ATH9K is not set # CONFIG_ATH9K_HTC is not set # CONFIG_CARL9170 is not set # CONFIG_ATH6KL is not set # CONFIG_AR5523 is not set # CONFIG_WIL6210 is not set # CONFIG_ATH10K is not set # CONFIG_WCN36XX is not set CONFIG_WLAN_VENDOR_ATMEL=y # CONFIG_ATMEL is not set # CONFIG_AT76C50X_USB is not set CONFIG_WLAN_VENDOR_BROADCOM=y # CONFIG_B43 is not set # CONFIG_B43LEGACY is not set # CONFIG_BRCMSMAC is not set # CONFIG_BRCMFMAC is not set CONFIG_WLAN_VENDOR_CISCO=y # CONFIG_AIRO is not set CONFIG_WLAN_VENDOR_INTEL=y # CONFIG_IPW2100 is not set # CONFIG_IPW2200 is not set # CONFIG_IWL4965 is not set # CONFIG_IWL3945 is not set # CONFIG_IWLWIFI is not set CONFIG_WLAN_VENDOR_INTERSIL=y # CONFIG_HOSTAP is not set # CONFIG_HERMES is not set # CONFIG_P54_COMMON is not set # CONFIG_PRISM54 is not set CONFIG_WLAN_VENDOR_MARVELL=y # CONFIG_LIBERTAS is not set # CONFIG_LIBERTAS_THINFIRM is not set # CONFIG_MWIFIEX is not set # CONFIG_MWL8K is not set CONFIG_WLAN_VENDOR_MEDIATEK=y # CONFIG_MT7601U is not set # CONFIG_MT76x0U is not set # CONFIG_MT76x0E is not set # CONFIG_MT76x2E is not set # CONFIG_MT76x2U is not set CONFIG_WLAN_VENDOR_RALINK=y # CONFIG_RT2X00 is not set CONFIG_WLAN_VENDOR_REALTEK=y # CONFIG_RTL8180 is not set # CONFIG_RTL8187 is not set CONFIG_RTL_CARDS=m # CONFIG_RTL8192CE is not set # CONFIG_RTL8192SE is not set # CONFIG_RTL8192DE is not set # CONFIG_RTL8723AE is not set # CONFIG_RTL8723BE is not set # CONFIG_RTL8188EE is not set # CONFIG_RTL8192EE is not set # CONFIG_RTL8821AE is not set # CONFIG_RTL8192CU is not set # CONFIG_RTL8XXXU is not set CONFIG_WLAN_VENDOR_RSI=y # CONFIG_RSI_91X is not set CONFIG_WLAN_VENDOR_ST=y # CONFIG_CW1200 is not set CONFIG_WLAN_VENDOR_TI=y # CONFIG_WL1251 is not set # CONFIG_WL12XX is not set # CONFIG_WL18XX is not set # CONFIG_WLCORE is not set CONFIG_WLAN_VENDOR_ZYDAS=y # CONFIG_USB_ZD1201 is not set # CONFIG_ZD1211RW is not set CONFIG_WLAN_VENDOR_QUANTENNA=y # CONFIG_QTNFMAC_PEARL_PCIE is not set CONFIG_MAC80211_HWSIM=m # CONFIG_USB_NET_RNDIS_WLAN is not set # # Enable WiMAX (Networking options) to see the WiMAX drivers # CONFIG_WAN=y # CONFIG_LANMEDIA is not set CONFIG_HDLC=m CONFIG_HDLC_RAW=m # CONFIG_HDLC_RAW_ETH is not set CONFIG_HDLC_CISCO=m CONFIG_HDLC_FR=m CONFIG_HDLC_PPP=m # # X.25/LAPB support is disabled # # CONFIG_PCI200SYN is not set # CONFIG_WANXL is not set # CONFIG_PC300TOO is not set # CONFIG_FARSYNC is not set # CONFIG_DSCC4 is not set CONFIG_DLCI=m CONFIG_DLCI_MAX=8 # CONFIG_SBNI is not set CONFIG_IEEE802154_DRIVERS=m CONFIG_IEEE802154_FAKELB=m # CONFIG_IEEE802154_AT86RF230 is not set # CONFIG_IEEE802154_MRF24J40 is not set # CONFIG_IEEE802154_CC2520 is not set # CONFIG_IEEE802154_ATUSB is not set # CONFIG_IEEE802154_ADF7242 is not set # CONFIG_IEEE802154_CA8210 is not set # CONFIG_IEEE802154_MCR20A is not set # CONFIG_IEEE802154_HWSIM is not set CONFIG_XEN_NETDEV_FRONTEND=m # CONFIG_XEN_NETDEV_BACKEND is not set CONFIG_VMXNET3=m # CONFIG_FUJITSU_ES is not set CONFIG_HYPERV_NET=m CONFIG_NETDEVSIM=m CONFIG_NET_FAILOVER=y CONFIG_ISDN=y CONFIG_ISDN_I4L=m CONFIG_ISDN_PPP=y CONFIG_ISDN_PPP_VJ=y CONFIG_ISDN_MPP=y CONFIG_IPPP_FILTER=y # CONFIG_ISDN_PPP_BSDCOMP is not set CONFIG_ISDN_AUDIO=y CONFIG_ISDN_TTY_FAX=y # # ISDN feature submodules # CONFIG_ISDN_DIVERSION=m # # ISDN4Linux hardware drivers # # # Passive cards # # CONFIG_ISDN_DRV_HISAX is not set CONFIG_ISDN_CAPI=m # CONFIG_CAPI_TRACE is not set CONFIG_ISDN_CAPI_CAPI20=m CONFIG_ISDN_CAPI_MIDDLEWARE=y CONFIG_ISDN_CAPI_CAPIDRV=m # CONFIG_ISDN_CAPI_CAPIDRV_VERBOSE is not set # # CAPI hardware drivers # CONFIG_CAPI_AVM=y CONFIG_ISDN_DRV_AVMB1_B1PCI=m CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y CONFIG_ISDN_DRV_AVMB1_T1PCI=m CONFIG_ISDN_DRV_AVMB1_C4=m # CONFIG_CAPI_EICON is not set CONFIG_ISDN_DRV_GIGASET=m CONFIG_GIGASET_CAPI=y CONFIG_GIGASET_BASE=m CONFIG_GIGASET_M105=m CONFIG_GIGASET_M101=m # CONFIG_GIGASET_DEBUG is not set CONFIG_HYSDN=m CONFIG_HYSDN_CAPI=y CONFIG_MISDN=m CONFIG_MISDN_DSP=m CONFIG_MISDN_L1OIP=m # # mISDN hardware drivers # CONFIG_MISDN_HFCPCI=m CONFIG_MISDN_HFCMULTI=m CONFIG_MISDN_HFCUSB=m CONFIG_MISDN_AVMFRITZ=m CONFIG_MISDN_SPEEDFAX=m CONFIG_MISDN_INFINEON=m CONFIG_MISDN_W6692=m CONFIG_MISDN_NETJET=m CONFIG_MISDN_IPAC=m CONFIG_MISDN_ISAR=m CONFIG_ISDN_HDLC=m # CONFIG_NVM is not set # # Input device support # CONFIG_INPUT=y CONFIG_INPUT_LEDS=y CONFIG_INPUT_FF_MEMLESS=y CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_SPARSEKMAP=m # CONFIG_INPUT_MATRIXKMAP is not set # # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y # CONFIG_INPUT_MOUSEDEV_PSAUX is not set CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_ADP5588 is not set # CONFIG_KEYBOARD_ADP5589 is not set CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_QT1070 is not set # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_DLINK_DIR685 is not set # CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_GPIO is not set # CONFIG_KEYBOARD_GPIO_POLLED is not set # CONFIG_KEYBOARD_TCA6416 is not set # CONFIG_KEYBOARD_TCA8418 is not set # CONFIG_KEYBOARD_MATRIX is not set # CONFIG_KEYBOARD_LM8323 is not set # CONFIG_KEYBOARD_LM8333 is not set # CONFIG_KEYBOARD_MAX7359 is not set # CONFIG_KEYBOARD_MCS is not set # CONFIG_KEYBOARD_MPR121 is not set # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_OPENCORES is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_STOWAWAY is not set # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_TM2_TOUCHKEY is not set # CONFIG_KEYBOARD_XTKBD is not set CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=y CONFIG_MOUSE_PS2_ALPS=y CONFIG_MOUSE_PS2_BYD=y CONFIG_MOUSE_PS2_LOGIPS2PP=y CONFIG_MOUSE_PS2_SYNAPTICS=y CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y CONFIG_MOUSE_PS2_CYPRESS=y CONFIG_MOUSE_PS2_LIFEBOOK=y CONFIG_MOUSE_PS2_TRACKPOINT=y CONFIG_MOUSE_PS2_ELANTECH=y CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y CONFIG_MOUSE_PS2_SENTELIC=y # CONFIG_MOUSE_PS2_TOUCHKIT is not set CONFIG_MOUSE_PS2_FOCALTECH=y # CONFIG_MOUSE_PS2_VMMOUSE is not set CONFIG_MOUSE_PS2_SMBUS=y CONFIG_MOUSE_SERIAL=m CONFIG_MOUSE_APPLETOUCH=m CONFIG_MOUSE_BCM5974=m CONFIG_MOUSE_CYAPA=m # CONFIG_MOUSE_ELAN_I2C is not set CONFIG_MOUSE_VSXXXAA=m # CONFIG_MOUSE_GPIO is not set CONFIG_MOUSE_SYNAPTICS_I2C=m CONFIG_MOUSE_SYNAPTICS_USB=m # CONFIG_INPUT_JOYSTICK is not set CONFIG_INPUT_TABLET=y CONFIG_TABLET_USB_ACECAD=m CONFIG_TABLET_USB_AIPTEK=m CONFIG_TABLET_USB_GTCO=m # CONFIG_TABLET_USB_HANWANG is not set CONFIG_TABLET_USB_KBTAB=m # CONFIG_TABLET_USB_PEGASUS is not set # CONFIG_TABLET_SERIAL_WACOM4 is not set CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_PROPERTIES=y # CONFIG_TOUCHSCREEN_ADS7846 is not set # CONFIG_TOUCHSCREEN_AD7877 is not set # CONFIG_TOUCHSCREEN_AD7879 is not set # CONFIG_TOUCHSCREEN_ATMEL_MXT is not set # CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set # CONFIG_TOUCHSCREEN_BU21013 is not set # CONFIG_TOUCHSCREEN_BU21029 is not set # CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set # CONFIG_TOUCHSCREEN_CY8CTMG110 is not set # CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set # CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set # CONFIG_TOUCHSCREEN_DYNAPRO is not set # CONFIG_TOUCHSCREEN_HAMPSHIRE is not set # CONFIG_TOUCHSCREEN_EETI is not set # CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set # CONFIG_TOUCHSCREEN_EXC3000 is not set # CONFIG_TOUCHSCREEN_FUJITSU is not set # CONFIG_TOUCHSCREEN_GOODIX is not set # CONFIG_TOUCHSCREEN_HIDEEP is not set # CONFIG_TOUCHSCREEN_ILI210X is not set # CONFIG_TOUCHSCREEN_S6SY761 is not set # CONFIG_TOUCHSCREEN_GUNZE is not set # CONFIG_TOUCHSCREEN_EKTF2127 is not set # CONFIG_TOUCHSCREEN_ELAN is not set # CONFIG_TOUCHSCREEN_ELO is not set CONFIG_TOUCHSCREEN_WACOM_W8001=m CONFIG_TOUCHSCREEN_WACOM_I2C=m # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MMS114 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_MK712 is not set # CONFIG_TOUCHSCREEN_PENMOUNT is not set # CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set # CONFIG_TOUCHSCREEN_TOUCHWIN is not set # CONFIG_TOUCHSCREEN_PIXCIR is not set # CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set # CONFIG_TOUCHSCREEN_WM97XX is not set # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set # CONFIG_TOUCHSCREEN_TSC_SERIO is not set # CONFIG_TOUCHSCREEN_TSC2004 is not set # CONFIG_TOUCHSCREEN_TSC2005 is not set # CONFIG_TOUCHSCREEN_TSC2007 is not set # CONFIG_TOUCHSCREEN_RM_TS is not set # CONFIG_TOUCHSCREEN_SILEAD is not set # CONFIG_TOUCHSCREEN_SIS_I2C is not set # CONFIG_TOUCHSCREEN_ST1232 is not set # CONFIG_TOUCHSCREEN_STMFTS is not set # CONFIG_TOUCHSCREEN_SUR40 is not set # CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set # CONFIG_TOUCHSCREEN_SX8654 is not set # CONFIG_TOUCHSCREEN_TPS6507X is not set # CONFIG_TOUCHSCREEN_ZET6223 is not set # CONFIG_TOUCHSCREEN_ZFORCE is not set # CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set CONFIG_INPUT_MISC=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_E3X0_BUTTON is not set CONFIG_INPUT_PCSPKR=m # CONFIG_INPUT_MMA8450 is not set CONFIG_INPUT_APANEL=m # CONFIG_INPUT_GP2A is not set # CONFIG_INPUT_GPIO_BEEPER is not set # CONFIG_INPUT_GPIO_DECODER is not set CONFIG_INPUT_ATLAS_BTNS=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m # CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m CONFIG_INPUT_UINPUT=m # CONFIG_INPUT_PCF8574 is not set # CONFIG_INPUT_PWM_BEEPER is not set # CONFIG_INPUT_PWM_VIBRA is not set # CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set # CONFIG_INPUT_ADXL34X is not set # CONFIG_INPUT_IMS_PCU is not set # CONFIG_INPUT_CMA3000 is not set CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m # CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set # CONFIG_INPUT_DRV260X_HAPTICS is not set # CONFIG_INPUT_DRV2665_HAPTICS is not set # CONFIG_INPUT_DRV2667_HAPTICS is not set # CONFIG_RMI4_CORE is not set # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PARKBD is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y CONFIG_SERIO_RAW=m CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_PS2MULT is not set CONFIG_SERIO_ARC_PS2=m CONFIG_HYPERV_KEYBOARD=m # CONFIG_SERIO_GPIO_PS2 is not set # CONFIG_USERIO is not set # CONFIG_GAMEPORT is not set # # Character devices # CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y # CONFIG_LEGACY_PTYS is not set CONFIG_SERIAL_NONSTANDARD=y # CONFIG_ROCKETPORT is not set CONFIG_CYCLADES=m # CONFIG_CYZ_INTR is not set CONFIG_MOXA_INTELLIO=m CONFIG_MOXA_SMARTIO=m CONFIG_SYNCLINK=m CONFIG_SYNCLINKMP=m CONFIG_SYNCLINK_GT=m CONFIG_NOZOMI=m # CONFIG_ISI is not set CONFIG_N_HDLC=m CONFIG_N_GSM=m # CONFIG_TRACE_SINK is not set CONFIG_DEVMEM=y # CONFIG_DEVKMEM is not set # # Serial drivers # CONFIG_SERIAL_EARLYCON=y CONFIG_SERIAL_8250=y # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set CONFIG_SERIAL_8250_PNP=y # CONFIG_SERIAL_8250_FINTEK is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_EXAR=y CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y CONFIG_SERIAL_8250_DW=y # CONFIG_SERIAL_8250_RT288X is not set CONFIG_SERIAL_8250_LPSS=y CONFIG_SERIAL_8250_MID=y # CONFIG_SERIAL_8250_MOXA is not set # # Non-8250 serial port support # # CONFIG_SERIAL_MAX3100 is not set # CONFIG_SERIAL_MAX310X is not set # CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_JSM=m # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SC16IS7XX is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_IFX6X60 is not set CONFIG_SERIAL_ARC=m CONFIG_SERIAL_ARC_NR_PORTS=1 # CONFIG_SERIAL_RP2 is not set # CONFIG_SERIAL_FSL_LPUART is not set # CONFIG_SERIAL_DEV_BUS is not set # CONFIG_TTY_PRINTK is not set CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m CONFIG_HVC_DRIVER=y CONFIG_HVC_IRQ=y CONFIG_HVC_XEN=y CONFIG_HVC_XEN_FRONTEND=y CONFIG_VIRTIO_CONSOLE=y CONFIG_IPMI_HANDLER=m CONFIG_IPMI_DMI_DECODE=y # CONFIG_IPMI_PANIC_EVENT is not set CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m # CONFIG_IPMI_SSIF is not set CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_VIA=m CONFIG_HW_RANDOM_VIRTIO=y CONFIG_NVRAM=y # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_MWAVE is not set CONFIG_RAW_DRIVER=y CONFIG_MAX_RAW_DEVS=8192 CONFIG_HPET=y CONFIG_HPET_MMAP=y # CONFIG_HPET_MMAP_DEFAULT is not set CONFIG_HANGCHECK_TIMER=m CONFIG_UV_MMTIMER=m CONFIG_TCG_TPM=y CONFIG_HW_RANDOM_TPM=y CONFIG_TCG_TIS_CORE=y CONFIG_TCG_TIS=y # CONFIG_TCG_TIS_SPI is not set # CONFIG_TCG_TIS_I2C_ATMEL is not set # CONFIG_TCG_TIS_I2C_INFINEON is not set # CONFIG_TCG_TIS_I2C_NUVOTON is not set CONFIG_TCG_NSC=m CONFIG_TCG_ATMEL=m CONFIG_TCG_INFINEON=m # CONFIG_TCG_XEN is not set CONFIG_TCG_CRB=y # CONFIG_TCG_VTPM_PROXY is not set # CONFIG_TCG_TIS_ST33ZP24_I2C is not set # CONFIG_TCG_TIS_ST33ZP24_SPI is not set CONFIG_TELCLOCK=m CONFIG_DEVPORT=y # CONFIG_XILLYBUS is not set # CONFIG_RANDOM_TRUST_CPU is not set # # I2C support # CONFIG_I2C=y CONFIG_ACPI_I2C_OPREGION=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m CONFIG_I2C_MUX=m # # Multiplexer I2C Chip support # # CONFIG_I2C_MUX_GPIO is not set # CONFIG_I2C_MUX_LTC4306 is not set # CONFIG_I2C_MUX_PCA9541 is not set # CONFIG_I2C_MUX_PCA954x is not set # CONFIG_I2C_MUX_REG is not set # CONFIG_I2C_MUX_MLXCPLD is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=y CONFIG_I2C_ALGOBIT=y CONFIG_I2C_ALGOPCA=m # # I2C Hardware Bus support # # # PC SMBus host controller drivers # # CONFIG_I2C_ALI1535 is not set # CONFIG_I2C_ALI1563 is not set # CONFIG_I2C_ALI15X3 is not set CONFIG_I2C_AMD756=m CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m CONFIG_I2C_I801=y CONFIG_I2C_ISCH=m CONFIG_I2C_ISMT=m CONFIG_I2C_PIIX4=m CONFIG_I2C_NFORCE2=m CONFIG_I2C_NFORCE2_S4985=m # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set CONFIG_I2C_SIS96X=m CONFIG_I2C_VIA=m CONFIG_I2C_VIAPRO=m # # ACPI drivers # CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_DESIGNWARE_CORE=m CONFIG_I2C_DESIGNWARE_PLATFORM=m # CONFIG_I2C_DESIGNWARE_SLAVE is not set CONFIG_I2C_DESIGNWARE_PCI=m # CONFIG_I2C_DESIGNWARE_BAYTRAIL is not set # CONFIG_I2C_EMEV2 is not set # CONFIG_I2C_GPIO is not set # CONFIG_I2C_OCORES is not set CONFIG_I2C_PCA_PLATFORM=m CONFIG_I2C_SIMTEC=m # CONFIG_I2C_XILINX is not set # # External I2C/SMBus adapter drivers # CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m # CONFIG_I2C_ROBOTFUZZ_OSIF is not set # CONFIG_I2C_TAOS_EVM is not set CONFIG_I2C_TINY_USB=m CONFIG_I2C_VIPERBOARD=m # # Other I2C/SMBus bus drivers # # CONFIG_I2C_MLXCPLD is not set CONFIG_I2C_STUB=m # CONFIG_I2C_SLAVE is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set CONFIG_SPI=y # CONFIG_SPI_DEBUG is not set CONFIG_SPI_MASTER=y # CONFIG_SPI_MEM is not set # # SPI Master Controller Drivers # # CONFIG_SPI_ALTERA is not set # CONFIG_SPI_AXI_SPI_ENGINE is not set # CONFIG_SPI_BITBANG is not set # CONFIG_SPI_BUTTERFLY is not set # CONFIG_SPI_CADENCE is not set CONFIG_SPI_DESIGNWARE=m # CONFIG_SPI_DW_PCI is not set # CONFIG_SPI_DW_MMIO is not set # CONFIG_SPI_GPIO is not set # CONFIG_SPI_LM70_LLP is not set # CONFIG_SPI_OC_TINY is not set CONFIG_SPI_PXA2XX=m CONFIG_SPI_PXA2XX_PCI=m # CONFIG_SPI_ROCKCHIP is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_XCOMM is not set # CONFIG_SPI_XILINX is not set # CONFIG_SPI_ZYNQMP_GQSPI is not set # # SPI Protocol Masters # # CONFIG_SPI_SPIDEV is not set # CONFIG_SPI_LOOPBACK_TEST is not set # CONFIG_SPI_TLE62X0 is not set # CONFIG_SPI_SLAVE is not set # CONFIG_SPMI is not set # CONFIG_HSI is not set CONFIG_PPS=y # CONFIG_PPS_DEBUG is not set # # PPS clients support # # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_PARPORT=m CONFIG_PPS_CLIENT_GPIO=m # # PPS generators support # # # PTP clock support # CONFIG_PTP_1588_CLOCK=y CONFIG_DP83640_PHY=m CONFIG_PTP_1588_CLOCK_KVM=y CONFIG_PINCTRL=y CONFIG_PINMUX=y CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set # CONFIG_PINCTRL_AMD is not set # CONFIG_PINCTRL_MCP23S08 is not set # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL_BAYTRAIL=y # CONFIG_PINCTRL_CHERRYVIEW is not set # CONFIG_PINCTRL_BROXTON is not set # CONFIG_PINCTRL_CANNONLAKE is not set # CONFIG_PINCTRL_CEDARFORK is not set # CONFIG_PINCTRL_DENVERTON is not set # CONFIG_PINCTRL_GEMINILAKE is not set # CONFIG_PINCTRL_ICELAKE is not set # CONFIG_PINCTRL_LEWISBURG is not set # CONFIG_PINCTRL_SUNRISEPOINT is not set CONFIG_GPIOLIB=y CONFIG_GPIOLIB_FASTPATH_LIMIT=512 CONFIG_GPIO_ACPI=y CONFIG_GPIOLIB_IRQCHIP=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y # # Memory mapped GPIO drivers # # CONFIG_GPIO_AMDPT is not set # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_EXAR is not set # CONFIG_GPIO_GENERIC_PLATFORM is not set # CONFIG_GPIO_ICH is not set CONFIG_GPIO_LYNXPOINT=m # CONFIG_GPIO_MB86S7X is not set CONFIG_GPIO_MOCKUP=y # CONFIG_GPIO_VX855 is not set # # Port-mapped I/O GPIO drivers # # CONFIG_GPIO_F7188X is not set # CONFIG_GPIO_IT87 is not set # CONFIG_GPIO_SCH is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_WINBOND is not set # CONFIG_GPIO_WS16C48 is not set # # I2C GPIO expanders # # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_MAX7300 is not set # CONFIG_GPIO_MAX732X is not set # CONFIG_GPIO_PCA953X is not set # CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_TPIC2810 is not set # # MFD GPIO expanders # # # PCI GPIO expanders # # CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_ML_IOH is not set # CONFIG_GPIO_PCI_IDIO_16 is not set # CONFIG_GPIO_PCIE_IDIO_24 is not set # CONFIG_GPIO_RDC321X is not set # # SPI GPIO expanders # # CONFIG_GPIO_MAX3191X is not set # CONFIG_GPIO_MAX7301 is not set # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_PISOSR is not set # CONFIG_GPIO_XRA1403 is not set # # USB GPIO expanders # # CONFIG_GPIO_VIPERBOARD is not set # CONFIG_W1 is not set # CONFIG_POWER_AVS is not set CONFIG_POWER_RESET=y # CONFIG_POWER_RESET_RESTART is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set # CONFIG_TEST_POWER is not set # CONFIG_CHARGER_ADP5061 is not set # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_SBS is not set # CONFIG_CHARGER_SBS is not set # CONFIG_MANAGER_SBS is not set # CONFIG_BATTERY_BQ27XXX is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set # CONFIG_CHARGER_ISP1704 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_BQ2415X is not set # CONFIG_CHARGER_BQ24190 is not set # CONFIG_CHARGER_BQ24257 is not set # CONFIG_CHARGER_BQ24735 is not set # CONFIG_CHARGER_BQ25890 is not set CONFIG_CHARGER_SMB347=m # CONFIG_BATTERY_GAUGE_LTC2941 is not set # CONFIG_CHARGER_RT9455 is not set CONFIG_HWMON=y CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set # # Native drivers # CONFIG_SENSORS_ABITUGURU=m CONFIG_SENSORS_ABITUGURU3=m # CONFIG_SENSORS_AD7314 is not set CONFIG_SENSORS_AD7414=m CONFIG_SENSORS_AD7418=m CONFIG_SENSORS_ADM1021=m CONFIG_SENSORS_ADM1025=m CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m CONFIG_SENSORS_ADT7X10=m # CONFIG_SENSORS_ADT7310 is not set CONFIG_SENSORS_ADT7410=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m CONFIG_SENSORS_ADT7475=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_K8TEMP=m CONFIG_SENSORS_K10TEMP=m CONFIG_SENSORS_FAM15H_POWER=m CONFIG_SENSORS_APPLESMC=m CONFIG_SENSORS_ASB100=m # CONFIG_SENSORS_ASPEED is not set CONFIG_SENSORS_ATXP1=m CONFIG_SENSORS_DS620=m CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_DELL_SMM=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_F71805F=m CONFIG_SENSORS_F71882FG=m CONFIG_SENSORS_F75375S=m CONFIG_SENSORS_FSCHMD=m # CONFIG_SENSORS_FTSTEUTATES is not set CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_G760A=m # CONFIG_SENSORS_G762 is not set # CONFIG_SENSORS_HIH6130 is not set CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m # CONFIG_SENSORS_I5500 is not set CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IT87=m # CONFIG_SENSORS_JC42 is not set # CONFIG_SENSORS_POWR1220 is not set CONFIG_SENSORS_LINEAGE=m # CONFIG_SENSORS_LTC2945 is not set # CONFIG_SENSORS_LTC2990 is not set CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m # CONFIG_SENSORS_LTC4222 is not set CONFIG_SENSORS_LTC4245=m # CONFIG_SENSORS_LTC4260 is not set CONFIG_SENSORS_LTC4261=m # CONFIG_SENSORS_MAX1111 is not set CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m CONFIG_SENSORS_MAX197=m # CONFIG_SENSORS_MAX31722 is not set # CONFIG_SENSORS_MAX6621 is not set CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m CONFIG_SENSORS_MAX6697=m # CONFIG_SENSORS_MAX31790 is not set CONFIG_SENSORS_MCP3021=m # CONFIG_SENSORS_TC654 is not set # CONFIG_SENSORS_ADCXX is not set CONFIG_SENSORS_LM63=m # CONFIG_SENSORS_LM70 is not set CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m CONFIG_SENSORS_LM80=m CONFIG_SENSORS_LM83=m CONFIG_SENSORS_LM85=m CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m CONFIG_SENSORS_LM95234=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_LM95245=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_NTC_THERMISTOR=m # CONFIG_SENSORS_NCT6683 is not set CONFIG_SENSORS_NCT6775=m # CONFIG_SENSORS_NCT7802 is not set # CONFIG_SENSORS_NCT7904 is not set # CONFIG_SENSORS_NPCM7XX is not set CONFIG_SENSORS_PCF8591=m CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m # CONFIG_SENSORS_IBM_CFFPS is not set # CONFIG_SENSORS_IR35221 is not set CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LTC2978=m # CONFIG_SENSORS_LTC3815 is not set CONFIG_SENSORS_MAX16064=m # CONFIG_SENSORS_MAX20751 is not set # CONFIG_SENSORS_MAX31785 is not set CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m # CONFIG_SENSORS_TPS40422 is not set # CONFIG_SENSORS_TPS53679 is not set CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m CONFIG_SENSORS_ZL6100=m # CONFIG_SENSORS_SHT15 is not set CONFIG_SENSORS_SHT21=m # CONFIG_SENSORS_SHT3x is not set # CONFIG_SENSORS_SHTC1 is not set CONFIG_SENSORS_SIS5595=m CONFIG_SENSORS_DME1737=m CONFIG_SENSORS_EMC1403=m # CONFIG_SENSORS_EMC2103 is not set CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m CONFIG_SENSORS_SCH56XX_COMMON=m CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m # CONFIG_SENSORS_STTS751 is not set # CONFIG_SENSORS_SMM665 is not set # CONFIG_SENSORS_ADC128D818 is not set CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m # CONFIG_SENSORS_ADS7871 is not set CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_INA209=m CONFIG_SENSORS_INA2XX=m # CONFIG_SENSORS_INA3221 is not set # CONFIG_SENSORS_TC74 is not set CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m # CONFIG_SENSORS_TMP103 is not set # CONFIG_SENSORS_TMP108 is not set CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_VIA_CPUTEMP=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m # CONFIG_SENSORS_W83773G is not set CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m CONFIG_SENSORS_W83793=m CONFIG_SENSORS_W83795=m # CONFIG_SENSORS_W83795_FANCTRL is not set CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m # CONFIG_SENSORS_XGENE is not set # # ACPI drivers # CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=y # CONFIG_THERMAL_STATISTICS is not set CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_HWMON=y CONFIG_THERMAL_WRITABLE_TRIPS=y CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y # CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set # CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set # CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set CONFIG_THERMAL_GOV_FAIR_SHARE=y CONFIG_THERMAL_GOV_STEP_WISE=y CONFIG_THERMAL_GOV_BANG_BANG=y CONFIG_THERMAL_GOV_USER_SPACE=y # CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set # CONFIG_CLOCK_THERMAL is not set # CONFIG_DEVFREQ_THERMAL is not set # CONFIG_THERMAL_EMULATION is not set CONFIG_INTEL_POWERCLAMP=m CONFIG_X86_PKG_TEMP_THERMAL=m # CONFIG_INTEL_SOC_DTS_THERMAL is not set # # ACPI INT340X thermal drivers # # CONFIG_INT340X_THERMAL is not set CONFIG_INTEL_PCH_THERMAL=m CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y # CONFIG_WATCHDOG_SYSFS is not set # # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m CONFIG_WDAT_WDT=m # CONFIG_XILINX_WATCHDOG is not set # CONFIG_ZIIRAVE_WATCHDOG is not set # CONFIG_CADENCE_WATCHDOG is not set # CONFIG_DW_WATCHDOG is not set # CONFIG_MAX63XX_WATCHDOG is not set # CONFIG_ACQUIRE_WDT is not set # CONFIG_ADVANTECH_WDT is not set CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m # CONFIG_EBC_C384_WDT is not set CONFIG_F71808E_WDT=m CONFIG_SP5100_TCO=m CONFIG_SBC_FITPC2_WATCHDOG=m # CONFIG_EUROTECH_WDT is not set CONFIG_IB700_WDT=m CONFIG_IBMASR=m # CONFIG_WAFER_WDT is not set CONFIG_I6300ESB_WDT=y CONFIG_IE6XX_WDT=m CONFIG_ITCO_WDT=y CONFIG_ITCO_VENDOR_SUPPORT=y CONFIG_IT8712F_WDT=m CONFIG_IT87_WDT=m CONFIG_HP_WATCHDOG=m CONFIG_HPWDT_NMI_DECODING=y # CONFIG_SC1200_WDT is not set # CONFIG_PC87413_WDT is not set CONFIG_NV_TCO=m # CONFIG_60XX_WDT is not set # CONFIG_CPU5_WDT is not set CONFIG_SMSC_SCH311X_WDT=m # CONFIG_SMSC37B787_WDT is not set CONFIG_VIA_WDT=m CONFIG_W83627HF_WDT=m CONFIG_W83877F_WDT=m CONFIG_W83977F_WDT=m CONFIG_MACHZ_WDT=m # CONFIG_SBC_EPX_C3_WATCHDOG is not set # CONFIG_INTEL_MEI_WDT is not set # CONFIG_NI903X_WDT is not set # CONFIG_NIC7018_WDT is not set # CONFIG_MEN_A21_WDT is not set CONFIG_XEN_WDT=m # # PCI-based Watchdog Cards # CONFIG_PCIPCWATCHDOG=m CONFIG_WDTPCI=m # # USB-based Watchdog Cards # CONFIG_USBPCWATCHDOG=m # # Watchdog Pretimeout Governors # # CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set CONFIG_SSB_POSSIBLE=y CONFIG_SSB=m CONFIG_SSB_SPROM=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y # CONFIG_SSB_DRIVER_GPIO is not set CONFIG_BCMA_POSSIBLE=y CONFIG_BCMA=m CONFIG_BCMA_HOST_PCI_POSSIBLE=y CONFIG_BCMA_HOST_PCI=y # CONFIG_BCMA_HOST_SOC is not set CONFIG_BCMA_DRIVER_PCI=y CONFIG_BCMA_DRIVER_GMAC_CMN=y # CONFIG_BCMA_DRIVER_GPIO is not set # CONFIG_BCMA_DEBUG is not set # # Multifunction device drivers # CONFIG_MFD_CORE=y # CONFIG_MFD_AS3711 is not set # CONFIG_PMIC_ADP5520 is not set # CONFIG_MFD_AAT2870_CORE is not set # CONFIG_MFD_AT91_USART is not set # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_CROS_EC is not set # CONFIG_MFD_MADERA is not set # CONFIG_PMIC_DA903X is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9055 is not set # CONFIG_MFD_DA9062 is not set # CONFIG_MFD_DA9063 is not set # CONFIG_MFD_DA9150 is not set # CONFIG_MFD_DLN2 is not set # CONFIG_MFD_MC13XXX_SPI is not set # CONFIG_MFD_MC13XXX_I2C is not set # CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_I2CPLD is not set # CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set CONFIG_LPC_ICH=y CONFIG_LPC_SCH=m # CONFIG_INTEL_SOC_PMIC is not set # CONFIG_INTEL_SOC_PMIC_CHTWC is not set # CONFIG_INTEL_SOC_PMIC_CHTDC_TI is not set # CONFIG_MFD_INTEL_LPSS_ACPI is not set # CONFIG_MFD_INTEL_LPSS_PCI is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_88PM800 is not set # CONFIG_MFD_88PM805 is not set # CONFIG_MFD_88PM860X is not set # CONFIG_MFD_MAX14577 is not set # CONFIG_MFD_MAX77693 is not set # CONFIG_MFD_MAX77843 is not set # CONFIG_MFD_MAX8907 is not set # CONFIG_MFD_MAX8925 is not set # CONFIG_MFD_MAX8997 is not set # CONFIG_MFD_MAX8998 is not set # CONFIG_MFD_MT6397 is not set # CONFIG_MFD_MENF21BMC is not set # CONFIG_EZX_PCAP is not set CONFIG_MFD_VIPERBOARD=m # CONFIG_MFD_RETU is not set # CONFIG_MFD_PCF50633 is not set # CONFIG_UCB1400_CORE is not set # CONFIG_MFD_RDC321X is not set # CONFIG_MFD_RT5033 is not set # CONFIG_MFD_RC5T583 is not set # CONFIG_MFD_SEC_CORE is not set # CONFIG_MFD_SI476X_CORE is not set CONFIG_MFD_SM501=m # CONFIG_MFD_SM501_GPIO is not set # CONFIG_MFD_SKY81452 is not set # CONFIG_MFD_SMSC is not set # CONFIG_ABX500_CORE is not set # CONFIG_MFD_SYSCON is not set # CONFIG_MFD_TI_AM335X_TSCADC is not set # CONFIG_MFD_LP3943 is not set # CONFIG_MFD_LP8788 is not set # CONFIG_MFD_TI_LMU is not set # CONFIG_MFD_PALMAS is not set # CONFIG_TPS6105X is not set # CONFIG_TPS65010 is not set # CONFIG_TPS6507X is not set # CONFIG_MFD_TPS65086 is not set # CONFIG_MFD_TPS65090 is not set # CONFIG_MFD_TPS68470 is not set # CONFIG_MFD_TI_LP873X is not set # CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TPS65910 is not set # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912_SPI is not set # CONFIG_MFD_TPS80031 is not set # CONFIG_TWL4030_CORE is not set # CONFIG_TWL6040_CORE is not set # CONFIG_MFD_WL1273_CORE is not set # CONFIG_MFD_LM3533 is not set CONFIG_MFD_VX855=m # CONFIG_MFD_ARIZONA_I2C is not set # CONFIG_MFD_ARIZONA_SPI is not set # CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM831X_I2C is not set # CONFIG_MFD_WM831X_SPI is not set # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set # CONFIG_REGULATOR is not set CONFIG_RC_CORE=m CONFIG_RC_MAP=m # CONFIG_LIRC is not set CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m CONFIG_IR_RC6_DECODER=m CONFIG_IR_JVC_DECODER=m CONFIG_IR_SONY_DECODER=m CONFIG_IR_SANYO_DECODER=m CONFIG_IR_SHARP_DECODER=m CONFIG_IR_MCE_KBD_DECODER=m CONFIG_IR_XMP_DECODER=m # CONFIG_IR_IMON_DECODER is not set CONFIG_RC_DEVICES=y CONFIG_RC_ATI_REMOTE=m CONFIG_IR_ENE=m CONFIG_IR_IMON=m # CONFIG_IR_IMON_RAW is not set CONFIG_IR_MCEUSB=m CONFIG_IR_ITE_CIR=m CONFIG_IR_FINTEK=m CONFIG_IR_NUVOTON=m CONFIG_IR_REDRAT3=m CONFIG_IR_STREAMZAP=m CONFIG_IR_WINBOND_CIR=m # CONFIG_IR_IGORPLUGUSB is not set CONFIG_IR_IGUANA=m CONFIG_IR_TTUSBIR=m CONFIG_RC_LOOPBACK=m # CONFIG_IR_SERIAL is not set # CONFIG_IR_SIR is not set CONFIG_MEDIA_SUPPORT=m # # Multimedia core support # CONFIG_MEDIA_CAMERA_SUPPORT=y CONFIG_MEDIA_ANALOG_TV_SUPPORT=y CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_MEDIA_RADIO_SUPPORT=y # CONFIG_MEDIA_SDR_SUPPORT is not set # CONFIG_MEDIA_CEC_SUPPORT is not set # CONFIG_MEDIA_CONTROLLER is not set CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2=m # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set CONFIG_VIDEO_TUNER=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m CONFIG_DVB_CORE=m # CONFIG_DVB_MMAP is not set CONFIG_DVB_NET=y CONFIG_TTPCI_EEPROM=m CONFIG_DVB_MAX_ADAPTERS=8 CONFIG_DVB_DYNAMIC_MINORS=y # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set # CONFIG_DVB_ULE_DEBUG is not set # # Media drivers # CONFIG_MEDIA_USB_SUPPORT=y # # Webcam devices # CONFIG_USB_VIDEO_CLASS=m CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y CONFIG_USB_GSPCA=m CONFIG_USB_M5602=m CONFIG_USB_STV06XX=m CONFIG_USB_GL860=m CONFIG_USB_GSPCA_BENQ=m CONFIG_USB_GSPCA_CONEX=m CONFIG_USB_GSPCA_CPIA1=m # CONFIG_USB_GSPCA_DTCS033 is not set CONFIG_USB_GSPCA_ETOMS=m CONFIG_USB_GSPCA_FINEPIX=m CONFIG_USB_GSPCA_JEILINJ=m CONFIG_USB_GSPCA_JL2005BCD=m # CONFIG_USB_GSPCA_KINECT is not set CONFIG_USB_GSPCA_KONICA=m CONFIG_USB_GSPCA_MARS=m CONFIG_USB_GSPCA_MR97310A=m CONFIG_USB_GSPCA_NW80X=m CONFIG_USB_GSPCA_OV519=m CONFIG_USB_GSPCA_OV534=m CONFIG_USB_GSPCA_OV534_9=m CONFIG_USB_GSPCA_PAC207=m CONFIG_USB_GSPCA_PAC7302=m CONFIG_USB_GSPCA_PAC7311=m CONFIG_USB_GSPCA_SE401=m CONFIG_USB_GSPCA_SN9C2028=m CONFIG_USB_GSPCA_SN9C20X=m CONFIG_USB_GSPCA_SONIXB=m CONFIG_USB_GSPCA_SONIXJ=m CONFIG_USB_GSPCA_SPCA500=m CONFIG_USB_GSPCA_SPCA501=m CONFIG_USB_GSPCA_SPCA505=m CONFIG_USB_GSPCA_SPCA506=m CONFIG_USB_GSPCA_SPCA508=m CONFIG_USB_GSPCA_SPCA561=m CONFIG_USB_GSPCA_SPCA1528=m CONFIG_USB_GSPCA_SQ905=m CONFIG_USB_GSPCA_SQ905C=m CONFIG_USB_GSPCA_SQ930X=m CONFIG_USB_GSPCA_STK014=m # CONFIG_USB_GSPCA_STK1135 is not set CONFIG_USB_GSPCA_STV0680=m CONFIG_USB_GSPCA_SUNPLUS=m CONFIG_USB_GSPCA_T613=m CONFIG_USB_GSPCA_TOPRO=m # CONFIG_USB_GSPCA_TOUPTEK is not set CONFIG_USB_GSPCA_TV8532=m CONFIG_USB_GSPCA_VC032X=m CONFIG_USB_GSPCA_VICAM=m CONFIG_USB_GSPCA_XIRLINK_CIT=m CONFIG_USB_GSPCA_ZC3XX=m CONFIG_USB_PWC=m # CONFIG_USB_PWC_DEBUG is not set CONFIG_USB_PWC_INPUT_EVDEV=y # CONFIG_VIDEO_CPIA2 is not set CONFIG_USB_ZR364XX=m CONFIG_USB_STKWEBCAM=m CONFIG_USB_S2255=m # CONFIG_VIDEO_USBTV is not set # # Analog TV USB devices # CONFIG_VIDEO_PVRUSB2=m CONFIG_VIDEO_PVRUSB2_SYSFS=y CONFIG_VIDEO_PVRUSB2_DVB=y # CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set CONFIG_VIDEO_HDPVR=m CONFIG_VIDEO_USBVISION=m # CONFIG_VIDEO_STK1160_COMMON is not set # CONFIG_VIDEO_GO7007 is not set # # Analog/digital TV USB devices # CONFIG_VIDEO_AU0828=m CONFIG_VIDEO_AU0828_V4L2=y # CONFIG_VIDEO_AU0828_RC is not set CONFIG_VIDEO_CX231XX=m CONFIG_VIDEO_CX231XX_RC=y CONFIG_VIDEO_CX231XX_ALSA=m CONFIG_VIDEO_CX231XX_DVB=m CONFIG_VIDEO_TM6000=m CONFIG_VIDEO_TM6000_ALSA=m CONFIG_VIDEO_TM6000_DVB=m # # Digital TV USB devices # CONFIG_DVB_USB=m # CONFIG_DVB_USB_DEBUG is not set CONFIG_DVB_USB_DIB3000MC=m CONFIG_DVB_USB_A800=m CONFIG_DVB_USB_DIBUSB_MB=m # CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set CONFIG_DVB_USB_DIBUSB_MC=m CONFIG_DVB_USB_DIB0700=m CONFIG_DVB_USB_UMT_010=m CONFIG_DVB_USB_CXUSB=m CONFIG_DVB_USB_M920X=m CONFIG_DVB_USB_DIGITV=m CONFIG_DVB_USB_VP7045=m CONFIG_DVB_USB_VP702X=m CONFIG_DVB_USB_GP8PSK=m CONFIG_DVB_USB_NOVA_T_USB2=m CONFIG_DVB_USB_TTUSB2=m CONFIG_DVB_USB_DTT200U=m CONFIG_DVB_USB_OPERA1=m CONFIG_DVB_USB_AF9005=m CONFIG_DVB_USB_AF9005_REMOTE=m CONFIG_DVB_USB_PCTV452E=m CONFIG_DVB_USB_DW2102=m CONFIG_DVB_USB_CINERGY_T2=m CONFIG_DVB_USB_DTV5100=m CONFIG_DVB_USB_AZ6027=m CONFIG_DVB_USB_TECHNISAT_USB2=m CONFIG_DVB_USB_V2=m CONFIG_DVB_USB_AF9015=m CONFIG_DVB_USB_AF9035=m CONFIG_DVB_USB_ANYSEE=m CONFIG_DVB_USB_AU6610=m CONFIG_DVB_USB_AZ6007=m CONFIG_DVB_USB_CE6230=m CONFIG_DVB_USB_EC168=m CONFIG_DVB_USB_GL861=m CONFIG_DVB_USB_LME2510=m CONFIG_DVB_USB_MXL111SF=m CONFIG_DVB_USB_RTL28XXU=m # CONFIG_DVB_USB_DVBSKY is not set # CONFIG_DVB_USB_ZD1301 is not set CONFIG_DVB_TTUSB_BUDGET=m CONFIG_DVB_TTUSB_DEC=m CONFIG_SMS_USB_DRV=m CONFIG_DVB_B2C2_FLEXCOP_USB=m # CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set # CONFIG_DVB_AS102 is not set # # Webcam, TV (analog/digital) USB devices # CONFIG_VIDEO_EM28XX=m # CONFIG_VIDEO_EM28XX_V4L2 is not set CONFIG_VIDEO_EM28XX_ALSA=m CONFIG_VIDEO_EM28XX_DVB=m CONFIG_VIDEO_EM28XX_RC=m CONFIG_MEDIA_PCI_SUPPORT=y # # Media capture support # # CONFIG_VIDEO_MEYE is not set # CONFIG_VIDEO_SOLO6X10 is not set # CONFIG_VIDEO_TW5864 is not set # CONFIG_VIDEO_TW68 is not set # CONFIG_VIDEO_TW686X is not set # # Media capture/analog TV support # CONFIG_VIDEO_IVTV=m # CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set # CONFIG_VIDEO_IVTV_ALSA is not set CONFIG_VIDEO_FB_IVTV=m # CONFIG_VIDEO_HEXIUM_GEMINI is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_DT3155 is not set # # Media capture/analog/hybrid TV support # CONFIG_VIDEO_CX18=m CONFIG_VIDEO_CX18_ALSA=m CONFIG_VIDEO_CX23885=m CONFIG_MEDIA_ALTERA_CI=m # CONFIG_VIDEO_CX25821 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_ALSA=m CONFIG_VIDEO_CX88_BLACKBIRD=m CONFIG_VIDEO_CX88_DVB=m CONFIG_VIDEO_CX88_ENABLE_VP3054=y CONFIG_VIDEO_CX88_VP3054=m CONFIG_VIDEO_CX88_MPEG=m CONFIG_VIDEO_BT848=m CONFIG_DVB_BT8XX=m CONFIG_VIDEO_SAA7134=m CONFIG_VIDEO_SAA7134_ALSA=m CONFIG_VIDEO_SAA7134_RC=y CONFIG_VIDEO_SAA7134_DVB=m CONFIG_VIDEO_SAA7164=m # # Media digital TV PCI Adapters # CONFIG_DVB_AV7110_IR=y CONFIG_DVB_AV7110=m CONFIG_DVB_AV7110_OSD=y CONFIG_DVB_BUDGET_CORE=m CONFIG_DVB_BUDGET=m CONFIG_DVB_BUDGET_CI=m CONFIG_DVB_BUDGET_AV=m CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_B2C2_FLEXCOP_PCI=m # CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set CONFIG_DVB_PLUTO2=m CONFIG_DVB_DM1105=m CONFIG_DVB_PT1=m # CONFIG_DVB_PT3 is not set CONFIG_MANTIS_CORE=m CONFIG_DVB_MANTIS=m CONFIG_DVB_HOPPER=m CONFIG_DVB_NGENE=m CONFIG_DVB_DDBRIDGE=m # CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_SMIPCIE is not set # CONFIG_DVB_NETUP_UNIDVB is not set # CONFIG_V4L_PLATFORM_DRIVERS is not set # CONFIG_V4L_MEM2MEM_DRIVERS is not set # CONFIG_V4L_TEST_DRIVERS is not set # CONFIG_DVB_PLATFORM_DRIVERS is not set # # Supported MMC/SDIO adapters # CONFIG_SMS_SDIO_DRV=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_TEA575X=m # CONFIG_RADIO_SI470X is not set # CONFIG_RADIO_SI4713 is not set # CONFIG_USB_MR800 is not set # CONFIG_USB_DSBR is not set # CONFIG_RADIO_MAXIRADIO is not set # CONFIG_RADIO_SHARK is not set # CONFIG_RADIO_SHARK2 is not set # CONFIG_USB_KEENE is not set # CONFIG_USB_RAREMONO is not set # CONFIG_USB_MA901 is not set # CONFIG_RADIO_TEA5764 is not set # CONFIG_RADIO_SAA7706H is not set # CONFIG_RADIO_TEF6862 is not set # CONFIG_RADIO_WL1273 is not set # # Texas Instruments WL128x FM driver (ST based) # # # Supported FireWire (IEEE 1394) Adapters # CONFIG_DVB_FIREDTV=m CONFIG_DVB_FIREDTV_INPUT=y CONFIG_MEDIA_COMMON_OPTIONS=y # # common driver options # CONFIG_VIDEO_CX2341X=m CONFIG_VIDEO_TVEEPROM=m CONFIG_CYPRESS_FIRMWARE=m CONFIG_VIDEOBUF2_CORE=m CONFIG_VIDEOBUF2_V4L2=m CONFIG_VIDEOBUF2_MEMOPS=m CONFIG_VIDEOBUF2_VMALLOC=m CONFIG_VIDEOBUF2_DMA_SG=m CONFIG_VIDEOBUF2_DVB=m CONFIG_DVB_B2C2_FLEXCOP=m CONFIG_VIDEO_SAA7146=m CONFIG_VIDEO_SAA7146_VV=m CONFIG_SMS_SIANO_MDTV=m CONFIG_SMS_SIANO_RC=y # CONFIG_SMS_SIANO_DEBUGFS is not set # # Media ancillary drivers (tuners, sensors, i2c, spi, frontends) # CONFIG_MEDIA_SUBDRV_AUTOSELECT=y CONFIG_MEDIA_ATTACH=y CONFIG_VIDEO_IR_I2C=m # # Audio decoders, processors and mixers # CONFIG_VIDEO_TVAUDIO=m CONFIG_VIDEO_TDA7432=m CONFIG_VIDEO_MSP3400=m CONFIG_VIDEO_CS3308=m CONFIG_VIDEO_CS5345=m CONFIG_VIDEO_CS53L32A=m CONFIG_VIDEO_WM8775=m CONFIG_VIDEO_WM8739=m CONFIG_VIDEO_VP27SMPX=m # # RDS decoders # CONFIG_VIDEO_SAA6588=m # # Video decoders # CONFIG_VIDEO_SAA711X=m # # Video and audio decoders # CONFIG_VIDEO_SAA717X=m CONFIG_VIDEO_CX25840=m # # Video encoders # CONFIG_VIDEO_SAA7127=m # # Camera sensor devices # # # Flash devices # # # Video improvement chips # CONFIG_VIDEO_UPD64031A=m CONFIG_VIDEO_UPD64083=m # # Audio/Video compression chips # CONFIG_VIDEO_SAA6752HS=m # # SDR tuner chips # # # Miscellaneous helper chips # CONFIG_VIDEO_M52790=m # # Sensors used on soc_camera driver # # # Media SPI Adapters # # CONFIG_CXD2880_SPI_DRV is not set CONFIG_MEDIA_TUNER=m CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA18250=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA827X=m CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_MT2060=m CONFIG_MEDIA_TUNER_MT2063=m CONFIG_MEDIA_TUNER_MT2266=m CONFIG_MEDIA_TUNER_MT2131=m CONFIG_MEDIA_TUNER_QT1010=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MXL5005S=m CONFIG_MEDIA_TUNER_MXL5007T=m CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_MEDIA_TUNER_MAX2165=m CONFIG_MEDIA_TUNER_TDA18218=m CONFIG_MEDIA_TUNER_FC0011=m CONFIG_MEDIA_TUNER_FC0012=m CONFIG_MEDIA_TUNER_FC0013=m CONFIG_MEDIA_TUNER_TDA18212=m CONFIG_MEDIA_TUNER_E4000=m CONFIG_MEDIA_TUNER_FC2580=m CONFIG_MEDIA_TUNER_M88RS6000T=m CONFIG_MEDIA_TUNER_TUA9001=m CONFIG_MEDIA_TUNER_SI2157=m CONFIG_MEDIA_TUNER_IT913X=m CONFIG_MEDIA_TUNER_R820T=m CONFIG_MEDIA_TUNER_QM1D1C0042=m CONFIG_MEDIA_TUNER_QM1D1B0004=m # # Multistandard (satellite) frontends # CONFIG_DVB_STB0899=m CONFIG_DVB_STB6100=m CONFIG_DVB_STV090x=m CONFIG_DVB_STV0910=m CONFIG_DVB_STV6110x=m CONFIG_DVB_STV6111=m CONFIG_DVB_MXL5XX=m CONFIG_DVB_M88DS3103=m # # Multistandard (cable + terrestrial) frontends # CONFIG_DVB_DRXK=m CONFIG_DVB_TDA18271C2DD=m CONFIG_DVB_SI2165=m CONFIG_DVB_MN88472=m CONFIG_DVB_MN88473=m # # DVB-S (satellite) frontends # CONFIG_DVB_CX24110=m CONFIG_DVB_CX24123=m CONFIG_DVB_MT312=m CONFIG_DVB_ZL10036=m CONFIG_DVB_ZL10039=m CONFIG_DVB_S5H1420=m CONFIG_DVB_STV0288=m CONFIG_DVB_STB6000=m CONFIG_DVB_STV0299=m CONFIG_DVB_STV6110=m CONFIG_DVB_STV0900=m CONFIG_DVB_TDA8083=m CONFIG_DVB_TDA10086=m CONFIG_DVB_TDA8261=m CONFIG_DVB_VES1X93=m CONFIG_DVB_TUNER_ITD1000=m CONFIG_DVB_TUNER_CX24113=m CONFIG_DVB_TDA826X=m CONFIG_DVB_TUA6100=m CONFIG_DVB_CX24116=m CONFIG_DVB_CX24117=m CONFIG_DVB_CX24120=m CONFIG_DVB_SI21XX=m CONFIG_DVB_TS2020=m CONFIG_DVB_DS3000=m CONFIG_DVB_MB86A16=m CONFIG_DVB_TDA10071=m # # DVB-T (terrestrial) frontends # CONFIG_DVB_SP8870=m CONFIG_DVB_SP887X=m CONFIG_DVB_CX22700=m CONFIG_DVB_CX22702=m CONFIG_DVB_DRXD=m CONFIG_DVB_L64781=m CONFIG_DVB_TDA1004X=m CONFIG_DVB_NXT6000=m CONFIG_DVB_MT352=m CONFIG_DVB_ZL10353=m CONFIG_DVB_DIB3000MB=m CONFIG_DVB_DIB3000MC=m CONFIG_DVB_DIB7000M=m CONFIG_DVB_DIB7000P=m CONFIG_DVB_TDA10048=m CONFIG_DVB_AF9013=m CONFIG_DVB_EC100=m CONFIG_DVB_STV0367=m CONFIG_DVB_CXD2820R=m CONFIG_DVB_CXD2841ER=m CONFIG_DVB_RTL2830=m CONFIG_DVB_RTL2832=m CONFIG_DVB_SI2168=m CONFIG_DVB_GP8PSK_FE=m # # DVB-C (cable) frontends # CONFIG_DVB_VES1820=m CONFIG_DVB_TDA10021=m CONFIG_DVB_TDA10023=m CONFIG_DVB_STV0297=m # # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # CONFIG_DVB_NXT200X=m CONFIG_DVB_OR51211=m CONFIG_DVB_OR51132=m CONFIG_DVB_BCM3510=m CONFIG_DVB_LGDT330X=m CONFIG_DVB_LGDT3305=m CONFIG_DVB_LGDT3306A=m CONFIG_DVB_LG2160=m CONFIG_DVB_S5H1409=m CONFIG_DVB_AU8522=m CONFIG_DVB_AU8522_DTV=m CONFIG_DVB_AU8522_V4L=m CONFIG_DVB_S5H1411=m # # ISDB-T (terrestrial) frontends # CONFIG_DVB_S921=m CONFIG_DVB_DIB8000=m CONFIG_DVB_MB86A20S=m # # ISDB-S (satellite) & ISDB-T (terrestrial) frontends # CONFIG_DVB_TC90522=m # # Digital terrestrial only tuners/PLL # CONFIG_DVB_PLL=m CONFIG_DVB_TUNER_DIB0070=m CONFIG_DVB_TUNER_DIB0090=m # # SEC control devices for DVB-S # CONFIG_DVB_DRX39XYJ=m CONFIG_DVB_LNBH25=m CONFIG_DVB_LNBP21=m CONFIG_DVB_LNBP22=m CONFIG_DVB_ISL6405=m CONFIG_DVB_ISL6421=m CONFIG_DVB_ISL6423=m CONFIG_DVB_A8293=m CONFIG_DVB_LGS8GXX=m CONFIG_DVB_ATBM8830=m CONFIG_DVB_TDA665x=m CONFIG_DVB_IX2505V=m CONFIG_DVB_M88RS2000=m CONFIG_DVB_AF9033=m # # Common Interface (EN50221) controller drivers # CONFIG_DVB_CXD2099=m # # Tools to develop new frontends # CONFIG_DVB_DUMMY_FE=m # # Graphics support # CONFIG_AGP=y CONFIG_AGP_AMD64=y CONFIG_AGP_INTEL=y CONFIG_AGP_SIS=y CONFIG_AGP_VIA=y CONFIG_INTEL_GTT=y CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=64 CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=m CONFIG_DRM_MIPI_DSI=y # CONFIG_DRM_DP_AUX_CHARDEV is not set CONFIG_DRM_DEBUG_SELFTEST=m CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 # CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_DP_CEC is not set CONFIG_DRM_TTM=m # # I2C encoder or helper chips # CONFIG_DRM_I2C_CH7006=m CONFIG_DRM_I2C_SIL164=m CONFIG_DRM_I2C_NXP_TDA998X=m # CONFIG_DRM_I2C_NXP_TDA9950 is not set # CONFIG_DRM_RADEON is not set # CONFIG_DRM_AMDGPU is not set # # ACP (Audio CoProcessor) Configuration # # # AMD Library routines # # CONFIG_DRM_NOUVEAU is not set CONFIG_DRM_I915=m # CONFIG_DRM_I915_ALPHA_SUPPORT is not set CONFIG_DRM_I915_CAPTURE_ERROR=y CONFIG_DRM_I915_COMPRESS_ERROR=y CONFIG_DRM_I915_USERPTR=y # CONFIG_DRM_I915_GVT is not set # # drm/i915 Debugging # # CONFIG_DRM_I915_WERROR is not set # CONFIG_DRM_I915_DEBUG is not set # CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set # CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set # CONFIG_DRM_I915_DEBUG_GUC is not set # CONFIG_DRM_I915_SELFTEST is not set # CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set # CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set # CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set CONFIG_DRM_VGEM=m # CONFIG_DRM_VKMS is not set CONFIG_DRM_VMWGFX=m CONFIG_DRM_VMWGFX_FBCON=y CONFIG_DRM_GMA500=m CONFIG_DRM_GMA600=y CONFIG_DRM_GMA3600=y CONFIG_DRM_UDL=m CONFIG_DRM_AST=m CONFIG_DRM_MGAG200=m CONFIG_DRM_CIRRUS_QEMU=m CONFIG_DRM_QXL=m # CONFIG_DRM_BOCHS is not set # CONFIG_DRM_VIRTIO_GPU is not set CONFIG_DRM_PANEL=y # # Display Panels # # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set CONFIG_DRM_BRIDGE=y CONFIG_DRM_PANEL_BRIDGE=y # # Display Interface Bridges # # CONFIG_DRM_ANALOGIX_ANX78XX is not set # CONFIG_DRM_HISI_HIBMC is not set # CONFIG_DRM_TINYDRM is not set # CONFIG_DRM_XEN is not set # CONFIG_DRM_LEGACY is not set CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y CONFIG_DRM_LIB_RANDOM=y # # Frame buffer Devices # CONFIG_FB_CMDLINE=y CONFIG_FB_NOTIFY=y CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set CONFIG_FB_BOOT_VESA_SUPPORT=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_SYS_FILLRECT=m CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m CONFIG_FB_DEFERRED_IO=y # CONFIG_FB_MODE_HELPERS is not set CONFIG_FB_TILEBLITTING=y # # Frame buffer hardware drivers # # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ARC is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_VGA16 is not set # CONFIG_FB_UVESA is not set CONFIG_FB_VESA=y CONFIG_FB_EFI=y # CONFIG_FB_N411 is not set # CONFIG_FB_HGA is not set # CONFIG_FB_OPENCORES is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_I740 is not set # CONFIG_FB_LE80578 is not set # CONFIG_FB_INTEL is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set # CONFIG_FB_VIA is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_VT8623 is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_ARK is not set # CONFIG_FB_PM3 is not set # CONFIG_FB_CARMINE is not set # CONFIG_FB_SM501 is not set # CONFIG_FB_SMSCUFX is not set # CONFIG_FB_UDL is not set # CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_XEN_FBDEV_FRONTEND is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set CONFIG_FB_HYPERV=m # CONFIG_FB_SIMPLE is not set # CONFIG_FB_SM712 is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m # CONFIG_LCD_L4F00242T03 is not set # CONFIG_LCD_LMS283GF05 is not set # CONFIG_LCD_LTV350QV is not set # CONFIG_LCD_ILI922X is not set # CONFIG_LCD_ILI9320 is not set # CONFIG_LCD_TDO24M is not set # CONFIG_LCD_VGG2432A4 is not set CONFIG_LCD_PLATFORM=m # CONFIG_LCD_AMS369FG06 is not set # CONFIG_LCD_LMS501KF03 is not set # CONFIG_LCD_HX8357 is not set # CONFIG_LCD_OTM3225A is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_BACKLIGHT_GENERIC is not set # CONFIG_BACKLIGHT_PWM is not set CONFIG_BACKLIGHT_APPLE=m # CONFIG_BACKLIGHT_PM8941_WLED is not set # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # CONFIG_BACKLIGHT_LM3630A is not set # CONFIG_BACKLIGHT_LM3639 is not set # CONFIG_BACKLIGHT_LP855X is not set # CONFIG_BACKLIGHT_GPIO is not set # CONFIG_BACKLIGHT_LV5207LP is not set # CONFIG_BACKLIGHT_BD6107 is not set # CONFIG_BACKLIGHT_ARCXCNN is not set CONFIG_HDMI=y # # Console display driver support # CONFIG_VGA_CONSOLE=y CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 # CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set CONFIG_DUMMY_CONSOLE=y CONFIG_DUMMY_CONSOLE_COLUMNS=80 CONFIG_DUMMY_CONSOLE_ROWS=25 CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y # CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set CONFIG_LOGO=y # CONFIG_LOGO_LINUX_MONO is not set # CONFIG_LOGO_LINUX_VGA16 is not set CONFIG_LOGO_LINUX_CLUT224=y CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y CONFIG_SOUND_OSS_CORE_PRECLAIM=y CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_SEQ_DEVICE=m CONFIG_SND_RAWMIDI=m CONFIG_SND_JACK=y CONFIG_SND_JACK_INPUT_DEV=y CONFIG_SND_OSSEMUL=y # CONFIG_SND_MIXER_OSS is not set # CONFIG_SND_PCM_OSS is not set CONFIG_SND_PCM_TIMER=y CONFIG_SND_HRTIMER=m CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_MAX_CARDS=32 # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_PROC_FS=y CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m CONFIG_SND_SEQUENCER_OSS=m CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_SEQ_MIDI_EVENT=m CONFIG_SND_SEQ_MIDI=m CONFIG_SND_SEQ_MIDI_EMUL=m CONFIG_SND_SEQ_VIRMIDI=m CONFIG_SND_MPU401_UART=m CONFIG_SND_OPL3_LIB=m CONFIG_SND_OPL3_LIB_SEQ=m CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y CONFIG_SND_PCSP=m CONFIG_SND_DUMMY=m CONFIG_SND_ALOOP=m CONFIG_SND_VIRMIDI=m CONFIG_SND_MTPAV=m # CONFIG_SND_MTS64 is not set # CONFIG_SND_SERIAL_U16550 is not set CONFIG_SND_MPU401=m # CONFIG_SND_PORTMAN2X4 is not set CONFIG_SND_AC97_POWER_SAVE=y CONFIG_SND_AC97_POWER_SAVE_DEFAULT=5 CONFIG_SND_PCI=y CONFIG_SND_AD1889=m # CONFIG_SND_ALS300 is not set # CONFIG_SND_ALS4000 is not set CONFIG_SND_ALI5451=m CONFIG_SND_ASIHPI=m CONFIG_SND_ATIIXP=m CONFIG_SND_ATIIXP_MODEM=m CONFIG_SND_AU8810=m CONFIG_SND_AU8820=m CONFIG_SND_AU8830=m # CONFIG_SND_AW2 is not set # CONFIG_SND_AZT3328 is not set CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set CONFIG_SND_CA0106=m CONFIG_SND_CMIPCI=m CONFIG_SND_OXYGEN_LIB=m CONFIG_SND_OXYGEN=m # CONFIG_SND_CS4281 is not set CONFIG_SND_CS46XX=m CONFIG_SND_CS46XX_NEW_DSP=y CONFIG_SND_CTXFI=m CONFIG_SND_DARLA20=m CONFIG_SND_GINA20=m CONFIG_SND_LAYLA20=m CONFIG_SND_DARLA24=m CONFIG_SND_GINA24=m CONFIG_SND_LAYLA24=m CONFIG_SND_MONA=m CONFIG_SND_MIA=m CONFIG_SND_ECHO3G=m CONFIG_SND_INDIGO=m CONFIG_SND_INDIGOIO=m CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGODJX=m CONFIG_SND_EMU10K1=m CONFIG_SND_EMU10K1_SEQ=m CONFIG_SND_EMU10K1X=m CONFIG_SND_ENS1370=m CONFIG_SND_ENS1371=m # CONFIG_SND_ES1938 is not set CONFIG_SND_ES1968=m CONFIG_SND_ES1968_INPUT=y CONFIG_SND_ES1968_RADIO=y # CONFIG_SND_FM801 is not set CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m CONFIG_SND_ICE1712=m CONFIG_SND_ICE1724=m CONFIG_SND_INTEL8X0=m CONFIG_SND_INTEL8X0M=m CONFIG_SND_KORG1212=m CONFIG_SND_LOLA=m CONFIG_SND_LX6464ES=m CONFIG_SND_MAESTRO3=m CONFIG_SND_MAESTRO3_INPUT=y CONFIG_SND_MIXART=m # CONFIG_SND_NM256 is not set CONFIG_SND_PCXHR=m # CONFIG_SND_RIPTIDE is not set CONFIG_SND_RME32=m CONFIG_SND_RME96=m CONFIG_SND_RME9652=m # CONFIG_SND_SONICVIBES is not set CONFIG_SND_TRIDENT=m CONFIG_SND_VIA82XX=m CONFIG_SND_VIA82XX_MODEM=m CONFIG_SND_VIRTUOSO=m CONFIG_SND_VX222=m # CONFIG_SND_YMFPCI is not set # # HD-Audio # CONFIG_SND_HDA=m CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_HWDEP=y # CONFIG_SND_HDA_RECONFIG is not set CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INPUT_BEEP_MODE=0 # CONFIG_SND_HDA_PATCH_LOADER is not set CONFIG_SND_HDA_CODEC_REALTEK=m CONFIG_SND_HDA_CODEC_ANALOG=m CONFIG_SND_HDA_CODEC_SIGMATEL=m CONFIG_SND_HDA_CODEC_VIA=m CONFIG_SND_HDA_CODEC_HDMI=m CONFIG_SND_HDA_CODEC_CIRRUS=m CONFIG_SND_HDA_CODEC_CONEXANT=m CONFIG_SND_HDA_CODEC_CA0110=m CONFIG_SND_HDA_CODEC_CA0132=m CONFIG_SND_HDA_CODEC_CA0132_DSP=y CONFIG_SND_HDA_CODEC_CMEDIA=m CONFIG_SND_HDA_CODEC_SI3054=m CONFIG_SND_HDA_GENERIC=m CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 CONFIG_SND_HDA_CORE=m CONFIG_SND_HDA_DSP_LOADER=y CONFIG_SND_HDA_COMPONENT=y CONFIG_SND_HDA_I915=y CONFIG_SND_HDA_PREALLOC_SIZE=512 CONFIG_SND_SPI=y CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=m CONFIG_SND_USB_UA101=m CONFIG_SND_USB_USX2Y=m CONFIG_SND_USB_CAIAQ=m CONFIG_SND_USB_CAIAQ_INPUT=y CONFIG_SND_USB_US122L=m CONFIG_SND_USB_6FIRE=m # CONFIG_SND_USB_HIFACE is not set # CONFIG_SND_BCD2000 is not set # CONFIG_SND_USB_POD is not set # CONFIG_SND_USB_PODHD is not set # CONFIG_SND_USB_TONEPORT is not set # CONFIG_SND_USB_VARIAX is not set CONFIG_SND_FIREWIRE=y CONFIG_SND_FIREWIRE_LIB=m # CONFIG_SND_DICE is not set # CONFIG_SND_OXFW is not set CONFIG_SND_ISIGHT=m # CONFIG_SND_FIREWORKS is not set # CONFIG_SND_BEBOB is not set # CONFIG_SND_FIREWIRE_DIGI00X is not set # CONFIG_SND_FIREWIRE_TASCAM is not set # CONFIG_SND_FIREWIRE_MOTU is not set # CONFIG_SND_FIREFACE is not set # CONFIG_SND_SOC is not set CONFIG_SND_X86=y # CONFIG_HDMI_LPE_AUDIO is not set CONFIG_SND_SYNTH_EMUX=m # CONFIG_SND_XEN_FRONTEND is not set CONFIG_AC97_BUS=m # # HID support # CONFIG_HID=y CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HIDRAW=y CONFIG_UHID=m CONFIG_HID_GENERIC=y # # Special HID drivers # CONFIG_HID_A4TECH=y # CONFIG_HID_ACCUTOUCH is not set CONFIG_HID_ACRUX=m # CONFIG_HID_ACRUX_FF is not set CONFIG_HID_APPLE=y CONFIG_HID_APPLEIR=m # CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BELKIN=y # CONFIG_HID_BETOP_FF is not set # CONFIG_HID_BIGBEN_FF is not set CONFIG_HID_CHERRY=y CONFIG_HID_CHICONY=y # CONFIG_HID_CORSAIR is not set # CONFIG_HID_COUGAR is not set CONFIG_HID_PRODIKEYS=m # CONFIG_HID_CMEDIA is not set # CONFIG_HID_CP2112 is not set CONFIG_HID_CYPRESS=y CONFIG_HID_DRAGONRISE=m # CONFIG_DRAGONRISE_FF is not set # CONFIG_HID_EMS_FF is not set # CONFIG_HID_ELAN is not set CONFIG_HID_ELECOM=m # CONFIG_HID_ELO is not set CONFIG_HID_EZKEY=y # CONFIG_HID_GEMBIRD is not set # CONFIG_HID_GFRM is not set CONFIG_HID_HOLTEK=m # CONFIG_HOLTEK_FF is not set # CONFIG_HID_GT683R is not set CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m CONFIG_HID_UCLOGIC=m CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_ICADE=m # CONFIG_HID_ITE is not set # CONFIG_HID_JABRA is not set CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=y CONFIG_HID_LCPOWER=m CONFIG_HID_LED=m # CONFIG_HID_LENOVO is not set CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=m CONFIG_HID_LOGITECH_HIDPP=m # CONFIG_LOGITECH_FF is not set # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWHEELS_FF is not set CONFIG_HID_MAGICMOUSE=y # CONFIG_HID_MAYFLASH is not set # CONFIG_HID_REDRAGON is not set CONFIG_HID_MICROSOFT=y CONFIG_HID_MONTEREY=y CONFIG_HID_MULTITOUCH=m # CONFIG_HID_NTI is not set CONFIG_HID_NTRIG=y CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m # CONFIG_PANTHERLORD_FF is not set # CONFIG_HID_PENMOUNT is not set CONFIG_HID_PETALYNX=m CONFIG_HID_PICOLCD=m CONFIG_HID_PICOLCD_FB=y CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y CONFIG_HID_PICOLCD_CIR=y CONFIG_HID_PLANTRONICS=y CONFIG_HID_PRIMAX=m # CONFIG_HID_RETRODE is not set CONFIG_HID_ROCCAT=m CONFIG_HID_SAITEK=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m # CONFIG_SONY_FF is not set CONFIG_HID_SPEEDLINK=m # CONFIG_HID_STEAM is not set CONFIG_HID_STEELSERIES=m CONFIG_HID_SUNPLUS=m # CONFIG_HID_RMI is not set CONFIG_HID_GREENASIA=m # CONFIG_GREENASIA_FF is not set CONFIG_HID_HYPERV_MOUSE=m CONFIG_HID_SMARTJOYPLUS=m # CONFIG_SMARTJOYPLUS_FF is not set CONFIG_HID_TIVO=m CONFIG_HID_TOPSEED=m CONFIG_HID_THINGM=m CONFIG_HID_THRUSTMASTER=m # CONFIG_THRUSTMASTER_FF is not set # CONFIG_HID_UDRAW_PS3 is not set CONFIG_HID_WACOM=m CONFIG_HID_WIIMOTE=m # CONFIG_HID_XINMO is not set CONFIG_HID_ZEROPLUS=m # CONFIG_ZEROPLUS_FF is not set CONFIG_HID_ZYDACRON=m # CONFIG_HID_SENSOR_HUB is not set # CONFIG_HID_ALPS is not set # # USB HID support # CONFIG_USB_HID=y CONFIG_HID_PID=y CONFIG_USB_HIDDEV=y # # I2C HID support # CONFIG_I2C_HID=m # # Intel ISH HID support # # CONFIG_INTEL_ISH_HID is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_SUPPORT=y CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y CONFIG_USB_PCI=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set # CONFIG_USB_LEDS_TRIGGER_USBPORT is not set CONFIG_USB_MON=y CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m # CONFIG_USB_WUSB_CBAF_DEBUG is not set # # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_DBGCAP is not set CONFIG_USB_XHCI_PCI=y CONFIG_USB_XHCI_PLATFORM=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_PCI=y # CONFIG_USB_EHCI_HCD_PLATFORM is not set # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_FOTG210_HCD is not set # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_PCI=y # CONFIG_USB_OHCI_HCD_PLATFORM is not set CONFIG_USB_UHCI_HCD=y # CONFIG_USB_U132_HCD is not set # CONFIG_USB_SL811_HCD is not set # CONFIG_USB_R8A66597_HCD is not set # CONFIG_USB_WHCI_HCD is not set CONFIG_USB_HWA_HCD=m # CONFIG_USB_HCD_BCMA is not set # CONFIG_USB_HCD_SSB is not set # CONFIG_USB_HCD_TEST_MODE is not set # # USB Device Class drivers # CONFIG_USB_ACM=m CONFIG_USB_PRINTER=m CONFIG_USB_WDM=m CONFIG_USB_TMC=m # # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may # # # also be needed; see USB_STORAGE Help for more info # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_DATAFAB=m CONFIG_USB_STORAGE_FREECOM=m CONFIG_USB_STORAGE_ISD200=m CONFIG_USB_STORAGE_USBAT=m CONFIG_USB_STORAGE_SDDR09=m CONFIG_USB_STORAGE_SDDR55=m CONFIG_USB_STORAGE_JUMPSHOT=m CONFIG_USB_STORAGE_ALAUDA=m CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m CONFIG_USB_STORAGE_ENE_UB6250=m CONFIG_USB_UAS=m # # USB Imaging devices # CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m # CONFIG_USBIP_CORE is not set # CONFIG_USB_MUSB_HDRC is not set CONFIG_USB_DWC3=y # CONFIG_USB_DWC3_HOST is not set CONFIG_USB_DWC3_GADGET=y # CONFIG_USB_DWC3_DUAL_ROLE is not set # # Platform Glue Driver Support # CONFIG_USB_DWC3_PCI=y CONFIG_USB_DWC3_HAPS=y # CONFIG_USB_DWC2 is not set # CONFIG_USB_CHIPIDEA is not set # CONFIG_USB_ISP1760 is not set # # USB port drivers # CONFIG_USB_USS720=m CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_CONSOLE=y CONFIG_USB_SERIAL_GENERIC=y # CONFIG_USB_SERIAL_SIMPLE is not set CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_ARK3116=m CONFIG_USB_SERIAL_BELKIN=m CONFIG_USB_SERIAL_CH341=m CONFIG_USB_SERIAL_WHITEHEAT=m CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_VISOR=m CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m # CONFIG_USB_SERIAL_F81232 is not set # CONFIG_USB_SERIAL_F8153X is not set CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m CONFIG_USB_SERIAL_KEYSPAN_PDA=m CONFIG_USB_SERIAL_KEYSPAN=m CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set CONFIG_USB_SERIAL_NAVMAN=m CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m CONFIG_USB_SERIAL_SAFE=m CONFIG_USB_SERIAL_SAFE_PADDED=y CONFIG_USB_SERIAL_SIERRAWIRELESS=m CONFIG_USB_SERIAL_SYMBOL=m # CONFIG_USB_SERIAL_TI is not set CONFIG_USB_SERIAL_CYBERJACK=m CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m CONFIG_USB_SERIAL_OMNINET=m CONFIG_USB_SERIAL_OPTICON=m CONFIG_USB_SERIAL_XSENS_MT=m # CONFIG_USB_SERIAL_WISHBONE is not set CONFIG_USB_SERIAL_SSU100=m CONFIG_USB_SERIAL_QT2=m # CONFIG_USB_SERIAL_UPD78F0730 is not set CONFIG_USB_SERIAL_DEBUG=m # # USB Miscellaneous drivers # CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m CONFIG_USB_ADUTUX=m CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set CONFIG_USB_LEGOTOWER=m CONFIG_USB_LCD=m # CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set CONFIG_USB_IDMOUSE=m CONFIG_USB_FTDI_ELAN=m CONFIG_USB_APPLEDISPLAY=m CONFIG_USB_SISUSBVGA=m CONFIG_USB_SISUSBVGA_CON=y CONFIG_USB_LD=m # CONFIG_USB_TRANCEVIBRATOR is not set CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set # CONFIG_USB_EHSET_TEST_FIXTURE is not set CONFIG_USB_ISIGHTFW=m # CONFIG_USB_YUREX is not set CONFIG_USB_EZUSB_FX2=m # CONFIG_USB_HUB_USB251XB is not set CONFIG_USB_HSIC_USB3503=m # CONFIG_USB_HSIC_USB4604 is not set # CONFIG_USB_LINK_LAYER_TEST is not set # CONFIG_USB_CHAOSKEY is not set CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m # # USB Physical Layer drivers # CONFIG_USB_PHY=y CONFIG_NOP_USB_XCEIV=y # CONFIG_USB_GPIO_VBUS is not set # CONFIG_USB_ISP1301 is not set CONFIG_USB_GADGET=y # CONFIG_USB_GADGET_DEBUG is not set # CONFIG_USB_GADGET_DEBUG_FILES is not set # CONFIG_USB_GADGET_DEBUG_FS is not set CONFIG_USB_GADGET_VBUS_DRAW=2 CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # # USB Peripheral Controller # # CONFIG_USB_FOTG210_UDC is not set # CONFIG_USB_GR_UDC is not set # CONFIG_USB_R8A66597 is not set # CONFIG_USB_PXA27X is not set # CONFIG_USB_MV_UDC is not set # CONFIG_USB_MV_U3D is not set # CONFIG_USB_M66592 is not set # CONFIG_USB_BDC_UDC is not set # CONFIG_USB_AMD5536UDC is not set # CONFIG_USB_NET2272 is not set # CONFIG_USB_NET2280 is not set # CONFIG_USB_GOKU is not set # CONFIG_USB_EG20T is not set # CONFIG_USB_DUMMY_HCD is not set CONFIG_USB_LIBCOMPOSITE=m CONFIG_USB_F_MASS_STORAGE=m # CONFIG_USB_CONFIGFS is not set # CONFIG_USB_ZERO is not set # CONFIG_USB_AUDIO is not set # CONFIG_USB_ETH is not set # CONFIG_USB_G_NCM is not set # CONFIG_USB_GADGETFS is not set # CONFIG_USB_FUNCTIONFS is not set CONFIG_USB_MASS_STORAGE=m # CONFIG_USB_GADGET_TARGET is not set # CONFIG_USB_G_SERIAL is not set # CONFIG_USB_MIDI_GADGET is not set # CONFIG_USB_G_PRINTER is not set # CONFIG_USB_CDC_COMPOSITE is not set # CONFIG_USB_G_ACM_MS is not set # CONFIG_USB_G_MULTI is not set # CONFIG_USB_G_HID is not set # CONFIG_USB_G_DBGP is not set # CONFIG_USB_G_WEBCAM is not set # CONFIG_TYPEC is not set # CONFIG_USB_LED_TRIG is not set # CONFIG_USB_ULPI_BUS is not set CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m CONFIG_UWB_I1480U=m CONFIG_MMC=m CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_SDIO_UART=m # CONFIG_MMC_TEST is not set # # MMC/SD/SDIO Host Controller Drivers # # CONFIG_MMC_DEBUG is not set CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_RICOH_MMC=y CONFIG_MMC_SDHCI_ACPI=m CONFIG_MMC_SDHCI_PLTFM=m # CONFIG_MMC_SDHCI_F_SDH30 is not set # CONFIG_MMC_WBSD is not set CONFIG_MMC_TIFM_SD=m # CONFIG_MMC_SPI is not set CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_VUB300=m CONFIG_MMC_USHC=m # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_CQHCI=m # CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_MTK is not set # CONFIG_MMC_SDHCI_XENON is not set CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set # # MemoryStick drivers # # CONFIG_MEMSTICK_UNSAFE_RESUME is not set CONFIG_MSPRO_BLOCK=m # CONFIG_MS_BLOCK is not set # # MemoryStick Host Controller Drivers # CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m CONFIG_MEMSTICK_R592=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y # CONFIG_LEDS_CLASS_FLASH is not set # CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set # # LED drivers # # CONFIG_LEDS_APU is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM3642 is not set # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_GPIO is not set CONFIG_LEDS_LP3944=m # CONFIG_LEDS_LP3952 is not set CONFIG_LEDS_LP55XX_COMMON=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m CONFIG_LEDS_LP5562=m # CONFIG_LEDS_LP8501 is not set CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_BD2802 is not set CONFIG_LEDS_INTEL_SS4200=m # CONFIG_LEDS_LT3593 is not set # CONFIG_LEDS_TCA6507 is not set # CONFIG_LEDS_TLC591XX is not set # CONFIG_LEDS_LM355x is not set # # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) # CONFIG_LEDS_BLINKM=m # CONFIG_LEDS_MLXCPLD is not set # CONFIG_LEDS_MLXREG is not set # CONFIG_LEDS_USER is not set # CONFIG_LEDS_NIC78BX is not set # # LED Triggers # CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_ONESHOT=m # CONFIG_LEDS_TRIGGER_DISK is not set # CONFIG_LEDS_TRIGGER_MTD is not set CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m # CONFIG_LEDS_TRIGGER_CPU is not set # CONFIG_LEDS_TRIGGER_ACTIVITY is not set # CONFIG_LEDS_TRIGGER_GPIO is not set CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # # iptables trigger is under Netfilter config (LED target) # CONFIG_LEDS_TRIGGER_TRANSIENT=m CONFIG_LEDS_TRIGGER_CAMERA=m # CONFIG_LEDS_TRIGGER_PANIC is not set # CONFIG_LEDS_TRIGGER_NETDEV is not set # CONFIG_LEDS_TRIGGER_PATTERN is not set # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y CONFIG_EDAC=y CONFIG_EDAC_LEGACY_SYSFS=y # CONFIG_EDAC_DEBUG is not set CONFIG_EDAC_DECODE_MCE=m # CONFIG_EDAC_GHES is not set CONFIG_EDAC_AMD64=m # CONFIG_EDAC_AMD64_ERROR_INJECTION is not set CONFIG_EDAC_E752X=m CONFIG_EDAC_I82975X=m CONFIG_EDAC_I3000=m CONFIG_EDAC_I3200=m # CONFIG_EDAC_IE31200 is not set CONFIG_EDAC_X38=m CONFIG_EDAC_I5400=m CONFIG_EDAC_I7CORE=m CONFIG_EDAC_I5000=m CONFIG_EDAC_I5100=m CONFIG_EDAC_I7300=m CONFIG_EDAC_SBRIDGE=m # CONFIG_EDAC_SKX is not set # CONFIG_EDAC_PND2 is not set CONFIG_RTC_LIB=y CONFIG_RTC_MC146818_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # CONFIG_RTC_SYSTOHC is not set # CONFIG_RTC_DEBUG is not set CONFIG_RTC_NVMEM=y # # RTC interfaces # CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set # CONFIG_RTC_DRV_TEST is not set # # I2C RTC drivers # # CONFIG_RTC_DRV_ABB5ZES3 is not set # CONFIG_RTC_DRV_ABX80X is not set CONFIG_RTC_DRV_DS1307=m # CONFIG_RTC_DRV_DS1307_CENTURY is not set CONFIG_RTC_DRV_DS1374=m # CONFIG_RTC_DRV_DS1374_WDT is not set CONFIG_RTC_DRV_DS1672=m CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8523=m # CONFIG_RTC_DRV_PCF85063 is not set # CONFIG_RTC_DRV_PCF85363 is not set CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m CONFIG_RTC_DRV_M41T80_WDT=y CONFIG_RTC_DRV_BQ32K=m # CONFIG_RTC_DRV_S35390A is not set CONFIG_RTC_DRV_FM3130=m # CONFIG_RTC_DRV_RX8010 is not set CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m CONFIG_RTC_DRV_EM3027=m # CONFIG_RTC_DRV_RV8803 is not set # # SPI RTC drivers # # CONFIG_RTC_DRV_M41T93 is not set # CONFIG_RTC_DRV_M41T94 is not set # CONFIG_RTC_DRV_DS1302 is not set # CONFIG_RTC_DRV_DS1305 is not set # CONFIG_RTC_DRV_DS1343 is not set # CONFIG_RTC_DRV_DS1347 is not set # CONFIG_RTC_DRV_DS1390 is not set # CONFIG_RTC_DRV_MAX6916 is not set # CONFIG_RTC_DRV_R9701 is not set # CONFIG_RTC_DRV_RX4581 is not set # CONFIG_RTC_DRV_RX6110 is not set # CONFIG_RTC_DRV_RS5C348 is not set # CONFIG_RTC_DRV_MAX6902 is not set # CONFIG_RTC_DRV_PCF2123 is not set # CONFIG_RTC_DRV_MCP795 is not set CONFIG_RTC_I2C_AND_SPI=y # # SPI and I2C RTC drivers # CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_DS3232_HWMON=y # CONFIG_RTC_DRV_PCF2127 is not set CONFIG_RTC_DRV_RV3029C2=m CONFIG_RTC_DRV_RV3029_HWMON=y # # Platform RTC drivers # CONFIG_RTC_DRV_CMOS=y CONFIG_RTC_DRV_DS1286=m CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m # CONFIG_RTC_DRV_DS1685_FAMILY is not set CONFIG_RTC_DRV_DS1742=m CONFIG_RTC_DRV_DS2404=m CONFIG_RTC_DRV_STK17TA8=m # CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m # # on-CPU RTC drivers # # CONFIG_RTC_DRV_FTRTC010 is not set # # HID Sensor RTC drivers # # CONFIG_RTC_DRV_HID_SENSOR_TIME is not set CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set # # DMA Devices # CONFIG_DMA_ENGINE=y CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DMA_ACPI=y # CONFIG_ALTERA_MSGDMA is not set # CONFIG_INTEL_IDMA64 is not set # CONFIG_INTEL_IOATDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_HIDMA is not set CONFIG_DW_DMAC_CORE=y CONFIG_DW_DMAC=m CONFIG_DW_DMAC_PCI=y CONFIG_HSU_DMA=y # # DMA Clients # CONFIG_ASYNC_TX_DMA=y CONFIG_DMATEST=m CONFIG_DMA_ENGINE_RAID=y # # DMABUF options # CONFIG_SYNC_FILE=y CONFIG_SW_SYNC=y # CONFIG_UDMABUF is not set CONFIG_AUXDISPLAY=y # CONFIG_HD44780 is not set CONFIG_KS0108=m CONFIG_KS0108_PORT=0x378 CONFIG_KS0108_DELAY=2 CONFIG_CFAG12864B=m CONFIG_CFAG12864B_RATE=20 # CONFIG_IMG_ASCII_LCD is not set # CONFIG_PANEL is not set CONFIG_UIO=m CONFIG_UIO_CIF=m CONFIG_UIO_PDRV_GENIRQ=m # CONFIG_UIO_DMEM_GENIRQ is not set CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m # CONFIG_UIO_NETX is not set # CONFIG_UIO_PRUSS is not set # CONFIG_UIO_MF624 is not set # CONFIG_UIO_HV_GENERIC is not set CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO_VIRQFD=m CONFIG_VFIO=m # CONFIG_VFIO_NOIOMMU is not set CONFIG_VFIO_PCI=m # CONFIG_VFIO_PCI_VGA is not set CONFIG_VFIO_PCI_MMAP=y CONFIG_VFIO_PCI_INTX=y CONFIG_VFIO_PCI_IGD=y # CONFIG_VFIO_MDEV is not set CONFIG_IRQ_BYPASS_MANAGER=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO=y CONFIG_VIRTIO_MENU=y CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_BALLOON=y # CONFIG_VIRTIO_INPUT is not set # CONFIG_VIRTIO_MMIO is not set # # Microsoft Hyper-V guest support # CONFIG_HYPERV=m CONFIG_HYPERV_TSCPAGE=y CONFIG_HYPERV_UTILS=m CONFIG_HYPERV_BALLOON=m # # Xen driver support # CONFIG_XEN_BALLOON=y # CONFIG_XEN_SELFBALLOONING is not set # CONFIG_XEN_BALLOON_MEMORY_HOTPLUG is not set CONFIG_XEN_SCRUB_PAGES_DEFAULT=y CONFIG_XEN_DEV_EVTCHN=m CONFIG_XEN_BACKEND=y CONFIG_XENFS=m CONFIG_XEN_COMPAT_XENFS=y CONFIG_XEN_SYS_HYPERVISOR=y CONFIG_XEN_XENBUS_FRONTEND=y # CONFIG_XEN_GNTDEV is not set # CONFIG_XEN_GRANT_DEV_ALLOC is not set # CONFIG_XEN_GRANT_DMA_ALLOC is not set CONFIG_SWIOTLB_XEN=y CONFIG_XEN_TMEM=m CONFIG_XEN_PCIDEV_BACKEND=m # CONFIG_XEN_PVCALLS_FRONTEND is not set # CONFIG_XEN_PVCALLS_BACKEND is not set # CONFIG_XEN_SCSI_BACKEND is not set CONFIG_XEN_PRIVCMD=m CONFIG_XEN_ACPI_PROCESSOR=m # CONFIG_XEN_MCE_LOG is not set CONFIG_XEN_HAVE_PVMMU=y CONFIG_XEN_EFI=y CONFIG_XEN_AUTO_XLATE=y CONFIG_XEN_ACPI=y CONFIG_XEN_SYMS=y CONFIG_XEN_HAVE_VPMU=y CONFIG_STAGING=y # CONFIG_PRISM2_USB is not set # CONFIG_COMEDI is not set # CONFIG_RTL8192U is not set CONFIG_RTLLIB=m CONFIG_RTLLIB_CRYPTO_CCMP=m CONFIG_RTLLIB_CRYPTO_TKIP=m CONFIG_RTLLIB_CRYPTO_WEP=m CONFIG_RTL8192E=m # CONFIG_RTL8723BS is not set CONFIG_R8712U=m # CONFIG_R8188EU is not set # CONFIG_R8822BE is not set # CONFIG_RTS5208 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set # CONFIG_FB_SM750 is not set # CONFIG_FB_XGI is not set # # Speakup console speech # # CONFIG_SPEAKUP is not set # CONFIG_STAGING_MEDIA is not set # # Android # # CONFIG_LTE_GDM724X is not set CONFIG_FIREWIRE_SERIAL=m CONFIG_FWTTY_MAX_TOTAL_PORTS=64 CONFIG_FWTTY_MAX_CARD_PORTS=32 # CONFIG_GS_FPGABOOT is not set # CONFIG_UNISYSSPAR is not set # CONFIG_FB_TFT is not set # CONFIG_WILC1000_SDIO is not set # CONFIG_WILC1000_SPI is not set # CONFIG_MOST is not set # CONFIG_KS7010 is not set # CONFIG_GREYBUS is not set # CONFIG_DRM_VBOXVIDEO is not set # CONFIG_PI433 is not set # CONFIG_MTK_MMC is not set # # Gasket devices # # CONFIG_STAGING_GASKET_FRAMEWORK is not set # CONFIG_XIL_AXIS_FIFO is not set # CONFIG_EROFS_FS is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m # CONFIG_ACER_WIRELESS is not set CONFIG_ACERHDF=m # CONFIG_ALIENWARE_WMI is not set CONFIG_ASUS_LAPTOP=m CONFIG_DCDBAS=m # CONFIG_DELL_SMBIOS is not set CONFIG_DELL_WMI_AIO=m # CONFIG_DELL_WMI_LED is not set # CONFIG_DELL_SMO8800 is not set # CONFIG_DELL_RBTN is not set CONFIG_DELL_RBU=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_TABLET=m CONFIG_AMILO_RFKILL=m # CONFIG_GPD_POCKET_FAN is not set CONFIG_HP_ACCEL=m # CONFIG_HP_WIRELESS is not set CONFIG_HP_WMI=m # CONFIG_LG_LAPTOP is not set CONFIG_MSI_LAPTOP=m CONFIG_PANASONIC_LAPTOP=m CONFIG_COMPAL_LAPTOP=m CONFIG_SONY_LAPTOP=m CONFIG_SONYPI_COMPAT=y CONFIG_IDEAPAD_LAPTOP=m # CONFIG_SURFACE3_WMI is not set CONFIG_THINKPAD_ACPI=m CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set # CONFIG_THINKPAD_ACPI_DEBUG is not set # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set CONFIG_THINKPAD_ACPI_VIDEO=y CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y CONFIG_SENSORS_HDAPS=m # CONFIG_INTEL_MENLOW is not set CONFIG_EEEPC_LAPTOP=m CONFIG_ASUS_WMI=m CONFIG_ASUS_NB_WMI=m CONFIG_EEEPC_WMI=m # CONFIG_ASUS_WIRELESS is not set CONFIG_ACPI_WMI=m CONFIG_WMI_BMOF=m # CONFIG_INTEL_WMI_THUNDERBOLT is not set CONFIG_MSI_WMI=m # CONFIG_PEAQ_WMI is not set CONFIG_TOPSTAR_LAPTOP=m CONFIG_TOSHIBA_BT_RFKILL=m # CONFIG_TOSHIBA_HAPS is not set # CONFIG_TOSHIBA_WMI is not set CONFIG_ACPI_CMPC=m # CONFIG_INTEL_INT0002_VGPIO is not set # CONFIG_INTEL_HID_EVENT is not set # CONFIG_INTEL_VBTN is not set CONFIG_INTEL_IPS=m # CONFIG_INTEL_PMC_CORE is not set # CONFIG_IBM_RTL is not set CONFIG_SAMSUNG_LAPTOP=m CONFIG_MXM_WMI=m CONFIG_INTEL_OAKTRAIL=m CONFIG_SAMSUNG_Q10=m CONFIG_APPLE_GMUX=m # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set CONFIG_PVPANIC=y # CONFIG_INTEL_PMC_IPC is not set # CONFIG_SURFACE_PRO3_BUTTON is not set # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_MLX_PLATFORM is not set # CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_I2C_MULTI_INSTANTIATE is not set # CONFIG_INTEL_ATOMISP2_PM is not set CONFIG_PMC_ATOM=y # CONFIG_CHROME_PLATFORMS is not set # CONFIG_MELLANOX_PLATFORM is not set CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y # # Common Clock Framework # # CONFIG_COMMON_CLK_MAX9485 is not set # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_CDCE706 is not set # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_PWM is not set # CONFIG_HWSPINLOCK is not set # # Clock Source drivers # CONFIG_CLKEVT_I8253=y CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y CONFIG_MAILBOX=y CONFIG_PCC=y # CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y # # Generic IOMMU Pagetable Support # # CONFIG_IOMMU_DEBUGFS is not set # CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set CONFIG_IOMMU_IOVA=y CONFIG_AMD_IOMMU=y CONFIG_AMD_IOMMU_V2=m CONFIG_DMAR_TABLE=y CONFIG_INTEL_IOMMU=y # CONFIG_INTEL_IOMMU_SVM is not set # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set CONFIG_INTEL_IOMMU_FLOPPY_WA=y CONFIG_IRQ_REMAP=y # # Remoteproc drivers # # CONFIG_REMOTEPROC is not set # # Rpmsg drivers # # CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # CONFIG_SOUNDWIRE is not set # # SOC (System On Chip) specific Drivers # # # Amlogic SoC drivers # # # Broadcom SoC drivers # # # NXP/Freescale QorIQ SoC drivers # # # i.MX SoC drivers # # # Qualcomm SoC drivers # # CONFIG_SOC_TI is not set # # Xilinx SoC drivers # # CONFIG_XILINX_VCU is not set CONFIG_PM_DEVFREQ=y # # DEVFREQ Governors # CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_PERFORMANCE is not set # CONFIG_DEVFREQ_GOV_POWERSAVE is not set # CONFIG_DEVFREQ_GOV_USERSPACE is not set # CONFIG_DEVFREQ_GOV_PASSIVE is not set # # DEVFREQ Drivers # # CONFIG_PM_DEVFREQ_EVENT is not set CONFIG_EXTCON=y # # Extcon Device Drivers # # CONFIG_EXTCON_GPIO is not set # CONFIG_EXTCON_INTEL_INT3496 is not set # CONFIG_EXTCON_MAX3355 is not set # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set # CONFIG_EXTCON_USB_GPIO is not set # CONFIG_MEMORY is not set # CONFIG_IIO is not set CONFIG_NTB=m # CONFIG_NTB_AMD is not set # CONFIG_NTB_IDT is not set # CONFIG_NTB_INTEL is not set # CONFIG_NTB_SWITCHTEC is not set # CONFIG_NTB_PINGPONG is not set # CONFIG_NTB_TOOL is not set # CONFIG_NTB_PERF is not set # CONFIG_NTB_TRANSPORT is not set # CONFIG_VME_BUS is not set CONFIG_PWM=y CONFIG_PWM_SYSFS=y CONFIG_PWM_LPSS=m CONFIG_PWM_LPSS_PCI=m CONFIG_PWM_LPSS_PLATFORM=m # CONFIG_PWM_PCA9685 is not set # # IRQ chip support # CONFIG_ARM_GIC_MAX_NR=1 # CONFIG_IPACK_BUS is not set # CONFIG_RESET_CONTROLLER is not set # CONFIG_FMC is not set # # PHY Subsystem # CONFIG_GENERIC_PHY=y # CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set CONFIG_POWERCAP=y CONFIG_INTEL_RAPL=m # CONFIG_IDLE_INJECT is not set # CONFIG_MCB is not set # # Performance monitor support # CONFIG_RAS=y # CONFIG_RAS_CEC is not set # CONFIG_THUNDERBOLT is not set # # Android # # CONFIG_ANDROID is not set CONFIG_LIBNVDIMM=m CONFIG_BLK_DEV_PMEM=m CONFIG_ND_BLK=m CONFIG_ND_CLAIM=y CONFIG_ND_BTT=m CONFIG_BTT=y CONFIG_ND_PFN=m CONFIG_NVDIMM_PFN=y CONFIG_NVDIMM_DAX=y CONFIG_DAX_DRIVER=y CONFIG_DAX=y CONFIG_DEV_DAX=m CONFIG_DEV_DAX_PMEM=m CONFIG_NVMEM=y # # HW tracing support # CONFIG_STM=m # CONFIG_STM_PROTO_BASIC is not set # CONFIG_STM_PROTO_SYS_T is not set CONFIG_STM_DUMMY=m CONFIG_STM_SOURCE_CONSOLE=m CONFIG_STM_SOURCE_HEARTBEAT=m CONFIG_STM_SOURCE_FTRACE=m CONFIG_INTEL_TH=m CONFIG_INTEL_TH_PCI=m # CONFIG_INTEL_TH_ACPI is not set CONFIG_INTEL_TH_GTH=m CONFIG_INTEL_TH_STH=m CONFIG_INTEL_TH_MSU=m CONFIG_INTEL_TH_PTI=m # CONFIG_INTEL_TH_DEBUG is not set # CONFIG_FPGA is not set CONFIG_PM_OPP=y # CONFIG_UNISYS_VISORBUS is not set # CONFIG_SIOX is not set # CONFIG_SLIMBUS is not set # # File systems # CONFIG_DCACHE_WORD_ACCESS=y CONFIG_FS_IOMAP=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y CONFIG_EXT4_ENCRYPTION=y CONFIG_EXT4_FS_ENCRYPTION=y # CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_RT=y CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_ONLINE_REPAIR=y CONFIG_XFS_DEBUG=y CONFIG_XFS_ASSERT_FATAL=y CONFIG_GFS2_FS=m CONFIG_GFS2_FS_LOCKING_DLM=y CONFIG_OCFS2_FS=m CONFIG_OCFS2_FS_O2CB=m CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m CONFIG_OCFS2_FS_STATS=y CONFIG_OCFS2_DEBUG_MASKLOG=y # CONFIG_OCFS2_DEBUG_FS is not set CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set # CONFIG_BTRFS_DEBUG is not set # CONFIG_BTRFS_ASSERT is not set # CONFIG_BTRFS_FS_REF_VERIFY is not set # CONFIG_NILFS2_FS is not set CONFIG_F2FS_FS=m CONFIG_F2FS_STAT_FS=y CONFIG_F2FS_FS_XATTR=y CONFIG_F2FS_FS_POSIX_ACL=y # CONFIG_F2FS_FS_SECURITY is not set # CONFIG_F2FS_CHECK_FS is not set CONFIG_F2FS_FS_ENCRYPTION=y # CONFIG_F2FS_IO_TRACE is not set # CONFIG_F2FS_FAULT_INJECTION is not set CONFIG_FS_DAX=y CONFIG_FS_DAX_PMD=y CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y # CONFIG_EXPORTFS_BLOCK_OPS is not set CONFIG_FILE_LOCKING=y CONFIG_MANDATORY_FILE_LOCKING=y CONFIG_FS_ENCRYPTION=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y # CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=y # CONFIG_QFMT_V1 is not set CONFIG_QFMT_V2=y CONFIG_QUOTACTL=y CONFIG_QUOTACTL_COMPAT=y CONFIG_AUTOFS4_FS=y CONFIG_AUTOFS_FS=y CONFIG_FUSE_FS=m CONFIG_CUSE=m CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_REDIRECT_DIR is not set CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y # CONFIG_OVERLAY_FS_INDEX is not set # CONFIG_OVERLAY_FS_XINO_AUTO is not set # CONFIG_OVERLAY_FS_METACOPY is not set # # Caches # CONFIG_FSCACHE=m CONFIG_FSCACHE_STATS=y # CONFIG_FSCACHE_HISTOGRAM is not set # CONFIG_FSCACHE_DEBUG is not set # CONFIG_FSCACHE_OBJECT_LIST is not set CONFIG_CACHEFILES=m # CONFIG_CACHEFILES_DEBUG is not set # CONFIG_CACHEFILES_HISTOGRAM is not set # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=m CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="ascii" # CONFIG_FAT_DEFAULT_UTF8 is not set # CONFIG_NTFS_FS is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_VMCORE=y # CONFIG_PROC_VMCORE_DEVICE_DUMP is not set CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y CONFIG_PROC_CHILDREN=y CONFIG_KERNFS=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_MEMFD_CREATE=y CONFIG_ARCH_HAS_GIGANTIC_PAGE=y CONFIG_CONFIGFS_FS=y CONFIG_EFIVAR_FS=y CONFIG_MISC_FILESYSTEMS=y # CONFIG_ORANGEFS_FS is not set # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_JFFS2_FS is not set # CONFIG_UBIFS_FS is not set CONFIG_CRAMFS=m CONFIG_CRAMFS_BLOCKDEV=y # CONFIG_CRAMFS_MTD is not set CONFIG_SQUASHFS=m CONFIG_SQUASHFS_FILE_CACHE=y # CONFIG_SQUASHFS_FILE_DIRECT is not set CONFIG_SQUASHFS_DECOMP_SINGLE=y # CONFIG_SQUASHFS_DECOMP_MULTI is not set # CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_ZLIB=y # CONFIG_SQUASHFS_LZ4 is not set CONFIG_SQUASHFS_LZO=y CONFIG_SQUASHFS_XZ=y # CONFIG_SQUASHFS_ZSTD is not set # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_VXFS_FS is not set CONFIG_MINIX_FS=m # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set CONFIG_PSTORE=y CONFIG_PSTORE_DEFLATE_COMPRESS=y # CONFIG_PSTORE_LZO_COMPRESS is not set # CONFIG_PSTORE_LZ4_COMPRESS is not set # CONFIG_PSTORE_LZ4HC_COMPRESS is not set # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_ZSTD_COMPRESS is not set CONFIG_PSTORE_COMPRESS=y CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" CONFIG_PSTORE_CONSOLE=y CONFIG_PSTORE_PMSG=y # CONFIG_PSTORE_FTRACE is not set CONFIG_PSTORE_RAM=m # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set # CONFIG_EXOFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=y # CONFIG_NFS_V2 is not set CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=m # CONFIG_NFS_SWAP is not set CONFIG_NFS_V4_1=y CONFIG_NFS_V4_2=y CONFIG_PNFS_FILE_LAYOUT=m CONFIG_PNFS_BLOCK=m CONFIG_PNFS_FLEXFILE_LAYOUT=m CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" # CONFIG_NFS_V4_1_MIGRATION is not set CONFIG_NFS_V4_SECURITY_LABEL=y CONFIG_ROOT_NFS=y # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y CONFIG_NFS_DEBUG=y CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y # CONFIG_NFSD_BLOCKLAYOUT is not set # CONFIG_NFSD_SCSILAYOUT is not set # CONFIG_NFSD_FLEXFILELAYOUT is not set CONFIG_NFSD_V4_SECURITY_LABEL=y # CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_GRACE_PERIOD=y CONFIG_LOCKD=y CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC_BACKCHANNEL=y CONFIG_RPCSEC_GSS_KRB5=m CONFIG_SUNRPC_DEBUG=y # CONFIG_CEPH_FS is not set CONFIG_CIFS=m # CONFIG_CIFS_STATS2 is not set CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y CONFIG_CIFS_ACL=y CONFIG_CIFS_DEBUG=y # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DEBUG_DUMP_KEYS is not set CONFIG_CIFS_DFS_UPCALL=y # CONFIG_CIFS_FSCACHE is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set CONFIG_9P_FS=y CONFIG_9P_FS_POSIX_ACL=y # CONFIG_9P_FS_SECURITY is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_737=m CONFIG_NLS_CODEPAGE_775=m CONFIG_NLS_CODEPAGE_850=m CONFIG_NLS_CODEPAGE_852=m CONFIG_NLS_CODEPAGE_855=m CONFIG_NLS_CODEPAGE_857=m CONFIG_NLS_CODEPAGE_860=m CONFIG_NLS_CODEPAGE_861=m CONFIG_NLS_CODEPAGE_862=m CONFIG_NLS_CODEPAGE_863=m CONFIG_NLS_CODEPAGE_864=m CONFIG_NLS_CODEPAGE_865=m CONFIG_NLS_CODEPAGE_866=m CONFIG_NLS_CODEPAGE_869=m CONFIG_NLS_CODEPAGE_936=m CONFIG_NLS_CODEPAGE_950=m CONFIG_NLS_CODEPAGE_932=m CONFIG_NLS_CODEPAGE_949=m CONFIG_NLS_CODEPAGE_874=m CONFIG_NLS_ISO8859_8=m CONFIG_NLS_CODEPAGE_1250=m CONFIG_NLS_CODEPAGE_1251=m CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=m CONFIG_NLS_ISO8859_2=m CONFIG_NLS_ISO8859_3=m CONFIG_NLS_ISO8859_4=m CONFIG_NLS_ISO8859_5=m CONFIG_NLS_ISO8859_6=m CONFIG_NLS_ISO8859_7=m CONFIG_NLS_ISO8859_9=m CONFIG_NLS_ISO8859_13=m CONFIG_NLS_ISO8859_14=m CONFIG_NLS_ISO8859_15=m CONFIG_NLS_KOI8_R=m CONFIG_NLS_KOI8_U=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_CELTIC=m CONFIG_NLS_MAC_CENTEURO=m CONFIG_NLS_MAC_CROATIAN=m CONFIG_NLS_MAC_CYRILLIC=m CONFIG_NLS_MAC_GAELIC=m CONFIG_NLS_MAC_GREEK=m CONFIG_NLS_MAC_ICELAND=m CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_TURKISH=m CONFIG_NLS_UTF8=m CONFIG_DLM=m CONFIG_DLM_DEBUG=y # # Security options # CONFIG_KEYS=y CONFIG_KEYS_COMPAT=y CONFIG_PERSISTENT_KEYRINGS=y CONFIG_BIG_KEYS=y CONFIG_TRUSTED_KEYS=y CONFIG_ENCRYPTED_KEYS=y # CONFIG_KEY_DH_OPERATIONS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set CONFIG_SECURITY=y CONFIG_SECURITY_WRITABLE_HOOKS=y CONFIG_SECURITYFS=y CONFIG_SECURITY_NETWORK=y CONFIG_PAGE_TABLE_ISOLATION=y CONFIG_SECURITY_NETWORK_XFRM=y CONFIG_SECURITY_PATH=y CONFIG_INTEL_TXT=y CONFIG_LSM_MMAP_MIN_ADDR=65535 CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_HARDENED_USERCOPY is not set # CONFIG_FORTIFY_SOURCE is not set # CONFIG_STATIC_USERMODEHELPER is not set CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 # CONFIG_SECURITY_SMACK is not set # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y # CONFIG_SECURITY_APPARMOR_DEBUG is not set # CONFIG_SECURITY_LOADPIN is not set # CONFIG_SECURITY_YAMA is not set CONFIG_INTEGRITY=y CONFIG_INTEGRITY_SIGNATURE=y CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y CONFIG_INTEGRITY_TRUSTED_KEYRING=y CONFIG_INTEGRITY_AUDIT=y CONFIG_IMA=y CONFIG_IMA_MEASURE_PCR_IDX=10 CONFIG_IMA_LSM_RULES=y # CONFIG_IMA_TEMPLATE is not set CONFIG_IMA_NG_TEMPLATE=y # CONFIG_IMA_SIG_TEMPLATE is not set CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng" CONFIG_IMA_DEFAULT_HASH_SHA1=y # CONFIG_IMA_DEFAULT_HASH_SHA256 is not set # CONFIG_IMA_DEFAULT_HASH_SHA512 is not set CONFIG_IMA_DEFAULT_HASH="sha1" # CONFIG_IMA_WRITE_POLICY is not set # CONFIG_IMA_READ_POLICY is not set CONFIG_IMA_APPRAISE=y # CONFIG_IMA_APPRAISE_BUILD_POLICY is not set CONFIG_IMA_APPRAISE_BOOTPARAM=y CONFIG_IMA_TRUSTED_KEYRING=y # CONFIG_IMA_BLACKLIST_KEYRING is not set # CONFIG_IMA_LOAD_X509 is not set CONFIG_EVM=y CONFIG_EVM_ATTR_FSUUID=y # CONFIG_EVM_ADD_XATTRS is not set # CONFIG_EVM_LOAD_X509 is not set CONFIG_DEFAULT_SECURITY_SELINUX=y # CONFIG_DEFAULT_SECURITY_APPARMOR is not set # CONFIG_DEFAULT_SECURITY_DAC is not set CONFIG_DEFAULT_SECURITY="selinux" CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m CONFIG_ASYNC_XOR=m CONFIG_ASYNC_PQ=m CONFIG_ASYNC_RAID6_RECOV=m CONFIG_CRYPTO=y # # Crypto core or helper # CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_AKCIPHER=y CONFIG_CRYPTO_KPP2=y CONFIG_CRYPTO_ACOMP2=y CONFIG_CRYPTO_RSA=y # CONFIG_CRYPTO_DH is not set # CONFIG_CRYPTO_ECDH is not set CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=m CONFIG_CRYPTO_TEST=m CONFIG_CRYPTO_SIMD=m CONFIG_CRYPTO_GLUE_HELPER_X86=m CONFIG_CRYPTO_ENGINE=m # # Authenticated Encryption with Associated Data # CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=y # CONFIG_CRYPTO_CHACHA20POLY1305 is not set # CONFIG_CRYPTO_AEGIS128 is not set # CONFIG_CRYPTO_AEGIS128L is not set # CONFIG_CRYPTO_AEGIS256 is not set # CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set # CONFIG_CRYPTO_AEGIS128L_AESNI_SSE2 is not set # CONFIG_CRYPTO_AEGIS256_AESNI_SSE2 is not set # CONFIG_CRYPTO_MORUS640 is not set # CONFIG_CRYPTO_MORUS640_SSE2 is not set # CONFIG_CRYPTO_MORUS1280 is not set # CONFIG_CRYPTO_MORUS1280_SSE2 is not set # CONFIG_CRYPTO_MORUS1280_AVX2 is not set CONFIG_CRYPTO_SEQIV=y CONFIG_CRYPTO_ECHAINIV=m # # Block modes # CONFIG_CRYPTO_CBC=y # CONFIG_CRYPTO_CFB is not set CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=y CONFIG_CRYPTO_ECB=y CONFIG_CRYPTO_LRW=m # CONFIG_CRYPTO_OFB is not set CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_XTS=y # CONFIG_CRYPTO_KEYWRAP is not set # # Hash modes # CONFIG_CRYPTO_CMAC=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_VMAC=m # # Digest # CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_CRC32C_INTEL=m CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_CRC32_PCLMUL=m CONFIG_CRYPTO_CRCT10DIF=y CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m CONFIG_CRYPTO_GHASH=y # CONFIG_CRYPTO_POLY1305 is not set # CONFIG_CRYPTO_POLY1305_X86_64 is not set CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA1_SSSE3=m CONFIG_CRYPTO_SHA256_SSSE3=m CONFIG_CRYPTO_SHA512_SSSE3=m CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SHA3=m # CONFIG_CRYPTO_SM3 is not set CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m # # Ciphers # CONFIG_CRYPTO_AES=y # CONFIG_CRYPTO_AES_TI is not set CONFIG_CRYPTO_AES_X86_64=y CONFIG_CRYPTO_AES_NI_INTEL=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_BLOWFISH_X86_64=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA_X86_64=m CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m CONFIG_CRYPTO_CAST_COMMON=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5_AVX_X86_64=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6_AVX_X86_64=m CONFIG_CRYPTO_DES=m # CONFIG_CRYPTO_DES3_EDE_X86_64 is not set CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_SALSA20=m # CONFIG_CRYPTO_CHACHA20 is not set # CONFIG_CRYPTO_CHACHA20_X86_64 is not set CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m CONFIG_CRYPTO_SERPENT_AVX_X86_64=m CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m CONFIG_CRYPTO_TWOFISH_X86_64=m CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m # # Compression # CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_842 is not set # CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4HC is not set # CONFIG_CRYPTO_ZSTD is not set # # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m CONFIG_CRYPTO_DRBG_MENU=y CONFIG_CRYPTO_DRBG_HMAC=y # CONFIG_CRYPTO_DRBG_HASH is not set # CONFIG_CRYPTO_DRBG_CTR is not set CONFIG_CRYPTO_DRBG=y CONFIG_CRYPTO_JITTERENTROPY=y CONFIG_CRYPTO_USER_API=y CONFIG_CRYPTO_USER_API_HASH=y CONFIG_CRYPTO_USER_API_SKCIPHER=y # CONFIG_CRYPTO_USER_API_RNG is not set # CONFIG_CRYPTO_USER_API_AEAD is not set # CONFIG_CRYPTO_STATS is not set CONFIG_CRYPTO_HASH_INFO=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=m CONFIG_CRYPTO_DEV_PADLOCK_AES=m CONFIG_CRYPTO_DEV_PADLOCK_SHA=m # CONFIG_CRYPTO_DEV_CCP is not set # CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set # CONFIG_CRYPTO_DEV_QAT_C3XXX is not set # CONFIG_CRYPTO_DEV_QAT_C62X is not set # CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set # CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set # CONFIG_CRYPTO_DEV_QAT_C62XVF is not set # CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set # CONFIG_CRYPTO_DEV_CHELSIO is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y # CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE is not set CONFIG_X509_CERTIFICATE_PARSER=y # CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set CONFIG_PKCS7_MESSAGE_PARSER=y # CONFIG_PKCS7_TEST_KEY is not set # CONFIG_SIGNED_PE_FILE_VERIFICATION is not set # # Certificates for signature checking # CONFIG_SYSTEM_TRUSTED_KEYRING=y CONFIG_SYSTEM_TRUSTED_KEYS="" # CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set # CONFIG_SECONDARY_TRUSTED_KEYRING is not set # CONFIG_SYSTEM_BLACKLIST_KEYRING is not set CONFIG_BINARY_PRINTF=y # # Library routines # CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y CONFIG_RATIONAL=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_IOMAP=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_ARCH_HAS_FAST_MULTIPLIER=y CONFIG_CRC_CCITT=y CONFIG_CRC16=y CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=m CONFIG_CRC32=y # CONFIG_CRC32_SELFTEST is not set CONFIG_CRC32_SLICEBY8=y # CONFIG_CRC32_SLICEBY4 is not set # CONFIG_CRC32_SARWATE is not set # CONFIG_CRC32_BIT is not set # CONFIG_CRC64 is not set # CONFIG_CRC4 is not set # CONFIG_CRC7 is not set CONFIG_LIBCRC32C=y CONFIG_CRC8=m CONFIG_XXHASH=m # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_DECOMPRESS=y CONFIG_ZSTD_COMPRESS=m CONFIG_ZSTD_DECOMPRESS=m CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y CONFIG_XZ_DEC_POWERPC=y CONFIG_XZ_DEC_IA64=y CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_ARMTHUMB=y CONFIG_XZ_DEC_SPARC=y CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_LZ4=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_REED_SOLOMON=m CONFIG_REED_SOLOMON_ENC8=y CONFIG_REED_SOLOMON_DEC8=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m CONFIG_TEXTSEARCH_FSM=m CONFIG_BTREE=y CONFIG_INTERVAL_TREE=y CONFIG_XARRAY_MULTI=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_DMA_DIRECT_OPS=y CONFIG_SWIOTLB=y CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPUMASK_OFFSTACK=y CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_GLOB=y # CONFIG_GLOB_SELFTEST is not set CONFIG_NLATTR=y CONFIG_CLZ_TAB=y CONFIG_CORDIC=m # CONFIG_DDR is not set CONFIG_IRQ_POLL=y CONFIG_MPILIB=y CONFIG_SIGNATURE=y CONFIG_OID_REGISTRY=y CONFIG_UCS2_STRING=y CONFIG_FONT_SUPPORT=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_SG_POOL=y CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_ARCH_HAS_PMEM_API=y CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y CONFIG_ARCH_HAS_UACCESS_MCSAFE=y CONFIG_SBITMAP=y CONFIG_PRIME_NUMBERS=m # CONFIG_STRING_SELFTEST is not set # # Kernel hacking # # # printk and dmesg options # CONFIG_PRINTK_TIME=y CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_BOOT_PRINTK_DELAY=y CONFIG_DYNAMIC_DEBUG=y # # Compile-time checks and compiler options # CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_REDUCED=y # CONFIG_DEBUG_INFO_SPLIT is not set # CONFIG_DEBUG_INFO_DWARF4 is not set # CONFIG_GDB_SCRIPTS is not set CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=2048 CONFIG_STRIP_ASM_SYMS=y # CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_PAGE_OWNER is not set CONFIG_DEBUG_FS=y CONFIG_HEADERS_CHECK=y CONFIG_DEBUG_SECTION_MISMATCH=y CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_STACK_VALIDATION=y # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_DEBUG_KERNEL=y # # Memory Debugging # # CONFIG_PAGE_EXTENSION is not set # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_PAGE_REF is not set CONFIG_DEBUG_RODATA_TEST=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_VM is not set CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m # CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_HAVE_DEBUG_STACKOVERFLOW=y CONFIG_DEBUG_STACKOVERFLOW=y CONFIG_HAVE_ARCH_KASAN=y # CONFIG_KASAN is not set CONFIG_ARCH_HAS_KCOV=y CONFIG_CC_HAS_SANCOV_TRACE_PC=y # CONFIG_KCOV is not set CONFIG_DEBUG_SHIRQ=y # # Debug Lockups and Hangs # CONFIG_LOCKUP_DETECTOR=y CONFIG_SOFTLOCKUP_DETECTOR=y # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y CONFIG_HARDLOCKUP_DETECTOR=y CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1 # CONFIG_DETECT_HUNG_TASK is not set # CONFIG_WQ_WATCHDOG is not set CONFIG_PANIC_ON_OOPS=y CONFIG_PANIC_ON_OOPS_VALUE=1 CONFIG_PANIC_TIMEOUT=0 CONFIG_SCHED_DEBUG=y CONFIG_SCHED_INFO=y CONFIG_SCHEDSTATS=y # CONFIG_SCHED_STACK_END_CHECK is not set # CONFIG_DEBUG_TIMEKEEPING is not set # # Lock Debugging (spinlocks, mutexes, etc...) # CONFIG_LOCK_DEBUGGING_SUPPORT=y # CONFIG_PROVE_LOCKING is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set # CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_LOCK_ALLOC is not set CONFIG_DEBUG_ATOMIC_SLEEP=y # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_LOCK_TORTURE_TEST=m CONFIG_WW_MUTEX_SELFTEST=m CONFIG_STACKTRACE=y # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y CONFIG_DEBUG_LIST=y # CONFIG_DEBUG_PI_LIST is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set # # RCU Debugging # CONFIG_TORTURE_TEST=m CONFIG_RCU_PERF_TEST=m CONFIG_RCU_TORTURE_TEST=m CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_RCU_TRACE is not set # CONFIG_RCU_EQS_DEBUG is not set # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set CONFIG_NOTIFIER_ERROR_INJECTION=m CONFIG_PM_NOTIFIER_ERROR_INJECT=m # CONFIG_NETDEV_NOTIFIER_ERROR_INJECT is not set CONFIG_FUNCTION_ERROR_INJECTION=y CONFIG_FAULT_INJECTION=y # CONFIG_FAILSLAB is not set # CONFIG_FAIL_PAGE_ALLOC is not set CONFIG_FAIL_MAKE_REQUEST=y # CONFIG_FAIL_IO_TIMEOUT is not set # CONFIG_FAIL_FUTEX is not set CONFIG_FAULT_INJECTION_DEBUG_FS=y # CONFIG_FAIL_FUNCTION is not set # CONFIG_FAIL_MMC_REQUEST is not set CONFIG_LATENCYTOP=y CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_FENTRY=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACER_MAX_TRACE=y CONFIG_TRACE_CLOCK=y CONFIG_RING_BUFFER=y CONFIG_EVENT_TRACING=y CONFIG_CONTEXT_SWITCH_TRACER=y CONFIG_RING_BUFFER_ALLOW_SWAP=y CONFIG_TRACING=y CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y CONFIG_FTRACE=y CONFIG_FUNCTION_TRACER=y CONFIG_FUNCTION_GRAPH_TRACER=y # CONFIG_PREEMPTIRQ_EVENTS is not set # CONFIG_IRQSOFF_TRACER is not set CONFIG_SCHED_TRACER=y # CONFIG_HWLAT_TRACER is not set CONFIG_FTRACE_SYSCALLS=y CONFIG_TRACER_SNAPSHOT=y # CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set # CONFIG_PROFILE_ALL_BRANCHES is not set CONFIG_STACK_TRACER=y CONFIG_BLK_DEV_IO_TRACE=y CONFIG_KPROBE_EVENTS=y # CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set CONFIG_UPROBE_EVENTS=y CONFIG_BPF_EVENTS=y CONFIG_PROBE_EVENTS=y CONFIG_DYNAMIC_FTRACE=y CONFIG_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_FUNCTION_PROFILER=y # CONFIG_BPF_KPROBE_OVERRIDE is not set CONFIG_FTRACE_MCOUNT_RECORD=y # CONFIG_FTRACE_STARTUP_TEST is not set # CONFIG_MMIOTRACE is not set CONFIG_TRACING_MAP=y CONFIG_HIST_TRIGGERS=y # CONFIG_TRACEPOINT_BENCHMARK is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set # CONFIG_PREEMPTIRQ_DELAY_TEST is not set # CONFIG_TRACE_EVAL_MAP_FILE is not set CONFIG_TRACING_EVENTS_GPIO=y CONFIG_PROVIDE_OHCI1394_DMA_INIT=y # CONFIG_DMA_API_DEBUG is not set CONFIG_RUNTIME_TESTING_MENU=y CONFIG_LKDTM=m # CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_SORT is not set # CONFIG_KPROBES_SANITY_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_RBTREE_TEST=m CONFIG_INTERVAL_TREE_TEST=m CONFIG_PERCPU_TEST=m CONFIG_ATOMIC64_SELFTEST=y CONFIG_ASYNC_RAID6_TEST=m # CONFIG_TEST_HEXDUMP is not set # CONFIG_TEST_STRING_HELPERS is not set CONFIG_TEST_KSTRTOX=m CONFIG_TEST_PRINTF=m CONFIG_TEST_BITMAP=m # CONFIG_TEST_BITFIELD is not set # CONFIG_TEST_UUID is not set # CONFIG_TEST_XARRAY is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_RHASHTABLE is not set # CONFIG_TEST_HASH is not set # CONFIG_TEST_IDA is not set CONFIG_TEST_LKM=m CONFIG_TEST_USER_COPY=m CONFIG_TEST_BPF=m # CONFIG_FIND_BIT_BENCHMARK is not set CONFIG_TEST_FIRMWARE=m CONFIG_TEST_SYSCTL=m CONFIG_TEST_UDELAY=m CONFIG_TEST_STATIC_KEYS=m CONFIG_TEST_KMOD=m # CONFIG_TEST_MEMCAT_P is not set # CONFIG_MEMTEST is not set # CONFIG_BUG_ON_DATA_CORRUPTION is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y # CONFIG_UBSAN is not set CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y CONFIG_STRICT_DEVMEM=y # CONFIG_IO_STRICT_DEVMEM is not set CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_EARLY_PRINTK_USB=y CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK_DBGP=y # CONFIG_EARLY_PRINTK_EFI is not set # CONFIG_EARLY_PRINTK_USB_XDBC is not set # CONFIG_X86_PTDUMP is not set # CONFIG_EFI_PGT_DUMP is not set # CONFIG_DEBUG_WX is not set CONFIG_DOUBLEFAULT=y # CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_DEBUG is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_X86_DECODER_SELFTEST=y CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_UDELAY=2 CONFIG_IO_DELAY_TYPE_NONE=3 CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_0XED is not set # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 CONFIG_DEBUG_BOOT_PARAMS=y # CONFIG_CPA_DEBUG is not set CONFIG_OPTIMIZE_INLINING=y # CONFIG_DEBUG_ENTRY is not set # CONFIG_DEBUG_NMI_SELFTEST is not set CONFIG_X86_DEBUG_FPU=y # CONFIG_PUNIT_ATOM_DEBUG is not set CONFIG_UNWINDER_ORC=y # CONFIG_UNWINDER_FRAME_POINTER is not set # CONFIG_UNWINDER_GUESS is not set [-- Attachment #3: job-script --] [-- Type: text/plain, Size: 7614 bytes --] #!/bin/sh export_top_env() { export suite='vm-scalability' export testcase='vm-scalability' export category='benchmark' export runtime=300 export nr_task=32 export job_origin='/lkp/lkp/.src-20181111-000856/allot/cyclic:p1:linux-devel:devel-hourly/lkp-hsw-ep4/vm-scalability-swap-1ssd.yaml' export queue='validate' export testbox='lkp-hsw-ep4' export tbox_group='lkp-hsw-ep4' export submit_id='5bf493490b9a93518ed242bf' export job_file='/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-20878-1jb6hcf-3.yaml' export id='8c95128fd0e7d0f29da62d0cecd664ab489fcc1c' export model='Haswell-EP' export nr_node=2 export nr_cpu=72 export memory='128G' export nr_ssd_partitions=1 export ssd_partitions='/dev/nvme0n1p1' export swap_partitions= export rootfs_partition= export brand='Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz' export ucode='0x3d' export need_kconfig='CONFIG_BLK_DEV_SD CONFIG_SCSI CONFIG_BLOCK=y CONFIG_SATA_AHCI CONFIG_SATA_AHCI_PLATFORM CONFIG_ATA CONFIG_PCI=y CONFIG_SWAP CONFIG_MMU CONFIG_BLOCK CONFIG_BLK_DEV_LOOP' export commit='ac5b2c18911ffe95c08d69273917f90212cf5659' export kconfig='x86_64-rhel-7.2' export compiler='gcc-7' export rootfs='debian-x86_64-2018-04-03.cgz' export enqueue_time='2018-11-21 07:05:45 +0800' export _id='5bf493490b9a93518ed242c0' export _rt='/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659' export user='lkp' export head_commit='872879f0b9025e9d84b186b442f9fb98c34f36b8' export base_commit='651022382c7f8da46cb4872a545ee1da6d097d2a' export branch='linux-devel/devel-hourly-2018111020' export result_root='/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/3' export LKP_SERVER='inn' export max_uptime=1500 export initrd='/osimage/debian/debian-x86_64-2018-04-03.cgz' export bootloader_append='root=/dev/ram0 user=lkp job=/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-20878-1jb6hcf-3.yaml ARCH=x86_64 kconfig=x86_64-rhel-7.2 branch=linux-devel/devel-hourly-2018111020 commit=ac5b2c18911ffe95c08d69273917f90212cf5659 BOOT_IMAGE=/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/vmlinuz-4.19.0-12678-gac5b2c1 max_uptime=1500 RESULT_ROOT=/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/3 LKP_SERVER=inn debug apic=debug sysrq_always_enabled rcupdate.rcu_cpu_stall_timeout=100 net.ifnames=0 printk.devkmsg=on panic=-1 softlockup_panic=1 nmi_watchdog=panic oops=panic load_ramdisk=2 prompt_ramdisk=0 drbd.minor_count=8 systemd.log_level=err ignore_loglevel console=tty0 earlyprintk=ttyS0,115200 console=ttyS0,115200 vga=normal rw' export modules_initrd='/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/modules.cgz' export bm_initrd='/osimage/deps/debian-x86_64-2018-04-03.cgz/run-ipconfig_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/lkp_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/rsync-rootfs_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/perf_2018-06-26.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/perf-x86_64-6f0d349d922b_2018-06-26.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/vm-scalability_2018-05-17.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/vm-scalability-x86_64-7afdeab_2018-06-06.cgz,/osimage/pkg/common/vm-scalability-x86_64.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/mpstat_2018-06-19.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/turbostat_2018-05-17.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/turbostat-x86_64-d5256b2_2018-05-18.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/hw+lkp-run-on-qemu.cgz' export lkp_initrd='/lkp/lkp/lkp-x86_64.cgz' export site='inn' export LKP_CGI_PORT=80 export LKP_CIFS_PORT=139 export repeat_to=4 export kernel='/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/vmlinuz-4.19.0-12678-gac5b2c1' export dequeue_time='2018-11-21 07:20:48 +0800' export job_initrd='/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-20878-1jb6hcf-3.cgz' [ -n "$LKP_SRC" ] || export LKP_SRC=/lkp/${user:-lkp}/src } run_job() { echo $$ > $TMP/run-job.pid . $LKP_SRC/lib/http.sh . $LKP_SRC/lib/job.sh . $LKP_SRC/lib/env.sh export_top_env run_setup thp_enabled='always' thp_defrag='always' $LKP_SRC/setup/transparent_hugepage run_setup nr_ssd=1 $LKP_SRC/setup/disk run_setup $LKP_SRC/setup/swap run_setup $LKP_SRC/setup/cpufreq_governor 'performance' run_monitor delay=90 $LKP_SRC/monitors/no-stdout/wrapper perf-profile run_monitor $LKP_SRC/monitors/wrapper kmsg run_monitor $LKP_SRC/monitors/no-stdout/wrapper boot-time run_monitor $LKP_SRC/monitors/wrapper iostat run_monitor $LKP_SRC/monitors/wrapper heartbeat run_monitor $LKP_SRC/monitors/wrapper vmstat run_monitor $LKP_SRC/monitors/wrapper numa-numastat run_monitor $LKP_SRC/monitors/wrapper numa-vmstat run_monitor $LKP_SRC/monitors/wrapper numa-meminfo run_monitor $LKP_SRC/monitors/wrapper proc-vmstat run_monitor $LKP_SRC/monitors/wrapper proc-stat run_monitor $LKP_SRC/monitors/wrapper meminfo run_monitor $LKP_SRC/monitors/wrapper slabinfo run_monitor $LKP_SRC/monitors/wrapper interrupts run_monitor $LKP_SRC/monitors/wrapper lock_stat run_monitor $LKP_SRC/monitors/wrapper latency_stats run_monitor $LKP_SRC/monitors/wrapper softirqs run_monitor $LKP_SRC/monitors/one-shot/wrapper bdi_dev_mapping run_monitor $LKP_SRC/monitors/wrapper diskstats run_monitor $LKP_SRC/monitors/wrapper nfsstat run_monitor $LKP_SRC/monitors/wrapper cpuidle run_monitor $LKP_SRC/monitors/wrapper cpufreq-stats run_monitor $LKP_SRC/monitors/wrapper turbostat run_monitor $LKP_SRC/monitors/wrapper sched_debug run_monitor $LKP_SRC/monitors/wrapper perf-stat run_monitor $LKP_SRC/monitors/wrapper mpstat run_monitor $LKP_SRC/monitors/wrapper oom-killer run_monitor $LKP_SRC/monitors/plain/watchdog run_test test='swap-w-seq' $LKP_SRC/tests/wrapper vm-scalability } extract_stats() { $LKP_SRC/stats/wrapper perf-profile $LKP_SRC/stats/wrapper vm-scalability $LKP_SRC/stats/wrapper kmsg $LKP_SRC/stats/wrapper boot-time $LKP_SRC/stats/wrapper iostat $LKP_SRC/stats/wrapper vmstat $LKP_SRC/stats/wrapper numa-numastat $LKP_SRC/stats/wrapper numa-vmstat $LKP_SRC/stats/wrapper numa-meminfo $LKP_SRC/stats/wrapper proc-vmstat $LKP_SRC/stats/wrapper meminfo $LKP_SRC/stats/wrapper slabinfo $LKP_SRC/stats/wrapper interrupts $LKP_SRC/stats/wrapper lock_stat $LKP_SRC/stats/wrapper latency_stats $LKP_SRC/stats/wrapper softirqs $LKP_SRC/stats/wrapper diskstats $LKP_SRC/stats/wrapper nfsstat $LKP_SRC/stats/wrapper cpuidle $LKP_SRC/stats/wrapper turbostat $LKP_SRC/stats/wrapper sched_debug $LKP_SRC/stats/wrapper perf-stat $LKP_SRC/stats/wrapper mpstat $LKP_SRC/stats/wrapper time vm-scalability.time $LKP_SRC/stats/wrapper time $LKP_SRC/stats/wrapper dmesg $LKP_SRC/stats/wrapper kmsg $LKP_SRC/stats/wrapper stderr $LKP_SRC/stats/wrapper last_state } "$@" [-- Attachment #4: job.yaml --] [-- Type: text/plain, Size: 5227 bytes --] --- #! jobs/vm-scalability-swap-1ssd.yaml suite: vm-scalability testcase: vm-scalability category: benchmark runtime: 300 transparent_hugepage: thp_enabled: always thp_defrag: always nr_task: 32 disk: nr_ssd: 1 swap: perf-profile: delay: 90 vm-scalability: test: swap-w-seq job_origin: "/lkp/lkp/.src-20181111-000856/allot/cyclic:p1:linux-devel:devel-hourly/lkp-hsw-ep4/vm-scalability-swap-1ssd.yaml" #! queue options queue: bisect testbox: lkp-hsw-ep4 tbox_group: lkp-hsw-ep4 submit_id: 5bf464730b9a9399b443c46e job_file: "/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-39348-na2tm0-0.yaml" id: 219435d8178e1704d93f28409e84e6b0b49e1e83 #! hosts/lkp-hsw-ep4 model: Haswell-EP nr_node: 2 nr_cpu: 72 memory: 128G nr_ssd_partitions: 1 ssd_partitions: "/dev/nvme0n1p1" swap_partitions: rootfs_partition: brand: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz ucode: '0x3d' #! include/category/benchmark kmsg: boot-time: iostat: heartbeat: vmstat: numa-numastat: numa-vmstat: numa-meminfo: proc-vmstat: proc-stat: meminfo: slabinfo: interrupts: lock_stat: latency_stats: softirqs: bdi_dev_mapping: diskstats: nfsstat: cpuidle: cpufreq-stats: turbostat: sched_debug: perf-stat: mpstat: #! include/category/ALL cpufreq_governor: performance #! include/disk/nr_ssd need_kconfig: - CONFIG_BLK_DEV_SD - CONFIG_SCSI - CONFIG_BLOCK=y - CONFIG_SATA_AHCI - CONFIG_SATA_AHCI_PLATFORM - CONFIG_ATA - CONFIG_PCI=y - CONFIG_SWAP - CONFIG_MMU - CONFIG_BLOCK - CONFIG_BLK_DEV_LOOP #! include/swap #! include/vm-scalability #! include/queue/cyclic commit: ac5b2c18911ffe95c08d69273917f90212cf5659 #! default params kconfig: x86_64-rhel-7.2 compiler: gcc-7 rootfs: debian-x86_64-2018-04-03.cgz enqueue_time: 2018-11-21 03:45:55.818490092 +08:00 _id: 5bf464730b9a9399b443c46e _rt: "/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659" #! schedule options user: lkp head_commit: 872879f0b9025e9d84b186b442f9fb98c34f36b8 base_commit: 651022382c7f8da46cb4872a545ee1da6d097d2a branch: linux-devel/devel-hourly-2018111020 result_root: "/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/0" LKP_SERVER: inn max_uptime: 1500 initrd: "/osimage/debian/debian-x86_64-2018-04-03.cgz" bootloader_append: - root=/dev/ram0 - user=lkp - job=/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-39348-na2tm0-0.yaml - ARCH=x86_64 - kconfig=x86_64-rhel-7.2 - branch=linux-devel/devel-hourly-2018111020 - commit=ac5b2c18911ffe95c08d69273917f90212cf5659 - BOOT_IMAGE=/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/vmlinuz-4.19.0-12678-gac5b2c1 - max_uptime=1500 - RESULT_ROOT=/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/0 - LKP_SERVER=inn - debug - apic=debug - sysrq_always_enabled - rcupdate.rcu_cpu_stall_timeout=100 - net.ifnames=0 - printk.devkmsg=on - panic=-1 - softlockup_panic=1 - nmi_watchdog=panic - oops=panic - load_ramdisk=2 - prompt_ramdisk=0 - drbd.minor_count=8 - systemd.log_level=err - ignore_loglevel - console=tty0 - earlyprintk=ttyS0,115200 - console=ttyS0,115200 - vga=normal - rw modules_initrd: "/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/modules.cgz" bm_initrd: "/osimage/deps/debian-x86_64-2018-04-03.cgz/run-ipconfig_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/lkp_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/rsync-rootfs_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/perf_2018-06-26.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/perf-x86_64-6f0d349d922b_2018-06-26.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/vm-scalability_2018-05-17.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/vm-scalability-x86_64-7afdeab_2018-06-06.cgz,/osimage/pkg/common/vm-scalability-x86_64.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/mpstat_2018-06-19.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/turbostat_2018-05-17.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/turbostat-x86_64-d5256b2_2018-05-18.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/hw+lkp-run-on-qemu.cgz" lkp_initrd: "/lkp/lkp/lkp-x86_64.cgz" site: inn #! /lkp/lkp/.src-20181113-085441/include/site/inn LKP_CGI_PORT: 80 LKP_CIFS_PORT: 139 oom-killer: watchdog: #! runtime status repeat_to: 2 #! user overrides kernel: "/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/vmlinuz-4.19.0-12678-gac5b2c1" dequeue_time: 2018-11-21 04:14:26.995976798 +08:00 #! /lkp/lkp/.src-20181120-101648/include/site/inn job_state: finished loadavg: 14.22 19.85 9.78 1/613 8595 start_time: '1542745133' end_time: '1542745426' version: "/lkp/lkp/.src-20181120-101648" [-- Attachment #5: reproduce --] [-- Type: text/plain, Size: 942 bytes --] echo 'always' > /sys/kernel/mm/transparent_hugepage/enabled echo 'always' > /sys/kernel/mm/transparent_hugepage/defrag swapoff -a mkswap /dev/nvme0n1p1 swapon /dev/nvme0n1p1 for cpu_dir in /sys/devices/system/cpu/cpu[0-9]* do online_file="$cpu_dir"/online [ -f "$online_file" ] && [ "$(cat "$online_file")" -eq 0 ] && continue file="$cpu_dir"/cpufreq/scaling_governor [ -f "$file" ] && echo "performance" > "$file" done cd /lkp/benchmarks/vm-scalability mount -t tmpfs -o size=100% vm-scalability-tmp /tmp/vm-scalability-tmp truncate -s 135081086976 /tmp/vm-scalability-tmp/vm-scalability.img mkfs.xfs -q /tmp/vm-scalability-tmp/vm-scalability.img mount -o loop /tmp/vm-scalability-tmp/vm-scalability.img /tmp/vm-scalability-tmp/vm-scalability ./case-swap-w-seq ./usemem --runtime 300 -n 32 21842904768 umount /tmp/vm-scalability-tmp/vm-scalability rm /tmp/vm-scalability-tmp/vm-scalability.img umount /tmp/vm-scalability-tmp ^ permalink raw reply [flat|nested] 154+ messages in thread
* [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-27 6:25 ` kernel test robot 0 siblings, 0 replies; 154+ messages in thread From: kernel test robot @ 2018-11-27 6:25 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 33592 bytes --] Greeting, FYI, we noticed a -61.3% regression of vm-scalability.throughput due to commit: commit: ac5b2c18911ffe95c08d69273917f90212cf5659 ("mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings") https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master in testcase: vm-scalability on test machine: 72 threads Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz with 128G memory with following parameters: runtime: 300 thp_enabled: always thp_defrag: always nr_task: 32 nr_ssd: 1 test: swap-w-seq ucode: 0x3d cpufreq_governor: performance test-description: The motivation behind this suite is to exercise functions and regions of the mm/ of the Linux kernel which are of interest to us. test-url: https://git.kernel.org/cgit/linux/kernel/git/wfg/vm-scalability.git/ Details are as below: --------------------------------------------------------------------------------------------------> To reproduce: git clone https://github.com/intel/lkp-tests.git cd lkp-tests bin/lkp install job.yaml # job file is attached in this email bin/lkp run job.yaml ========================================================================================= compiler/cpufreq_governor/kconfig/nr_ssd/nr_task/rootfs/runtime/tbox_group/test/testcase/thp_defrag/thp_enabled/ucode: gcc-7/performance/x86_64-rhel-7.2/1/32/debian-x86_64-2018-04-03.cgz/300/lkp-hsw-ep4/swap-w-seq/vm-scalability/always/always/0x3d commit: 94e297c50b ("include/linux/notifier.h: SRCU: fix ctags") ac5b2c1891 ("mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings") 94e297c50b529f5d ac5b2c18911ffe95c08d692739 ---------------- -------------------------- %stddev %change %stddev \ | \ 0.57 ± 35% +258.8% 2.05 ± 4% vm-scalability.free_time 146022 ± 14% -40.5% 86833 ± 2% vm-scalability.median 29.29 ± 40% -89.6% 3.06 ± 26% vm-scalability.stddev 7454656 ± 9% -61.3% 2885836 ± 3% vm-scalability.throughput 189.21 ± 10% +52.4% 288.34 ± 2% vm-scalability.time.elapsed_time 189.21 ± 10% +52.4% 288.34 ± 2% vm-scalability.time.elapsed_time.max 8768 ± 3% +11.6% 9781 ± 5% vm-scalability.time.involuntary_context_switches 20320196 ± 2% -33.4% 13531732 ± 3% vm-scalability.time.maximum_resident_set_size 425945 ± 9% +17.4% 499908 ± 4% vm-scalability.time.minor_page_faults 253.79 ± 6% +62.0% 411.07 ± 4% vm-scalability.time.system_time 322.52 +8.0% 348.18 vm-scalability.time.user_time 246150 ± 12% +50.3% 370019 ± 4% vm-scalability.time.voluntary_context_switches 7746519 ± 11% +49.0% 11538799 ± 4% cpuidle.C6.usage 192240 ± 10% +44.3% 277460 ± 8% interrupts.CAL:Function_call_interrupts 22.45 ± 85% -80.6% 4.36 ±173% sched_debug.cfs_rq:/.MIN_vruntime.avg 22.45 ± 85% -80.6% 4.36 ±173% sched_debug.cfs_rq:/.max_vruntime.avg 29.36 ± 13% +10.8% 32.52 ± 14% boot-time.boot 24.28 ± 16% +12.4% 27.30 ± 16% boot-time.dhcp 1597 ± 15% +10.2% 1760 ± 15% boot-time.idle 68.25 -9.8 58.48 ± 2% mpstat.cpu.idle% 27.12 ± 5% +10.3 37.42 ± 3% mpstat.cpu.iowait% 2.48 ± 11% -0.8 1.73 ± 2% mpstat.cpu.usr% 3422396 ± 14% +46.6% 5018492 ± 7% softirqs.RCU 1776561 ± 10% +52.4% 2707785 ± 2% softirqs.SCHED 5685772 ± 7% +54.3% 8774055 ± 3% softirqs.TIMER 7742519 ± 11% +49.0% 11534924 ± 4% turbostat.C6 29922317 ± 10% +55.0% 46366941 turbostat.IRQ 9.49 ± 64% -83.0% 1.62 ± 54% turbostat.Pkg%pc2 36878790 ± 27% -84.9% 5570259 ± 47% vmstat.memory.free 1.117e+08 ± 15% +73.5% 1.939e+08 ± 10% vmstat.memory.swpd 25.25 ± 4% +34.7% 34.00 vmstat.procs.b 513725 ± 7% +47.9% 759561 ± 12% numa-numastat.node0.local_node 35753 ±160% +264.7% 130386 ± 39% numa-numastat.node0.numa_foreign 519403 ± 6% +48.7% 772182 ± 12% numa-numastat.node0.numa_hit 35753 ±160% +264.7% 130386 ± 39% numa-numastat.node1.numa_miss 44315 ±138% +198.5% 132279 ± 40% numa-numastat.node1.other_node 32798032 ± 46% +80.6% 59228165 ± 2% numa-meminfo.node0.Active 32798009 ± 46% +80.6% 59228160 ± 2% numa-meminfo.node0.Active(anon) 33430762 ± 46% +80.8% 60429537 ± 2% numa-meminfo.node0.AnonHugePages 33572119 ± 46% +80.2% 60512777 ± 2% numa-meminfo.node0.AnonPages 1310559 ± 64% +86.4% 2442244 ± 2% numa-meminfo.node0.Inactive 1309969 ± 64% +86.4% 2442208 ± 2% numa-meminfo.node0.Inactive(anon) 30385359 ± 53% -90.7% 2821023 ± 44% numa-meminfo.node0.MemFree 35505047 ± 45% +77.6% 63055165 ± 2% numa-meminfo.node0.MemUsed 166560 ± 42% +130.2% 383345 ± 6% numa-meminfo.node0.PageTables 23702 ±105% -89.0% 2617 ± 44% numa-meminfo.node0.Shmem 1212 ± 65% +402.8% 6093 ± 57% numa-meminfo.node1.Shmem 8354144 ± 44% +77.1% 14798964 ± 2% numa-vmstat.node0.nr_active_anon 8552787 ± 44% +76.8% 15122222 ± 2% numa-vmstat.node0.nr_anon_pages 16648 ± 44% +77.1% 29492 ± 2% numa-vmstat.node0.nr_anon_transparent_hugepages 7436650 ± 53% -90.4% 712936 ± 44% numa-vmstat.node0.nr_free_pages 332106 ± 63% +83.8% 610268 ± 2% numa-vmstat.node0.nr_inactive_anon 41929 ± 41% +130.6% 96703 ± 6% numa-vmstat.node0.nr_page_table_pages 5900 ±106% -89.0% 650.75 ± 45% numa-vmstat.node0.nr_shmem 43336 ± 92% +151.2% 108840 ± 7% numa-vmstat.node0.nr_vmscan_write 43110 ± 92% +150.8% 108110 ± 7% numa-vmstat.node0.nr_written 8354142 ± 44% +77.1% 14798956 ± 2% numa-vmstat.node0.nr_zone_active_anon 332105 ± 63% +83.8% 610269 ± 2% numa-vmstat.node0.nr_zone_inactive_anon 321.50 ± 66% +384.9% 1559 ± 59% numa-vmstat.node1.nr_shmem 88815743 ± 10% +33.8% 1.188e+08 ± 2% meminfo.Active 88815702 ± 10% +33.8% 1.188e+08 ± 2% meminfo.Active(anon) 90446011 ± 11% +34.0% 1.212e+08 ± 2% meminfo.AnonHugePages 90613587 ± 11% +34.0% 1.214e+08 ± 2% meminfo.AnonPages 5.15e+08 ± 3% +22.2% 6.293e+08 ± 2% meminfo.Committed_AS 187419 ± 10% -19.6% 150730 ± 7% meminfo.DirectMap4k 3620693 ± 18% +35.3% 4897093 ± 2% meminfo.Inactive 3620054 ± 18% +35.3% 4896961 ± 2% meminfo.Inactive(anon) 36144979 ± 28% -87.0% 4715681 ± 57% meminfo.MemAvailable 36723121 ± 27% -85.9% 5179468 ± 52% meminfo.MemFree 395801 ± 2% +56.9% 620816 ± 4% meminfo.PageTables 178672 +15.1% 205668 ± 2% meminfo.SUnreclaim 249496 +12.6% 280897 meminfo.Slab 1751813 ± 2% +34.7% 2360437 ± 3% meminfo.SwapCached 6.716e+08 -12.4% 5.88e+08 ± 2% meminfo.SwapFree 3926 ± 17% +72.9% 6788 ± 13% meminfo.Writeback 1076 ± 3% +42.9% 1538 ± 4% slabinfo.biovec-max.active_objs 275.75 ± 2% +41.1% 389.00 ± 4% slabinfo.biovec-max.active_slabs 1104 ± 2% +41.0% 1557 ± 4% slabinfo.biovec-max.num_objs 275.75 ± 2% +41.1% 389.00 ± 4% slabinfo.biovec-max.num_slabs 588.25 ± 7% +17.9% 693.75 ± 7% slabinfo.file_lock_cache.active_objs 588.25 ± 7% +17.9% 693.75 ± 7% slabinfo.file_lock_cache.num_objs 13852 ± 3% +37.5% 19050 ± 3% slabinfo.kmalloc-4k.active_objs 1776 ± 3% +37.7% 2446 ± 3% slabinfo.kmalloc-4k.active_slabs 14217 ± 3% +37.7% 19577 ± 3% slabinfo.kmalloc-4k.num_objs 1776 ± 3% +37.7% 2446 ± 3% slabinfo.kmalloc-4k.num_slabs 158.25 ± 15% +54.0% 243.75 ± 18% slabinfo.nfs_read_data.active_objs 158.25 ± 15% +54.0% 243.75 ± 18% slabinfo.nfs_read_data.num_objs 17762 ± 4% +44.3% 25638 ± 4% slabinfo.pool_workqueue.active_objs 563.25 ± 3% +43.7% 809.25 ± 4% slabinfo.pool_workqueue.active_slabs 18048 ± 3% +43.5% 25906 ± 4% slabinfo.pool_workqueue.num_objs 563.25 ± 3% +43.7% 809.25 ± 4% slabinfo.pool_workqueue.num_slabs 34631 ± 3% +21.0% 41905 ± 2% slabinfo.radix_tree_node.active_objs 624.50 ± 3% +20.7% 753.75 ± 2% slabinfo.radix_tree_node.active_slabs 34998 ± 3% +20.7% 42228 ± 2% slabinfo.radix_tree_node.num_objs 624.50 ± 3% +20.7% 753.75 ± 2% slabinfo.radix_tree_node.num_slabs 9.727e+11 ± 8% +50.4% 1.463e+12 ± 12% perf-stat.branch-instructions 1.11 ± 12% +1.2 2.31 ± 8% perf-stat.branch-miss-rate% 1.078e+10 ± 13% +214.9% 3.395e+10 ± 17% perf-stat.branch-misses 3.17 ± 11% -1.5 1.65 ± 9% perf-stat.cache-miss-rate% 8.206e+08 ± 7% +49.4% 1.226e+09 ± 11% perf-stat.cache-misses 2.624e+10 ± 14% +187.0% 7.532e+10 ± 17% perf-stat.cache-references 1174249 ± 9% +52.3% 1788442 ± 3% perf-stat.context-switches 2.921e+12 ± 8% +71.1% 4.998e+12 ± 9% perf-stat.cpu-cycles 1437 ± 14% +85.1% 2661 ± 20% perf-stat.cpu-migrations 7.586e+08 ± 21% +134.7% 1.78e+09 ± 30% perf-stat.dTLB-load-misses 7.943e+11 ± 11% +84.3% 1.464e+12 ± 14% perf-stat.dTLB-loads 93963731 ± 22% +40.9% 1.324e+08 ± 10% perf-stat.dTLB-store-misses 3.394e+11 ± 6% +60.5% 5.449e+11 ± 10% perf-stat.dTLB-stores 1.531e+08 ± 22% +44.0% 2.204e+08 ± 11% perf-stat.iTLB-load-misses 1.688e+08 ± 23% +71.1% 2.888e+08 ± 12% perf-stat.iTLB-loads 3.267e+12 ± 7% +58.5% 5.177e+12 ± 13% perf-stat.instructions 3988 ± 43% +123.9% 8930 ± 22% perf-stat.major-faults 901474 ± 5% +34.2% 1209877 ± 2% perf-stat.minor-faults 31.24 ± 10% +21.7 52.91 ± 2% perf-stat.node-load-miss-rate% 1.135e+08 ± 16% +187.6% 3.264e+08 ± 13% perf-stat.node-load-misses 6.27 ± 17% +26.9 33.19 ± 4% perf-stat.node-store-miss-rate% 27354489 ± 15% +601.2% 1.918e+08 ± 13% perf-stat.node-store-misses 905482 ± 5% +34.6% 1218833 ± 2% perf-stat.page-faults 4254 ± 7% +58.5% 6741 ± 13% perf-stat.path-length 6364 ± 25% +84.1% 11715 ± 14% proc-vmstat.allocstall_movable 46439 ± 12% +100.4% 93049 ± 21% proc-vmstat.compact_migrate_scanned 22425696 ± 10% +29.0% 28932634 ± 6% proc-vmstat.nr_active_anon 22875703 ± 11% +29.2% 29560082 ± 6% proc-vmstat.nr_anon_pages 44620 ± 11% +29.2% 57643 ± 6% proc-vmstat.nr_anon_transparent_hugepages 879436 ± 28% -77.3% 199768 ± 98% proc-vmstat.nr_dirty_background_threshold 1761029 ± 28% -77.3% 400034 ± 98% proc-vmstat.nr_dirty_threshold 715724 +17.6% 841386 ± 3% proc-vmstat.nr_file_pages 8960545 ± 28% -76.4% 2111248 ± 93% proc-vmstat.nr_free_pages 904330 ± 18% +31.2% 1186458 ± 7% proc-vmstat.nr_inactive_anon 11137 ± 2% +27.1% 14154 ± 9% proc-vmstat.nr_isolated_anon 12566 +3.5% 13012 proc-vmstat.nr_kernel_stack 97491 ± 2% +52.6% 148790 ± 10% proc-vmstat.nr_page_table_pages 17674 +6.2% 18763 ± 2% proc-vmstat.nr_slab_reclaimable 44820 +13.0% 50645 ± 2% proc-vmstat.nr_slab_unreclaimable 135763 ± 9% +68.4% 228600 ± 6% proc-vmstat.nr_vmscan_write 1017 ± 10% +54.7% 1573 ± 14% proc-vmstat.nr_writeback 220023 ± 5% +73.5% 381732 ± 6% proc-vmstat.nr_written 22425696 ± 10% +29.0% 28932635 ± 6% proc-vmstat.nr_zone_active_anon 904330 ± 18% +31.2% 1186457 ± 7% proc-vmstat.nr_zone_inactive_anon 1018 ± 10% +55.3% 1581 ± 13% proc-vmstat.nr_zone_write_pending 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_foreign 671.50 ± 96% +479.4% 3890 ± 71% proc-vmstat.numa_hint_faults 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated 1.1e+08 ± 5% +21.6% 1.337e+08 ± 3% proc-vmstat.numa_pte_updates 688332 ±106% +177.9% 1913062 ± 3% proc-vmstat.pgalloc_dma32 72593045 ± 10% +51.1% 1.097e+08 ± 3% proc-vmstat.pgdeactivate 919059 ± 4% +35.1% 1241472 ± 2% proc-vmstat.pgfault 3716 ± 45% +120.3% 8186 ± 25% proc-vmstat.pgmajfault 7.25 ± 26% +4.2e+05% 30239 ± 25% proc-vmstat.pgmigrate_fail 5340 ±106% +264.0% 19438 ± 33% proc-vmstat.pgmigrate_success 2.837e+08 ± 10% +51.7% 4.303e+08 ± 3% proc-vmstat.pgpgout 211428 ± 6% +74.1% 368188 ± 4% proc-vmstat.pgrefill 219051 ± 5% +73.7% 380419 ± 5% proc-vmstat.pgrotated 559397 ± 8% +43.0% 800110 ± 11% proc-vmstat.pgscan_direct 32894 ± 59% +158.3% 84981 ± 23% proc-vmstat.pgscan_kswapd 207042 ± 8% +71.5% 355174 ± 5% proc-vmstat.pgsteal_direct 14745 ± 65% +104.3% 30121 ± 18% proc-vmstat.pgsteal_kswapd 70934968 ± 10% +51.7% 1.076e+08 ± 3% proc-vmstat.pswpout 5852284 ± 12% +145.8% 14382881 ± 5% proc-vmstat.slabs_scanned 13453 ± 24% +204.9% 41023 ± 8% proc-vmstat.thp_split_page_failed 138385 ± 10% +51.6% 209783 ± 3% proc-vmstat.thp_split_pmd 138385 ± 10% +51.6% 209782 ± 3% proc-vmstat.thp_swpout 4.61 ± 24% -1.2 3.37 ± 10% perf-profile.calltrace.cycles-pp.hrtimer_interrupt.smp_apic_timer_interrupt.apic_timer_interrupt.cpuidle_enter_state.do_idle 2.90 ± 18% -0.7 2.19 ± 8% perf-profile.calltrace.cycles-pp.__hrtimer_run_queues.hrtimer_interrupt.smp_apic_timer_interrupt.apic_timer_interrupt.cpuidle_enter_state 1.86 ± 32% -0.6 1.22 ± 7% perf-profile.calltrace.cycles-pp.tick_sched_timer.__hrtimer_run_queues.hrtimer_interrupt.smp_apic_timer_interrupt.apic_timer_interrupt 1.60 ± 31% -0.5 1.08 ± 10% perf-profile.calltrace.cycles-pp.tick_sched_handle.tick_sched_timer.__hrtimer_run_queues.hrtimer_interrupt.smp_apic_timer_interrupt 2.98 ± 8% -0.5 2.48 ± 10% perf-profile.calltrace.cycles-pp.menu_select.do_idle.cpu_startup_entry.start_secondary.secondary_startup_64 1.46 ± 32% -0.5 0.96 ± 9% perf-profile.calltrace.cycles-pp.update_process_times.tick_sched_handle.tick_sched_timer.__hrtimer_run_queues.hrtimer_interrupt 0.74 ± 27% -0.5 0.28 ±100% perf-profile.calltrace.cycles-pp.scheduler_tick.update_process_times.tick_sched_handle.tick_sched_timer.__hrtimer_run_queues 1.03 ± 52% -0.4 0.63 ± 15% perf-profile.calltrace.cycles-pp.clockevents_program_event.hrtimer_interrupt.smp_apic_timer_interrupt.apic_timer_interrupt.cpuidle_enter_state 1.17 ± 19% -0.3 0.87 ± 11% perf-profile.calltrace.cycles-pp.tick_nohz_next_event.tick_nohz_get_sleep_length.menu_select.do_idle.cpu_startup_entry 0.80 ± 17% +0.4 1.22 ± 7% perf-profile.calltrace.cycles-pp.nvme_queue_rq.__blk_mq_try_issue_directly.blk_mq_try_issue_directly.blk_mq_make_request.generic_make_request 0.81 ± 16% +0.4 1.23 ± 8% perf-profile.calltrace.cycles-pp.blk_mq_try_issue_directly.blk_mq_make_request.generic_make_request.submit_bio.__swap_writepage 0.81 ± 16% +0.4 1.23 ± 8% perf-profile.calltrace.cycles-pp.__blk_mq_try_issue_directly.blk_mq_try_issue_directly.blk_mq_make_request.generic_make_request.submit_bio 0.52 ± 60% +0.5 1.03 ± 6% perf-profile.calltrace.cycles-pp.dma_pool_alloc.nvme_queue_rq.__blk_mq_try_issue_directly.blk_mq_try_issue_directly.blk_mq_make_request 1.64 ± 16% +0.6 2.21 ± 15% perf-profile.calltrace.cycles-pp.find_next_bit.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_done 0.51 ± 64% +0.8 1.31 ± 17% perf-profile.calltrace.cycles-pp.bt_iter.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_start 0.80 ± 25% +0.9 1.67 ± 19% perf-profile.calltrace.cycles-pp.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_start.blk_mq_make_request 0.82 ± 24% +0.9 1.71 ± 19% perf-profile.calltrace.cycles-pp.blk_mq_in_flight.part_round_stats.blk_account_io_start.blk_mq_make_request.generic_make_request 0.82 ± 25% +0.9 1.73 ± 19% perf-profile.calltrace.cycles-pp.part_round_stats.blk_account_io_start.blk_mq_make_request.generic_make_request.submit_bio 0.87 ± 25% +1.0 1.87 ± 14% perf-profile.calltrace.cycles-pp.blk_account_io_start.blk_mq_make_request.generic_make_request.submit_bio.__swap_writepage 2.05 ± 15% +1.4 3.48 ± 7% perf-profile.calltrace.cycles-pp.generic_make_request.submit_bio.__swap_writepage.pageout.shrink_page_list 2.09 ± 15% +1.4 3.53 ± 7% perf-profile.calltrace.cycles-pp.__swap_writepage.pageout.shrink_page_list.shrink_inactive_list.shrink_node_memcg 2.05 ± 15% +1.4 3.49 ± 7% perf-profile.calltrace.cycles-pp.blk_mq_make_request.generic_make_request.submit_bio.__swap_writepage.pageout 2.06 ± 15% +1.4 3.50 ± 7% perf-profile.calltrace.cycles-pp.submit_bio.__swap_writepage.pageout.shrink_page_list.shrink_inactive_list 2.10 ± 15% +1.4 3.54 ± 6% perf-profile.calltrace.cycles-pp.pageout.shrink_page_list.shrink_inactive_list.shrink_node_memcg.shrink_node 3.31 ± 12% +1.5 4.83 ± 5% perf-profile.calltrace.cycles-pp.shrink_page_list.shrink_inactive_list.shrink_node_memcg.shrink_node.do_try_to_free_pages 3.33 ± 12% +1.5 4.86 ± 5% perf-profile.calltrace.cycles-pp.shrink_inactive_list.shrink_node_memcg.shrink_node.do_try_to_free_pages.try_to_free_pages 3.40 ± 12% +1.6 4.97 ± 6% perf-profile.calltrace.cycles-pp.shrink_node_memcg.shrink_node.do_try_to_free_pages.try_to_free_pages.__alloc_pages_slowpath 3.57 ± 12% +1.6 5.19 ± 7% perf-profile.calltrace.cycles-pp.__alloc_pages_nodemask.do_huge_pmd_anonymous_page.__handle_mm_fault.handle_mm_fault.__do_page_fault 3.48 ± 12% +1.6 5.13 ± 6% perf-profile.calltrace.cycles-pp.shrink_node.do_try_to_free_pages.try_to_free_pages.__alloc_pages_slowpath.__alloc_pages_nodemask 3.48 ± 12% +1.6 5.13 ± 6% perf-profile.calltrace.cycles-pp.do_try_to_free_pages.try_to_free_pages.__alloc_pages_slowpath.__alloc_pages_nodemask.do_huge_pmd_anonymous_page 3.49 ± 12% +1.6 5.13 ± 6% perf-profile.calltrace.cycles-pp.try_to_free_pages.__alloc_pages_slowpath.__alloc_pages_nodemask.do_huge_pmd_anonymous_page.__handle_mm_fault 3.51 ± 12% +1.7 5.17 ± 6% perf-profile.calltrace.cycles-pp.__alloc_pages_slowpath.__alloc_pages_nodemask.do_huge_pmd_anonymous_page.__handle_mm_fault.handle_mm_fault 3.34 ± 14% +2.2 5.57 ± 21% perf-profile.calltrace.cycles-pp.blk_mq_check_inflight.bt_iter.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats 9.14 ± 17% +5.5 14.66 ± 22% perf-profile.calltrace.cycles-pp.bt_iter.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_done 12.10 ± 17% +6.8 18.89 ± 20% perf-profile.calltrace.cycles-pp.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_done.blk_mq_end_request 13.88 ± 15% +7.1 21.01 ± 20% perf-profile.calltrace.cycles-pp.handle_irq.do_IRQ.ret_from_intr.cpuidle_enter_state.do_idle 13.87 ± 15% +7.1 21.00 ± 20% perf-profile.calltrace.cycles-pp.handle_edge_irq.handle_irq.do_IRQ.ret_from_intr.cpuidle_enter_state 13.97 ± 15% +7.1 21.10 ± 20% perf-profile.calltrace.cycles-pp.ret_from_intr.cpuidle_enter_state.do_idle.cpu_startup_entry.start_secondary 13.94 ± 15% +7.1 21.07 ± 20% perf-profile.calltrace.cycles-pp.do_IRQ.ret_from_intr.cpuidle_enter_state.do_idle.cpu_startup_entry 12.50 ± 17% +7.2 19.65 ± 20% perf-profile.calltrace.cycles-pp.blk_account_io_done.blk_mq_end_request.blk_mq_complete_request.nvme_irq.__handle_irq_event_percpu 12.70 ± 17% +7.2 19.86 ± 21% perf-profile.calltrace.cycles-pp.blk_mq_end_request.blk_mq_complete_request.nvme_irq.__handle_irq_event_percpu.handle_irq_event_percpu 12.48 ± 17% +7.2 19.65 ± 20% perf-profile.calltrace.cycles-pp.part_round_stats.blk_account_io_done.blk_mq_end_request.blk_mq_complete_request.nvme_irq 12.46 ± 17% +7.2 19.63 ± 21% perf-profile.calltrace.cycles-pp.blk_mq_in_flight.part_round_stats.blk_account_io_done.blk_mq_end_request.blk_mq_complete_request 14.78 ± 18% +8.1 22.83 ± 20% perf-profile.calltrace.cycles-pp.blk_mq_complete_request.nvme_irq.__handle_irq_event_percpu.handle_irq_event_percpu.handle_irq_event 14.87 ± 18% +8.1 22.95 ± 21% perf-profile.calltrace.cycles-pp.nvme_irq.__handle_irq_event_percpu.handle_irq_event_percpu.handle_irq_event.handle_edge_irq 14.89 ± 18% +8.1 22.98 ± 21% perf-profile.calltrace.cycles-pp.handle_irq_event_percpu.handle_irq_event.handle_edge_irq.handle_irq.do_IRQ 14.90 ± 18% +8.1 22.99 ± 21% perf-profile.calltrace.cycles-pp.handle_irq_event.handle_edge_irq.handle_irq.do_IRQ.ret_from_intr 14.88 ± 18% +8.1 22.97 ± 21% perf-profile.calltrace.cycles-pp.__handle_irq_event_percpu.handle_irq_event_percpu.handle_irq_event.handle_edge_irq.handle_irq 4.79 ± 22% -1.3 3.52 ± 9% perf-profile.children.cycles-pp.hrtimer_interrupt 3.04 ± 16% -0.7 2.30 ± 8% perf-profile.children.cycles-pp.__hrtimer_run_queues 1.98 ± 29% -0.7 1.29 ± 7% perf-profile.children.cycles-pp.tick_sched_timer 1.70 ± 27% -0.6 1.14 ± 9% perf-profile.children.cycles-pp.tick_sched_handle 1.57 ± 29% -0.5 1.03 ± 10% perf-profile.children.cycles-pp.update_process_times 3.02 ± 8% -0.5 2.52 ± 10% perf-profile.children.cycles-pp.menu_select 1.19 ± 19% -0.3 0.89 ± 10% perf-profile.children.cycles-pp.tick_nohz_next_event 0.81 ± 25% -0.2 0.56 ± 11% perf-profile.children.cycles-pp.scheduler_tick 0.42 ± 19% -0.1 0.30 ± 14% perf-profile.children.cycles-pp._raw_spin_lock 0.27 ± 13% -0.1 0.21 ± 15% perf-profile.children.cycles-pp.hrtimer_next_event_without 0.11 ± 35% -0.0 0.07 ± 19% perf-profile.children.cycles-pp.run_local_timers 0.10 ± 15% -0.0 0.07 ± 28% perf-profile.children.cycles-pp.cpu_load_update 0.14 ± 9% -0.0 0.11 ± 15% perf-profile.children.cycles-pp.perf_event_task_tick 0.07 ± 17% +0.0 0.10 ± 12% perf-profile.children.cycles-pp.blk_flush_plug_list 0.07 ± 17% +0.0 0.10 ± 12% perf-profile.children.cycles-pp.blk_mq_flush_plug_list 0.06 ± 26% +0.0 0.11 ± 17% perf-profile.children.cycles-pp.read 0.07 ± 17% +0.0 0.11 ± 36% perf-profile.children.cycles-pp.deferred_split_scan 0.15 ± 14% +0.1 0.21 ± 13% perf-profile.children.cycles-pp.blk_mq_sched_dispatch_requests 0.15 ± 16% +0.1 0.21 ± 15% perf-profile.children.cycles-pp.blk_mq_dispatch_rq_list 0.15 ± 14% +0.1 0.22 ± 14% perf-profile.children.cycles-pp.__blk_mq_run_hw_queue 0.08 ± 23% +0.1 0.14 ± 34% perf-profile.children.cycles-pp.shrink_slab 0.08 ± 23% +0.1 0.14 ± 34% perf-profile.children.cycles-pp.do_shrink_slab 0.72 ± 19% +0.3 1.00 ± 8% perf-profile.children.cycles-pp._raw_spin_lock_irqsave 0.44 ± 18% +0.3 0.74 ± 14% perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath 0.86 ± 18% +0.4 1.30 ± 9% perf-profile.children.cycles-pp.blk_mq_try_issue_directly 0.88 ± 18% +0.5 1.34 ± 9% perf-profile.children.cycles-pp.__blk_mq_try_issue_directly 0.82 ± 19% +0.5 1.30 ± 9% perf-profile.children.cycles-pp.dma_pool_alloc 1.02 ± 15% +0.5 1.55 ± 9% perf-profile.children.cycles-pp.nvme_queue_rq 1.07 ± 15% +0.7 1.76 ± 21% perf-profile.children.cycles-pp.__indirect_thunk_start 2.42 ± 16% +0.7 3.16 ± 13% perf-profile.children.cycles-pp.find_next_bit 0.95 ± 26% +1.1 2.00 ± 15% perf-profile.children.cycles-pp.blk_account_io_start 2.19 ± 17% +1.5 3.72 ± 8% perf-profile.children.cycles-pp.blk_mq_make_request 2.20 ± 17% +1.5 3.73 ± 8% perf-profile.children.cycles-pp.submit_bio 2.20 ± 17% +1.5 3.73 ± 8% perf-profile.children.cycles-pp.generic_make_request 2.21 ± 17% +1.5 3.76 ± 8% perf-profile.children.cycles-pp.__swap_writepage 2.23 ± 17% +1.5 3.77 ± 7% perf-profile.children.cycles-pp.pageout 3.60 ± 13% +1.6 5.22 ± 7% perf-profile.children.cycles-pp.__alloc_pages_nodemask 3.51 ± 15% +1.6 5.15 ± 6% perf-profile.children.cycles-pp.shrink_page_list 3.48 ± 12% +1.6 5.13 ± 6% perf-profile.children.cycles-pp.do_try_to_free_pages 3.53 ± 14% +1.6 5.17 ± 6% perf-profile.children.cycles-pp.shrink_inactive_list 3.49 ± 12% +1.6 5.13 ± 6% perf-profile.children.cycles-pp.try_to_free_pages 3.51 ± 12% +1.7 5.19 ± 6% perf-profile.children.cycles-pp.__alloc_pages_slowpath 3.61 ± 14% +1.7 5.30 ± 6% perf-profile.children.cycles-pp.shrink_node_memcg 3.69 ± 15% +1.8 5.45 ± 7% perf-profile.children.cycles-pp.shrink_node 4.10 ± 17% +2.4 6.47 ± 18% perf-profile.children.cycles-pp.blk_mq_check_inflight 10.64 ± 16% +6.8 17.39 ± 17% perf-profile.children.cycles-pp.bt_iter 13.17 ± 16% +7.4 20.59 ± 18% perf-profile.children.cycles-pp.blk_account_io_done 13.39 ± 16% +7.4 20.81 ± 19% perf-profile.children.cycles-pp.blk_mq_end_request 15.67 ± 17% +8.2 23.84 ± 20% perf-profile.children.cycles-pp.handle_irq 15.66 ± 17% +8.2 23.83 ± 20% perf-profile.children.cycles-pp.handle_edge_irq 15.57 ± 17% +8.2 23.73 ± 20% perf-profile.children.cycles-pp.nvme_irq 15.60 ± 17% +8.2 23.77 ± 20% perf-profile.children.cycles-pp.handle_irq_event 15.58 ± 17% +8.2 23.75 ± 20% perf-profile.children.cycles-pp.__handle_irq_event_percpu 15.59 ± 17% +8.2 23.77 ± 20% perf-profile.children.cycles-pp.handle_irq_event_percpu 15.75 ± 17% +8.2 23.93 ± 20% perf-profile.children.cycles-pp.ret_from_intr 15.73 ± 17% +8.2 23.91 ± 20% perf-profile.children.cycles-pp.do_IRQ 15.54 ± 17% +8.2 23.73 ± 19% perf-profile.children.cycles-pp.blk_mq_complete_request 14.07 ± 16% +8.4 22.45 ± 16% perf-profile.children.cycles-pp.part_round_stats 14.05 ± 16% +8.4 22.45 ± 16% perf-profile.children.cycles-pp.blk_mq_queue_tag_busy_iter 14.05 ± 16% +8.4 22.45 ± 16% perf-profile.children.cycles-pp.blk_mq_in_flight 0.38 ± 20% -0.1 0.28 ± 16% perf-profile.self.cycles-pp._raw_spin_lock 0.10 ± 13% -0.0 0.07 ± 17% perf-profile.self.cycles-pp.idle_cpu 0.12 ± 14% -0.0 0.09 ± 7% perf-profile.self.cycles-pp.perf_mux_hrtimer_handler 0.10 ± 15% -0.0 0.07 ± 28% perf-profile.self.cycles-pp.cpu_load_update 0.14 ± 9% -0.0 0.11 ± 15% perf-profile.self.cycles-pp.perf_event_task_tick 0.62 ± 16% +0.3 0.89 ± 12% perf-profile.self.cycles-pp.dma_pool_alloc 0.44 ± 18% +0.3 0.74 ± 14% perf-profile.self.cycles-pp.native_queued_spin_lock_slowpath 0.81 ± 16% +0.5 1.32 ± 25% perf-profile.self.cycles-pp.__indirect_thunk_start 2.07 ± 16% +0.6 2.69 ± 12% perf-profile.self.cycles-pp.find_next_bit 1.77 ± 16% +1.1 2.91 ± 15% perf-profile.self.cycles-pp.blk_mq_queue_tag_busy_iter 3.82 ± 16% +2.2 6.00 ± 18% perf-profile.self.cycles-pp.blk_mq_check_inflight 6.43 ± 15% +4.1 10.56 ± 16% perf-profile.self.cycles-pp.bt_iter vm-scalability.time.system_time 600 +-+-------------------------------------------------------------------+ | | 500 +-O OO | O O OO | | O O O O O O | 400 +-+ O O O O | | | 300 +-+ .+.++. .+ .+ .+ .+.+ +.+ .++.+.++ .++.+.++. | | ++ + :.+ + + + : +.+ : +.+ + .++.+ +.+ .| 200 +-+ + + : : : : + + | |: : : : : | |: :: : : | 100 +-+ :: :: | | : : | 0 +-+-------------------------------------------------------------------+ vm-scalability.time.maximum_resident_set_size 2.5e+07 +-+---------------------------------------------------------------+ | | | ++.++.++.+. +. +. + +.++.+ +.++.+ .+.++. .++. .++.+ .+ | 2e+07 +-+ + .+ + +.+: : : : + ++ + + +.| | : + : : : : | | : : : : : | 1.5e+07 O-+O OO: : : : | |: O O O O : : : : | 1e+07 +-+ O O O O OO O : : : : | |:O O :: :: | |: :: :: | 5e+06 +-+ : : | | : : | | : : | 0 +-+---------------------------------------------------------------+ [*] bisect-good sample [O] bisect-bad sample Disclaimer: Results have been estimated based on internal Intel analysis and are provided for informational purposes only. Any difference in system hardware or software design or configuration may affect actual performance. Thanks, Rong Chen [-- Attachment #2: config-4.19.0-12678-gac5b2c1 --] [-- Type: text/plain, Size: 168446 bytes --] # # Automatically generated file; DO NOT EDIT. # Linux/x86_64 4.19.0 Kernel Configuration # # # Compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 # CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=70300 CONFIG_CLANG_VERSION=0 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y # # General setup # CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_BUILD_SALT="" CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_HAVE_KERNEL_LZ4=y CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set # CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set # CONFIG_KERNEL_LZ4 is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_USELIB=y CONFIG_AUDIT=y CONFIG_HAVE_ARCH_AUDITSYSCALL=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y # # IRQ subsystem # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_SIM=y CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y CONFIG_GENERIC_IRQ_RESERVATION_MODE=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # CONFIG_GENERIC_IRQ_DEBUGFS is not set CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_ARCH_CLOCKSOURCE_INIT=y CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y CONFIG_GENERIC_CMOS_UPDATE=y # # Timers subsystem # CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set # CONFIG_NO_HZ_IDLE is not set CONFIG_NO_HZ_FULL=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set CONFIG_PREEMPT_COUNT=y # # CPU/Task time and stats accounting # CONFIG_VIRT_CPU_ACCOUNTING=y CONFIG_VIRT_CPU_ACCOUNTING_GEN=y # CONFIG_IRQ_TIME_ACCOUNTING is not set CONFIG_HAVE_SCHED_AVG_IRQ=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y CONFIG_TASK_IO_ACCOUNTING=y # CONFIG_PSI is not set CONFIG_CPU_ISOLATION=y # # RCU Subsystem # CONFIG_TREE_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y CONFIG_TREE_SRCU=y CONFIG_TASKS_RCU=y CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y CONFIG_CONTEXT_TRACKING=y # CONFIG_CONTEXT_TRACKING_FORCE is not set CONFIG_RCU_NOCB_CPU=y CONFIG_BUILD_BIN2C=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=20 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_NUMA_BALANCING=y CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y CONFIG_MEMCG=y CONFIG_MEMCG_SWAP=y CONFIG_MEMCG_SWAP_ENABLED=y CONFIG_MEMCG_KMEM=y CONFIG_BLK_CGROUP=y # CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_CGROUP_WRITEBACK=y CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y CONFIG_RT_GROUP_SCHED=y CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_RDMA=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_HUGETLB=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_DEVICE=y # CONFIG_CGROUP_CPUACCT is not set CONFIG_CGROUP_PERF=y CONFIG_CGROUP_BPF=y # CONFIG_CGROUP_DEBUG is not set CONFIG_SOCK_CGROUP_DATA=y CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y CONFIG_USER_NS=y CONFIG_PID_NS=y CONFIG_NET_NS=y CONFIG_CHECKPOINT_RESTORE=y CONFIG_SCHED_AUTOGROUP=y # CONFIG_SYSFS_DEPRECATED is not set CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y CONFIG_RD_LZ4=y CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y CONFIG_HAVE_UID16=y CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BPF=y CONFIG_EXPERT=y CONFIG_UID16=y CONFIG_MULTIUSER=y CONFIG_SGETMASK_SYSCALL=y CONFIG_SYSFS_SYSCALL=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_FHANDLE=y CONFIG_POSIX_TIMERS=y CONFIG_PRINTK=y CONFIG_PRINTK_NMI=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_FUTEX_PI=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_BPF_SYSCALL=y # CONFIG_BPF_JIT_ALWAYS_ON is not set CONFIG_USERFAULTFD=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_RSEQ=y # CONFIG_DEBUG_RSEQ is not set CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y # CONFIG_PC104 is not set # # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y # CONFIG_SLUB_MEMCG_SYSFS_ON is not set # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y # CONFIG_SLOB is not set CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLAB_FREELIST_RANDOM is not set # CONFIG_SLAB_FREELIST_HARDENED is not set CONFIG_SLUB_CPU_PARTIAL=y CONFIG_SYSTEM_DATA_VERIFICATION=y CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y CONFIG_64BIT=y CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_MMU=y CONFIG_ARCH_MMAP_RND_BITS_MIN=28 CONFIG_ARCH_MMAP_RND_BITS_MAX=32 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_FILTER_PGPROT=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ZONE_DMA32=y CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # CONFIG_ZONE_DMA=y CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_X2APIC=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set CONFIG_RETPOLINE=y CONFIG_INTEL_RDT=y CONFIG_X86_EXTENDED_PLATFORM=y # CONFIG_X86_NUMACHIP is not set # CONFIG_X86_VSMP is not set CONFIG_X86_UV=y # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set CONFIG_X86_INTEL_LPSS=y # CONFIG_X86_AMD_PLATFORM_DEVICE is not set CONFIG_IOSF_MBI=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y # CONFIG_SCHED_OMIT_FRAME_POINTER is not set CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y CONFIG_PARAVIRT_XXL=y # CONFIG_PARAVIRT_DEBUG is not set CONFIG_PARAVIRT_SPINLOCKS=y # CONFIG_QUEUED_LOCK_STAT is not set CONFIG_XEN=y CONFIG_XEN_PV=y CONFIG_XEN_PV_SMP=y CONFIG_XEN_DOM0=y CONFIG_XEN_PVHVM=y CONFIG_XEN_PVHVM_SMP=y CONFIG_XEN_512GB=y CONFIG_XEN_SAVE_RESTORE=y # CONFIG_XEN_DEBUG_FS is not set # CONFIG_XEN_PVH is not set CONFIG_KVM_GUEST=y # CONFIG_KVM_DEBUG_FS is not set CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT_CLOCK=y # CONFIG_JAILHOUSE_GUEST is not set # CONFIG_MK8 is not set # CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set CONFIG_GENERIC_CPU=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=64 CONFIG_X86_DEBUGCTLMSR=y # CONFIG_PROCESSOR_SELECT is not set CONFIG_CPU_SUP_INTEL=y CONFIG_CPU_SUP_AMD=y CONFIG_CPU_SUP_HYGON=y CONFIG_CPU_SUP_CENTAUR=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y CONFIG_GART_IOMMU=y # CONFIG_CALGARY_IOMMU is not set CONFIG_MAXSMP=y CONFIG_NR_CPUS_RANGE_BEGIN=8192 CONFIG_NR_CPUS_RANGE_END=8192 CONFIG_NR_CPUS_DEFAULT=8192 CONFIG_NR_CPUS=8192 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y CONFIG_X86_MCE=y CONFIG_X86_MCELOG_LEGACY=y CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y CONFIG_X86_MCE_THRESHOLD=y CONFIG_X86_MCE_INJECT=m CONFIG_X86_THERMAL_VECTOR=y # # Performance monitoring # CONFIG_PERF_EVENTS_INTEL_UNCORE=y CONFIG_PERF_EVENTS_INTEL_RAPL=y CONFIG_PERF_EVENTS_INTEL_CSTATE=y # CONFIG_PERF_EVENTS_AMD_POWER is not set CONFIG_X86_16BIT=y CONFIG_X86_ESPFIX64=y CONFIG_X86_VSYSCALL_EMULATION=y CONFIG_I8K=m CONFIG_MICROCODE=y CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y CONFIG_X86_MSR=y CONFIG_X86_CPUID=y # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y # CONFIG_X86_CPA_STATISTICS is not set CONFIG_ARCH_HAS_MEM_ENCRYPT=y # CONFIG_AMD_MEM_ENCRYPT is not set CONFIG_NUMA=y CONFIG_AMD_NUMA=y CONFIG_X86_64_ACPI_NUMA=y CONFIG_NODES_SPAN_OTHER_NODES=y # CONFIG_NUMA_EMU is not set CONFIG_NODES_SHIFT=10 CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_MEMORY_PROBE=y CONFIG_ARCH_PROC_KCORE_TEXT=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 CONFIG_X86_PMEM_LEGACY_DEVICE=y CONFIG_X86_PMEM_LEGACY=m CONFIG_X86_CHECK_BIOS_CORRUPTION=y # CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set CONFIG_X86_RESERVE_LOW=64 CONFIG_MTRR=y CONFIG_MTRR_SANITIZER=y CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y CONFIG_X86_SMAP=y CONFIG_X86_INTEL_UMIP=y CONFIG_X86_INTEL_MPX=y CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y CONFIG_EFI=y CONFIG_EFI_STUB=y # CONFIG_EFI_MIXED is not set CONFIG_SECCOMP=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y # CONFIG_KEXEC_FILE is not set CONFIG_CRASH_DUMP=y CONFIG_KEXEC_JUMP=y CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 CONFIG_HOTPLUG_CPU=y CONFIG_BOOTPARAM_HOTPLUG_CPU0=y # CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_COMPAT_VDSO is not set CONFIG_LEGACY_VSYSCALL_EMULATE=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set CONFIG_MODIFY_LDT_SYSCALL=y CONFIG_HAVE_LIVEPATCH=y # CONFIG_LIVEPATCH is not set CONFIG_ARCH_HAS_ADD_PAGES=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y CONFIG_USE_PERCPU_NUMA_NODE_ID=y CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y CONFIG_ARCH_ENABLE_THP_MIGRATION=y # # Power management and ACPI options # CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_HIBERNATE_CALLBACKS=y CONFIG_HIBERNATION=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y CONFIG_PM_DEBUG=y CONFIG_PM_ADVANCED_DEBUG=y CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_SLEEP_DEBUG=y # CONFIG_DPM_WATCHDOG is not set # CONFIG_PM_TRACE_RTC is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y # CONFIG_ACPI_DEBUGGER is not set CONFIG_ACPI_SPCR_TABLE=y CONFIG_ACPI_LPIT=y CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS_POWER is not set CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y CONFIG_ACPI_EC_DEBUGFS=m CONFIG_ACPI_AC=y CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=y # CONFIG_ACPI_TAD is not set CONFIG_ACPI_DOCK=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_IPMI=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=m CONFIG_ACPI_THERMAL=y CONFIG_ACPI_NUMA=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_DEBUG=y CONFIG_ACPI_PCI_SLOT=y CONFIG_ACPI_CONTAINER=y CONFIG_ACPI_HOTPLUG_MEMORY=y CONFIG_ACPI_HOTPLUG_IOAPIC=y CONFIG_ACPI_SBS=m CONFIG_ACPI_HED=y CONFIG_ACPI_CUSTOM_METHOD=m CONFIG_ACPI_BGRT=y # CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set CONFIG_ACPI_NFIT=m CONFIG_HAVE_ACPI_APEI=y CONFIG_HAVE_ACPI_APEI_NMI=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=m CONFIG_ACPI_APEI_ERST_DEBUG=y # CONFIG_DPTF_POWER is not set CONFIG_ACPI_WATCHDOG=y CONFIG_ACPI_EXTLOG=m # CONFIG_PMIC_OPREGION is not set # CONFIG_ACPI_CONFIGFS is not set CONFIG_X86_PM_TIMER=y CONFIG_SFI=y # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_ATTR_SET=y CONFIG_CPU_FREQ_GOV_COMMON=y # CONFIG_CPU_FREQ_STAT is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set # # CPU frequency scaling drivers # CONFIG_X86_INTEL_PSTATE=y CONFIG_X86_PCC_CPUFREQ=m CONFIG_X86_ACPI_CPUFREQ=m CONFIG_X86_ACPI_CPUFREQ_CPB=y CONFIG_X86_POWERNOW_K8=m CONFIG_X86_AMD_FREQ_SENSITIVITY=m # CONFIG_X86_SPEEDSTEP_CENTRINO is not set CONFIG_X86_P4_CLOCKMOD=m # # shared options # CONFIG_X86_SPEEDSTEP_LIB=m # # CPU Idle # CONFIG_CPU_IDLE=y # CONFIG_CPU_IDLE_GOV_LADDER is not set CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_INTEL_IDLE=y # # Bus options (PCI etc.) # CONFIG_PCI=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_XEN=y CONFIG_PCI_DOMAINS=y CONFIG_MMCONF_FAM10H=y # CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCIEPORTBUS=y CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_PCIEAER=y CONFIG_PCIEAER_INJECT=m CONFIG_PCIE_ECRC=y CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM_DEFAULT=y # CONFIG_PCIEASPM_POWERSAVE is not set # CONFIG_PCIEASPM_POWER_SUPERSAVE is not set # CONFIG_PCIEASPM_PERFORMANCE is not set CONFIG_PCIE_PME=y # CONFIG_PCIE_DPC is not set # CONFIG_PCIE_PTM is not set CONFIG_PCI_MSI=y CONFIG_PCI_MSI_IRQ_DOMAIN=y CONFIG_PCI_QUIRKS=y # CONFIG_PCI_DEBUG is not set # CONFIG_PCI_REALLOC_ENABLE_AUTO is not set CONFIG_PCI_STUB=y # CONFIG_PCI_PF_STUB is not set # CONFIG_XEN_PCIDEV_FRONTEND is not set CONFIG_PCI_ATS=y CONFIG_PCI_LOCKLESS_CONFIG=y CONFIG_PCI_IOV=y CONFIG_PCI_PRI=y CONFIG_PCI_PASID=y # CONFIG_PCI_P2PDMA is not set CONFIG_PCI_LABEL=y # CONFIG_PCI_HYPERV is not set CONFIG_HOTPLUG_PCI=y CONFIG_HOTPLUG_PCI_ACPI=y CONFIG_HOTPLUG_PCI_ACPI_IBM=m # CONFIG_HOTPLUG_PCI_CPCI is not set # CONFIG_HOTPLUG_PCI_SHPC is not set # # PCI controller drivers # # # Cadence PCIe controllers support # # CONFIG_VMD is not set # # DesignWare PCI Core Support # # CONFIG_PCIE_DW_PLAT_HOST is not set # # PCI Endpoint # # CONFIG_PCI_ENDPOINT is not set # # PCI switch controller drivers # # CONFIG_PCI_SW_SWITCHTEC is not set # CONFIG_ISA_BUS is not set CONFIG_ISA_DMA_API=y CONFIG_AMD_NB=y CONFIG_PCCARD=y # CONFIG_PCMCIA is not set CONFIG_CARDBUS=y # # PC-card bridges # CONFIG_YENTA=m CONFIG_YENTA_O2=y CONFIG_YENTA_RICOH=y CONFIG_YENTA_TI=y CONFIG_YENTA_ENE_TUNE=y CONFIG_YENTA_TOSHIBA=y # CONFIG_RAPIDIO is not set # CONFIG_X86_SYSFB is not set # # Binary Emulations # CONFIG_IA32_EMULATION=y # CONFIG_IA32_AOUT is not set # CONFIG_X86_X32 is not set CONFIG_COMPAT_32=y CONFIG_COMPAT=y CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y CONFIG_X86_DEV_DMA_OPS=y CONFIG_HAVE_GENERIC_GUP=y # # Firmware Drivers # CONFIG_EDD=m # CONFIG_EDD_OFF is not set CONFIG_FIRMWARE_MEMMAP=y CONFIG_DMIID=y CONFIG_DMI_SYSFS=y CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m # CONFIG_FW_CFG_SYSFS is not set # CONFIG_GOOGLE_FIRMWARE is not set # # EFI (Extensible Firmware Interface) Support # CONFIG_EFI_VARS=y CONFIG_EFI_ESRT=y CONFIG_EFI_VARS_PSTORE=y CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y CONFIG_EFI_RUNTIME_MAP=y # CONFIG_EFI_FAKE_MEMMAP is not set CONFIG_EFI_RUNTIME_WRAPPERS=y # CONFIG_EFI_BOOTLOADER_CONTROL is not set # CONFIG_EFI_CAPSULE_LOADER is not set # CONFIG_EFI_TEST is not set # CONFIG_APPLE_PROPERTIES is not set # CONFIG_RESET_ATTACK_MITIGATION is not set CONFIG_UEFI_CPER=y CONFIG_UEFI_CPER_X86=y # # Tegra firmware driver # CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_IRQFD=y CONFIG_HAVE_KVM_IRQ_ROUTING=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_MMIO=y CONFIG_KVM_ASYNC_PF=y CONFIG_HAVE_KVM_MSI=y CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y CONFIG_KVM_VFIO=y CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y CONFIG_KVM_COMPAT=y CONFIG_HAVE_KVM_IRQ_BYPASS=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m CONFIG_KVM_MMU_AUDIT=y CONFIG_VHOST_NET=m # CONFIG_VHOST_SCSI is not set # CONFIG_VHOST_VSOCK is not set CONFIG_VHOST=m # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set # # General architecture-dependent options # CONFIG_CRASH_CORE=y CONFIG_KEXEC_CORE=y CONFIG_HOTPLUG_SMT=y CONFIG_OPROFILE=m CONFIG_OPROFILE_EVENT_MULTIPLEX=y CONFIG_HAVE_OPROFILE=y CONFIG_OPROFILE_NMI_TIMER=y CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_OPTPROBES=y CONFIG_KPROBES_ON_FTRACE=y CONFIG_UPROBES=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_KRETPROBES=y CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_KPROBES_ON_FTRACE=y CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y CONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_RSEQ=y CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y CONFIG_HAVE_CLK=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y CONFIG_HAVE_RCU_TABLE_FREE=y CONFIG_HAVE_RCU_TABLE_INVALIDATE=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y CONFIG_HAVE_CMPXCHG_LOCAL=y CONFIG_HAVE_CMPXCHG_DOUBLE=y CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_SECCOMP_FILTER=y CONFIG_HAVE_ARCH_STACKLEAK=y CONFIG_HAVE_STACKPROTECTOR=y CONFIG_CC_HAS_STACKPROTECTOR_NONE=y CONFIG_STACKPROTECTOR=y CONFIG_STACKPROTECTOR_STRONG=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y CONFIG_HAVE_ARCH_HUGE_VMAP=y CONFIG_HAVE_ARCH_SOFT_DIRTY=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_RELA=y CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_HAVE_EXIT_THREAD=y CONFIG_ARCH_MMAP_RND_BITS=28 CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y CONFIG_HAVE_COPY_THREAD_TLS=y CONFIG_HAVE_STACK_VALIDATION=y CONFIG_HAVE_RELIABLE_STACKTRACE=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_COMPAT_OLD_SIGACTION=y CONFIG_COMPAT_32BIT_TIME=y CONFIG_HAVE_ARCH_VMAP_STACK=y CONFIG_VMAP_STACK=y CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y CONFIG_ARCH_HAS_REFCOUNT=y # CONFIG_REFCOUNT_FULL is not set CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y # # GCOV-based kernel profiling # # CONFIG_GCOV_KERNEL is not set CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y CONFIG_PLUGIN_HOSTCC="g++" CONFIG_HAVE_GCC_PLUGINS=y # CONFIG_GCC_PLUGINS is not set CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_MODULE_SIG is not set # CONFIG_MODULE_COMPRESS is not set # CONFIG_TRIM_UNUSED_KSYMS is not set CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y CONFIG_BLK_SCSI_REQUEST=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y # CONFIG_BLK_DEV_ZONED is not set CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_DEV_THROTTLING_LOW is not set # CONFIG_BLK_CMDLINE_PARSER is not set # CONFIG_BLK_WBT is not set # CONFIG_BLK_CGROUP_IOLATENCY is not set CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_SED_OPAL is not set # # Partition Types # CONFIG_PARTITION_ADVANCED=y # CONFIG_ACORN_PARTITION is not set # CONFIG_AIX_PARTITION is not set CONFIG_OSF_PARTITION=y CONFIG_AMIGA_PARTITION=y # CONFIG_ATARI_PARTITION is not set CONFIG_MAC_PARTITION=y CONFIG_MSDOS_PARTITION=y CONFIG_BSD_DISKLABEL=y CONFIG_MINIX_SUBPARTITION=y CONFIG_SOLARIS_X86_PARTITION=y CONFIG_UNIXWARE_DISKLABEL=y # CONFIG_LDM_PARTITION is not set CONFIG_SGI_PARTITION=y # CONFIG_ULTRIX_PARTITION is not set CONFIG_SUN_PARTITION=y CONFIG_KARMA_PARTITION=y CONFIG_EFI_PARTITION=y # CONFIG_SYSV68_PARTITION is not set # CONFIG_CMDLINE_PARTITION is not set CONFIG_BLOCK_COMPAT=y CONFIG_BLK_MQ_PCI=y CONFIG_BLK_MQ_VIRTIO=y CONFIG_BLK_PM=y # # IO Schedulers # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y CONFIG_CFQ_GROUP_IOSCHED=y CONFIG_DEFAULT_DEADLINE=y # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="deadline" CONFIG_MQ_IOSCHED_DEADLINE=y CONFIG_MQ_IOSCHED_KYBER=y # CONFIG_IOSCHED_BFQ is not set CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y CONFIG_ASN1=y CONFIG_INLINE_SPIN_UNLOCK_IRQ=y CONFIG_INLINE_READ_UNLOCK=y CONFIG_INLINE_READ_UNLOCK_IRQ=y CONFIG_INLINE_WRITE_UNLOCK=y CONFIG_INLINE_WRITE_UNLOCK_IRQ=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_RWSEM_SPIN_ON_OWNER=y CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y CONFIG_FREEZER=y # # Executable file formats # CONFIG_BINFMT_ELF=y CONFIG_COMPAT_BINFMT_ELF=y CONFIG_ELFCORE=y CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_BINFMT_SCRIPT=y CONFIG_BINFMT_MISC=m CONFIG_COREDUMP=y # # Memory Management options # CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SPARSEMEM_MANUAL=y CONFIG_SPARSEMEM=y CONFIG_NEED_MULTIPLE_NODES=y CONFIG_HAVE_MEMORY_PRESENT=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_HAVE_MEMBLOCK_NODE_MAP=y CONFIG_ARCH_DISCARD_MEMBLOCK=y CONFIG_MEMORY_ISOLATION=y CONFIG_HAVE_BOOTMEM_INFO_NODE=y CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTPLUG_SPARSE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTREMOVE=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_MEMORY_BALLOON=y CONFIG_BALLOON_COMPACTION=y CONFIG_COMPACTION=y CONFIG_MIGRATION=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y CONFIG_MEMORY_FAILURE=y CONFIG_HWPOISON_INJECT=m CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y # CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set CONFIG_ARCH_WANTS_THP_SWAP=y CONFIG_THP_SWAP=y CONFIG_TRANSPARENT_HUGE_PAGECACHE=y CONFIG_CLEANCACHE=y CONFIG_FRONTSWAP=y CONFIG_CMA=y # CONFIG_CMA_DEBUG is not set # CONFIG_CMA_DEBUGFS is not set CONFIG_CMA_AREAS=7 # CONFIG_MEM_SOFT_DIRTY is not set CONFIG_ZSWAP=y CONFIG_ZPOOL=y CONFIG_ZBUD=y # CONFIG_Z3FOLD is not set CONFIG_ZSMALLOC=y # CONFIG_PGTABLE_MAPPING is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_GENERIC_EARLY_IOREMAP=y # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set CONFIG_IDLE_PAGE_TRACKING=y CONFIG_ARCH_HAS_ZONE_DEVICE=y CONFIG_ZONE_DEVICE=y CONFIG_ARCH_HAS_HMM=y CONFIG_DEV_PAGEMAP_OPS=y # CONFIG_HMM_MIRROR is not set # CONFIG_DEVICE_PRIVATE is not set # CONFIG_DEVICE_PUBLIC is not set CONFIG_FRAME_VECTOR=y CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y CONFIG_ARCH_HAS_PKEYS=y # CONFIG_PERCPU_STATS is not set # CONFIG_GUP_BENCHMARK is not set CONFIG_ARCH_HAS_PTE_SPECIAL=y CONFIG_NET=y CONFIG_COMPAT_NETLINK_MESSAGES=y CONFIG_NET_INGRESS=y CONFIG_NET_EGRESS=y # # Networking options # CONFIG_PACKET=y CONFIG_PACKET_DIAG=m CONFIG_UNIX=y CONFIG_UNIX_DIAG=m # CONFIG_TLS is not set CONFIG_XFRM=y CONFIG_XFRM_ALGO=y CONFIG_XFRM_USER=y # CONFIG_XFRM_INTERFACE is not set CONFIG_XFRM_SUB_POLICY=y CONFIG_XFRM_MIGRATE=y CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m CONFIG_NET_KEY=m CONFIG_NET_KEY_MIGRATE=y # CONFIG_XDP_SOCKETS is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_FIB_TRIE_STATS=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y CONFIG_IP_ROUTE_CLASSID=y CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y # CONFIG_IP_PNP_BOOTP is not set # CONFIG_IP_PNP_RARP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE_COMMON=y CONFIG_IP_MROUTE=y CONFIG_IP_MROUTE_MULTIPLE_TABLES=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_SYN_COOKIES=y CONFIG_NET_IPVTI=m CONFIG_NET_UDP_TUNNEL=m CONFIG_NET_FOU=m CONFIG_NET_FOU_IP_TUNNELS=y CONFIG_INET_AH=m CONFIG_INET_ESP=m # CONFIG_INET_ESP_OFFLOAD is not set CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m CONFIG_INET_XFRM_MODE_TRANSPORT=m CONFIG_INET_XFRM_MODE_TUNNEL=m CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m CONFIG_INET_UDP_DIAG=m # CONFIG_INET_RAW_DIAG is not set # CONFIG_INET_DIAG_DESTROY is not set CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=m CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m CONFIG_TCP_CONG_HYBLA=m CONFIG_TCP_CONG_VEGAS=m # CONFIG_TCP_CONG_NV is not set CONFIG_TCP_CONG_SCALABLE=m CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m # CONFIG_TCP_CONG_DCTCP is not set # CONFIG_TCP_CONG_CDG is not set # CONFIG_TCP_CONG_BBR is not set CONFIG_DEFAULT_CUBIC=y # CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_TCP_MD5SIG=y CONFIG_IPV6=y CONFIG_IPV6_ROUTER_PREF=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m # CONFIG_INET6_ESP_OFFLOAD is not set CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=m # CONFIG_IPV6_ILA is not set CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m CONFIG_INET6_XFRM_MODE_TRANSPORT=m CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_VTI=m CONFIG_IPV6_SIT=m CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m # CONFIG_IPV6_GRE is not set CONFIG_IPV6_FOU=m CONFIG_IPV6_FOU_TUNNEL=m CONFIG_IPV6_MULTIPLE_TABLES=y # CONFIG_IPV6_SUBTREES is not set CONFIG_IPV6_MROUTE=y CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_SEG6_LWTUNNEL=y # CONFIG_IPV6_SEG6_HMAC is not set CONFIG_IPV6_SEG6_BPF=y CONFIG_NETLABEL=y CONFIG_NETWORK_SECMARK=y CONFIG_NET_PTP_CLASSIFY=y CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y CONFIG_NETFILTER_ADVANCED=y CONFIG_BRIDGE_NETFILTER=m # # Core Netfilter Configuration # CONFIG_NETFILTER_INGRESS=y CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_FAMILY_BRIDGE=y CONFIG_NETFILTER_FAMILY_ARP=y CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NETFILTER_NETLINK_OSF=m CONFIG_NF_CONNTRACK=m CONFIG_NF_LOG_COMMON=m # CONFIG_NF_LOG_NETDEV is not set CONFIG_NETFILTER_CONNCOUNT=m CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y CONFIG_NF_CONNTRACK_ZONES=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y # CONFIG_NF_CONNTRACK_TIMEOUT is not set CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CONNTRACK_LABELS=y CONFIG_NF_CT_PROTO_DCCP=y CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=y CONFIG_NF_CT_PROTO_UDPLITE=y CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m CONFIG_NF_CONNTRACK_BROADCAST=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m CONFIG_NF_CONNTRACK_SNMP=m CONFIG_NF_CONNTRACK_PPTP=m CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m # CONFIG_NETFILTER_NETLINK_GLUE_CT is not set CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y CONFIG_NF_NAT_PROTO_DCCP=y CONFIG_NF_NAT_PROTO_UDPLITE=y CONFIG_NF_NAT_PROTO_SCTP=y CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m CONFIG_NF_NAT_SIP=m CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_REDIRECT=y CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m # CONFIG_NF_TABLES_SET is not set # CONFIG_NF_TABLES_INET is not set # CONFIG_NF_TABLES_NETDEV is not set # CONFIG_NFT_NUMGEN is not set CONFIG_NFT_CT=m CONFIG_NFT_COUNTER=m # CONFIG_NFT_CONNLIMIT is not set CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m # CONFIG_NFT_MASQ is not set # CONFIG_NFT_REDIR is not set CONFIG_NFT_NAT=m # CONFIG_NFT_TUNNEL is not set # CONFIG_NFT_OBJREF is not set # CONFIG_NFT_QUEUE is not set # CONFIG_NFT_QUOTA is not set # CONFIG_NFT_REJECT is not set CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m # CONFIG_NFT_XFRM is not set # CONFIG_NFT_SOCKET is not set # CONFIG_NFT_OSF is not set # CONFIG_NFT_TPROXY is not set # CONFIG_NF_FLOW_TABLE is not set CONFIG_NETFILTER_XTABLES=y # # Xtables combined modules # CONFIG_NETFILTER_XT_MARK=m CONFIG_NETFILTER_XT_CONNMARK=m CONFIG_NETFILTER_XT_SET=m # # Xtables targets # CONFIG_NETFILTER_XT_TARGET_AUDIT=m CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m CONFIG_NETFILTER_XT_TARGET_HMARK=m CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m CONFIG_NETFILTER_XT_TARGET_LOG=m CONFIG_NETFILTER_XT_TARGET_MARK=m CONFIG_NETFILTER_XT_NAT=m CONFIG_NETFILTER_XT_TARGET_NETMAP=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m CONFIG_NETFILTER_XT_TARGET_REDIRECT=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_SECMARK=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m # # Xtables matches # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m CONFIG_NETFILTER_XT_MATCH_BPF=m # CONFIG_NETFILTER_XT_MATCH_CGROUP is not set CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ECN=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m # CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set CONFIG_NETFILTER_XT_MATCH_IPRANGE=m CONFIG_NETFILTER_XT_MATCH_IPVS=m CONFIG_NETFILTER_XT_MATCH_L2TP=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m CONFIG_NETFILTER_XT_MATCH_NFACCT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_RATEEST=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_RECENT=m CONFIG_NETFILTER_XT_MATCH_SCTP=m # CONFIG_NETFILTER_XT_MATCH_SOCKET is not set CONFIG_NETFILTER_XT_MATCH_STATE=m CONFIG_NETFILTER_XT_MATCH_STATISTIC=m CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 CONFIG_IP_SET_BITMAP_IP=m CONFIG_IP_SET_BITMAP_IPMAC=m CONFIG_IP_SET_BITMAP_PORT=m CONFIG_IP_SET_HASH_IP=m # CONFIG_IP_SET_HASH_IPMARK is not set CONFIG_IP_SET_HASH_IPPORT=m CONFIG_IP_SET_HASH_IPPORTIP=m CONFIG_IP_SET_HASH_IPPORTNET=m # CONFIG_IP_SET_HASH_IPMAC is not set # CONFIG_IP_SET_HASH_MAC is not set # CONFIG_IP_SET_HASH_NETPORTNET is not set CONFIG_IP_SET_HASH_NET=m # CONFIG_IP_SET_HASH_NETNET is not set CONFIG_IP_SET_HASH_NETPORT=m CONFIG_IP_SET_HASH_NETIFACE=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set CONFIG_IP_VS_TAB_BITS=12 # # IPVS transport protocol load balancing support # CONFIG_IP_VS_PROTO_TCP=y CONFIG_IP_VS_PROTO_UDP=y CONFIG_IP_VS_PROTO_AH_ESP=y CONFIG_IP_VS_PROTO_ESP=y CONFIG_IP_VS_PROTO_AH=y CONFIG_IP_VS_PROTO_SCTP=y # # IPVS scheduler # CONFIG_IP_VS_RR=m CONFIG_IP_VS_WRR=m CONFIG_IP_VS_LC=m CONFIG_IP_VS_WLC=m # CONFIG_IP_VS_FO is not set # CONFIG_IP_VS_OVF is not set CONFIG_IP_VS_LBLC=m CONFIG_IP_VS_LBLCR=m CONFIG_IP_VS_DH=m CONFIG_IP_VS_SH=m # CONFIG_IP_VS_MH is not set CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m # # IPVS SH scheduler # CONFIG_IP_VS_SH_TAB_BITS=8 # # IPVS MH scheduler # CONFIG_IP_VS_MH_TAB_INDEX=12 # # IPVS application helper # CONFIG_IP_VS_FTP=m CONFIG_IP_VS_NFCT=y CONFIG_IP_VS_PE_SIP=m # # IP: Netfilter Configuration # CONFIG_NF_DEFRAG_IPV4=m # CONFIG_NF_SOCKET_IPV4 is not set CONFIG_NF_TPROXY_IPV4=m # CONFIG_NF_TABLES_IPV4 is not set # CONFIG_NF_TABLES_ARP is not set CONFIG_NF_DUP_IPV4=m # CONFIG_NF_LOG_ARP is not set CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m CONFIG_NF_NAT_IPV4=m CONFIG_NF_NAT_MASQUERADE_IPV4=y CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_TARGET_SYNPROXY=m CONFIG_IP_NF_NAT=m CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_RAW=m CONFIG_IP_NF_SECURITY=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m # # IPv6: Netfilter Configuration # # CONFIG_NF_SOCKET_IPV6 is not set CONFIG_NF_TPROXY_IPV6=m # CONFIG_NF_TABLES_IPV6 is not set CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m CONFIG_NF_NAT_IPV6=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_MATCH_FRAG=m CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m # CONFIG_IP6_NF_MATCH_SRH is not set CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_TARGET_SYNPROXY=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m CONFIG_IP6_NF_SECURITY=m # CONFIG_IP6_NF_NAT is not set CONFIG_NF_DEFRAG_IPV6=m # CONFIG_NF_TABLES_BRIDGE is not set CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m CONFIG_BRIDGE_EBT_T_NAT=m CONFIG_BRIDGE_EBT_802_3=m CONFIG_BRIDGE_EBT_AMONG=m CONFIG_BRIDGE_EBT_ARP=m CONFIG_BRIDGE_EBT_IP=m CONFIG_BRIDGE_EBT_IP6=m CONFIG_BRIDGE_EBT_LIMIT=m CONFIG_BRIDGE_EBT_MARK=m CONFIG_BRIDGE_EBT_PKTTYPE=m CONFIG_BRIDGE_EBT_STP=m CONFIG_BRIDGE_EBT_VLAN=m CONFIG_BRIDGE_EBT_ARPREPLY=m CONFIG_BRIDGE_EBT_DNAT=m CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m CONFIG_BRIDGE_EBT_NFLOG=m # CONFIG_BPFILTER is not set CONFIG_IP_DCCP=m CONFIG_INET_DCCP_DIAG=m # # DCCP CCIDs Configuration # # CONFIG_IP_DCCP_CCID2_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_TFRC_LIB=y # # DCCP Kernel Hacking # # CONFIG_IP_DCCP_DEBUG is not set CONFIG_IP_SCTP=m # CONFIG_SCTP_DBG_OBJCNT is not set # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set CONFIG_SCTP_COOKIE_HMAC_MD5=y CONFIG_SCTP_COOKIE_HMAC_SHA1=y CONFIG_INET_SCTP_DIAG=m # CONFIG_RDS is not set CONFIG_TIPC=m CONFIG_TIPC_MEDIA_UDP=y CONFIG_TIPC_DIAG=m CONFIG_ATM=m CONFIG_ATM_CLIP=m # CONFIG_ATM_CLIP_NO_ICMP is not set CONFIG_ATM_LANE=m # CONFIG_ATM_MPOA is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set CONFIG_L2TP=m CONFIG_L2TP_DEBUGFS=m CONFIG_L2TP_V3=y CONFIG_L2TP_IP=m CONFIG_L2TP_ETH=m CONFIG_STP=m CONFIG_GARP=m CONFIG_MRP=m CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_HAVE_NET_DSA=y # CONFIG_NET_DSA is not set CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q_MVRP=y # CONFIG_DECNET is not set CONFIG_LLC=m # CONFIG_LLC2 is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_PHONET is not set # CONFIG_6LOWPAN is not set CONFIG_IEEE802154=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_MAC802154=m CONFIG_NET_SCHED=y # # Queueing/Scheduling # CONFIG_NET_SCH_CBQ=m CONFIG_NET_SCH_HTB=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_MULTIQ=m CONFIG_NET_SCH_RED=m CONFIG_NET_SCH_SFB=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m # CONFIG_NET_SCH_CBS is not set # CONFIG_NET_SCH_ETF is not set # CONFIG_NET_SCH_TAPRIO is not set CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_DRR=m CONFIG_NET_SCH_MQPRIO=m # CONFIG_NET_SCH_SKBPRIO is not set CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m CONFIG_NET_SCH_CODEL=m CONFIG_NET_SCH_FQ_CODEL=m # CONFIG_NET_SCH_CAKE is not set # CONFIG_NET_SCH_FQ is not set # CONFIG_NET_SCH_HHF is not set # CONFIG_NET_SCH_PIE is not set CONFIG_NET_SCH_INGRESS=m CONFIG_NET_SCH_PLUG=m # CONFIG_NET_SCH_DEFAULT is not set # # Classification # CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_PERF=y CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m CONFIG_NET_CLS_FLOW=m CONFIG_NET_CLS_CGROUP=y CONFIG_NET_CLS_BPF=m # CONFIG_NET_CLS_FLOWER is not set # CONFIG_NET_CLS_MATCHALL is not set CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=m CONFIG_NET_EMATCH_NBYTE=m CONFIG_NET_EMATCH_U32=m CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m # CONFIG_NET_EMATCH_CANID is not set CONFIG_NET_EMATCH_IPSET=m # CONFIG_NET_EMATCH_IPT is not set CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m CONFIG_GACT_PROB=y CONFIG_NET_ACT_MIRRED=m # CONFIG_NET_ACT_SAMPLE is not set CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m CONFIG_NET_ACT_CSUM=m # CONFIG_NET_ACT_VLAN is not set # CONFIG_NET_ACT_BPF is not set # CONFIG_NET_ACT_CONNMARK is not set # CONFIG_NET_ACT_SKBMOD is not set # CONFIG_NET_ACT_IFE is not set # CONFIG_NET_ACT_TUNNEL_KEY is not set CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y CONFIG_DCB=y CONFIG_DNS_RESOLVER=m # CONFIG_BATMAN_ADV is not set CONFIG_OPENVSWITCH=m CONFIG_OPENVSWITCH_GRE=m CONFIG_OPENVSWITCH_VXLAN=m CONFIG_VSOCKETS=m CONFIG_VSOCKETS_DIAG=m CONFIG_VMWARE_VMCI_VSOCKETS=m # CONFIG_VIRTIO_VSOCKETS is not set # CONFIG_HYPERV_VSOCKETS is not set CONFIG_NETLINK_DIAG=m CONFIG_MPLS=y CONFIG_NET_MPLS_GSO=m # CONFIG_MPLS_ROUTING is not set CONFIG_NET_NSH=m # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set CONFIG_NET_L3_MASTER_DEV=y # CONFIG_NET_NCSI is not set CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y # CONFIG_CGROUP_NET_PRIO is not set CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y CONFIG_BPF_JIT=y CONFIG_BPF_STREAM_PARSER=y CONFIG_NET_FLOW_LIMIT=y # # Network testing # CONFIG_NET_PKTGEN=m CONFIG_NET_DROP_MONITOR=y # CONFIG_HAMRADIO is not set CONFIG_CAN=m CONFIG_CAN_RAW=m CONFIG_CAN_BCM=m CONFIG_CAN_GW=m # # CAN Device Drivers # CONFIG_CAN_VCAN=m # CONFIG_CAN_VXCAN is not set # CONFIG_CAN_SLCAN is not set CONFIG_CAN_DEV=m CONFIG_CAN_CALC_BITTIMING=y # CONFIG_CAN_C_CAN is not set # CONFIG_CAN_CC770 is not set # CONFIG_CAN_IFI_CANFD is not set # CONFIG_CAN_M_CAN is not set # CONFIG_CAN_PEAK_PCIEFD is not set # CONFIG_CAN_SJA1000 is not set # CONFIG_CAN_SOFTING is not set # # CAN SPI interfaces # # CONFIG_CAN_HI311X is not set # CONFIG_CAN_MCP251X is not set # # CAN USB interfaces # # CONFIG_CAN_8DEV_USB is not set # CONFIG_CAN_EMS_USB is not set # CONFIG_CAN_ESD_USB2 is not set # CONFIG_CAN_GS_USB is not set # CONFIG_CAN_KVASER_USB is not set # CONFIG_CAN_MCBA_USB is not set # CONFIG_CAN_PEAK_USB is not set # CONFIG_CAN_UCAN is not set # CONFIG_CAN_DEBUG_DEVICES is not set # CONFIG_BT is not set # CONFIG_AF_RXRPC is not set # CONFIG_AF_KCM is not set CONFIG_STREAM_PARSER=y CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y CONFIG_WEXT_CORE=y CONFIG_WEXT_PROC=y CONFIG_WEXT_PRIV=y CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_CERTIFICATION_ONUS is not set CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set CONFIG_CFG80211_CRDA_SUPPORT=y CONFIG_CFG80211_WEXT=y CONFIG_LIB80211=m # CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y CONFIG_MAC80211_DEBUGFS=y # CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 # CONFIG_WIMAX is not set CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y # CONFIG_RFKILL_GPIO is not set CONFIG_NET_9P=y CONFIG_NET_9P_VIRTIO=y # CONFIG_NET_9P_XEN is not set # CONFIG_NET_9P_DEBUG is not set # CONFIG_CAIF is not set # CONFIG_CEPH_LIB is not set # CONFIG_NFC is not set # CONFIG_PSAMPLE is not set # CONFIG_NET_IFE is not set CONFIG_LWTUNNEL=y CONFIG_LWTUNNEL_BPF=y CONFIG_DST_CACHE=y CONFIG_GRO_CELLS=y CONFIG_NET_SOCK_MSG=y # CONFIG_NET_DEVLINK is not set CONFIG_MAY_USE_DEVLINK=y CONFIG_FAILOVER=y CONFIG_HAVE_EBPF_JIT=y # # Device Drivers # # # Generic Driver Options # CONFIG_UEVENT_HELPER=y CONFIG_UEVENT_HELPER_PATH="" CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y # # Firmware loader # CONFIG_FW_LOADER=y CONFIG_EXTRA_FIRMWARE="" CONFIG_FW_LOADER_USER_HELPER=y CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y CONFIG_ALLOW_DEV_COREDUMP=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_SYS_HYPERVISOR=y CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_REGMAP=y CONFIG_REGMAP_I2C=y CONFIG_REGMAP_SPI=y CONFIG_DMA_SHARED_BUFFER=y # CONFIG_DMA_FENCE_TRACE is not set CONFIG_DMA_CMA=y # # Default contiguous memory area size: # CONFIG_CMA_SIZE_MBYTES=200 CONFIG_CMA_SIZE_SEL_MBYTES=y # CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set # CONFIG_CMA_SIZE_SEL_MIN is not set # CONFIG_CMA_SIZE_SEL_MAX is not set CONFIG_CMA_ALIGNMENT=8 # # Bus devices # CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y # CONFIG_GNSS is not set CONFIG_MTD=m # CONFIG_MTD_TESTS is not set # CONFIG_MTD_REDBOOT_PARTS is not set # CONFIG_MTD_CMDLINE_PARTS is not set # CONFIG_MTD_AR7_PARTS is not set # # Partition parsers # # # User Modules And Translation Layers # CONFIG_MTD_BLKDEVS=m CONFIG_MTD_BLOCK=m # CONFIG_MTD_BLOCK_RO is not set # CONFIG_FTL is not set # CONFIG_NFTL is not set # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set # CONFIG_SM_FTL is not set # CONFIG_MTD_OOPS is not set # CONFIG_MTD_SWAP is not set # CONFIG_MTD_PARTITIONED_MASTER is not set # # RAM/ROM/Flash chip drivers # # CONFIG_MTD_CFI is not set # CONFIG_MTD_JEDECPROBE is not set CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y CONFIG_MTD_CFI_I1=y CONFIG_MTD_CFI_I2=y # CONFIG_MTD_RAM is not set # CONFIG_MTD_ROM is not set # CONFIG_MTD_ABSENT is not set # # Mapping drivers for chip access # # CONFIG_MTD_COMPLEX_MAPPINGS is not set # CONFIG_MTD_INTEL_VR_NOR is not set # CONFIG_MTD_PLATRAM is not set # # Self-contained MTD device drivers # # CONFIG_MTD_PMC551 is not set # CONFIG_MTD_DATAFLASH is not set # CONFIG_MTD_MCHP23K256 is not set # CONFIG_MTD_SST25L is not set # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_MTDRAM is not set # CONFIG_MTD_BLOCK2MTD is not set # # Disk-On-Chip Device Drivers # # CONFIG_MTD_DOCG3 is not set # CONFIG_MTD_ONENAND is not set # CONFIG_MTD_NAND is not set # CONFIG_MTD_SPI_NAND is not set # # LPDDR & LPDDR2 PCM memory drivers # # CONFIG_MTD_LPDDR is not set # CONFIG_MTD_SPI_NOR is not set CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_LIMIT=20 # CONFIG_MTD_UBI_FASTMAP is not set # CONFIG_MTD_UBI_GLUEBI is not set # CONFIG_MTD_UBI_BLOCK is not set # CONFIG_OF is not set CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m # CONFIG_PARPORT_PC_FIFO is not set # CONFIG_PARPORT_PC_SUPERIO is not set # CONFIG_PARPORT_AX88796 is not set CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y CONFIG_PNP=y # CONFIG_PNP_DEBUG_MESSAGES is not set # # Protocols # CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_NULL_BLK=m CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y CONFIG_BLK_DEV_FD=m CONFIG_CDROM=m # CONFIG_PARIDE is not set CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m # CONFIG_ZRAM is not set # CONFIG_BLK_DEV_UMEM is not set CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=m # CONFIG_BLK_DEV_SKD is not set CONFIG_BLK_DEV_SX8=m CONFIG_BLK_DEV_RAM=m CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set CONFIG_ATA_OVER_ETH=m CONFIG_XEN_BLKDEV_FRONTEND=m # CONFIG_XEN_BLKDEV_BACKEND is not set CONFIG_VIRTIO_BLK=y # CONFIG_VIRTIO_BLK_SCSI is not set # CONFIG_BLK_DEV_RBD is not set CONFIG_BLK_DEV_RSXX=m # # NVME Support # CONFIG_NVME_CORE=m CONFIG_BLK_DEV_NVME=m CONFIG_NVME_MULTIPATH=y CONFIG_NVME_FABRICS=m # CONFIG_NVME_FC is not set CONFIG_NVME_TARGET=m CONFIG_NVME_TARGET_LOOP=m # CONFIG_NVME_TARGET_FC is not set # # Misc devices # CONFIG_SENSORS_LIS3LV02D=m # CONFIG_AD525X_DPOT is not set # CONFIG_DUMMY_IRQ is not set # CONFIG_IBM_ASM is not set # CONFIG_PHANTOM is not set CONFIG_SGI_IOC4=m CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m # CONFIG_ICS932S401 is not set CONFIG_ENCLOSURE_SERVICES=m CONFIG_SGI_XP=m CONFIG_HP_ILO=m CONFIG_SGI_GRU=m # CONFIG_SGI_GRU_DEBUG is not set CONFIG_APDS9802ALS=m CONFIG_ISL29003=m CONFIG_ISL29020=m CONFIG_SENSORS_TSL2550=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_APDS990X=m # CONFIG_HMC6352 is not set # CONFIG_DS1682 is not set CONFIG_VMWARE_BALLOON=m # CONFIG_USB_SWITCH_FSA9480 is not set # CONFIG_LATTICE_ECP3_CONFIG is not set # CONFIG_SRAM is not set # CONFIG_PCI_ENDPOINT_TEST is not set # CONFIG_C2PORT is not set # # EEPROM support # CONFIG_EEPROM_AT24=m # CONFIG_EEPROM_AT25 is not set CONFIG_EEPROM_LEGACY=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m # CONFIG_EEPROM_93XX46 is not set # CONFIG_EEPROM_IDT_89HPESX is not set # CONFIG_EEPROM_EE1004 is not set CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y # # Texas Instruments shared transport line discipline # # CONFIG_TI_ST is not set CONFIG_SENSORS_LIS3_I2C=m CONFIG_ALTERA_STAPL=m CONFIG_INTEL_MEI=y CONFIG_INTEL_MEI_ME=y # CONFIG_INTEL_MEI_TXE is not set CONFIG_VMWARE_VMCI=m # # Intel MIC & related support # # # Intel MIC Bus Driver # # CONFIG_INTEL_MIC_BUS is not set # # SCIF Bus Driver # # CONFIG_SCIF_BUS is not set # # VOP Bus Driver # # CONFIG_VOP_BUS is not set # # Intel MIC Host Driver # # # Intel MIC Card Driver # # # SCIF Driver # # # Intel MIC Coprocessor State Management (COSM) Drivers # # # VOP Driver # # CONFIG_GENWQE is not set # CONFIG_ECHO is not set # CONFIG_MISC_RTSX_PCI is not set # CONFIG_MISC_RTSX_USB is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set # # SCSI device support # CONFIG_SCSI_MOD=y CONFIG_RAID_ATTRS=m CONFIG_SCSI=y CONFIG_SCSI_DMA=y CONFIG_SCSI_NETLINK=y # CONFIG_SCSI_MQ_DEFAULT is not set CONFIG_SCSI_PROC_FS=y # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=m CONFIG_CHR_DEV_ST=m CONFIG_CHR_DEV_OSST=m CONFIG_BLK_DEV_SR=m CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_CHR_DEV_SG=m CONFIG_CHR_DEV_SCH=m CONFIG_SCSI_ENCLOSURE=m CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y CONFIG_SCSI_SCAN_ASYNC=y # # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=m CONFIG_SCSI_FC_ATTRS=m CONFIG_SCSI_ISCSI_ATTRS=m CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y CONFIG_SCSI_SRP_ATTRS=m CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m CONFIG_ISCSI_BOOT_SYSFS=m CONFIG_SCSI_CXGB3_ISCSI=m CONFIG_SCSI_CXGB4_ISCSI=m CONFIG_SCSI_BNX2_ISCSI=m CONFIG_SCSI_BNX2X_FCOE=m CONFIG_BE2ISCSI=m # CONFIG_BLK_DEV_3W_XXXX_RAID is not set CONFIG_SCSI_HPSA=m CONFIG_SCSI_3W_9XXX=m CONFIG_SCSI_3W_SAS=m # CONFIG_SCSI_ACARD is not set CONFIG_SCSI_AACRAID=m # CONFIG_SCSI_AIC7XXX is not set CONFIG_SCSI_AIC79XX=m CONFIG_AIC79XX_CMDS_PER_DEVICE=4 CONFIG_AIC79XX_RESET_DELAY_MS=15000 # CONFIG_AIC79XX_DEBUG_ENABLE is not set CONFIG_AIC79XX_DEBUG_MASK=0 # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set # CONFIG_SCSI_AIC94XX is not set CONFIG_SCSI_MVSAS=m # CONFIG_SCSI_MVSAS_DEBUG is not set CONFIG_SCSI_MVSAS_TASKLET=y CONFIG_SCSI_MVUMI=m # CONFIG_SCSI_DPT_I2O is not set # CONFIG_SCSI_ADVANSYS is not set CONFIG_SCSI_ARCMSR=m # CONFIG_SCSI_ESAS2R is not set # CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_LEGACY is not set CONFIG_MEGARAID_SAS=m CONFIG_SCSI_MPT3SAS=m CONFIG_SCSI_MPT2SAS_MAX_SGE=128 CONFIG_SCSI_MPT3SAS_MAX_SGE=128 CONFIG_SCSI_MPT2SAS=m # CONFIG_SCSI_SMARTPQI is not set CONFIG_SCSI_UFSHCD=m CONFIG_SCSI_UFSHCD_PCI=m # CONFIG_SCSI_UFS_DWC_TC_PCI is not set # CONFIG_SCSI_UFSHCD_PLATFORM is not set # CONFIG_SCSI_UFS_BSG is not set CONFIG_SCSI_HPTIOP=m # CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_MYRB is not set # CONFIG_SCSI_MYRS is not set CONFIG_VMWARE_PVSCSI=m # CONFIG_XEN_SCSI_FRONTEND is not set CONFIG_HYPERV_STORAGE=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m CONFIG_FCOE=m CONFIG_FCOE_FNIC=m # CONFIG_SCSI_SNIC is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_GDTH is not set CONFIG_SCSI_ISCI=m # CONFIG_SCSI_IPS is not set CONFIG_SCSI_INITIO=m # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_PPA is not set # CONFIG_SCSI_IMM is not set CONFIG_SCSI_STEX=m # CONFIG_SCSI_SYM53C8XX_2 is not set CONFIG_SCSI_IPR=m CONFIG_SCSI_IPR_TRACE=y CONFIG_SCSI_IPR_DUMP=y # CONFIG_SCSI_QLOGIC_1280 is not set CONFIG_SCSI_QLA_FC=m # CONFIG_TCM_QLA2XXX is not set CONFIG_SCSI_QLA_ISCSI=m # CONFIG_SCSI_LPFC is not set # CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_AM53C974 is not set # CONFIG_SCSI_WD719X is not set CONFIG_SCSI_DEBUG=m CONFIG_SCSI_PMCRAID=m CONFIG_SCSI_PM8001=m # CONFIG_SCSI_BFA_FC is not set CONFIG_SCSI_VIRTIO=m CONFIG_SCSI_CHELSIO_FCOE=m CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=y CONFIG_SCSI_DH_HP_SW=y CONFIG_SCSI_DH_EMC=y CONFIG_SCSI_DH_ALUA=y CONFIG_SCSI_OSD_INITIATOR=m CONFIG_SCSI_OSD_ULD=m CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_SCSI_OSD_DEBUG is not set CONFIG_ATA=m CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y # CONFIG_SATA_ZPODD is not set CONFIG_SATA_PMP=y # # Controllers with non-SFF native interface # CONFIG_SATA_AHCI=m CONFIG_SATA_MOBILE_LPM_POLICY=0 CONFIG_SATA_AHCI_PLATFORM=m # CONFIG_SATA_INIC162X is not set CONFIG_SATA_ACARD_AHCI=m CONFIG_SATA_SIL24=m CONFIG_ATA_SFF=y # # SFF controllers with custom DMA interface # CONFIG_PDC_ADMA=m CONFIG_SATA_QSTOR=m CONFIG_SATA_SX4=m CONFIG_ATA_BMDMA=y # # SATA SFF controllers with BMDMA # CONFIG_ATA_PIIX=m # CONFIG_SATA_DWC is not set CONFIG_SATA_MV=m CONFIG_SATA_NV=m CONFIG_SATA_PROMISE=m CONFIG_SATA_SIL=m CONFIG_SATA_SIS=m CONFIG_SATA_SVW=m CONFIG_SATA_ULI=m CONFIG_SATA_VIA=m CONFIG_SATA_VITESSE=m # # PATA SFF controllers with BMDMA # CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m CONFIG_PATA_ARTOP=m CONFIG_PATA_ATIIXP=m CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD64X=m # CONFIG_PATA_CYPRESS is not set # CONFIG_PATA_EFAR is not set CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m # CONFIG_PATA_HPT3X3_DMA is not set CONFIG_PATA_IT8213=m CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m CONFIG_PATA_MARVELL=m CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m # CONFIG_PATA_NS87415 is not set CONFIG_PATA_OLDPIIX=m # CONFIG_PATA_OPTIDMA is not set CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_RADISYS is not set CONFIG_PATA_RDC=m CONFIG_PATA_SCH=m CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m CONFIG_PATA_TOSHIBA=m # CONFIG_PATA_TRIFLEX is not set CONFIG_PATA_VIA=m # CONFIG_PATA_WINBOND is not set # # PIO-only SFF controllers # # CONFIG_PATA_CMD640_PCI is not set # CONFIG_PATA_MPIIX is not set # CONFIG_PATA_NS87410 is not set # CONFIG_PATA_OPTI is not set # CONFIG_PATA_PLATFORM is not set # CONFIG_PATA_RZ1000 is not set # # Generic fallback / legacy drivers # CONFIG_PATA_ACPI=m CONFIG_ATA_GENERIC=m # CONFIG_PATA_LEGACY is not set CONFIG_MD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_AUTODETECT=y CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m CONFIG_MD_MULTIPATH=m CONFIG_MD_FAULTY=m # CONFIG_MD_CLUSTER is not set # CONFIG_BCACHE is not set CONFIG_BLK_DEV_DM_BUILTIN=y CONFIG_BLK_DEV_DM=m CONFIG_DM_DEBUG=y CONFIG_DM_BUFIO=m # CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m # CONFIG_DM_UNSTRIPED is not set CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_CACHE=m CONFIG_DM_CACHE_SMQ=m # CONFIG_DM_WRITECACHE is not set # CONFIG_DM_ERA is not set CONFIG_DM_MIRROR=m CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_RAID=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m CONFIG_DM_DELAY=m CONFIG_DM_UEVENT=y CONFIG_DM_FLAKEY=m CONFIG_DM_VERITY=m # CONFIG_DM_VERITY_FEC is not set CONFIG_DM_SWITCH=m CONFIG_DM_LOG_WRITES=m # CONFIG_DM_INTEGRITY is not set CONFIG_TARGET_CORE=m CONFIG_TCM_IBLOCK=m CONFIG_TCM_FILEIO=m CONFIG_TCM_PSCSI=m # CONFIG_TCM_USER2 is not set CONFIG_LOOPBACK_TARGET=m CONFIG_TCM_FC=m CONFIG_ISCSI_TARGET=m # CONFIG_ISCSI_TARGET_CXGB4 is not set # CONFIG_SBP_TARGET is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m # CONFIG_FUSION_FC is not set CONFIG_FUSION_SAS=m CONFIG_FUSION_MAX_SGE=128 CONFIG_FUSION_CTL=m CONFIG_FUSION_LOGGING=y # # IEEE 1394 (FireWire) support # CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m CONFIG_FIREWIRE_SBP2=m CONFIG_FIREWIRE_NET=m # CONFIG_FIREWIRE_NOSY is not set CONFIG_MACINTOSH_DRIVERS=y CONFIG_MAC_EMUMOUSEBTN=y CONFIG_NETDEVICES=y CONFIG_MII=y CONFIG_NET_CORE=y CONFIG_BONDING=m CONFIG_DUMMY=m # CONFIG_EQUALIZER is not set CONFIG_NET_FC=y CONFIG_IFB=m CONFIG_NET_TEAM=m CONFIG_NET_TEAM_MODE_BROADCAST=m CONFIG_NET_TEAM_MODE_ROUNDROBIN=m CONFIG_NET_TEAM_MODE_RANDOM=m CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m CONFIG_NET_TEAM_MODE_LOADBALANCE=m CONFIG_MACVLAN=m CONFIG_MACVTAP=m # CONFIG_IPVLAN is not set CONFIG_VXLAN=m # CONFIG_GENEVE is not set # CONFIG_GTP is not set CONFIG_MACSEC=y CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y CONFIG_NETPOLL=y CONFIG_NET_POLL_CONTROLLER=y CONFIG_TUN=m CONFIG_TAP=m # CONFIG_TUN_VNET_CROSS_LE is not set CONFIG_VETH=m CONFIG_VIRTIO_NET=y CONFIG_NLMON=m CONFIG_NET_VRF=y # CONFIG_ARCNET is not set # CONFIG_ATM_DRIVERS is not set # # CAIF transport drivers # # # Distributed Switch Architecture drivers # CONFIG_ETHERNET=y CONFIG_MDIO=y # CONFIG_NET_VENDOR_3COM is not set # CONFIG_NET_VENDOR_ADAPTEC is not set CONFIG_NET_VENDOR_AGERE=y # CONFIG_ET131X is not set CONFIG_NET_VENDOR_ALACRITECH=y # CONFIG_SLICOSS is not set # CONFIG_NET_VENDOR_ALTEON is not set # CONFIG_ALTERA_TSE is not set CONFIG_NET_VENDOR_AMAZON=y # CONFIG_ENA_ETHERNET is not set # CONFIG_NET_VENDOR_AMD is not set CONFIG_NET_VENDOR_AQUANTIA=y # CONFIG_AQTION is not set CONFIG_NET_VENDOR_ARC=y CONFIG_NET_VENDOR_ATHEROS=y CONFIG_ATL2=m CONFIG_ATL1=m CONFIG_ATL1E=m CONFIG_ATL1C=m CONFIG_ALX=m # CONFIG_NET_VENDOR_AURORA is not set CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y CONFIG_B44_PCICORE_AUTOSELECT=y CONFIG_B44_PCI=y # CONFIG_BCMGENET is not set CONFIG_BNX2=m CONFIG_CNIC=m CONFIG_TIGON3=y CONFIG_TIGON3_HWMON=y # CONFIG_BNX2X is not set # CONFIG_SYSTEMPORT is not set # CONFIG_BNXT is not set CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=m CONFIG_NET_VENDOR_CADENCE=y # CONFIG_MACB is not set CONFIG_NET_VENDOR_CAVIUM=y # CONFIG_THUNDER_NIC_PF is not set # CONFIG_THUNDER_NIC_VF is not set # CONFIG_THUNDER_NIC_BGX is not set # CONFIG_THUNDER_NIC_RGX is not set CONFIG_CAVIUM_PTP=y # CONFIG_LIQUIDIO is not set # CONFIG_LIQUIDIO_VF is not set CONFIG_NET_VENDOR_CHELSIO=y # CONFIG_CHELSIO_T1 is not set CONFIG_CHELSIO_T3=m CONFIG_CHELSIO_T4=m # CONFIG_CHELSIO_T4_DCB is not set CONFIG_CHELSIO_T4VF=m CONFIG_CHELSIO_LIB=m CONFIG_NET_VENDOR_CISCO=y CONFIG_ENIC=m CONFIG_NET_VENDOR_CORTINA=y # CONFIG_CX_ECAT is not set CONFIG_DNET=m CONFIG_NET_VENDOR_DEC=y CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 CONFIG_TULIP=y # CONFIG_TULIP_MWI is not set CONFIG_TULIP_MMIO=y # CONFIG_TULIP_NAPI is not set CONFIG_DE4X5=m CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m # CONFIG_NET_VENDOR_DLINK is not set CONFIG_NET_VENDOR_EMULEX=y CONFIG_BE2NET=m CONFIG_BE2NET_HWMON=y CONFIG_BE2NET_BE2=y CONFIG_BE2NET_BE3=y CONFIG_BE2NET_LANCER=y CONFIG_BE2NET_SKYHAWK=y CONFIG_NET_VENDOR_EZCHIP=y # CONFIG_NET_VENDOR_HP is not set CONFIG_NET_VENDOR_HUAWEI=y # CONFIG_HINIC is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y # CONFIG_E100 is not set CONFIG_E1000=y CONFIG_E1000E=y CONFIG_E1000E_HWTS=y CONFIG_IGB=y CONFIG_IGB_HWMON=y CONFIG_IGBVF=m CONFIG_IXGB=m CONFIG_IXGBE=y CONFIG_IXGBE_HWMON=y CONFIG_IXGBE_DCB=y CONFIG_IXGBEVF=m CONFIG_I40E=m # CONFIG_I40E_DCB is not set # CONFIG_I40EVF is not set # CONFIG_ICE is not set # CONFIG_FM10K is not set # CONFIG_IGC is not set CONFIG_JME=m CONFIG_NET_VENDOR_MARVELL=y CONFIG_MVMDIO=m CONFIG_SKGE=m CONFIG_SKGE_DEBUG=y CONFIG_SKGE_GENESIS=y CONFIG_SKY2=m CONFIG_SKY2_DEBUG=y CONFIG_NET_VENDOR_MELLANOX=y CONFIG_MLX4_EN=m CONFIG_MLX4_EN_DCB=y CONFIG_MLX4_CORE=m CONFIG_MLX4_DEBUG=y CONFIG_MLX4_CORE_GEN2=y # CONFIG_MLX5_CORE is not set # CONFIG_MLXSW_CORE is not set # CONFIG_MLXFW is not set # CONFIG_NET_VENDOR_MICREL is not set CONFIG_NET_VENDOR_MICROCHIP=y # CONFIG_ENC28J60 is not set # CONFIG_ENCX24J600 is not set # CONFIG_LAN743X is not set CONFIG_NET_VENDOR_MICROSEMI=y CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m # CONFIG_FEALNX is not set # CONFIG_NET_VENDOR_NATSEMI is not set CONFIG_NET_VENDOR_NETERION=y # CONFIG_S2IO is not set # CONFIG_VXGE is not set CONFIG_NET_VENDOR_NETRONOME=y # CONFIG_NFP is not set CONFIG_NET_VENDOR_NI=y # CONFIG_NI_XGE_MANAGEMENT_ENET is not set # CONFIG_NET_VENDOR_NVIDIA is not set CONFIG_NET_VENDOR_OKI=y CONFIG_ETHOC=m CONFIG_NET_VENDOR_PACKET_ENGINES=y # CONFIG_HAMACHI is not set CONFIG_YELLOWFIN=m CONFIG_NET_VENDOR_QLOGIC=y CONFIG_QLA3XXX=m CONFIG_QLCNIC=m CONFIG_QLCNIC_SRIOV=y CONFIG_QLCNIC_DCB=y CONFIG_QLCNIC_HWMON=y CONFIG_QLGE=m CONFIG_NETXEN_NIC=m # CONFIG_QED is not set CONFIG_NET_VENDOR_QUALCOMM=y # CONFIG_QCOM_EMAC is not set # CONFIG_RMNET is not set # CONFIG_NET_VENDOR_RDC is not set CONFIG_NET_VENDOR_REALTEK=y # CONFIG_ATP is not set CONFIG_8139CP=y CONFIG_8139TOO=y CONFIG_8139TOO_PIO=y # CONFIG_8139TOO_TUNE_TWISTER is not set CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set CONFIG_R8169=y CONFIG_NET_VENDOR_RENESAS=y CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SAMSUNG=y # CONFIG_SXGBE_ETH is not set # CONFIG_NET_VENDOR_SEEQ is not set CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_SFC=m CONFIG_SFC_MTD=y CONFIG_SFC_MCDI_MON=y CONFIG_SFC_SRIOV=y CONFIG_SFC_MCDI_LOGGING=y # CONFIG_SFC_FALCON is not set # CONFIG_NET_VENDOR_SILAN is not set # CONFIG_NET_VENDOR_SIS is not set CONFIG_NET_VENDOR_SMSC=y CONFIG_EPIC100=m # CONFIG_SMSC911X is not set CONFIG_SMSC9420=m CONFIG_NET_VENDOR_SOCIONEXT=y # CONFIG_NET_VENDOR_STMICRO is not set # CONFIG_NET_VENDOR_SUN is not set CONFIG_NET_VENDOR_SYNOPSYS=y # CONFIG_DWC_XLGMAC is not set # CONFIG_NET_VENDOR_TEHUTI is not set # CONFIG_NET_VENDOR_TI is not set # CONFIG_NET_VENDOR_VIA is not set # CONFIG_NET_VENDOR_WIZNET is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_NET_SB1000 is not set CONFIG_MDIO_DEVICE=y CONFIG_MDIO_BUS=y # CONFIG_MDIO_BCM_UNIMAC is not set CONFIG_MDIO_BITBANG=m # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_MSCC_MIIM is not set # CONFIG_MDIO_THUNDER is not set CONFIG_PHYLIB=y CONFIG_SWPHY=y # CONFIG_LED_TRIGGER_PHY is not set # # MII PHY device drivers # CONFIG_AMD_PHY=m # CONFIG_AQUANTIA_PHY is not set # CONFIG_ASIX_PHY is not set CONFIG_AT803X_PHY=m # CONFIG_BCM7XXX_PHY is not set CONFIG_BCM87XX_PHY=m CONFIG_BCM_NET_PHYLIB=m CONFIG_BROADCOM_PHY=m CONFIG_CICADA_PHY=m # CONFIG_CORTINA_PHY is not set CONFIG_DAVICOM_PHY=m # CONFIG_DP83822_PHY is not set # CONFIG_DP83TC811_PHY is not set # CONFIG_DP83848_PHY is not set # CONFIG_DP83867_PHY is not set CONFIG_FIXED_PHY=y CONFIG_ICPLUS_PHY=m # CONFIG_INTEL_XWAY_PHY is not set CONFIG_LSI_ET1011C_PHY=m CONFIG_LXT_PHY=m CONFIG_MARVELL_PHY=m # CONFIG_MARVELL_10G_PHY is not set CONFIG_MICREL_PHY=m # CONFIG_MICROCHIP_PHY is not set # CONFIG_MICROCHIP_T1_PHY is not set # CONFIG_MICROSEMI_PHY is not set CONFIG_NATIONAL_PHY=m CONFIG_QSEMI_PHY=m CONFIG_REALTEK_PHY=y # CONFIG_RENESAS_PHY is not set # CONFIG_ROCKCHIP_PHY is not set CONFIG_SMSC_PHY=m CONFIG_STE10XP=m # CONFIG_TERANETICS_PHY is not set CONFIG_VITESSE_PHY=m # CONFIG_XILINX_GMII2RGMII is not set # CONFIG_MICREL_KS8995MA is not set # CONFIG_PLIP is not set CONFIG_PPP=m CONFIG_PPP_BSDCOMP=m CONFIG_PPP_DEFLATE=m CONFIG_PPP_FILTER=y CONFIG_PPP_MPPE=m CONFIG_PPP_MULTILINK=y CONFIG_PPPOATM=m CONFIG_PPPOE=m CONFIG_PPTP=m CONFIG_PPPOL2TP=m CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m CONFIG_SLIP=m CONFIG_SLHC=m CONFIG_SLIP_COMPRESSED=y CONFIG_SLIP_SMART=y # CONFIG_SLIP_MODE_SLIP6 is not set CONFIG_USB_NET_DRIVERS=y CONFIG_USB_CATC=y CONFIG_USB_KAWETH=y CONFIG_USB_PEGASUS=y CONFIG_USB_RTL8150=y CONFIG_USB_RTL8152=m # CONFIG_USB_LAN78XX is not set CONFIG_USB_USBNET=y CONFIG_USB_NET_AX8817X=y CONFIG_USB_NET_AX88179_178A=m CONFIG_USB_NET_CDCETHER=y CONFIG_USB_NET_CDC_EEM=y CONFIG_USB_NET_CDC_NCM=m # CONFIG_USB_NET_HUAWEI_CDC_NCM is not set CONFIG_USB_NET_CDC_MBIM=m CONFIG_USB_NET_DM9601=y # CONFIG_USB_NET_SR9700 is not set # CONFIG_USB_NET_SR9800 is not set CONFIG_USB_NET_SMSC75XX=y CONFIG_USB_NET_SMSC95XX=y CONFIG_USB_NET_GL620A=y CONFIG_USB_NET_NET1080=y CONFIG_USB_NET_PLUSB=y CONFIG_USB_NET_MCS7830=y CONFIG_USB_NET_RNDIS_HOST=y CONFIG_USB_NET_CDC_SUBSET_ENABLE=y CONFIG_USB_NET_CDC_SUBSET=y CONFIG_USB_ALI_M5632=y CONFIG_USB_AN2720=y CONFIG_USB_BELKIN=y CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=y CONFIG_USB_NET_CX82310_ETH=m CONFIG_USB_NET_KALMIA=m CONFIG_USB_NET_QMI_WWAN=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=y CONFIG_USB_IPHETH=y CONFIG_USB_SIERRA_NET=y CONFIG_USB_VL600=m # CONFIG_USB_NET_CH9200 is not set CONFIG_WLAN=y # CONFIG_WIRELESS_WDS is not set CONFIG_WLAN_VENDOR_ADMTEK=y # CONFIG_ADM8211 is not set CONFIG_WLAN_VENDOR_ATH=y # CONFIG_ATH_DEBUG is not set # CONFIG_ATH5K is not set # CONFIG_ATH5K_PCI is not set # CONFIG_ATH9K is not set # CONFIG_ATH9K_HTC is not set # CONFIG_CARL9170 is not set # CONFIG_ATH6KL is not set # CONFIG_AR5523 is not set # CONFIG_WIL6210 is not set # CONFIG_ATH10K is not set # CONFIG_WCN36XX is not set CONFIG_WLAN_VENDOR_ATMEL=y # CONFIG_ATMEL is not set # CONFIG_AT76C50X_USB is not set CONFIG_WLAN_VENDOR_BROADCOM=y # CONFIG_B43 is not set # CONFIG_B43LEGACY is not set # CONFIG_BRCMSMAC is not set # CONFIG_BRCMFMAC is not set CONFIG_WLAN_VENDOR_CISCO=y # CONFIG_AIRO is not set CONFIG_WLAN_VENDOR_INTEL=y # CONFIG_IPW2100 is not set # CONFIG_IPW2200 is not set # CONFIG_IWL4965 is not set # CONFIG_IWL3945 is not set # CONFIG_IWLWIFI is not set CONFIG_WLAN_VENDOR_INTERSIL=y # CONFIG_HOSTAP is not set # CONFIG_HERMES is not set # CONFIG_P54_COMMON is not set # CONFIG_PRISM54 is not set CONFIG_WLAN_VENDOR_MARVELL=y # CONFIG_LIBERTAS is not set # CONFIG_LIBERTAS_THINFIRM is not set # CONFIG_MWIFIEX is not set # CONFIG_MWL8K is not set CONFIG_WLAN_VENDOR_MEDIATEK=y # CONFIG_MT7601U is not set # CONFIG_MT76x0U is not set # CONFIG_MT76x0E is not set # CONFIG_MT76x2E is not set # CONFIG_MT76x2U is not set CONFIG_WLAN_VENDOR_RALINK=y # CONFIG_RT2X00 is not set CONFIG_WLAN_VENDOR_REALTEK=y # CONFIG_RTL8180 is not set # CONFIG_RTL8187 is not set CONFIG_RTL_CARDS=m # CONFIG_RTL8192CE is not set # CONFIG_RTL8192SE is not set # CONFIG_RTL8192DE is not set # CONFIG_RTL8723AE is not set # CONFIG_RTL8723BE is not set # CONFIG_RTL8188EE is not set # CONFIG_RTL8192EE is not set # CONFIG_RTL8821AE is not set # CONFIG_RTL8192CU is not set # CONFIG_RTL8XXXU is not set CONFIG_WLAN_VENDOR_RSI=y # CONFIG_RSI_91X is not set CONFIG_WLAN_VENDOR_ST=y # CONFIG_CW1200 is not set CONFIG_WLAN_VENDOR_TI=y # CONFIG_WL1251 is not set # CONFIG_WL12XX is not set # CONFIG_WL18XX is not set # CONFIG_WLCORE is not set CONFIG_WLAN_VENDOR_ZYDAS=y # CONFIG_USB_ZD1201 is not set # CONFIG_ZD1211RW is not set CONFIG_WLAN_VENDOR_QUANTENNA=y # CONFIG_QTNFMAC_PEARL_PCIE is not set CONFIG_MAC80211_HWSIM=m # CONFIG_USB_NET_RNDIS_WLAN is not set # # Enable WiMAX (Networking options) to see the WiMAX drivers # CONFIG_WAN=y # CONFIG_LANMEDIA is not set CONFIG_HDLC=m CONFIG_HDLC_RAW=m # CONFIG_HDLC_RAW_ETH is not set CONFIG_HDLC_CISCO=m CONFIG_HDLC_FR=m CONFIG_HDLC_PPP=m # # X.25/LAPB support is disabled # # CONFIG_PCI200SYN is not set # CONFIG_WANXL is not set # CONFIG_PC300TOO is not set # CONFIG_FARSYNC is not set # CONFIG_DSCC4 is not set CONFIG_DLCI=m CONFIG_DLCI_MAX=8 # CONFIG_SBNI is not set CONFIG_IEEE802154_DRIVERS=m CONFIG_IEEE802154_FAKELB=m # CONFIG_IEEE802154_AT86RF230 is not set # CONFIG_IEEE802154_MRF24J40 is not set # CONFIG_IEEE802154_CC2520 is not set # CONFIG_IEEE802154_ATUSB is not set # CONFIG_IEEE802154_ADF7242 is not set # CONFIG_IEEE802154_CA8210 is not set # CONFIG_IEEE802154_MCR20A is not set # CONFIG_IEEE802154_HWSIM is not set CONFIG_XEN_NETDEV_FRONTEND=m # CONFIG_XEN_NETDEV_BACKEND is not set CONFIG_VMXNET3=m # CONFIG_FUJITSU_ES is not set CONFIG_HYPERV_NET=m CONFIG_NETDEVSIM=m CONFIG_NET_FAILOVER=y CONFIG_ISDN=y CONFIG_ISDN_I4L=m CONFIG_ISDN_PPP=y CONFIG_ISDN_PPP_VJ=y CONFIG_ISDN_MPP=y CONFIG_IPPP_FILTER=y # CONFIG_ISDN_PPP_BSDCOMP is not set CONFIG_ISDN_AUDIO=y CONFIG_ISDN_TTY_FAX=y # # ISDN feature submodules # CONFIG_ISDN_DIVERSION=m # # ISDN4Linux hardware drivers # # # Passive cards # # CONFIG_ISDN_DRV_HISAX is not set CONFIG_ISDN_CAPI=m # CONFIG_CAPI_TRACE is not set CONFIG_ISDN_CAPI_CAPI20=m CONFIG_ISDN_CAPI_MIDDLEWARE=y CONFIG_ISDN_CAPI_CAPIDRV=m # CONFIG_ISDN_CAPI_CAPIDRV_VERBOSE is not set # # CAPI hardware drivers # CONFIG_CAPI_AVM=y CONFIG_ISDN_DRV_AVMB1_B1PCI=m CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y CONFIG_ISDN_DRV_AVMB1_T1PCI=m CONFIG_ISDN_DRV_AVMB1_C4=m # CONFIG_CAPI_EICON is not set CONFIG_ISDN_DRV_GIGASET=m CONFIG_GIGASET_CAPI=y CONFIG_GIGASET_BASE=m CONFIG_GIGASET_M105=m CONFIG_GIGASET_M101=m # CONFIG_GIGASET_DEBUG is not set CONFIG_HYSDN=m CONFIG_HYSDN_CAPI=y CONFIG_MISDN=m CONFIG_MISDN_DSP=m CONFIG_MISDN_L1OIP=m # # mISDN hardware drivers # CONFIG_MISDN_HFCPCI=m CONFIG_MISDN_HFCMULTI=m CONFIG_MISDN_HFCUSB=m CONFIG_MISDN_AVMFRITZ=m CONFIG_MISDN_SPEEDFAX=m CONFIG_MISDN_INFINEON=m CONFIG_MISDN_W6692=m CONFIG_MISDN_NETJET=m CONFIG_MISDN_IPAC=m CONFIG_MISDN_ISAR=m CONFIG_ISDN_HDLC=m # CONFIG_NVM is not set # # Input device support # CONFIG_INPUT=y CONFIG_INPUT_LEDS=y CONFIG_INPUT_FF_MEMLESS=y CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_SPARSEKMAP=m # CONFIG_INPUT_MATRIXKMAP is not set # # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y # CONFIG_INPUT_MOUSEDEV_PSAUX is not set CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_ADP5588 is not set # CONFIG_KEYBOARD_ADP5589 is not set CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_QT1070 is not set # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_DLINK_DIR685 is not set # CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_GPIO is not set # CONFIG_KEYBOARD_GPIO_POLLED is not set # CONFIG_KEYBOARD_TCA6416 is not set # CONFIG_KEYBOARD_TCA8418 is not set # CONFIG_KEYBOARD_MATRIX is not set # CONFIG_KEYBOARD_LM8323 is not set # CONFIG_KEYBOARD_LM8333 is not set # CONFIG_KEYBOARD_MAX7359 is not set # CONFIG_KEYBOARD_MCS is not set # CONFIG_KEYBOARD_MPR121 is not set # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_OPENCORES is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_STOWAWAY is not set # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_TM2_TOUCHKEY is not set # CONFIG_KEYBOARD_XTKBD is not set CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=y CONFIG_MOUSE_PS2_ALPS=y CONFIG_MOUSE_PS2_BYD=y CONFIG_MOUSE_PS2_LOGIPS2PP=y CONFIG_MOUSE_PS2_SYNAPTICS=y CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y CONFIG_MOUSE_PS2_CYPRESS=y CONFIG_MOUSE_PS2_LIFEBOOK=y CONFIG_MOUSE_PS2_TRACKPOINT=y CONFIG_MOUSE_PS2_ELANTECH=y CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y CONFIG_MOUSE_PS2_SENTELIC=y # CONFIG_MOUSE_PS2_TOUCHKIT is not set CONFIG_MOUSE_PS2_FOCALTECH=y # CONFIG_MOUSE_PS2_VMMOUSE is not set CONFIG_MOUSE_PS2_SMBUS=y CONFIG_MOUSE_SERIAL=m CONFIG_MOUSE_APPLETOUCH=m CONFIG_MOUSE_BCM5974=m CONFIG_MOUSE_CYAPA=m # CONFIG_MOUSE_ELAN_I2C is not set CONFIG_MOUSE_VSXXXAA=m # CONFIG_MOUSE_GPIO is not set CONFIG_MOUSE_SYNAPTICS_I2C=m CONFIG_MOUSE_SYNAPTICS_USB=m # CONFIG_INPUT_JOYSTICK is not set CONFIG_INPUT_TABLET=y CONFIG_TABLET_USB_ACECAD=m CONFIG_TABLET_USB_AIPTEK=m CONFIG_TABLET_USB_GTCO=m # CONFIG_TABLET_USB_HANWANG is not set CONFIG_TABLET_USB_KBTAB=m # CONFIG_TABLET_USB_PEGASUS is not set # CONFIG_TABLET_SERIAL_WACOM4 is not set CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_PROPERTIES=y # CONFIG_TOUCHSCREEN_ADS7846 is not set # CONFIG_TOUCHSCREEN_AD7877 is not set # CONFIG_TOUCHSCREEN_AD7879 is not set # CONFIG_TOUCHSCREEN_ATMEL_MXT is not set # CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set # CONFIG_TOUCHSCREEN_BU21013 is not set # CONFIG_TOUCHSCREEN_BU21029 is not set # CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set # CONFIG_TOUCHSCREEN_CY8CTMG110 is not set # CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set # CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set # CONFIG_TOUCHSCREEN_DYNAPRO is not set # CONFIG_TOUCHSCREEN_HAMPSHIRE is not set # CONFIG_TOUCHSCREEN_EETI is not set # CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set # CONFIG_TOUCHSCREEN_EXC3000 is not set # CONFIG_TOUCHSCREEN_FUJITSU is not set # CONFIG_TOUCHSCREEN_GOODIX is not set # CONFIG_TOUCHSCREEN_HIDEEP is not set # CONFIG_TOUCHSCREEN_ILI210X is not set # CONFIG_TOUCHSCREEN_S6SY761 is not set # CONFIG_TOUCHSCREEN_GUNZE is not set # CONFIG_TOUCHSCREEN_EKTF2127 is not set # CONFIG_TOUCHSCREEN_ELAN is not set # CONFIG_TOUCHSCREEN_ELO is not set CONFIG_TOUCHSCREEN_WACOM_W8001=m CONFIG_TOUCHSCREEN_WACOM_I2C=m # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MMS114 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_MK712 is not set # CONFIG_TOUCHSCREEN_PENMOUNT is not set # CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set # CONFIG_TOUCHSCREEN_TOUCHWIN is not set # CONFIG_TOUCHSCREEN_PIXCIR is not set # CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set # CONFIG_TOUCHSCREEN_WM97XX is not set # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set # CONFIG_TOUCHSCREEN_TSC_SERIO is not set # CONFIG_TOUCHSCREEN_TSC2004 is not set # CONFIG_TOUCHSCREEN_TSC2005 is not set # CONFIG_TOUCHSCREEN_TSC2007 is not set # CONFIG_TOUCHSCREEN_RM_TS is not set # CONFIG_TOUCHSCREEN_SILEAD is not set # CONFIG_TOUCHSCREEN_SIS_I2C is not set # CONFIG_TOUCHSCREEN_ST1232 is not set # CONFIG_TOUCHSCREEN_STMFTS is not set # CONFIG_TOUCHSCREEN_SUR40 is not set # CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set # CONFIG_TOUCHSCREEN_SX8654 is not set # CONFIG_TOUCHSCREEN_TPS6507X is not set # CONFIG_TOUCHSCREEN_ZET6223 is not set # CONFIG_TOUCHSCREEN_ZFORCE is not set # CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set CONFIG_INPUT_MISC=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_E3X0_BUTTON is not set CONFIG_INPUT_PCSPKR=m # CONFIG_INPUT_MMA8450 is not set CONFIG_INPUT_APANEL=m # CONFIG_INPUT_GP2A is not set # CONFIG_INPUT_GPIO_BEEPER is not set # CONFIG_INPUT_GPIO_DECODER is not set CONFIG_INPUT_ATLAS_BTNS=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m # CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m CONFIG_INPUT_UINPUT=m # CONFIG_INPUT_PCF8574 is not set # CONFIG_INPUT_PWM_BEEPER is not set # CONFIG_INPUT_PWM_VIBRA is not set # CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set # CONFIG_INPUT_ADXL34X is not set # CONFIG_INPUT_IMS_PCU is not set # CONFIG_INPUT_CMA3000 is not set CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m # CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set # CONFIG_INPUT_DRV260X_HAPTICS is not set # CONFIG_INPUT_DRV2665_HAPTICS is not set # CONFIG_INPUT_DRV2667_HAPTICS is not set # CONFIG_RMI4_CORE is not set # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PARKBD is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y CONFIG_SERIO_RAW=m CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_PS2MULT is not set CONFIG_SERIO_ARC_PS2=m CONFIG_HYPERV_KEYBOARD=m # CONFIG_SERIO_GPIO_PS2 is not set # CONFIG_USERIO is not set # CONFIG_GAMEPORT is not set # # Character devices # CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y # CONFIG_LEGACY_PTYS is not set CONFIG_SERIAL_NONSTANDARD=y # CONFIG_ROCKETPORT is not set CONFIG_CYCLADES=m # CONFIG_CYZ_INTR is not set CONFIG_MOXA_INTELLIO=m CONFIG_MOXA_SMARTIO=m CONFIG_SYNCLINK=m CONFIG_SYNCLINKMP=m CONFIG_SYNCLINK_GT=m CONFIG_NOZOMI=m # CONFIG_ISI is not set CONFIG_N_HDLC=m CONFIG_N_GSM=m # CONFIG_TRACE_SINK is not set CONFIG_DEVMEM=y # CONFIG_DEVKMEM is not set # # Serial drivers # CONFIG_SERIAL_EARLYCON=y CONFIG_SERIAL_8250=y # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set CONFIG_SERIAL_8250_PNP=y # CONFIG_SERIAL_8250_FINTEK is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_EXAR=y CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y CONFIG_SERIAL_8250_DW=y # CONFIG_SERIAL_8250_RT288X is not set CONFIG_SERIAL_8250_LPSS=y CONFIG_SERIAL_8250_MID=y # CONFIG_SERIAL_8250_MOXA is not set # # Non-8250 serial port support # # CONFIG_SERIAL_MAX3100 is not set # CONFIG_SERIAL_MAX310X is not set # CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_JSM=m # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SC16IS7XX is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_IFX6X60 is not set CONFIG_SERIAL_ARC=m CONFIG_SERIAL_ARC_NR_PORTS=1 # CONFIG_SERIAL_RP2 is not set # CONFIG_SERIAL_FSL_LPUART is not set # CONFIG_SERIAL_DEV_BUS is not set # CONFIG_TTY_PRINTK is not set CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m CONFIG_HVC_DRIVER=y CONFIG_HVC_IRQ=y CONFIG_HVC_XEN=y CONFIG_HVC_XEN_FRONTEND=y CONFIG_VIRTIO_CONSOLE=y CONFIG_IPMI_HANDLER=m CONFIG_IPMI_DMI_DECODE=y # CONFIG_IPMI_PANIC_EVENT is not set CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m # CONFIG_IPMI_SSIF is not set CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_VIA=m CONFIG_HW_RANDOM_VIRTIO=y CONFIG_NVRAM=y # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_MWAVE is not set CONFIG_RAW_DRIVER=y CONFIG_MAX_RAW_DEVS=8192 CONFIG_HPET=y CONFIG_HPET_MMAP=y # CONFIG_HPET_MMAP_DEFAULT is not set CONFIG_HANGCHECK_TIMER=m CONFIG_UV_MMTIMER=m CONFIG_TCG_TPM=y CONFIG_HW_RANDOM_TPM=y CONFIG_TCG_TIS_CORE=y CONFIG_TCG_TIS=y # CONFIG_TCG_TIS_SPI is not set # CONFIG_TCG_TIS_I2C_ATMEL is not set # CONFIG_TCG_TIS_I2C_INFINEON is not set # CONFIG_TCG_TIS_I2C_NUVOTON is not set CONFIG_TCG_NSC=m CONFIG_TCG_ATMEL=m CONFIG_TCG_INFINEON=m # CONFIG_TCG_XEN is not set CONFIG_TCG_CRB=y # CONFIG_TCG_VTPM_PROXY is not set # CONFIG_TCG_TIS_ST33ZP24_I2C is not set # CONFIG_TCG_TIS_ST33ZP24_SPI is not set CONFIG_TELCLOCK=m CONFIG_DEVPORT=y # CONFIG_XILLYBUS is not set # CONFIG_RANDOM_TRUST_CPU is not set # # I2C support # CONFIG_I2C=y CONFIG_ACPI_I2C_OPREGION=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m CONFIG_I2C_MUX=m # # Multiplexer I2C Chip support # # CONFIG_I2C_MUX_GPIO is not set # CONFIG_I2C_MUX_LTC4306 is not set # CONFIG_I2C_MUX_PCA9541 is not set # CONFIG_I2C_MUX_PCA954x is not set # CONFIG_I2C_MUX_REG is not set # CONFIG_I2C_MUX_MLXCPLD is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=y CONFIG_I2C_ALGOBIT=y CONFIG_I2C_ALGOPCA=m # # I2C Hardware Bus support # # # PC SMBus host controller drivers # # CONFIG_I2C_ALI1535 is not set # CONFIG_I2C_ALI1563 is not set # CONFIG_I2C_ALI15X3 is not set CONFIG_I2C_AMD756=m CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m CONFIG_I2C_I801=y CONFIG_I2C_ISCH=m CONFIG_I2C_ISMT=m CONFIG_I2C_PIIX4=m CONFIG_I2C_NFORCE2=m CONFIG_I2C_NFORCE2_S4985=m # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set CONFIG_I2C_SIS96X=m CONFIG_I2C_VIA=m CONFIG_I2C_VIAPRO=m # # ACPI drivers # CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_DESIGNWARE_CORE=m CONFIG_I2C_DESIGNWARE_PLATFORM=m # CONFIG_I2C_DESIGNWARE_SLAVE is not set CONFIG_I2C_DESIGNWARE_PCI=m # CONFIG_I2C_DESIGNWARE_BAYTRAIL is not set # CONFIG_I2C_EMEV2 is not set # CONFIG_I2C_GPIO is not set # CONFIG_I2C_OCORES is not set CONFIG_I2C_PCA_PLATFORM=m CONFIG_I2C_SIMTEC=m # CONFIG_I2C_XILINX is not set # # External I2C/SMBus adapter drivers # CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m # CONFIG_I2C_ROBOTFUZZ_OSIF is not set # CONFIG_I2C_TAOS_EVM is not set CONFIG_I2C_TINY_USB=m CONFIG_I2C_VIPERBOARD=m # # Other I2C/SMBus bus drivers # # CONFIG_I2C_MLXCPLD is not set CONFIG_I2C_STUB=m # CONFIG_I2C_SLAVE is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set CONFIG_SPI=y # CONFIG_SPI_DEBUG is not set CONFIG_SPI_MASTER=y # CONFIG_SPI_MEM is not set # # SPI Master Controller Drivers # # CONFIG_SPI_ALTERA is not set # CONFIG_SPI_AXI_SPI_ENGINE is not set # CONFIG_SPI_BITBANG is not set # CONFIG_SPI_BUTTERFLY is not set # CONFIG_SPI_CADENCE is not set CONFIG_SPI_DESIGNWARE=m # CONFIG_SPI_DW_PCI is not set # CONFIG_SPI_DW_MMIO is not set # CONFIG_SPI_GPIO is not set # CONFIG_SPI_LM70_LLP is not set # CONFIG_SPI_OC_TINY is not set CONFIG_SPI_PXA2XX=m CONFIG_SPI_PXA2XX_PCI=m # CONFIG_SPI_ROCKCHIP is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_XCOMM is not set # CONFIG_SPI_XILINX is not set # CONFIG_SPI_ZYNQMP_GQSPI is not set # # SPI Protocol Masters # # CONFIG_SPI_SPIDEV is not set # CONFIG_SPI_LOOPBACK_TEST is not set # CONFIG_SPI_TLE62X0 is not set # CONFIG_SPI_SLAVE is not set # CONFIG_SPMI is not set # CONFIG_HSI is not set CONFIG_PPS=y # CONFIG_PPS_DEBUG is not set # # PPS clients support # # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_PARPORT=m CONFIG_PPS_CLIENT_GPIO=m # # PPS generators support # # # PTP clock support # CONFIG_PTP_1588_CLOCK=y CONFIG_DP83640_PHY=m CONFIG_PTP_1588_CLOCK_KVM=y CONFIG_PINCTRL=y CONFIG_PINMUX=y CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set # CONFIG_PINCTRL_AMD is not set # CONFIG_PINCTRL_MCP23S08 is not set # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL_BAYTRAIL=y # CONFIG_PINCTRL_CHERRYVIEW is not set # CONFIG_PINCTRL_BROXTON is not set # CONFIG_PINCTRL_CANNONLAKE is not set # CONFIG_PINCTRL_CEDARFORK is not set # CONFIG_PINCTRL_DENVERTON is not set # CONFIG_PINCTRL_GEMINILAKE is not set # CONFIG_PINCTRL_ICELAKE is not set # CONFIG_PINCTRL_LEWISBURG is not set # CONFIG_PINCTRL_SUNRISEPOINT is not set CONFIG_GPIOLIB=y CONFIG_GPIOLIB_FASTPATH_LIMIT=512 CONFIG_GPIO_ACPI=y CONFIG_GPIOLIB_IRQCHIP=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y # # Memory mapped GPIO drivers # # CONFIG_GPIO_AMDPT is not set # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_EXAR is not set # CONFIG_GPIO_GENERIC_PLATFORM is not set # CONFIG_GPIO_ICH is not set CONFIG_GPIO_LYNXPOINT=m # CONFIG_GPIO_MB86S7X is not set CONFIG_GPIO_MOCKUP=y # CONFIG_GPIO_VX855 is not set # # Port-mapped I/O GPIO drivers # # CONFIG_GPIO_F7188X is not set # CONFIG_GPIO_IT87 is not set # CONFIG_GPIO_SCH is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_WINBOND is not set # CONFIG_GPIO_WS16C48 is not set # # I2C GPIO expanders # # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_MAX7300 is not set # CONFIG_GPIO_MAX732X is not set # CONFIG_GPIO_PCA953X is not set # CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_TPIC2810 is not set # # MFD GPIO expanders # # # PCI GPIO expanders # # CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_ML_IOH is not set # CONFIG_GPIO_PCI_IDIO_16 is not set # CONFIG_GPIO_PCIE_IDIO_24 is not set # CONFIG_GPIO_RDC321X is not set # # SPI GPIO expanders # # CONFIG_GPIO_MAX3191X is not set # CONFIG_GPIO_MAX7301 is not set # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_PISOSR is not set # CONFIG_GPIO_XRA1403 is not set # # USB GPIO expanders # # CONFIG_GPIO_VIPERBOARD is not set # CONFIG_W1 is not set # CONFIG_POWER_AVS is not set CONFIG_POWER_RESET=y # CONFIG_POWER_RESET_RESTART is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set # CONFIG_TEST_POWER is not set # CONFIG_CHARGER_ADP5061 is not set # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_SBS is not set # CONFIG_CHARGER_SBS is not set # CONFIG_MANAGER_SBS is not set # CONFIG_BATTERY_BQ27XXX is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set # CONFIG_CHARGER_ISP1704 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_BQ2415X is not set # CONFIG_CHARGER_BQ24190 is not set # CONFIG_CHARGER_BQ24257 is not set # CONFIG_CHARGER_BQ24735 is not set # CONFIG_CHARGER_BQ25890 is not set CONFIG_CHARGER_SMB347=m # CONFIG_BATTERY_GAUGE_LTC2941 is not set # CONFIG_CHARGER_RT9455 is not set CONFIG_HWMON=y CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set # # Native drivers # CONFIG_SENSORS_ABITUGURU=m CONFIG_SENSORS_ABITUGURU3=m # CONFIG_SENSORS_AD7314 is not set CONFIG_SENSORS_AD7414=m CONFIG_SENSORS_AD7418=m CONFIG_SENSORS_ADM1021=m CONFIG_SENSORS_ADM1025=m CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m CONFIG_SENSORS_ADT7X10=m # CONFIG_SENSORS_ADT7310 is not set CONFIG_SENSORS_ADT7410=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m CONFIG_SENSORS_ADT7475=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_K8TEMP=m CONFIG_SENSORS_K10TEMP=m CONFIG_SENSORS_FAM15H_POWER=m CONFIG_SENSORS_APPLESMC=m CONFIG_SENSORS_ASB100=m # CONFIG_SENSORS_ASPEED is not set CONFIG_SENSORS_ATXP1=m CONFIG_SENSORS_DS620=m CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_DELL_SMM=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_F71805F=m CONFIG_SENSORS_F71882FG=m CONFIG_SENSORS_F75375S=m CONFIG_SENSORS_FSCHMD=m # CONFIG_SENSORS_FTSTEUTATES is not set CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_G760A=m # CONFIG_SENSORS_G762 is not set # CONFIG_SENSORS_HIH6130 is not set CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m # CONFIG_SENSORS_I5500 is not set CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IT87=m # CONFIG_SENSORS_JC42 is not set # CONFIG_SENSORS_POWR1220 is not set CONFIG_SENSORS_LINEAGE=m # CONFIG_SENSORS_LTC2945 is not set # CONFIG_SENSORS_LTC2990 is not set CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m # CONFIG_SENSORS_LTC4222 is not set CONFIG_SENSORS_LTC4245=m # CONFIG_SENSORS_LTC4260 is not set CONFIG_SENSORS_LTC4261=m # CONFIG_SENSORS_MAX1111 is not set CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m CONFIG_SENSORS_MAX197=m # CONFIG_SENSORS_MAX31722 is not set # CONFIG_SENSORS_MAX6621 is not set CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m CONFIG_SENSORS_MAX6697=m # CONFIG_SENSORS_MAX31790 is not set CONFIG_SENSORS_MCP3021=m # CONFIG_SENSORS_TC654 is not set # CONFIG_SENSORS_ADCXX is not set CONFIG_SENSORS_LM63=m # CONFIG_SENSORS_LM70 is not set CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m CONFIG_SENSORS_LM80=m CONFIG_SENSORS_LM83=m CONFIG_SENSORS_LM85=m CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m CONFIG_SENSORS_LM95234=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_LM95245=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_NTC_THERMISTOR=m # CONFIG_SENSORS_NCT6683 is not set CONFIG_SENSORS_NCT6775=m # CONFIG_SENSORS_NCT7802 is not set # CONFIG_SENSORS_NCT7904 is not set # CONFIG_SENSORS_NPCM7XX is not set CONFIG_SENSORS_PCF8591=m CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m # CONFIG_SENSORS_IBM_CFFPS is not set # CONFIG_SENSORS_IR35221 is not set CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LTC2978=m # CONFIG_SENSORS_LTC3815 is not set CONFIG_SENSORS_MAX16064=m # CONFIG_SENSORS_MAX20751 is not set # CONFIG_SENSORS_MAX31785 is not set CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m # CONFIG_SENSORS_TPS40422 is not set # CONFIG_SENSORS_TPS53679 is not set CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m CONFIG_SENSORS_ZL6100=m # CONFIG_SENSORS_SHT15 is not set CONFIG_SENSORS_SHT21=m # CONFIG_SENSORS_SHT3x is not set # CONFIG_SENSORS_SHTC1 is not set CONFIG_SENSORS_SIS5595=m CONFIG_SENSORS_DME1737=m CONFIG_SENSORS_EMC1403=m # CONFIG_SENSORS_EMC2103 is not set CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m CONFIG_SENSORS_SCH56XX_COMMON=m CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m # CONFIG_SENSORS_STTS751 is not set # CONFIG_SENSORS_SMM665 is not set # CONFIG_SENSORS_ADC128D818 is not set CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m # CONFIG_SENSORS_ADS7871 is not set CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_INA209=m CONFIG_SENSORS_INA2XX=m # CONFIG_SENSORS_INA3221 is not set # CONFIG_SENSORS_TC74 is not set CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m # CONFIG_SENSORS_TMP103 is not set # CONFIG_SENSORS_TMP108 is not set CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_VIA_CPUTEMP=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m # CONFIG_SENSORS_W83773G is not set CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m CONFIG_SENSORS_W83793=m CONFIG_SENSORS_W83795=m # CONFIG_SENSORS_W83795_FANCTRL is not set CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m # CONFIG_SENSORS_XGENE is not set # # ACPI drivers # CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=y # CONFIG_THERMAL_STATISTICS is not set CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_HWMON=y CONFIG_THERMAL_WRITABLE_TRIPS=y CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y # CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set # CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set # CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set CONFIG_THERMAL_GOV_FAIR_SHARE=y CONFIG_THERMAL_GOV_STEP_WISE=y CONFIG_THERMAL_GOV_BANG_BANG=y CONFIG_THERMAL_GOV_USER_SPACE=y # CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set # CONFIG_CLOCK_THERMAL is not set # CONFIG_DEVFREQ_THERMAL is not set # CONFIG_THERMAL_EMULATION is not set CONFIG_INTEL_POWERCLAMP=m CONFIG_X86_PKG_TEMP_THERMAL=m # CONFIG_INTEL_SOC_DTS_THERMAL is not set # # ACPI INT340X thermal drivers # # CONFIG_INT340X_THERMAL is not set CONFIG_INTEL_PCH_THERMAL=m CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y # CONFIG_WATCHDOG_SYSFS is not set # # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m CONFIG_WDAT_WDT=m # CONFIG_XILINX_WATCHDOG is not set # CONFIG_ZIIRAVE_WATCHDOG is not set # CONFIG_CADENCE_WATCHDOG is not set # CONFIG_DW_WATCHDOG is not set # CONFIG_MAX63XX_WATCHDOG is not set # CONFIG_ACQUIRE_WDT is not set # CONFIG_ADVANTECH_WDT is not set CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m # CONFIG_EBC_C384_WDT is not set CONFIG_F71808E_WDT=m CONFIG_SP5100_TCO=m CONFIG_SBC_FITPC2_WATCHDOG=m # CONFIG_EUROTECH_WDT is not set CONFIG_IB700_WDT=m CONFIG_IBMASR=m # CONFIG_WAFER_WDT is not set CONFIG_I6300ESB_WDT=y CONFIG_IE6XX_WDT=m CONFIG_ITCO_WDT=y CONFIG_ITCO_VENDOR_SUPPORT=y CONFIG_IT8712F_WDT=m CONFIG_IT87_WDT=m CONFIG_HP_WATCHDOG=m CONFIG_HPWDT_NMI_DECODING=y # CONFIG_SC1200_WDT is not set # CONFIG_PC87413_WDT is not set CONFIG_NV_TCO=m # CONFIG_60XX_WDT is not set # CONFIG_CPU5_WDT is not set CONFIG_SMSC_SCH311X_WDT=m # CONFIG_SMSC37B787_WDT is not set CONFIG_VIA_WDT=m CONFIG_W83627HF_WDT=m CONFIG_W83877F_WDT=m CONFIG_W83977F_WDT=m CONFIG_MACHZ_WDT=m # CONFIG_SBC_EPX_C3_WATCHDOG is not set # CONFIG_INTEL_MEI_WDT is not set # CONFIG_NI903X_WDT is not set # CONFIG_NIC7018_WDT is not set # CONFIG_MEN_A21_WDT is not set CONFIG_XEN_WDT=m # # PCI-based Watchdog Cards # CONFIG_PCIPCWATCHDOG=m CONFIG_WDTPCI=m # # USB-based Watchdog Cards # CONFIG_USBPCWATCHDOG=m # # Watchdog Pretimeout Governors # # CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set CONFIG_SSB_POSSIBLE=y CONFIG_SSB=m CONFIG_SSB_SPROM=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y # CONFIG_SSB_DRIVER_GPIO is not set CONFIG_BCMA_POSSIBLE=y CONFIG_BCMA=m CONFIG_BCMA_HOST_PCI_POSSIBLE=y CONFIG_BCMA_HOST_PCI=y # CONFIG_BCMA_HOST_SOC is not set CONFIG_BCMA_DRIVER_PCI=y CONFIG_BCMA_DRIVER_GMAC_CMN=y # CONFIG_BCMA_DRIVER_GPIO is not set # CONFIG_BCMA_DEBUG is not set # # Multifunction device drivers # CONFIG_MFD_CORE=y # CONFIG_MFD_AS3711 is not set # CONFIG_PMIC_ADP5520 is not set # CONFIG_MFD_AAT2870_CORE is not set # CONFIG_MFD_AT91_USART is not set # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_CROS_EC is not set # CONFIG_MFD_MADERA is not set # CONFIG_PMIC_DA903X is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9055 is not set # CONFIG_MFD_DA9062 is not set # CONFIG_MFD_DA9063 is not set # CONFIG_MFD_DA9150 is not set # CONFIG_MFD_DLN2 is not set # CONFIG_MFD_MC13XXX_SPI is not set # CONFIG_MFD_MC13XXX_I2C is not set # CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_I2CPLD is not set # CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set CONFIG_LPC_ICH=y CONFIG_LPC_SCH=m # CONFIG_INTEL_SOC_PMIC is not set # CONFIG_INTEL_SOC_PMIC_CHTWC is not set # CONFIG_INTEL_SOC_PMIC_CHTDC_TI is not set # CONFIG_MFD_INTEL_LPSS_ACPI is not set # CONFIG_MFD_INTEL_LPSS_PCI is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_88PM800 is not set # CONFIG_MFD_88PM805 is not set # CONFIG_MFD_88PM860X is not set # CONFIG_MFD_MAX14577 is not set # CONFIG_MFD_MAX77693 is not set # CONFIG_MFD_MAX77843 is not set # CONFIG_MFD_MAX8907 is not set # CONFIG_MFD_MAX8925 is not set # CONFIG_MFD_MAX8997 is not set # CONFIG_MFD_MAX8998 is not set # CONFIG_MFD_MT6397 is not set # CONFIG_MFD_MENF21BMC is not set # CONFIG_EZX_PCAP is not set CONFIG_MFD_VIPERBOARD=m # CONFIG_MFD_RETU is not set # CONFIG_MFD_PCF50633 is not set # CONFIG_UCB1400_CORE is not set # CONFIG_MFD_RDC321X is not set # CONFIG_MFD_RT5033 is not set # CONFIG_MFD_RC5T583 is not set # CONFIG_MFD_SEC_CORE is not set # CONFIG_MFD_SI476X_CORE is not set CONFIG_MFD_SM501=m # CONFIG_MFD_SM501_GPIO is not set # CONFIG_MFD_SKY81452 is not set # CONFIG_MFD_SMSC is not set # CONFIG_ABX500_CORE is not set # CONFIG_MFD_SYSCON is not set # CONFIG_MFD_TI_AM335X_TSCADC is not set # CONFIG_MFD_LP3943 is not set # CONFIG_MFD_LP8788 is not set # CONFIG_MFD_TI_LMU is not set # CONFIG_MFD_PALMAS is not set # CONFIG_TPS6105X is not set # CONFIG_TPS65010 is not set # CONFIG_TPS6507X is not set # CONFIG_MFD_TPS65086 is not set # CONFIG_MFD_TPS65090 is not set # CONFIG_MFD_TPS68470 is not set # CONFIG_MFD_TI_LP873X is not set # CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TPS65910 is not set # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912_SPI is not set # CONFIG_MFD_TPS80031 is not set # CONFIG_TWL4030_CORE is not set # CONFIG_TWL6040_CORE is not set # CONFIG_MFD_WL1273_CORE is not set # CONFIG_MFD_LM3533 is not set CONFIG_MFD_VX855=m # CONFIG_MFD_ARIZONA_I2C is not set # CONFIG_MFD_ARIZONA_SPI is not set # CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM831X_I2C is not set # CONFIG_MFD_WM831X_SPI is not set # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set # CONFIG_REGULATOR is not set CONFIG_RC_CORE=m CONFIG_RC_MAP=m # CONFIG_LIRC is not set CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m CONFIG_IR_RC6_DECODER=m CONFIG_IR_JVC_DECODER=m CONFIG_IR_SONY_DECODER=m CONFIG_IR_SANYO_DECODER=m CONFIG_IR_SHARP_DECODER=m CONFIG_IR_MCE_KBD_DECODER=m CONFIG_IR_XMP_DECODER=m # CONFIG_IR_IMON_DECODER is not set CONFIG_RC_DEVICES=y CONFIG_RC_ATI_REMOTE=m CONFIG_IR_ENE=m CONFIG_IR_IMON=m # CONFIG_IR_IMON_RAW is not set CONFIG_IR_MCEUSB=m CONFIG_IR_ITE_CIR=m CONFIG_IR_FINTEK=m CONFIG_IR_NUVOTON=m CONFIG_IR_REDRAT3=m CONFIG_IR_STREAMZAP=m CONFIG_IR_WINBOND_CIR=m # CONFIG_IR_IGORPLUGUSB is not set CONFIG_IR_IGUANA=m CONFIG_IR_TTUSBIR=m CONFIG_RC_LOOPBACK=m # CONFIG_IR_SERIAL is not set # CONFIG_IR_SIR is not set CONFIG_MEDIA_SUPPORT=m # # Multimedia core support # CONFIG_MEDIA_CAMERA_SUPPORT=y CONFIG_MEDIA_ANALOG_TV_SUPPORT=y CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_MEDIA_RADIO_SUPPORT=y # CONFIG_MEDIA_SDR_SUPPORT is not set # CONFIG_MEDIA_CEC_SUPPORT is not set # CONFIG_MEDIA_CONTROLLER is not set CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2=m # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set CONFIG_VIDEO_TUNER=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m CONFIG_DVB_CORE=m # CONFIG_DVB_MMAP is not set CONFIG_DVB_NET=y CONFIG_TTPCI_EEPROM=m CONFIG_DVB_MAX_ADAPTERS=8 CONFIG_DVB_DYNAMIC_MINORS=y # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set # CONFIG_DVB_ULE_DEBUG is not set # # Media drivers # CONFIG_MEDIA_USB_SUPPORT=y # # Webcam devices # CONFIG_USB_VIDEO_CLASS=m CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y CONFIG_USB_GSPCA=m CONFIG_USB_M5602=m CONFIG_USB_STV06XX=m CONFIG_USB_GL860=m CONFIG_USB_GSPCA_BENQ=m CONFIG_USB_GSPCA_CONEX=m CONFIG_USB_GSPCA_CPIA1=m # CONFIG_USB_GSPCA_DTCS033 is not set CONFIG_USB_GSPCA_ETOMS=m CONFIG_USB_GSPCA_FINEPIX=m CONFIG_USB_GSPCA_JEILINJ=m CONFIG_USB_GSPCA_JL2005BCD=m # CONFIG_USB_GSPCA_KINECT is not set CONFIG_USB_GSPCA_KONICA=m CONFIG_USB_GSPCA_MARS=m CONFIG_USB_GSPCA_MR97310A=m CONFIG_USB_GSPCA_NW80X=m CONFIG_USB_GSPCA_OV519=m CONFIG_USB_GSPCA_OV534=m CONFIG_USB_GSPCA_OV534_9=m CONFIG_USB_GSPCA_PAC207=m CONFIG_USB_GSPCA_PAC7302=m CONFIG_USB_GSPCA_PAC7311=m CONFIG_USB_GSPCA_SE401=m CONFIG_USB_GSPCA_SN9C2028=m CONFIG_USB_GSPCA_SN9C20X=m CONFIG_USB_GSPCA_SONIXB=m CONFIG_USB_GSPCA_SONIXJ=m CONFIG_USB_GSPCA_SPCA500=m CONFIG_USB_GSPCA_SPCA501=m CONFIG_USB_GSPCA_SPCA505=m CONFIG_USB_GSPCA_SPCA506=m CONFIG_USB_GSPCA_SPCA508=m CONFIG_USB_GSPCA_SPCA561=m CONFIG_USB_GSPCA_SPCA1528=m CONFIG_USB_GSPCA_SQ905=m CONFIG_USB_GSPCA_SQ905C=m CONFIG_USB_GSPCA_SQ930X=m CONFIG_USB_GSPCA_STK014=m # CONFIG_USB_GSPCA_STK1135 is not set CONFIG_USB_GSPCA_STV0680=m CONFIG_USB_GSPCA_SUNPLUS=m CONFIG_USB_GSPCA_T613=m CONFIG_USB_GSPCA_TOPRO=m # CONFIG_USB_GSPCA_TOUPTEK is not set CONFIG_USB_GSPCA_TV8532=m CONFIG_USB_GSPCA_VC032X=m CONFIG_USB_GSPCA_VICAM=m CONFIG_USB_GSPCA_XIRLINK_CIT=m CONFIG_USB_GSPCA_ZC3XX=m CONFIG_USB_PWC=m # CONFIG_USB_PWC_DEBUG is not set CONFIG_USB_PWC_INPUT_EVDEV=y # CONFIG_VIDEO_CPIA2 is not set CONFIG_USB_ZR364XX=m CONFIG_USB_STKWEBCAM=m CONFIG_USB_S2255=m # CONFIG_VIDEO_USBTV is not set # # Analog TV USB devices # CONFIG_VIDEO_PVRUSB2=m CONFIG_VIDEO_PVRUSB2_SYSFS=y CONFIG_VIDEO_PVRUSB2_DVB=y # CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set CONFIG_VIDEO_HDPVR=m CONFIG_VIDEO_USBVISION=m # CONFIG_VIDEO_STK1160_COMMON is not set # CONFIG_VIDEO_GO7007 is not set # # Analog/digital TV USB devices # CONFIG_VIDEO_AU0828=m CONFIG_VIDEO_AU0828_V4L2=y # CONFIG_VIDEO_AU0828_RC is not set CONFIG_VIDEO_CX231XX=m CONFIG_VIDEO_CX231XX_RC=y CONFIG_VIDEO_CX231XX_ALSA=m CONFIG_VIDEO_CX231XX_DVB=m CONFIG_VIDEO_TM6000=m CONFIG_VIDEO_TM6000_ALSA=m CONFIG_VIDEO_TM6000_DVB=m # # Digital TV USB devices # CONFIG_DVB_USB=m # CONFIG_DVB_USB_DEBUG is not set CONFIG_DVB_USB_DIB3000MC=m CONFIG_DVB_USB_A800=m CONFIG_DVB_USB_DIBUSB_MB=m # CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set CONFIG_DVB_USB_DIBUSB_MC=m CONFIG_DVB_USB_DIB0700=m CONFIG_DVB_USB_UMT_010=m CONFIG_DVB_USB_CXUSB=m CONFIG_DVB_USB_M920X=m CONFIG_DVB_USB_DIGITV=m CONFIG_DVB_USB_VP7045=m CONFIG_DVB_USB_VP702X=m CONFIG_DVB_USB_GP8PSK=m CONFIG_DVB_USB_NOVA_T_USB2=m CONFIG_DVB_USB_TTUSB2=m CONFIG_DVB_USB_DTT200U=m CONFIG_DVB_USB_OPERA1=m CONFIG_DVB_USB_AF9005=m CONFIG_DVB_USB_AF9005_REMOTE=m CONFIG_DVB_USB_PCTV452E=m CONFIG_DVB_USB_DW2102=m CONFIG_DVB_USB_CINERGY_T2=m CONFIG_DVB_USB_DTV5100=m CONFIG_DVB_USB_AZ6027=m CONFIG_DVB_USB_TECHNISAT_USB2=m CONFIG_DVB_USB_V2=m CONFIG_DVB_USB_AF9015=m CONFIG_DVB_USB_AF9035=m CONFIG_DVB_USB_ANYSEE=m CONFIG_DVB_USB_AU6610=m CONFIG_DVB_USB_AZ6007=m CONFIG_DVB_USB_CE6230=m CONFIG_DVB_USB_EC168=m CONFIG_DVB_USB_GL861=m CONFIG_DVB_USB_LME2510=m CONFIG_DVB_USB_MXL111SF=m CONFIG_DVB_USB_RTL28XXU=m # CONFIG_DVB_USB_DVBSKY is not set # CONFIG_DVB_USB_ZD1301 is not set CONFIG_DVB_TTUSB_BUDGET=m CONFIG_DVB_TTUSB_DEC=m CONFIG_SMS_USB_DRV=m CONFIG_DVB_B2C2_FLEXCOP_USB=m # CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set # CONFIG_DVB_AS102 is not set # # Webcam, TV (analog/digital) USB devices # CONFIG_VIDEO_EM28XX=m # CONFIG_VIDEO_EM28XX_V4L2 is not set CONFIG_VIDEO_EM28XX_ALSA=m CONFIG_VIDEO_EM28XX_DVB=m CONFIG_VIDEO_EM28XX_RC=m CONFIG_MEDIA_PCI_SUPPORT=y # # Media capture support # # CONFIG_VIDEO_MEYE is not set # CONFIG_VIDEO_SOLO6X10 is not set # CONFIG_VIDEO_TW5864 is not set # CONFIG_VIDEO_TW68 is not set # CONFIG_VIDEO_TW686X is not set # # Media capture/analog TV support # CONFIG_VIDEO_IVTV=m # CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set # CONFIG_VIDEO_IVTV_ALSA is not set CONFIG_VIDEO_FB_IVTV=m # CONFIG_VIDEO_HEXIUM_GEMINI is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_DT3155 is not set # # Media capture/analog/hybrid TV support # CONFIG_VIDEO_CX18=m CONFIG_VIDEO_CX18_ALSA=m CONFIG_VIDEO_CX23885=m CONFIG_MEDIA_ALTERA_CI=m # CONFIG_VIDEO_CX25821 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_ALSA=m CONFIG_VIDEO_CX88_BLACKBIRD=m CONFIG_VIDEO_CX88_DVB=m CONFIG_VIDEO_CX88_ENABLE_VP3054=y CONFIG_VIDEO_CX88_VP3054=m CONFIG_VIDEO_CX88_MPEG=m CONFIG_VIDEO_BT848=m CONFIG_DVB_BT8XX=m CONFIG_VIDEO_SAA7134=m CONFIG_VIDEO_SAA7134_ALSA=m CONFIG_VIDEO_SAA7134_RC=y CONFIG_VIDEO_SAA7134_DVB=m CONFIG_VIDEO_SAA7164=m # # Media digital TV PCI Adapters # CONFIG_DVB_AV7110_IR=y CONFIG_DVB_AV7110=m CONFIG_DVB_AV7110_OSD=y CONFIG_DVB_BUDGET_CORE=m CONFIG_DVB_BUDGET=m CONFIG_DVB_BUDGET_CI=m CONFIG_DVB_BUDGET_AV=m CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_B2C2_FLEXCOP_PCI=m # CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set CONFIG_DVB_PLUTO2=m CONFIG_DVB_DM1105=m CONFIG_DVB_PT1=m # CONFIG_DVB_PT3 is not set CONFIG_MANTIS_CORE=m CONFIG_DVB_MANTIS=m CONFIG_DVB_HOPPER=m CONFIG_DVB_NGENE=m CONFIG_DVB_DDBRIDGE=m # CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_SMIPCIE is not set # CONFIG_DVB_NETUP_UNIDVB is not set # CONFIG_V4L_PLATFORM_DRIVERS is not set # CONFIG_V4L_MEM2MEM_DRIVERS is not set # CONFIG_V4L_TEST_DRIVERS is not set # CONFIG_DVB_PLATFORM_DRIVERS is not set # # Supported MMC/SDIO adapters # CONFIG_SMS_SDIO_DRV=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_TEA575X=m # CONFIG_RADIO_SI470X is not set # CONFIG_RADIO_SI4713 is not set # CONFIG_USB_MR800 is not set # CONFIG_USB_DSBR is not set # CONFIG_RADIO_MAXIRADIO is not set # CONFIG_RADIO_SHARK is not set # CONFIG_RADIO_SHARK2 is not set # CONFIG_USB_KEENE is not set # CONFIG_USB_RAREMONO is not set # CONFIG_USB_MA901 is not set # CONFIG_RADIO_TEA5764 is not set # CONFIG_RADIO_SAA7706H is not set # CONFIG_RADIO_TEF6862 is not set # CONFIG_RADIO_WL1273 is not set # # Texas Instruments WL128x FM driver (ST based) # # # Supported FireWire (IEEE 1394) Adapters # CONFIG_DVB_FIREDTV=m CONFIG_DVB_FIREDTV_INPUT=y CONFIG_MEDIA_COMMON_OPTIONS=y # # common driver options # CONFIG_VIDEO_CX2341X=m CONFIG_VIDEO_TVEEPROM=m CONFIG_CYPRESS_FIRMWARE=m CONFIG_VIDEOBUF2_CORE=m CONFIG_VIDEOBUF2_V4L2=m CONFIG_VIDEOBUF2_MEMOPS=m CONFIG_VIDEOBUF2_VMALLOC=m CONFIG_VIDEOBUF2_DMA_SG=m CONFIG_VIDEOBUF2_DVB=m CONFIG_DVB_B2C2_FLEXCOP=m CONFIG_VIDEO_SAA7146=m CONFIG_VIDEO_SAA7146_VV=m CONFIG_SMS_SIANO_MDTV=m CONFIG_SMS_SIANO_RC=y # CONFIG_SMS_SIANO_DEBUGFS is not set # # Media ancillary drivers (tuners, sensors, i2c, spi, frontends) # CONFIG_MEDIA_SUBDRV_AUTOSELECT=y CONFIG_MEDIA_ATTACH=y CONFIG_VIDEO_IR_I2C=m # # Audio decoders, processors and mixers # CONFIG_VIDEO_TVAUDIO=m CONFIG_VIDEO_TDA7432=m CONFIG_VIDEO_MSP3400=m CONFIG_VIDEO_CS3308=m CONFIG_VIDEO_CS5345=m CONFIG_VIDEO_CS53L32A=m CONFIG_VIDEO_WM8775=m CONFIG_VIDEO_WM8739=m CONFIG_VIDEO_VP27SMPX=m # # RDS decoders # CONFIG_VIDEO_SAA6588=m # # Video decoders # CONFIG_VIDEO_SAA711X=m # # Video and audio decoders # CONFIG_VIDEO_SAA717X=m CONFIG_VIDEO_CX25840=m # # Video encoders # CONFIG_VIDEO_SAA7127=m # # Camera sensor devices # # # Flash devices # # # Video improvement chips # CONFIG_VIDEO_UPD64031A=m CONFIG_VIDEO_UPD64083=m # # Audio/Video compression chips # CONFIG_VIDEO_SAA6752HS=m # # SDR tuner chips # # # Miscellaneous helper chips # CONFIG_VIDEO_M52790=m # # Sensors used on soc_camera driver # # # Media SPI Adapters # # CONFIG_CXD2880_SPI_DRV is not set CONFIG_MEDIA_TUNER=m CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA18250=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA827X=m CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_MT2060=m CONFIG_MEDIA_TUNER_MT2063=m CONFIG_MEDIA_TUNER_MT2266=m CONFIG_MEDIA_TUNER_MT2131=m CONFIG_MEDIA_TUNER_QT1010=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MXL5005S=m CONFIG_MEDIA_TUNER_MXL5007T=m CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_MEDIA_TUNER_MAX2165=m CONFIG_MEDIA_TUNER_TDA18218=m CONFIG_MEDIA_TUNER_FC0011=m CONFIG_MEDIA_TUNER_FC0012=m CONFIG_MEDIA_TUNER_FC0013=m CONFIG_MEDIA_TUNER_TDA18212=m CONFIG_MEDIA_TUNER_E4000=m CONFIG_MEDIA_TUNER_FC2580=m CONFIG_MEDIA_TUNER_M88RS6000T=m CONFIG_MEDIA_TUNER_TUA9001=m CONFIG_MEDIA_TUNER_SI2157=m CONFIG_MEDIA_TUNER_IT913X=m CONFIG_MEDIA_TUNER_R820T=m CONFIG_MEDIA_TUNER_QM1D1C0042=m CONFIG_MEDIA_TUNER_QM1D1B0004=m # # Multistandard (satellite) frontends # CONFIG_DVB_STB0899=m CONFIG_DVB_STB6100=m CONFIG_DVB_STV090x=m CONFIG_DVB_STV0910=m CONFIG_DVB_STV6110x=m CONFIG_DVB_STV6111=m CONFIG_DVB_MXL5XX=m CONFIG_DVB_M88DS3103=m # # Multistandard (cable + terrestrial) frontends # CONFIG_DVB_DRXK=m CONFIG_DVB_TDA18271C2DD=m CONFIG_DVB_SI2165=m CONFIG_DVB_MN88472=m CONFIG_DVB_MN88473=m # # DVB-S (satellite) frontends # CONFIG_DVB_CX24110=m CONFIG_DVB_CX24123=m CONFIG_DVB_MT312=m CONFIG_DVB_ZL10036=m CONFIG_DVB_ZL10039=m CONFIG_DVB_S5H1420=m CONFIG_DVB_STV0288=m CONFIG_DVB_STB6000=m CONFIG_DVB_STV0299=m CONFIG_DVB_STV6110=m CONFIG_DVB_STV0900=m CONFIG_DVB_TDA8083=m CONFIG_DVB_TDA10086=m CONFIG_DVB_TDA8261=m CONFIG_DVB_VES1X93=m CONFIG_DVB_TUNER_ITD1000=m CONFIG_DVB_TUNER_CX24113=m CONFIG_DVB_TDA826X=m CONFIG_DVB_TUA6100=m CONFIG_DVB_CX24116=m CONFIG_DVB_CX24117=m CONFIG_DVB_CX24120=m CONFIG_DVB_SI21XX=m CONFIG_DVB_TS2020=m CONFIG_DVB_DS3000=m CONFIG_DVB_MB86A16=m CONFIG_DVB_TDA10071=m # # DVB-T (terrestrial) frontends # CONFIG_DVB_SP8870=m CONFIG_DVB_SP887X=m CONFIG_DVB_CX22700=m CONFIG_DVB_CX22702=m CONFIG_DVB_DRXD=m CONFIG_DVB_L64781=m CONFIG_DVB_TDA1004X=m CONFIG_DVB_NXT6000=m CONFIG_DVB_MT352=m CONFIG_DVB_ZL10353=m CONFIG_DVB_DIB3000MB=m CONFIG_DVB_DIB3000MC=m CONFIG_DVB_DIB7000M=m CONFIG_DVB_DIB7000P=m CONFIG_DVB_TDA10048=m CONFIG_DVB_AF9013=m CONFIG_DVB_EC100=m CONFIG_DVB_STV0367=m CONFIG_DVB_CXD2820R=m CONFIG_DVB_CXD2841ER=m CONFIG_DVB_RTL2830=m CONFIG_DVB_RTL2832=m CONFIG_DVB_SI2168=m CONFIG_DVB_GP8PSK_FE=m # # DVB-C (cable) frontends # CONFIG_DVB_VES1820=m CONFIG_DVB_TDA10021=m CONFIG_DVB_TDA10023=m CONFIG_DVB_STV0297=m # # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # CONFIG_DVB_NXT200X=m CONFIG_DVB_OR51211=m CONFIG_DVB_OR51132=m CONFIG_DVB_BCM3510=m CONFIG_DVB_LGDT330X=m CONFIG_DVB_LGDT3305=m CONFIG_DVB_LGDT3306A=m CONFIG_DVB_LG2160=m CONFIG_DVB_S5H1409=m CONFIG_DVB_AU8522=m CONFIG_DVB_AU8522_DTV=m CONFIG_DVB_AU8522_V4L=m CONFIG_DVB_S5H1411=m # # ISDB-T (terrestrial) frontends # CONFIG_DVB_S921=m CONFIG_DVB_DIB8000=m CONFIG_DVB_MB86A20S=m # # ISDB-S (satellite) & ISDB-T (terrestrial) frontends # CONFIG_DVB_TC90522=m # # Digital terrestrial only tuners/PLL # CONFIG_DVB_PLL=m CONFIG_DVB_TUNER_DIB0070=m CONFIG_DVB_TUNER_DIB0090=m # # SEC control devices for DVB-S # CONFIG_DVB_DRX39XYJ=m CONFIG_DVB_LNBH25=m CONFIG_DVB_LNBP21=m CONFIG_DVB_LNBP22=m CONFIG_DVB_ISL6405=m CONFIG_DVB_ISL6421=m CONFIG_DVB_ISL6423=m CONFIG_DVB_A8293=m CONFIG_DVB_LGS8GXX=m CONFIG_DVB_ATBM8830=m CONFIG_DVB_TDA665x=m CONFIG_DVB_IX2505V=m CONFIG_DVB_M88RS2000=m CONFIG_DVB_AF9033=m # # Common Interface (EN50221) controller drivers # CONFIG_DVB_CXD2099=m # # Tools to develop new frontends # CONFIG_DVB_DUMMY_FE=m # # Graphics support # CONFIG_AGP=y CONFIG_AGP_AMD64=y CONFIG_AGP_INTEL=y CONFIG_AGP_SIS=y CONFIG_AGP_VIA=y CONFIG_INTEL_GTT=y CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=64 CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=m CONFIG_DRM_MIPI_DSI=y # CONFIG_DRM_DP_AUX_CHARDEV is not set CONFIG_DRM_DEBUG_SELFTEST=m CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 # CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_DP_CEC is not set CONFIG_DRM_TTM=m # # I2C encoder or helper chips # CONFIG_DRM_I2C_CH7006=m CONFIG_DRM_I2C_SIL164=m CONFIG_DRM_I2C_NXP_TDA998X=m # CONFIG_DRM_I2C_NXP_TDA9950 is not set # CONFIG_DRM_RADEON is not set # CONFIG_DRM_AMDGPU is not set # # ACP (Audio CoProcessor) Configuration # # # AMD Library routines # # CONFIG_DRM_NOUVEAU is not set CONFIG_DRM_I915=m # CONFIG_DRM_I915_ALPHA_SUPPORT is not set CONFIG_DRM_I915_CAPTURE_ERROR=y CONFIG_DRM_I915_COMPRESS_ERROR=y CONFIG_DRM_I915_USERPTR=y # CONFIG_DRM_I915_GVT is not set # # drm/i915 Debugging # # CONFIG_DRM_I915_WERROR is not set # CONFIG_DRM_I915_DEBUG is not set # CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set # CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set # CONFIG_DRM_I915_DEBUG_GUC is not set # CONFIG_DRM_I915_SELFTEST is not set # CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set # CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set # CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set CONFIG_DRM_VGEM=m # CONFIG_DRM_VKMS is not set CONFIG_DRM_VMWGFX=m CONFIG_DRM_VMWGFX_FBCON=y CONFIG_DRM_GMA500=m CONFIG_DRM_GMA600=y CONFIG_DRM_GMA3600=y CONFIG_DRM_UDL=m CONFIG_DRM_AST=m CONFIG_DRM_MGAG200=m CONFIG_DRM_CIRRUS_QEMU=m CONFIG_DRM_QXL=m # CONFIG_DRM_BOCHS is not set # CONFIG_DRM_VIRTIO_GPU is not set CONFIG_DRM_PANEL=y # # Display Panels # # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set CONFIG_DRM_BRIDGE=y CONFIG_DRM_PANEL_BRIDGE=y # # Display Interface Bridges # # CONFIG_DRM_ANALOGIX_ANX78XX is not set # CONFIG_DRM_HISI_HIBMC is not set # CONFIG_DRM_TINYDRM is not set # CONFIG_DRM_XEN is not set # CONFIG_DRM_LEGACY is not set CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y CONFIG_DRM_LIB_RANDOM=y # # Frame buffer Devices # CONFIG_FB_CMDLINE=y CONFIG_FB_NOTIFY=y CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set CONFIG_FB_BOOT_VESA_SUPPORT=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_SYS_FILLRECT=m CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m CONFIG_FB_DEFERRED_IO=y # CONFIG_FB_MODE_HELPERS is not set CONFIG_FB_TILEBLITTING=y # # Frame buffer hardware drivers # # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ARC is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_VGA16 is not set # CONFIG_FB_UVESA is not set CONFIG_FB_VESA=y CONFIG_FB_EFI=y # CONFIG_FB_N411 is not set # CONFIG_FB_HGA is not set # CONFIG_FB_OPENCORES is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_I740 is not set # CONFIG_FB_LE80578 is not set # CONFIG_FB_INTEL is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set # CONFIG_FB_VIA is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_VT8623 is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_ARK is not set # CONFIG_FB_PM3 is not set # CONFIG_FB_CARMINE is not set # CONFIG_FB_SM501 is not set # CONFIG_FB_SMSCUFX is not set # CONFIG_FB_UDL is not set # CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_XEN_FBDEV_FRONTEND is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set CONFIG_FB_HYPERV=m # CONFIG_FB_SIMPLE is not set # CONFIG_FB_SM712 is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m # CONFIG_LCD_L4F00242T03 is not set # CONFIG_LCD_LMS283GF05 is not set # CONFIG_LCD_LTV350QV is not set # CONFIG_LCD_ILI922X is not set # CONFIG_LCD_ILI9320 is not set # CONFIG_LCD_TDO24M is not set # CONFIG_LCD_VGG2432A4 is not set CONFIG_LCD_PLATFORM=m # CONFIG_LCD_AMS369FG06 is not set # CONFIG_LCD_LMS501KF03 is not set # CONFIG_LCD_HX8357 is not set # CONFIG_LCD_OTM3225A is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_BACKLIGHT_GENERIC is not set # CONFIG_BACKLIGHT_PWM is not set CONFIG_BACKLIGHT_APPLE=m # CONFIG_BACKLIGHT_PM8941_WLED is not set # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # CONFIG_BACKLIGHT_LM3630A is not set # CONFIG_BACKLIGHT_LM3639 is not set # CONFIG_BACKLIGHT_LP855X is not set # CONFIG_BACKLIGHT_GPIO is not set # CONFIG_BACKLIGHT_LV5207LP is not set # CONFIG_BACKLIGHT_BD6107 is not set # CONFIG_BACKLIGHT_ARCXCNN is not set CONFIG_HDMI=y # # Console display driver support # CONFIG_VGA_CONSOLE=y CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 # CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set CONFIG_DUMMY_CONSOLE=y CONFIG_DUMMY_CONSOLE_COLUMNS=80 CONFIG_DUMMY_CONSOLE_ROWS=25 CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y # CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set CONFIG_LOGO=y # CONFIG_LOGO_LINUX_MONO is not set # CONFIG_LOGO_LINUX_VGA16 is not set CONFIG_LOGO_LINUX_CLUT224=y CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y CONFIG_SOUND_OSS_CORE_PRECLAIM=y CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_SEQ_DEVICE=m CONFIG_SND_RAWMIDI=m CONFIG_SND_JACK=y CONFIG_SND_JACK_INPUT_DEV=y CONFIG_SND_OSSEMUL=y # CONFIG_SND_MIXER_OSS is not set # CONFIG_SND_PCM_OSS is not set CONFIG_SND_PCM_TIMER=y CONFIG_SND_HRTIMER=m CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_MAX_CARDS=32 # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_PROC_FS=y CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m CONFIG_SND_SEQUENCER_OSS=m CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_SEQ_MIDI_EVENT=m CONFIG_SND_SEQ_MIDI=m CONFIG_SND_SEQ_MIDI_EMUL=m CONFIG_SND_SEQ_VIRMIDI=m CONFIG_SND_MPU401_UART=m CONFIG_SND_OPL3_LIB=m CONFIG_SND_OPL3_LIB_SEQ=m CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y CONFIG_SND_PCSP=m CONFIG_SND_DUMMY=m CONFIG_SND_ALOOP=m CONFIG_SND_VIRMIDI=m CONFIG_SND_MTPAV=m # CONFIG_SND_MTS64 is not set # CONFIG_SND_SERIAL_U16550 is not set CONFIG_SND_MPU401=m # CONFIG_SND_PORTMAN2X4 is not set CONFIG_SND_AC97_POWER_SAVE=y CONFIG_SND_AC97_POWER_SAVE_DEFAULT=5 CONFIG_SND_PCI=y CONFIG_SND_AD1889=m # CONFIG_SND_ALS300 is not set # CONFIG_SND_ALS4000 is not set CONFIG_SND_ALI5451=m CONFIG_SND_ASIHPI=m CONFIG_SND_ATIIXP=m CONFIG_SND_ATIIXP_MODEM=m CONFIG_SND_AU8810=m CONFIG_SND_AU8820=m CONFIG_SND_AU8830=m # CONFIG_SND_AW2 is not set # CONFIG_SND_AZT3328 is not set CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set CONFIG_SND_CA0106=m CONFIG_SND_CMIPCI=m CONFIG_SND_OXYGEN_LIB=m CONFIG_SND_OXYGEN=m # CONFIG_SND_CS4281 is not set CONFIG_SND_CS46XX=m CONFIG_SND_CS46XX_NEW_DSP=y CONFIG_SND_CTXFI=m CONFIG_SND_DARLA20=m CONFIG_SND_GINA20=m CONFIG_SND_LAYLA20=m CONFIG_SND_DARLA24=m CONFIG_SND_GINA24=m CONFIG_SND_LAYLA24=m CONFIG_SND_MONA=m CONFIG_SND_MIA=m CONFIG_SND_ECHO3G=m CONFIG_SND_INDIGO=m CONFIG_SND_INDIGOIO=m CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGODJX=m CONFIG_SND_EMU10K1=m CONFIG_SND_EMU10K1_SEQ=m CONFIG_SND_EMU10K1X=m CONFIG_SND_ENS1370=m CONFIG_SND_ENS1371=m # CONFIG_SND_ES1938 is not set CONFIG_SND_ES1968=m CONFIG_SND_ES1968_INPUT=y CONFIG_SND_ES1968_RADIO=y # CONFIG_SND_FM801 is not set CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m CONFIG_SND_ICE1712=m CONFIG_SND_ICE1724=m CONFIG_SND_INTEL8X0=m CONFIG_SND_INTEL8X0M=m CONFIG_SND_KORG1212=m CONFIG_SND_LOLA=m CONFIG_SND_LX6464ES=m CONFIG_SND_MAESTRO3=m CONFIG_SND_MAESTRO3_INPUT=y CONFIG_SND_MIXART=m # CONFIG_SND_NM256 is not set CONFIG_SND_PCXHR=m # CONFIG_SND_RIPTIDE is not set CONFIG_SND_RME32=m CONFIG_SND_RME96=m CONFIG_SND_RME9652=m # CONFIG_SND_SONICVIBES is not set CONFIG_SND_TRIDENT=m CONFIG_SND_VIA82XX=m CONFIG_SND_VIA82XX_MODEM=m CONFIG_SND_VIRTUOSO=m CONFIG_SND_VX222=m # CONFIG_SND_YMFPCI is not set # # HD-Audio # CONFIG_SND_HDA=m CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_HWDEP=y # CONFIG_SND_HDA_RECONFIG is not set CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INPUT_BEEP_MODE=0 # CONFIG_SND_HDA_PATCH_LOADER is not set CONFIG_SND_HDA_CODEC_REALTEK=m CONFIG_SND_HDA_CODEC_ANALOG=m CONFIG_SND_HDA_CODEC_SIGMATEL=m CONFIG_SND_HDA_CODEC_VIA=m CONFIG_SND_HDA_CODEC_HDMI=m CONFIG_SND_HDA_CODEC_CIRRUS=m CONFIG_SND_HDA_CODEC_CONEXANT=m CONFIG_SND_HDA_CODEC_CA0110=m CONFIG_SND_HDA_CODEC_CA0132=m CONFIG_SND_HDA_CODEC_CA0132_DSP=y CONFIG_SND_HDA_CODEC_CMEDIA=m CONFIG_SND_HDA_CODEC_SI3054=m CONFIG_SND_HDA_GENERIC=m CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 CONFIG_SND_HDA_CORE=m CONFIG_SND_HDA_DSP_LOADER=y CONFIG_SND_HDA_COMPONENT=y CONFIG_SND_HDA_I915=y CONFIG_SND_HDA_PREALLOC_SIZE=512 CONFIG_SND_SPI=y CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=m CONFIG_SND_USB_UA101=m CONFIG_SND_USB_USX2Y=m CONFIG_SND_USB_CAIAQ=m CONFIG_SND_USB_CAIAQ_INPUT=y CONFIG_SND_USB_US122L=m CONFIG_SND_USB_6FIRE=m # CONFIG_SND_USB_HIFACE is not set # CONFIG_SND_BCD2000 is not set # CONFIG_SND_USB_POD is not set # CONFIG_SND_USB_PODHD is not set # CONFIG_SND_USB_TONEPORT is not set # CONFIG_SND_USB_VARIAX is not set CONFIG_SND_FIREWIRE=y CONFIG_SND_FIREWIRE_LIB=m # CONFIG_SND_DICE is not set # CONFIG_SND_OXFW is not set CONFIG_SND_ISIGHT=m # CONFIG_SND_FIREWORKS is not set # CONFIG_SND_BEBOB is not set # CONFIG_SND_FIREWIRE_DIGI00X is not set # CONFIG_SND_FIREWIRE_TASCAM is not set # CONFIG_SND_FIREWIRE_MOTU is not set # CONFIG_SND_FIREFACE is not set # CONFIG_SND_SOC is not set CONFIG_SND_X86=y # CONFIG_HDMI_LPE_AUDIO is not set CONFIG_SND_SYNTH_EMUX=m # CONFIG_SND_XEN_FRONTEND is not set CONFIG_AC97_BUS=m # # HID support # CONFIG_HID=y CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HIDRAW=y CONFIG_UHID=m CONFIG_HID_GENERIC=y # # Special HID drivers # CONFIG_HID_A4TECH=y # CONFIG_HID_ACCUTOUCH is not set CONFIG_HID_ACRUX=m # CONFIG_HID_ACRUX_FF is not set CONFIG_HID_APPLE=y CONFIG_HID_APPLEIR=m # CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BELKIN=y # CONFIG_HID_BETOP_FF is not set # CONFIG_HID_BIGBEN_FF is not set CONFIG_HID_CHERRY=y CONFIG_HID_CHICONY=y # CONFIG_HID_CORSAIR is not set # CONFIG_HID_COUGAR is not set CONFIG_HID_PRODIKEYS=m # CONFIG_HID_CMEDIA is not set # CONFIG_HID_CP2112 is not set CONFIG_HID_CYPRESS=y CONFIG_HID_DRAGONRISE=m # CONFIG_DRAGONRISE_FF is not set # CONFIG_HID_EMS_FF is not set # CONFIG_HID_ELAN is not set CONFIG_HID_ELECOM=m # CONFIG_HID_ELO is not set CONFIG_HID_EZKEY=y # CONFIG_HID_GEMBIRD is not set # CONFIG_HID_GFRM is not set CONFIG_HID_HOLTEK=m # CONFIG_HOLTEK_FF is not set # CONFIG_HID_GT683R is not set CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m CONFIG_HID_UCLOGIC=m CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_ICADE=m # CONFIG_HID_ITE is not set # CONFIG_HID_JABRA is not set CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=y CONFIG_HID_LCPOWER=m CONFIG_HID_LED=m # CONFIG_HID_LENOVO is not set CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=m CONFIG_HID_LOGITECH_HIDPP=m # CONFIG_LOGITECH_FF is not set # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWHEELS_FF is not set CONFIG_HID_MAGICMOUSE=y # CONFIG_HID_MAYFLASH is not set # CONFIG_HID_REDRAGON is not set CONFIG_HID_MICROSOFT=y CONFIG_HID_MONTEREY=y CONFIG_HID_MULTITOUCH=m # CONFIG_HID_NTI is not set CONFIG_HID_NTRIG=y CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m # CONFIG_PANTHERLORD_FF is not set # CONFIG_HID_PENMOUNT is not set CONFIG_HID_PETALYNX=m CONFIG_HID_PICOLCD=m CONFIG_HID_PICOLCD_FB=y CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y CONFIG_HID_PICOLCD_CIR=y CONFIG_HID_PLANTRONICS=y CONFIG_HID_PRIMAX=m # CONFIG_HID_RETRODE is not set CONFIG_HID_ROCCAT=m CONFIG_HID_SAITEK=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m # CONFIG_SONY_FF is not set CONFIG_HID_SPEEDLINK=m # CONFIG_HID_STEAM is not set CONFIG_HID_STEELSERIES=m CONFIG_HID_SUNPLUS=m # CONFIG_HID_RMI is not set CONFIG_HID_GREENASIA=m # CONFIG_GREENASIA_FF is not set CONFIG_HID_HYPERV_MOUSE=m CONFIG_HID_SMARTJOYPLUS=m # CONFIG_SMARTJOYPLUS_FF is not set CONFIG_HID_TIVO=m CONFIG_HID_TOPSEED=m CONFIG_HID_THINGM=m CONFIG_HID_THRUSTMASTER=m # CONFIG_THRUSTMASTER_FF is not set # CONFIG_HID_UDRAW_PS3 is not set CONFIG_HID_WACOM=m CONFIG_HID_WIIMOTE=m # CONFIG_HID_XINMO is not set CONFIG_HID_ZEROPLUS=m # CONFIG_ZEROPLUS_FF is not set CONFIG_HID_ZYDACRON=m # CONFIG_HID_SENSOR_HUB is not set # CONFIG_HID_ALPS is not set # # USB HID support # CONFIG_USB_HID=y CONFIG_HID_PID=y CONFIG_USB_HIDDEV=y # # I2C HID support # CONFIG_I2C_HID=m # # Intel ISH HID support # # CONFIG_INTEL_ISH_HID is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_SUPPORT=y CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y CONFIG_USB_PCI=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set # CONFIG_USB_LEDS_TRIGGER_USBPORT is not set CONFIG_USB_MON=y CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m # CONFIG_USB_WUSB_CBAF_DEBUG is not set # # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_DBGCAP is not set CONFIG_USB_XHCI_PCI=y CONFIG_USB_XHCI_PLATFORM=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_PCI=y # CONFIG_USB_EHCI_HCD_PLATFORM is not set # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_FOTG210_HCD is not set # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_PCI=y # CONFIG_USB_OHCI_HCD_PLATFORM is not set CONFIG_USB_UHCI_HCD=y # CONFIG_USB_U132_HCD is not set # CONFIG_USB_SL811_HCD is not set # CONFIG_USB_R8A66597_HCD is not set # CONFIG_USB_WHCI_HCD is not set CONFIG_USB_HWA_HCD=m # CONFIG_USB_HCD_BCMA is not set # CONFIG_USB_HCD_SSB is not set # CONFIG_USB_HCD_TEST_MODE is not set # # USB Device Class drivers # CONFIG_USB_ACM=m CONFIG_USB_PRINTER=m CONFIG_USB_WDM=m CONFIG_USB_TMC=m # # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may # # # also be needed; see USB_STORAGE Help for more info # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_DATAFAB=m CONFIG_USB_STORAGE_FREECOM=m CONFIG_USB_STORAGE_ISD200=m CONFIG_USB_STORAGE_USBAT=m CONFIG_USB_STORAGE_SDDR09=m CONFIG_USB_STORAGE_SDDR55=m CONFIG_USB_STORAGE_JUMPSHOT=m CONFIG_USB_STORAGE_ALAUDA=m CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m CONFIG_USB_STORAGE_ENE_UB6250=m CONFIG_USB_UAS=m # # USB Imaging devices # CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m # CONFIG_USBIP_CORE is not set # CONFIG_USB_MUSB_HDRC is not set CONFIG_USB_DWC3=y # CONFIG_USB_DWC3_HOST is not set CONFIG_USB_DWC3_GADGET=y # CONFIG_USB_DWC3_DUAL_ROLE is not set # # Platform Glue Driver Support # CONFIG_USB_DWC3_PCI=y CONFIG_USB_DWC3_HAPS=y # CONFIG_USB_DWC2 is not set # CONFIG_USB_CHIPIDEA is not set # CONFIG_USB_ISP1760 is not set # # USB port drivers # CONFIG_USB_USS720=m CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_CONSOLE=y CONFIG_USB_SERIAL_GENERIC=y # CONFIG_USB_SERIAL_SIMPLE is not set CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_ARK3116=m CONFIG_USB_SERIAL_BELKIN=m CONFIG_USB_SERIAL_CH341=m CONFIG_USB_SERIAL_WHITEHEAT=m CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_VISOR=m CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m # CONFIG_USB_SERIAL_F81232 is not set # CONFIG_USB_SERIAL_F8153X is not set CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m CONFIG_USB_SERIAL_KEYSPAN_PDA=m CONFIG_USB_SERIAL_KEYSPAN=m CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set CONFIG_USB_SERIAL_NAVMAN=m CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m CONFIG_USB_SERIAL_SAFE=m CONFIG_USB_SERIAL_SAFE_PADDED=y CONFIG_USB_SERIAL_SIERRAWIRELESS=m CONFIG_USB_SERIAL_SYMBOL=m # CONFIG_USB_SERIAL_TI is not set CONFIG_USB_SERIAL_CYBERJACK=m CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m CONFIG_USB_SERIAL_OMNINET=m CONFIG_USB_SERIAL_OPTICON=m CONFIG_USB_SERIAL_XSENS_MT=m # CONFIG_USB_SERIAL_WISHBONE is not set CONFIG_USB_SERIAL_SSU100=m CONFIG_USB_SERIAL_QT2=m # CONFIG_USB_SERIAL_UPD78F0730 is not set CONFIG_USB_SERIAL_DEBUG=m # # USB Miscellaneous drivers # CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m CONFIG_USB_ADUTUX=m CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set CONFIG_USB_LEGOTOWER=m CONFIG_USB_LCD=m # CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set CONFIG_USB_IDMOUSE=m CONFIG_USB_FTDI_ELAN=m CONFIG_USB_APPLEDISPLAY=m CONFIG_USB_SISUSBVGA=m CONFIG_USB_SISUSBVGA_CON=y CONFIG_USB_LD=m # CONFIG_USB_TRANCEVIBRATOR is not set CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set # CONFIG_USB_EHSET_TEST_FIXTURE is not set CONFIG_USB_ISIGHTFW=m # CONFIG_USB_YUREX is not set CONFIG_USB_EZUSB_FX2=m # CONFIG_USB_HUB_USB251XB is not set CONFIG_USB_HSIC_USB3503=m # CONFIG_USB_HSIC_USB4604 is not set # CONFIG_USB_LINK_LAYER_TEST is not set # CONFIG_USB_CHAOSKEY is not set CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m # # USB Physical Layer drivers # CONFIG_USB_PHY=y CONFIG_NOP_USB_XCEIV=y # CONFIG_USB_GPIO_VBUS is not set # CONFIG_USB_ISP1301 is not set CONFIG_USB_GADGET=y # CONFIG_USB_GADGET_DEBUG is not set # CONFIG_USB_GADGET_DEBUG_FILES is not set # CONFIG_USB_GADGET_DEBUG_FS is not set CONFIG_USB_GADGET_VBUS_DRAW=2 CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # # USB Peripheral Controller # # CONFIG_USB_FOTG210_UDC is not set # CONFIG_USB_GR_UDC is not set # CONFIG_USB_R8A66597 is not set # CONFIG_USB_PXA27X is not set # CONFIG_USB_MV_UDC is not set # CONFIG_USB_MV_U3D is not set # CONFIG_USB_M66592 is not set # CONFIG_USB_BDC_UDC is not set # CONFIG_USB_AMD5536UDC is not set # CONFIG_USB_NET2272 is not set # CONFIG_USB_NET2280 is not set # CONFIG_USB_GOKU is not set # CONFIG_USB_EG20T is not set # CONFIG_USB_DUMMY_HCD is not set CONFIG_USB_LIBCOMPOSITE=m CONFIG_USB_F_MASS_STORAGE=m # CONFIG_USB_CONFIGFS is not set # CONFIG_USB_ZERO is not set # CONFIG_USB_AUDIO is not set # CONFIG_USB_ETH is not set # CONFIG_USB_G_NCM is not set # CONFIG_USB_GADGETFS is not set # CONFIG_USB_FUNCTIONFS is not set CONFIG_USB_MASS_STORAGE=m # CONFIG_USB_GADGET_TARGET is not set # CONFIG_USB_G_SERIAL is not set # CONFIG_USB_MIDI_GADGET is not set # CONFIG_USB_G_PRINTER is not set # CONFIG_USB_CDC_COMPOSITE is not set # CONFIG_USB_G_ACM_MS is not set # CONFIG_USB_G_MULTI is not set # CONFIG_USB_G_HID is not set # CONFIG_USB_G_DBGP is not set # CONFIG_USB_G_WEBCAM is not set # CONFIG_TYPEC is not set # CONFIG_USB_LED_TRIG is not set # CONFIG_USB_ULPI_BUS is not set CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m CONFIG_UWB_I1480U=m CONFIG_MMC=m CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_SDIO_UART=m # CONFIG_MMC_TEST is not set # # MMC/SD/SDIO Host Controller Drivers # # CONFIG_MMC_DEBUG is not set CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_RICOH_MMC=y CONFIG_MMC_SDHCI_ACPI=m CONFIG_MMC_SDHCI_PLTFM=m # CONFIG_MMC_SDHCI_F_SDH30 is not set # CONFIG_MMC_WBSD is not set CONFIG_MMC_TIFM_SD=m # CONFIG_MMC_SPI is not set CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_VUB300=m CONFIG_MMC_USHC=m # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_CQHCI=m # CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_MTK is not set # CONFIG_MMC_SDHCI_XENON is not set CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set # # MemoryStick drivers # # CONFIG_MEMSTICK_UNSAFE_RESUME is not set CONFIG_MSPRO_BLOCK=m # CONFIG_MS_BLOCK is not set # # MemoryStick Host Controller Drivers # CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m CONFIG_MEMSTICK_R592=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y # CONFIG_LEDS_CLASS_FLASH is not set # CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set # # LED drivers # # CONFIG_LEDS_APU is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM3642 is not set # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_GPIO is not set CONFIG_LEDS_LP3944=m # CONFIG_LEDS_LP3952 is not set CONFIG_LEDS_LP55XX_COMMON=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m CONFIG_LEDS_LP5562=m # CONFIG_LEDS_LP8501 is not set CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_BD2802 is not set CONFIG_LEDS_INTEL_SS4200=m # CONFIG_LEDS_LT3593 is not set # CONFIG_LEDS_TCA6507 is not set # CONFIG_LEDS_TLC591XX is not set # CONFIG_LEDS_LM355x is not set # # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) # CONFIG_LEDS_BLINKM=m # CONFIG_LEDS_MLXCPLD is not set # CONFIG_LEDS_MLXREG is not set # CONFIG_LEDS_USER is not set # CONFIG_LEDS_NIC78BX is not set # # LED Triggers # CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_ONESHOT=m # CONFIG_LEDS_TRIGGER_DISK is not set # CONFIG_LEDS_TRIGGER_MTD is not set CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m # CONFIG_LEDS_TRIGGER_CPU is not set # CONFIG_LEDS_TRIGGER_ACTIVITY is not set # CONFIG_LEDS_TRIGGER_GPIO is not set CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # # iptables trigger is under Netfilter config (LED target) # CONFIG_LEDS_TRIGGER_TRANSIENT=m CONFIG_LEDS_TRIGGER_CAMERA=m # CONFIG_LEDS_TRIGGER_PANIC is not set # CONFIG_LEDS_TRIGGER_NETDEV is not set # CONFIG_LEDS_TRIGGER_PATTERN is not set # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y CONFIG_EDAC=y CONFIG_EDAC_LEGACY_SYSFS=y # CONFIG_EDAC_DEBUG is not set CONFIG_EDAC_DECODE_MCE=m # CONFIG_EDAC_GHES is not set CONFIG_EDAC_AMD64=m # CONFIG_EDAC_AMD64_ERROR_INJECTION is not set CONFIG_EDAC_E752X=m CONFIG_EDAC_I82975X=m CONFIG_EDAC_I3000=m CONFIG_EDAC_I3200=m # CONFIG_EDAC_IE31200 is not set CONFIG_EDAC_X38=m CONFIG_EDAC_I5400=m CONFIG_EDAC_I7CORE=m CONFIG_EDAC_I5000=m CONFIG_EDAC_I5100=m CONFIG_EDAC_I7300=m CONFIG_EDAC_SBRIDGE=m # CONFIG_EDAC_SKX is not set # CONFIG_EDAC_PND2 is not set CONFIG_RTC_LIB=y CONFIG_RTC_MC146818_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # CONFIG_RTC_SYSTOHC is not set # CONFIG_RTC_DEBUG is not set CONFIG_RTC_NVMEM=y # # RTC interfaces # CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set # CONFIG_RTC_DRV_TEST is not set # # I2C RTC drivers # # CONFIG_RTC_DRV_ABB5ZES3 is not set # CONFIG_RTC_DRV_ABX80X is not set CONFIG_RTC_DRV_DS1307=m # CONFIG_RTC_DRV_DS1307_CENTURY is not set CONFIG_RTC_DRV_DS1374=m # CONFIG_RTC_DRV_DS1374_WDT is not set CONFIG_RTC_DRV_DS1672=m CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8523=m # CONFIG_RTC_DRV_PCF85063 is not set # CONFIG_RTC_DRV_PCF85363 is not set CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m CONFIG_RTC_DRV_M41T80_WDT=y CONFIG_RTC_DRV_BQ32K=m # CONFIG_RTC_DRV_S35390A is not set CONFIG_RTC_DRV_FM3130=m # CONFIG_RTC_DRV_RX8010 is not set CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m CONFIG_RTC_DRV_EM3027=m # CONFIG_RTC_DRV_RV8803 is not set # # SPI RTC drivers # # CONFIG_RTC_DRV_M41T93 is not set # CONFIG_RTC_DRV_M41T94 is not set # CONFIG_RTC_DRV_DS1302 is not set # CONFIG_RTC_DRV_DS1305 is not set # CONFIG_RTC_DRV_DS1343 is not set # CONFIG_RTC_DRV_DS1347 is not set # CONFIG_RTC_DRV_DS1390 is not set # CONFIG_RTC_DRV_MAX6916 is not set # CONFIG_RTC_DRV_R9701 is not set # CONFIG_RTC_DRV_RX4581 is not set # CONFIG_RTC_DRV_RX6110 is not set # CONFIG_RTC_DRV_RS5C348 is not set # CONFIG_RTC_DRV_MAX6902 is not set # CONFIG_RTC_DRV_PCF2123 is not set # CONFIG_RTC_DRV_MCP795 is not set CONFIG_RTC_I2C_AND_SPI=y # # SPI and I2C RTC drivers # CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_DS3232_HWMON=y # CONFIG_RTC_DRV_PCF2127 is not set CONFIG_RTC_DRV_RV3029C2=m CONFIG_RTC_DRV_RV3029_HWMON=y # # Platform RTC drivers # CONFIG_RTC_DRV_CMOS=y CONFIG_RTC_DRV_DS1286=m CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m # CONFIG_RTC_DRV_DS1685_FAMILY is not set CONFIG_RTC_DRV_DS1742=m CONFIG_RTC_DRV_DS2404=m CONFIG_RTC_DRV_STK17TA8=m # CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m # # on-CPU RTC drivers # # CONFIG_RTC_DRV_FTRTC010 is not set # # HID Sensor RTC drivers # # CONFIG_RTC_DRV_HID_SENSOR_TIME is not set CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set # # DMA Devices # CONFIG_DMA_ENGINE=y CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DMA_ACPI=y # CONFIG_ALTERA_MSGDMA is not set # CONFIG_INTEL_IDMA64 is not set # CONFIG_INTEL_IOATDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_HIDMA is not set CONFIG_DW_DMAC_CORE=y CONFIG_DW_DMAC=m CONFIG_DW_DMAC_PCI=y CONFIG_HSU_DMA=y # # DMA Clients # CONFIG_ASYNC_TX_DMA=y CONFIG_DMATEST=m CONFIG_DMA_ENGINE_RAID=y # # DMABUF options # CONFIG_SYNC_FILE=y CONFIG_SW_SYNC=y # CONFIG_UDMABUF is not set CONFIG_AUXDISPLAY=y # CONFIG_HD44780 is not set CONFIG_KS0108=m CONFIG_KS0108_PORT=0x378 CONFIG_KS0108_DELAY=2 CONFIG_CFAG12864B=m CONFIG_CFAG12864B_RATE=20 # CONFIG_IMG_ASCII_LCD is not set # CONFIG_PANEL is not set CONFIG_UIO=m CONFIG_UIO_CIF=m CONFIG_UIO_PDRV_GENIRQ=m # CONFIG_UIO_DMEM_GENIRQ is not set CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m # CONFIG_UIO_NETX is not set # CONFIG_UIO_PRUSS is not set # CONFIG_UIO_MF624 is not set # CONFIG_UIO_HV_GENERIC is not set CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO_VIRQFD=m CONFIG_VFIO=m # CONFIG_VFIO_NOIOMMU is not set CONFIG_VFIO_PCI=m # CONFIG_VFIO_PCI_VGA is not set CONFIG_VFIO_PCI_MMAP=y CONFIG_VFIO_PCI_INTX=y CONFIG_VFIO_PCI_IGD=y # CONFIG_VFIO_MDEV is not set CONFIG_IRQ_BYPASS_MANAGER=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO=y CONFIG_VIRTIO_MENU=y CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_BALLOON=y # CONFIG_VIRTIO_INPUT is not set # CONFIG_VIRTIO_MMIO is not set # # Microsoft Hyper-V guest support # CONFIG_HYPERV=m CONFIG_HYPERV_TSCPAGE=y CONFIG_HYPERV_UTILS=m CONFIG_HYPERV_BALLOON=m # # Xen driver support # CONFIG_XEN_BALLOON=y # CONFIG_XEN_SELFBALLOONING is not set # CONFIG_XEN_BALLOON_MEMORY_HOTPLUG is not set CONFIG_XEN_SCRUB_PAGES_DEFAULT=y CONFIG_XEN_DEV_EVTCHN=m CONFIG_XEN_BACKEND=y CONFIG_XENFS=m CONFIG_XEN_COMPAT_XENFS=y CONFIG_XEN_SYS_HYPERVISOR=y CONFIG_XEN_XENBUS_FRONTEND=y # CONFIG_XEN_GNTDEV is not set # CONFIG_XEN_GRANT_DEV_ALLOC is not set # CONFIG_XEN_GRANT_DMA_ALLOC is not set CONFIG_SWIOTLB_XEN=y CONFIG_XEN_TMEM=m CONFIG_XEN_PCIDEV_BACKEND=m # CONFIG_XEN_PVCALLS_FRONTEND is not set # CONFIG_XEN_PVCALLS_BACKEND is not set # CONFIG_XEN_SCSI_BACKEND is not set CONFIG_XEN_PRIVCMD=m CONFIG_XEN_ACPI_PROCESSOR=m # CONFIG_XEN_MCE_LOG is not set CONFIG_XEN_HAVE_PVMMU=y CONFIG_XEN_EFI=y CONFIG_XEN_AUTO_XLATE=y CONFIG_XEN_ACPI=y CONFIG_XEN_SYMS=y CONFIG_XEN_HAVE_VPMU=y CONFIG_STAGING=y # CONFIG_PRISM2_USB is not set # CONFIG_COMEDI is not set # CONFIG_RTL8192U is not set CONFIG_RTLLIB=m CONFIG_RTLLIB_CRYPTO_CCMP=m CONFIG_RTLLIB_CRYPTO_TKIP=m CONFIG_RTLLIB_CRYPTO_WEP=m CONFIG_RTL8192E=m # CONFIG_RTL8723BS is not set CONFIG_R8712U=m # CONFIG_R8188EU is not set # CONFIG_R8822BE is not set # CONFIG_RTS5208 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set # CONFIG_FB_SM750 is not set # CONFIG_FB_XGI is not set # # Speakup console speech # # CONFIG_SPEAKUP is not set # CONFIG_STAGING_MEDIA is not set # # Android # # CONFIG_LTE_GDM724X is not set CONFIG_FIREWIRE_SERIAL=m CONFIG_FWTTY_MAX_TOTAL_PORTS=64 CONFIG_FWTTY_MAX_CARD_PORTS=32 # CONFIG_GS_FPGABOOT is not set # CONFIG_UNISYSSPAR is not set # CONFIG_FB_TFT is not set # CONFIG_WILC1000_SDIO is not set # CONFIG_WILC1000_SPI is not set # CONFIG_MOST is not set # CONFIG_KS7010 is not set # CONFIG_GREYBUS is not set # CONFIG_DRM_VBOXVIDEO is not set # CONFIG_PI433 is not set # CONFIG_MTK_MMC is not set # # Gasket devices # # CONFIG_STAGING_GASKET_FRAMEWORK is not set # CONFIG_XIL_AXIS_FIFO is not set # CONFIG_EROFS_FS is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m # CONFIG_ACER_WIRELESS is not set CONFIG_ACERHDF=m # CONFIG_ALIENWARE_WMI is not set CONFIG_ASUS_LAPTOP=m CONFIG_DCDBAS=m # CONFIG_DELL_SMBIOS is not set CONFIG_DELL_WMI_AIO=m # CONFIG_DELL_WMI_LED is not set # CONFIG_DELL_SMO8800 is not set # CONFIG_DELL_RBTN is not set CONFIG_DELL_RBU=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_TABLET=m CONFIG_AMILO_RFKILL=m # CONFIG_GPD_POCKET_FAN is not set CONFIG_HP_ACCEL=m # CONFIG_HP_WIRELESS is not set CONFIG_HP_WMI=m # CONFIG_LG_LAPTOP is not set CONFIG_MSI_LAPTOP=m CONFIG_PANASONIC_LAPTOP=m CONFIG_COMPAL_LAPTOP=m CONFIG_SONY_LAPTOP=m CONFIG_SONYPI_COMPAT=y CONFIG_IDEAPAD_LAPTOP=m # CONFIG_SURFACE3_WMI is not set CONFIG_THINKPAD_ACPI=m CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set # CONFIG_THINKPAD_ACPI_DEBUG is not set # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set CONFIG_THINKPAD_ACPI_VIDEO=y CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y CONFIG_SENSORS_HDAPS=m # CONFIG_INTEL_MENLOW is not set CONFIG_EEEPC_LAPTOP=m CONFIG_ASUS_WMI=m CONFIG_ASUS_NB_WMI=m CONFIG_EEEPC_WMI=m # CONFIG_ASUS_WIRELESS is not set CONFIG_ACPI_WMI=m CONFIG_WMI_BMOF=m # CONFIG_INTEL_WMI_THUNDERBOLT is not set CONFIG_MSI_WMI=m # CONFIG_PEAQ_WMI is not set CONFIG_TOPSTAR_LAPTOP=m CONFIG_TOSHIBA_BT_RFKILL=m # CONFIG_TOSHIBA_HAPS is not set # CONFIG_TOSHIBA_WMI is not set CONFIG_ACPI_CMPC=m # CONFIG_INTEL_INT0002_VGPIO is not set # CONFIG_INTEL_HID_EVENT is not set # CONFIG_INTEL_VBTN is not set CONFIG_INTEL_IPS=m # CONFIG_INTEL_PMC_CORE is not set # CONFIG_IBM_RTL is not set CONFIG_SAMSUNG_LAPTOP=m CONFIG_MXM_WMI=m CONFIG_INTEL_OAKTRAIL=m CONFIG_SAMSUNG_Q10=m CONFIG_APPLE_GMUX=m # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set CONFIG_PVPANIC=y # CONFIG_INTEL_PMC_IPC is not set # CONFIG_SURFACE_PRO3_BUTTON is not set # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_MLX_PLATFORM is not set # CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_I2C_MULTI_INSTANTIATE is not set # CONFIG_INTEL_ATOMISP2_PM is not set CONFIG_PMC_ATOM=y # CONFIG_CHROME_PLATFORMS is not set # CONFIG_MELLANOX_PLATFORM is not set CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y # # Common Clock Framework # # CONFIG_COMMON_CLK_MAX9485 is not set # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_CDCE706 is not set # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_PWM is not set # CONFIG_HWSPINLOCK is not set # # Clock Source drivers # CONFIG_CLKEVT_I8253=y CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y CONFIG_MAILBOX=y CONFIG_PCC=y # CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y # # Generic IOMMU Pagetable Support # # CONFIG_IOMMU_DEBUGFS is not set # CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set CONFIG_IOMMU_IOVA=y CONFIG_AMD_IOMMU=y CONFIG_AMD_IOMMU_V2=m CONFIG_DMAR_TABLE=y CONFIG_INTEL_IOMMU=y # CONFIG_INTEL_IOMMU_SVM is not set # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set CONFIG_INTEL_IOMMU_FLOPPY_WA=y CONFIG_IRQ_REMAP=y # # Remoteproc drivers # # CONFIG_REMOTEPROC is not set # # Rpmsg drivers # # CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # CONFIG_SOUNDWIRE is not set # # SOC (System On Chip) specific Drivers # # # Amlogic SoC drivers # # # Broadcom SoC drivers # # # NXP/Freescale QorIQ SoC drivers # # # i.MX SoC drivers # # # Qualcomm SoC drivers # # CONFIG_SOC_TI is not set # # Xilinx SoC drivers # # CONFIG_XILINX_VCU is not set CONFIG_PM_DEVFREQ=y # # DEVFREQ Governors # CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_PERFORMANCE is not set # CONFIG_DEVFREQ_GOV_POWERSAVE is not set # CONFIG_DEVFREQ_GOV_USERSPACE is not set # CONFIG_DEVFREQ_GOV_PASSIVE is not set # # DEVFREQ Drivers # # CONFIG_PM_DEVFREQ_EVENT is not set CONFIG_EXTCON=y # # Extcon Device Drivers # # CONFIG_EXTCON_GPIO is not set # CONFIG_EXTCON_INTEL_INT3496 is not set # CONFIG_EXTCON_MAX3355 is not set # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set # CONFIG_EXTCON_USB_GPIO is not set # CONFIG_MEMORY is not set # CONFIG_IIO is not set CONFIG_NTB=m # CONFIG_NTB_AMD is not set # CONFIG_NTB_IDT is not set # CONFIG_NTB_INTEL is not set # CONFIG_NTB_SWITCHTEC is not set # CONFIG_NTB_PINGPONG is not set # CONFIG_NTB_TOOL is not set # CONFIG_NTB_PERF is not set # CONFIG_NTB_TRANSPORT is not set # CONFIG_VME_BUS is not set CONFIG_PWM=y CONFIG_PWM_SYSFS=y CONFIG_PWM_LPSS=m CONFIG_PWM_LPSS_PCI=m CONFIG_PWM_LPSS_PLATFORM=m # CONFIG_PWM_PCA9685 is not set # # IRQ chip support # CONFIG_ARM_GIC_MAX_NR=1 # CONFIG_IPACK_BUS is not set # CONFIG_RESET_CONTROLLER is not set # CONFIG_FMC is not set # # PHY Subsystem # CONFIG_GENERIC_PHY=y # CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set CONFIG_POWERCAP=y CONFIG_INTEL_RAPL=m # CONFIG_IDLE_INJECT is not set # CONFIG_MCB is not set # # Performance monitor support # CONFIG_RAS=y # CONFIG_RAS_CEC is not set # CONFIG_THUNDERBOLT is not set # # Android # # CONFIG_ANDROID is not set CONFIG_LIBNVDIMM=m CONFIG_BLK_DEV_PMEM=m CONFIG_ND_BLK=m CONFIG_ND_CLAIM=y CONFIG_ND_BTT=m CONFIG_BTT=y CONFIG_ND_PFN=m CONFIG_NVDIMM_PFN=y CONFIG_NVDIMM_DAX=y CONFIG_DAX_DRIVER=y CONFIG_DAX=y CONFIG_DEV_DAX=m CONFIG_DEV_DAX_PMEM=m CONFIG_NVMEM=y # # HW tracing support # CONFIG_STM=m # CONFIG_STM_PROTO_BASIC is not set # CONFIG_STM_PROTO_SYS_T is not set CONFIG_STM_DUMMY=m CONFIG_STM_SOURCE_CONSOLE=m CONFIG_STM_SOURCE_HEARTBEAT=m CONFIG_STM_SOURCE_FTRACE=m CONFIG_INTEL_TH=m CONFIG_INTEL_TH_PCI=m # CONFIG_INTEL_TH_ACPI is not set CONFIG_INTEL_TH_GTH=m CONFIG_INTEL_TH_STH=m CONFIG_INTEL_TH_MSU=m CONFIG_INTEL_TH_PTI=m # CONFIG_INTEL_TH_DEBUG is not set # CONFIG_FPGA is not set CONFIG_PM_OPP=y # CONFIG_UNISYS_VISORBUS is not set # CONFIG_SIOX is not set # CONFIG_SLIMBUS is not set # # File systems # CONFIG_DCACHE_WORD_ACCESS=y CONFIG_FS_IOMAP=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y CONFIG_EXT4_ENCRYPTION=y CONFIG_EXT4_FS_ENCRYPTION=y # CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_RT=y CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_ONLINE_REPAIR=y CONFIG_XFS_DEBUG=y CONFIG_XFS_ASSERT_FATAL=y CONFIG_GFS2_FS=m CONFIG_GFS2_FS_LOCKING_DLM=y CONFIG_OCFS2_FS=m CONFIG_OCFS2_FS_O2CB=m CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m CONFIG_OCFS2_FS_STATS=y CONFIG_OCFS2_DEBUG_MASKLOG=y # CONFIG_OCFS2_DEBUG_FS is not set CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set # CONFIG_BTRFS_DEBUG is not set # CONFIG_BTRFS_ASSERT is not set # CONFIG_BTRFS_FS_REF_VERIFY is not set # CONFIG_NILFS2_FS is not set CONFIG_F2FS_FS=m CONFIG_F2FS_STAT_FS=y CONFIG_F2FS_FS_XATTR=y CONFIG_F2FS_FS_POSIX_ACL=y # CONFIG_F2FS_FS_SECURITY is not set # CONFIG_F2FS_CHECK_FS is not set CONFIG_F2FS_FS_ENCRYPTION=y # CONFIG_F2FS_IO_TRACE is not set # CONFIG_F2FS_FAULT_INJECTION is not set CONFIG_FS_DAX=y CONFIG_FS_DAX_PMD=y CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y # CONFIG_EXPORTFS_BLOCK_OPS is not set CONFIG_FILE_LOCKING=y CONFIG_MANDATORY_FILE_LOCKING=y CONFIG_FS_ENCRYPTION=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y # CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=y # CONFIG_QFMT_V1 is not set CONFIG_QFMT_V2=y CONFIG_QUOTACTL=y CONFIG_QUOTACTL_COMPAT=y CONFIG_AUTOFS4_FS=y CONFIG_AUTOFS_FS=y CONFIG_FUSE_FS=m CONFIG_CUSE=m CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_REDIRECT_DIR is not set CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y # CONFIG_OVERLAY_FS_INDEX is not set # CONFIG_OVERLAY_FS_XINO_AUTO is not set # CONFIG_OVERLAY_FS_METACOPY is not set # # Caches # CONFIG_FSCACHE=m CONFIG_FSCACHE_STATS=y # CONFIG_FSCACHE_HISTOGRAM is not set # CONFIG_FSCACHE_DEBUG is not set # CONFIG_FSCACHE_OBJECT_LIST is not set CONFIG_CACHEFILES=m # CONFIG_CACHEFILES_DEBUG is not set # CONFIG_CACHEFILES_HISTOGRAM is not set # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=m CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="ascii" # CONFIG_FAT_DEFAULT_UTF8 is not set # CONFIG_NTFS_FS is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_VMCORE=y # CONFIG_PROC_VMCORE_DEVICE_DUMP is not set CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y CONFIG_PROC_CHILDREN=y CONFIG_KERNFS=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_MEMFD_CREATE=y CONFIG_ARCH_HAS_GIGANTIC_PAGE=y CONFIG_CONFIGFS_FS=y CONFIG_EFIVAR_FS=y CONFIG_MISC_FILESYSTEMS=y # CONFIG_ORANGEFS_FS is not set # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_JFFS2_FS is not set # CONFIG_UBIFS_FS is not set CONFIG_CRAMFS=m CONFIG_CRAMFS_BLOCKDEV=y # CONFIG_CRAMFS_MTD is not set CONFIG_SQUASHFS=m CONFIG_SQUASHFS_FILE_CACHE=y # CONFIG_SQUASHFS_FILE_DIRECT is not set CONFIG_SQUASHFS_DECOMP_SINGLE=y # CONFIG_SQUASHFS_DECOMP_MULTI is not set # CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_ZLIB=y # CONFIG_SQUASHFS_LZ4 is not set CONFIG_SQUASHFS_LZO=y CONFIG_SQUASHFS_XZ=y # CONFIG_SQUASHFS_ZSTD is not set # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_VXFS_FS is not set CONFIG_MINIX_FS=m # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set CONFIG_PSTORE=y CONFIG_PSTORE_DEFLATE_COMPRESS=y # CONFIG_PSTORE_LZO_COMPRESS is not set # CONFIG_PSTORE_LZ4_COMPRESS is not set # CONFIG_PSTORE_LZ4HC_COMPRESS is not set # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_ZSTD_COMPRESS is not set CONFIG_PSTORE_COMPRESS=y CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" CONFIG_PSTORE_CONSOLE=y CONFIG_PSTORE_PMSG=y # CONFIG_PSTORE_FTRACE is not set CONFIG_PSTORE_RAM=m # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set # CONFIG_EXOFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=y # CONFIG_NFS_V2 is not set CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=m # CONFIG_NFS_SWAP is not set CONFIG_NFS_V4_1=y CONFIG_NFS_V4_2=y CONFIG_PNFS_FILE_LAYOUT=m CONFIG_PNFS_BLOCK=m CONFIG_PNFS_FLEXFILE_LAYOUT=m CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" # CONFIG_NFS_V4_1_MIGRATION is not set CONFIG_NFS_V4_SECURITY_LABEL=y CONFIG_ROOT_NFS=y # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y CONFIG_NFS_DEBUG=y CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y # CONFIG_NFSD_BLOCKLAYOUT is not set # CONFIG_NFSD_SCSILAYOUT is not set # CONFIG_NFSD_FLEXFILELAYOUT is not set CONFIG_NFSD_V4_SECURITY_LABEL=y # CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_GRACE_PERIOD=y CONFIG_LOCKD=y CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC_BACKCHANNEL=y CONFIG_RPCSEC_GSS_KRB5=m CONFIG_SUNRPC_DEBUG=y # CONFIG_CEPH_FS is not set CONFIG_CIFS=m # CONFIG_CIFS_STATS2 is not set CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y CONFIG_CIFS_ACL=y CONFIG_CIFS_DEBUG=y # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DEBUG_DUMP_KEYS is not set CONFIG_CIFS_DFS_UPCALL=y # CONFIG_CIFS_FSCACHE is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set CONFIG_9P_FS=y CONFIG_9P_FS_POSIX_ACL=y # CONFIG_9P_FS_SECURITY is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_737=m CONFIG_NLS_CODEPAGE_775=m CONFIG_NLS_CODEPAGE_850=m CONFIG_NLS_CODEPAGE_852=m CONFIG_NLS_CODEPAGE_855=m CONFIG_NLS_CODEPAGE_857=m CONFIG_NLS_CODEPAGE_860=m CONFIG_NLS_CODEPAGE_861=m CONFIG_NLS_CODEPAGE_862=m CONFIG_NLS_CODEPAGE_863=m CONFIG_NLS_CODEPAGE_864=m CONFIG_NLS_CODEPAGE_865=m CONFIG_NLS_CODEPAGE_866=m CONFIG_NLS_CODEPAGE_869=m CONFIG_NLS_CODEPAGE_936=m CONFIG_NLS_CODEPAGE_950=m CONFIG_NLS_CODEPAGE_932=m CONFIG_NLS_CODEPAGE_949=m CONFIG_NLS_CODEPAGE_874=m CONFIG_NLS_ISO8859_8=m CONFIG_NLS_CODEPAGE_1250=m CONFIG_NLS_CODEPAGE_1251=m CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=m CONFIG_NLS_ISO8859_2=m CONFIG_NLS_ISO8859_3=m CONFIG_NLS_ISO8859_4=m CONFIG_NLS_ISO8859_5=m CONFIG_NLS_ISO8859_6=m CONFIG_NLS_ISO8859_7=m CONFIG_NLS_ISO8859_9=m CONFIG_NLS_ISO8859_13=m CONFIG_NLS_ISO8859_14=m CONFIG_NLS_ISO8859_15=m CONFIG_NLS_KOI8_R=m CONFIG_NLS_KOI8_U=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_CELTIC=m CONFIG_NLS_MAC_CENTEURO=m CONFIG_NLS_MAC_CROATIAN=m CONFIG_NLS_MAC_CYRILLIC=m CONFIG_NLS_MAC_GAELIC=m CONFIG_NLS_MAC_GREEK=m CONFIG_NLS_MAC_ICELAND=m CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_TURKISH=m CONFIG_NLS_UTF8=m CONFIG_DLM=m CONFIG_DLM_DEBUG=y # # Security options # CONFIG_KEYS=y CONFIG_KEYS_COMPAT=y CONFIG_PERSISTENT_KEYRINGS=y CONFIG_BIG_KEYS=y CONFIG_TRUSTED_KEYS=y CONFIG_ENCRYPTED_KEYS=y # CONFIG_KEY_DH_OPERATIONS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set CONFIG_SECURITY=y CONFIG_SECURITY_WRITABLE_HOOKS=y CONFIG_SECURITYFS=y CONFIG_SECURITY_NETWORK=y CONFIG_PAGE_TABLE_ISOLATION=y CONFIG_SECURITY_NETWORK_XFRM=y CONFIG_SECURITY_PATH=y CONFIG_INTEL_TXT=y CONFIG_LSM_MMAP_MIN_ADDR=65535 CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_HARDENED_USERCOPY is not set # CONFIG_FORTIFY_SOURCE is not set # CONFIG_STATIC_USERMODEHELPER is not set CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 # CONFIG_SECURITY_SMACK is not set # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y # CONFIG_SECURITY_APPARMOR_DEBUG is not set # CONFIG_SECURITY_LOADPIN is not set # CONFIG_SECURITY_YAMA is not set CONFIG_INTEGRITY=y CONFIG_INTEGRITY_SIGNATURE=y CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y CONFIG_INTEGRITY_TRUSTED_KEYRING=y CONFIG_INTEGRITY_AUDIT=y CONFIG_IMA=y CONFIG_IMA_MEASURE_PCR_IDX=10 CONFIG_IMA_LSM_RULES=y # CONFIG_IMA_TEMPLATE is not set CONFIG_IMA_NG_TEMPLATE=y # CONFIG_IMA_SIG_TEMPLATE is not set CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng" CONFIG_IMA_DEFAULT_HASH_SHA1=y # CONFIG_IMA_DEFAULT_HASH_SHA256 is not set # CONFIG_IMA_DEFAULT_HASH_SHA512 is not set CONFIG_IMA_DEFAULT_HASH="sha1" # CONFIG_IMA_WRITE_POLICY is not set # CONFIG_IMA_READ_POLICY is not set CONFIG_IMA_APPRAISE=y # CONFIG_IMA_APPRAISE_BUILD_POLICY is not set CONFIG_IMA_APPRAISE_BOOTPARAM=y CONFIG_IMA_TRUSTED_KEYRING=y # CONFIG_IMA_BLACKLIST_KEYRING is not set # CONFIG_IMA_LOAD_X509 is not set CONFIG_EVM=y CONFIG_EVM_ATTR_FSUUID=y # CONFIG_EVM_ADD_XATTRS is not set # CONFIG_EVM_LOAD_X509 is not set CONFIG_DEFAULT_SECURITY_SELINUX=y # CONFIG_DEFAULT_SECURITY_APPARMOR is not set # CONFIG_DEFAULT_SECURITY_DAC is not set CONFIG_DEFAULT_SECURITY="selinux" CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m CONFIG_ASYNC_XOR=m CONFIG_ASYNC_PQ=m CONFIG_ASYNC_RAID6_RECOV=m CONFIG_CRYPTO=y # # Crypto core or helper # CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_AKCIPHER=y CONFIG_CRYPTO_KPP2=y CONFIG_CRYPTO_ACOMP2=y CONFIG_CRYPTO_RSA=y # CONFIG_CRYPTO_DH is not set # CONFIG_CRYPTO_ECDH is not set CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=m CONFIG_CRYPTO_TEST=m CONFIG_CRYPTO_SIMD=m CONFIG_CRYPTO_GLUE_HELPER_X86=m CONFIG_CRYPTO_ENGINE=m # # Authenticated Encryption with Associated Data # CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=y # CONFIG_CRYPTO_CHACHA20POLY1305 is not set # CONFIG_CRYPTO_AEGIS128 is not set # CONFIG_CRYPTO_AEGIS128L is not set # CONFIG_CRYPTO_AEGIS256 is not set # CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set # CONFIG_CRYPTO_AEGIS128L_AESNI_SSE2 is not set # CONFIG_CRYPTO_AEGIS256_AESNI_SSE2 is not set # CONFIG_CRYPTO_MORUS640 is not set # CONFIG_CRYPTO_MORUS640_SSE2 is not set # CONFIG_CRYPTO_MORUS1280 is not set # CONFIG_CRYPTO_MORUS1280_SSE2 is not set # CONFIG_CRYPTO_MORUS1280_AVX2 is not set CONFIG_CRYPTO_SEQIV=y CONFIG_CRYPTO_ECHAINIV=m # # Block modes # CONFIG_CRYPTO_CBC=y # CONFIG_CRYPTO_CFB is not set CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=y CONFIG_CRYPTO_ECB=y CONFIG_CRYPTO_LRW=m # CONFIG_CRYPTO_OFB is not set CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_XTS=y # CONFIG_CRYPTO_KEYWRAP is not set # # Hash modes # CONFIG_CRYPTO_CMAC=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_VMAC=m # # Digest # CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_CRC32C_INTEL=m CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_CRC32_PCLMUL=m CONFIG_CRYPTO_CRCT10DIF=y CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m CONFIG_CRYPTO_GHASH=y # CONFIG_CRYPTO_POLY1305 is not set # CONFIG_CRYPTO_POLY1305_X86_64 is not set CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA1_SSSE3=m CONFIG_CRYPTO_SHA256_SSSE3=m CONFIG_CRYPTO_SHA512_SSSE3=m CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SHA3=m # CONFIG_CRYPTO_SM3 is not set CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m # # Ciphers # CONFIG_CRYPTO_AES=y # CONFIG_CRYPTO_AES_TI is not set CONFIG_CRYPTO_AES_X86_64=y CONFIG_CRYPTO_AES_NI_INTEL=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_BLOWFISH_X86_64=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA_X86_64=m CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m CONFIG_CRYPTO_CAST_COMMON=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5_AVX_X86_64=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6_AVX_X86_64=m CONFIG_CRYPTO_DES=m # CONFIG_CRYPTO_DES3_EDE_X86_64 is not set CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_SALSA20=m # CONFIG_CRYPTO_CHACHA20 is not set # CONFIG_CRYPTO_CHACHA20_X86_64 is not set CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m CONFIG_CRYPTO_SERPENT_AVX_X86_64=m CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m CONFIG_CRYPTO_TWOFISH_X86_64=m CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m # # Compression # CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_842 is not set # CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4HC is not set # CONFIG_CRYPTO_ZSTD is not set # # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m CONFIG_CRYPTO_DRBG_MENU=y CONFIG_CRYPTO_DRBG_HMAC=y # CONFIG_CRYPTO_DRBG_HASH is not set # CONFIG_CRYPTO_DRBG_CTR is not set CONFIG_CRYPTO_DRBG=y CONFIG_CRYPTO_JITTERENTROPY=y CONFIG_CRYPTO_USER_API=y CONFIG_CRYPTO_USER_API_HASH=y CONFIG_CRYPTO_USER_API_SKCIPHER=y # CONFIG_CRYPTO_USER_API_RNG is not set # CONFIG_CRYPTO_USER_API_AEAD is not set # CONFIG_CRYPTO_STATS is not set CONFIG_CRYPTO_HASH_INFO=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=m CONFIG_CRYPTO_DEV_PADLOCK_AES=m CONFIG_CRYPTO_DEV_PADLOCK_SHA=m # CONFIG_CRYPTO_DEV_CCP is not set # CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set # CONFIG_CRYPTO_DEV_QAT_C3XXX is not set # CONFIG_CRYPTO_DEV_QAT_C62X is not set # CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set # CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set # CONFIG_CRYPTO_DEV_QAT_C62XVF is not set # CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set # CONFIG_CRYPTO_DEV_CHELSIO is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y # CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE is not set CONFIG_X509_CERTIFICATE_PARSER=y # CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set CONFIG_PKCS7_MESSAGE_PARSER=y # CONFIG_PKCS7_TEST_KEY is not set # CONFIG_SIGNED_PE_FILE_VERIFICATION is not set # # Certificates for signature checking # CONFIG_SYSTEM_TRUSTED_KEYRING=y CONFIG_SYSTEM_TRUSTED_KEYS="" # CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set # CONFIG_SECONDARY_TRUSTED_KEYRING is not set # CONFIG_SYSTEM_BLACKLIST_KEYRING is not set CONFIG_BINARY_PRINTF=y # # Library routines # CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y CONFIG_RATIONAL=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_IOMAP=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_ARCH_HAS_FAST_MULTIPLIER=y CONFIG_CRC_CCITT=y CONFIG_CRC16=y CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=m CONFIG_CRC32=y # CONFIG_CRC32_SELFTEST is not set CONFIG_CRC32_SLICEBY8=y # CONFIG_CRC32_SLICEBY4 is not set # CONFIG_CRC32_SARWATE is not set # CONFIG_CRC32_BIT is not set # CONFIG_CRC64 is not set # CONFIG_CRC4 is not set # CONFIG_CRC7 is not set CONFIG_LIBCRC32C=y CONFIG_CRC8=m CONFIG_XXHASH=m # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_DECOMPRESS=y CONFIG_ZSTD_COMPRESS=m CONFIG_ZSTD_DECOMPRESS=m CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y CONFIG_XZ_DEC_POWERPC=y CONFIG_XZ_DEC_IA64=y CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_ARMTHUMB=y CONFIG_XZ_DEC_SPARC=y CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_LZ4=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_REED_SOLOMON=m CONFIG_REED_SOLOMON_ENC8=y CONFIG_REED_SOLOMON_DEC8=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m CONFIG_TEXTSEARCH_FSM=m CONFIG_BTREE=y CONFIG_INTERVAL_TREE=y CONFIG_XARRAY_MULTI=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_DMA_DIRECT_OPS=y CONFIG_SWIOTLB=y CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPUMASK_OFFSTACK=y CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_GLOB=y # CONFIG_GLOB_SELFTEST is not set CONFIG_NLATTR=y CONFIG_CLZ_TAB=y CONFIG_CORDIC=m # CONFIG_DDR is not set CONFIG_IRQ_POLL=y CONFIG_MPILIB=y CONFIG_SIGNATURE=y CONFIG_OID_REGISTRY=y CONFIG_UCS2_STRING=y CONFIG_FONT_SUPPORT=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_SG_POOL=y CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_ARCH_HAS_PMEM_API=y CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y CONFIG_ARCH_HAS_UACCESS_MCSAFE=y CONFIG_SBITMAP=y CONFIG_PRIME_NUMBERS=m # CONFIG_STRING_SELFTEST is not set # # Kernel hacking # # # printk and dmesg options # CONFIG_PRINTK_TIME=y CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_BOOT_PRINTK_DELAY=y CONFIG_DYNAMIC_DEBUG=y # # Compile-time checks and compiler options # CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_REDUCED=y # CONFIG_DEBUG_INFO_SPLIT is not set # CONFIG_DEBUG_INFO_DWARF4 is not set # CONFIG_GDB_SCRIPTS is not set CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=2048 CONFIG_STRIP_ASM_SYMS=y # CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_PAGE_OWNER is not set CONFIG_DEBUG_FS=y CONFIG_HEADERS_CHECK=y CONFIG_DEBUG_SECTION_MISMATCH=y CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_STACK_VALIDATION=y # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_DEBUG_KERNEL=y # # Memory Debugging # # CONFIG_PAGE_EXTENSION is not set # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_PAGE_REF is not set CONFIG_DEBUG_RODATA_TEST=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_VM is not set CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m # CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_HAVE_DEBUG_STACKOVERFLOW=y CONFIG_DEBUG_STACKOVERFLOW=y CONFIG_HAVE_ARCH_KASAN=y # CONFIG_KASAN is not set CONFIG_ARCH_HAS_KCOV=y CONFIG_CC_HAS_SANCOV_TRACE_PC=y # CONFIG_KCOV is not set CONFIG_DEBUG_SHIRQ=y # # Debug Lockups and Hangs # CONFIG_LOCKUP_DETECTOR=y CONFIG_SOFTLOCKUP_DETECTOR=y # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y CONFIG_HARDLOCKUP_DETECTOR=y CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1 # CONFIG_DETECT_HUNG_TASK is not set # CONFIG_WQ_WATCHDOG is not set CONFIG_PANIC_ON_OOPS=y CONFIG_PANIC_ON_OOPS_VALUE=1 CONFIG_PANIC_TIMEOUT=0 CONFIG_SCHED_DEBUG=y CONFIG_SCHED_INFO=y CONFIG_SCHEDSTATS=y # CONFIG_SCHED_STACK_END_CHECK is not set # CONFIG_DEBUG_TIMEKEEPING is not set # # Lock Debugging (spinlocks, mutexes, etc...) # CONFIG_LOCK_DEBUGGING_SUPPORT=y # CONFIG_PROVE_LOCKING is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set # CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_LOCK_ALLOC is not set CONFIG_DEBUG_ATOMIC_SLEEP=y # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_LOCK_TORTURE_TEST=m CONFIG_WW_MUTEX_SELFTEST=m CONFIG_STACKTRACE=y # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y CONFIG_DEBUG_LIST=y # CONFIG_DEBUG_PI_LIST is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set # # RCU Debugging # CONFIG_TORTURE_TEST=m CONFIG_RCU_PERF_TEST=m CONFIG_RCU_TORTURE_TEST=m CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_RCU_TRACE is not set # CONFIG_RCU_EQS_DEBUG is not set # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set CONFIG_NOTIFIER_ERROR_INJECTION=m CONFIG_PM_NOTIFIER_ERROR_INJECT=m # CONFIG_NETDEV_NOTIFIER_ERROR_INJECT is not set CONFIG_FUNCTION_ERROR_INJECTION=y CONFIG_FAULT_INJECTION=y # CONFIG_FAILSLAB is not set # CONFIG_FAIL_PAGE_ALLOC is not set CONFIG_FAIL_MAKE_REQUEST=y # CONFIG_FAIL_IO_TIMEOUT is not set # CONFIG_FAIL_FUTEX is not set CONFIG_FAULT_INJECTION_DEBUG_FS=y # CONFIG_FAIL_FUNCTION is not set # CONFIG_FAIL_MMC_REQUEST is not set CONFIG_LATENCYTOP=y CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_FENTRY=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACER_MAX_TRACE=y CONFIG_TRACE_CLOCK=y CONFIG_RING_BUFFER=y CONFIG_EVENT_TRACING=y CONFIG_CONTEXT_SWITCH_TRACER=y CONFIG_RING_BUFFER_ALLOW_SWAP=y CONFIG_TRACING=y CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y CONFIG_FTRACE=y CONFIG_FUNCTION_TRACER=y CONFIG_FUNCTION_GRAPH_TRACER=y # CONFIG_PREEMPTIRQ_EVENTS is not set # CONFIG_IRQSOFF_TRACER is not set CONFIG_SCHED_TRACER=y # CONFIG_HWLAT_TRACER is not set CONFIG_FTRACE_SYSCALLS=y CONFIG_TRACER_SNAPSHOT=y # CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set # CONFIG_PROFILE_ALL_BRANCHES is not set CONFIG_STACK_TRACER=y CONFIG_BLK_DEV_IO_TRACE=y CONFIG_KPROBE_EVENTS=y # CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set CONFIG_UPROBE_EVENTS=y CONFIG_BPF_EVENTS=y CONFIG_PROBE_EVENTS=y CONFIG_DYNAMIC_FTRACE=y CONFIG_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_FUNCTION_PROFILER=y # CONFIG_BPF_KPROBE_OVERRIDE is not set CONFIG_FTRACE_MCOUNT_RECORD=y # CONFIG_FTRACE_STARTUP_TEST is not set # CONFIG_MMIOTRACE is not set CONFIG_TRACING_MAP=y CONFIG_HIST_TRIGGERS=y # CONFIG_TRACEPOINT_BENCHMARK is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set # CONFIG_PREEMPTIRQ_DELAY_TEST is not set # CONFIG_TRACE_EVAL_MAP_FILE is not set CONFIG_TRACING_EVENTS_GPIO=y CONFIG_PROVIDE_OHCI1394_DMA_INIT=y # CONFIG_DMA_API_DEBUG is not set CONFIG_RUNTIME_TESTING_MENU=y CONFIG_LKDTM=m # CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_SORT is not set # CONFIG_KPROBES_SANITY_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_RBTREE_TEST=m CONFIG_INTERVAL_TREE_TEST=m CONFIG_PERCPU_TEST=m CONFIG_ATOMIC64_SELFTEST=y CONFIG_ASYNC_RAID6_TEST=m # CONFIG_TEST_HEXDUMP is not set # CONFIG_TEST_STRING_HELPERS is not set CONFIG_TEST_KSTRTOX=m CONFIG_TEST_PRINTF=m CONFIG_TEST_BITMAP=m # CONFIG_TEST_BITFIELD is not set # CONFIG_TEST_UUID is not set # CONFIG_TEST_XARRAY is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_RHASHTABLE is not set # CONFIG_TEST_HASH is not set # CONFIG_TEST_IDA is not set CONFIG_TEST_LKM=m CONFIG_TEST_USER_COPY=m CONFIG_TEST_BPF=m # CONFIG_FIND_BIT_BENCHMARK is not set CONFIG_TEST_FIRMWARE=m CONFIG_TEST_SYSCTL=m CONFIG_TEST_UDELAY=m CONFIG_TEST_STATIC_KEYS=m CONFIG_TEST_KMOD=m # CONFIG_TEST_MEMCAT_P is not set # CONFIG_MEMTEST is not set # CONFIG_BUG_ON_DATA_CORRUPTION is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y # CONFIG_UBSAN is not set CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y CONFIG_STRICT_DEVMEM=y # CONFIG_IO_STRICT_DEVMEM is not set CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_EARLY_PRINTK_USB=y CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK_DBGP=y # CONFIG_EARLY_PRINTK_EFI is not set # CONFIG_EARLY_PRINTK_USB_XDBC is not set # CONFIG_X86_PTDUMP is not set # CONFIG_EFI_PGT_DUMP is not set # CONFIG_DEBUG_WX is not set CONFIG_DOUBLEFAULT=y # CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_DEBUG is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_X86_DECODER_SELFTEST=y CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_UDELAY=2 CONFIG_IO_DELAY_TYPE_NONE=3 CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_0XED is not set # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 CONFIG_DEBUG_BOOT_PARAMS=y # CONFIG_CPA_DEBUG is not set CONFIG_OPTIMIZE_INLINING=y # CONFIG_DEBUG_ENTRY is not set # CONFIG_DEBUG_NMI_SELFTEST is not set CONFIG_X86_DEBUG_FPU=y # CONFIG_PUNIT_ATOM_DEBUG is not set CONFIG_UNWINDER_ORC=y # CONFIG_UNWINDER_FRAME_POINTER is not set # CONFIG_UNWINDER_GUESS is not set [-- Attachment #3: job-script.ksh --] [-- Type: text/plain, Size: 7614 bytes --] #!/bin/sh export_top_env() { export suite='vm-scalability' export testcase='vm-scalability' export category='benchmark' export runtime=300 export nr_task=32 export job_origin='/lkp/lkp/.src-20181111-000856/allot/cyclic:p1:linux-devel:devel-hourly/lkp-hsw-ep4/vm-scalability-swap-1ssd.yaml' export queue='validate' export testbox='lkp-hsw-ep4' export tbox_group='lkp-hsw-ep4' export submit_id='5bf493490b9a93518ed242bf' export job_file='/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-20878-1jb6hcf-3.yaml' export id='8c95128fd0e7d0f29da62d0cecd664ab489fcc1c' export model='Haswell-EP' export nr_node=2 export nr_cpu=72 export memory='128G' export nr_ssd_partitions=1 export ssd_partitions='/dev/nvme0n1p1' export swap_partitions= export rootfs_partition= export brand='Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz' export ucode='0x3d' export need_kconfig='CONFIG_BLK_DEV_SD CONFIG_SCSI CONFIG_BLOCK=y CONFIG_SATA_AHCI CONFIG_SATA_AHCI_PLATFORM CONFIG_ATA CONFIG_PCI=y CONFIG_SWAP CONFIG_MMU CONFIG_BLOCK CONFIG_BLK_DEV_LOOP' export commit='ac5b2c18911ffe95c08d69273917f90212cf5659' export kconfig='x86_64-rhel-7.2' export compiler='gcc-7' export rootfs='debian-x86_64-2018-04-03.cgz' export enqueue_time='2018-11-21 07:05:45 +0800' export _id='5bf493490b9a93518ed242c0' export _rt='/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659' export user='lkp' export head_commit='872879f0b9025e9d84b186b442f9fb98c34f36b8' export base_commit='651022382c7f8da46cb4872a545ee1da6d097d2a' export branch='linux-devel/devel-hourly-2018111020' export result_root='/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/3' export LKP_SERVER='inn' export max_uptime=1500 export initrd='/osimage/debian/debian-x86_64-2018-04-03.cgz' export bootloader_append='root=/dev/ram0 user=lkp job=/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-20878-1jb6hcf-3.yaml ARCH=x86_64 kconfig=x86_64-rhel-7.2 branch=linux-devel/devel-hourly-2018111020 commit=ac5b2c18911ffe95c08d69273917f90212cf5659 BOOT_IMAGE=/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/vmlinuz-4.19.0-12678-gac5b2c1 max_uptime=1500 RESULT_ROOT=/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/3 LKP_SERVER=inn debug apic=debug sysrq_always_enabled rcupdate.rcu_cpu_stall_timeout=100 net.ifnames=0 printk.devkmsg=on panic=-1 softlockup_panic=1 nmi_watchdog=panic oops=panic load_ramdisk=2 prompt_ramdisk=0 drbd.minor_count=8 systemd.log_level=err ignore_loglevel console=tty0 earlyprintk=ttyS0,115200 console=ttyS0,115200 vga=normal rw' export modules_initrd='/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/modules.cgz' export bm_initrd='/osimage/deps/debian-x86_64-2018-04-03.cgz/run-ipconfig_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/lkp_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/rsync-rootfs_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/perf_2018-06-26.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/perf-x86_64-6f0d349d922b_2018-06-26.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/vm-scalability_2018-05-17.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/vm-scalability-x86_64-7afdeab_2018-06-06.cgz,/osimage/pkg/common/vm-scalability-x86_64.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/mpstat_2018-06-19.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/turbostat_2018-05-17.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/turbostat-x86_64-d5256b2_2018-05-18.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/hw+lkp-run-on-qemu.cgz' export lkp_initrd='/lkp/lkp/lkp-x86_64.cgz' export site='inn' export LKP_CGI_PORT=80 export LKP_CIFS_PORT=139 export repeat_to=4 export kernel='/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/vmlinuz-4.19.0-12678-gac5b2c1' export dequeue_time='2018-11-21 07:20:48 +0800' export job_initrd='/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-20878-1jb6hcf-3.cgz' [ -n "$LKP_SRC" ] || export LKP_SRC=/lkp/${user:-lkp}/src } run_job() { echo $$ > $TMP/run-job.pid . $LKP_SRC/lib/http.sh . $LKP_SRC/lib/job.sh . $LKP_SRC/lib/env.sh export_top_env run_setup thp_enabled='always' thp_defrag='always' $LKP_SRC/setup/transparent_hugepage run_setup nr_ssd=1 $LKP_SRC/setup/disk run_setup $LKP_SRC/setup/swap run_setup $LKP_SRC/setup/cpufreq_governor 'performance' run_monitor delay=90 $LKP_SRC/monitors/no-stdout/wrapper perf-profile run_monitor $LKP_SRC/monitors/wrapper kmsg run_monitor $LKP_SRC/monitors/no-stdout/wrapper boot-time run_monitor $LKP_SRC/monitors/wrapper iostat run_monitor $LKP_SRC/monitors/wrapper heartbeat run_monitor $LKP_SRC/monitors/wrapper vmstat run_monitor $LKP_SRC/monitors/wrapper numa-numastat run_monitor $LKP_SRC/monitors/wrapper numa-vmstat run_monitor $LKP_SRC/monitors/wrapper numa-meminfo run_monitor $LKP_SRC/monitors/wrapper proc-vmstat run_monitor $LKP_SRC/monitors/wrapper proc-stat run_monitor $LKP_SRC/monitors/wrapper meminfo run_monitor $LKP_SRC/monitors/wrapper slabinfo run_monitor $LKP_SRC/monitors/wrapper interrupts run_monitor $LKP_SRC/monitors/wrapper lock_stat run_monitor $LKP_SRC/monitors/wrapper latency_stats run_monitor $LKP_SRC/monitors/wrapper softirqs run_monitor $LKP_SRC/monitors/one-shot/wrapper bdi_dev_mapping run_monitor $LKP_SRC/monitors/wrapper diskstats run_monitor $LKP_SRC/monitors/wrapper nfsstat run_monitor $LKP_SRC/monitors/wrapper cpuidle run_monitor $LKP_SRC/monitors/wrapper cpufreq-stats run_monitor $LKP_SRC/monitors/wrapper turbostat run_monitor $LKP_SRC/monitors/wrapper sched_debug run_monitor $LKP_SRC/monitors/wrapper perf-stat run_monitor $LKP_SRC/monitors/wrapper mpstat run_monitor $LKP_SRC/monitors/wrapper oom-killer run_monitor $LKP_SRC/monitors/plain/watchdog run_test test='swap-w-seq' $LKP_SRC/tests/wrapper vm-scalability } extract_stats() { $LKP_SRC/stats/wrapper perf-profile $LKP_SRC/stats/wrapper vm-scalability $LKP_SRC/stats/wrapper kmsg $LKP_SRC/stats/wrapper boot-time $LKP_SRC/stats/wrapper iostat $LKP_SRC/stats/wrapper vmstat $LKP_SRC/stats/wrapper numa-numastat $LKP_SRC/stats/wrapper numa-vmstat $LKP_SRC/stats/wrapper numa-meminfo $LKP_SRC/stats/wrapper proc-vmstat $LKP_SRC/stats/wrapper meminfo $LKP_SRC/stats/wrapper slabinfo $LKP_SRC/stats/wrapper interrupts $LKP_SRC/stats/wrapper lock_stat $LKP_SRC/stats/wrapper latency_stats $LKP_SRC/stats/wrapper softirqs $LKP_SRC/stats/wrapper diskstats $LKP_SRC/stats/wrapper nfsstat $LKP_SRC/stats/wrapper cpuidle $LKP_SRC/stats/wrapper turbostat $LKP_SRC/stats/wrapper sched_debug $LKP_SRC/stats/wrapper perf-stat $LKP_SRC/stats/wrapper mpstat $LKP_SRC/stats/wrapper time vm-scalability.time $LKP_SRC/stats/wrapper time $LKP_SRC/stats/wrapper dmesg $LKP_SRC/stats/wrapper kmsg $LKP_SRC/stats/wrapper stderr $LKP_SRC/stats/wrapper last_state } "$@" [-- Attachment #4: job.yaml --] [-- Type: text/plain, Size: 5227 bytes --] --- #! jobs/vm-scalability-swap-1ssd.yaml suite: vm-scalability testcase: vm-scalability category: benchmark runtime: 300 transparent_hugepage: thp_enabled: always thp_defrag: always nr_task: 32 disk: nr_ssd: 1 swap: perf-profile: delay: 90 vm-scalability: test: swap-w-seq job_origin: "/lkp/lkp/.src-20181111-000856/allot/cyclic:p1:linux-devel:devel-hourly/lkp-hsw-ep4/vm-scalability-swap-1ssd.yaml" #! queue options queue: bisect testbox: lkp-hsw-ep4 tbox_group: lkp-hsw-ep4 submit_id: 5bf464730b9a9399b443c46e job_file: "/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-39348-na2tm0-0.yaml" id: 219435d8178e1704d93f28409e84e6b0b49e1e83 #! hosts/lkp-hsw-ep4 model: Haswell-EP nr_node: 2 nr_cpu: 72 memory: 128G nr_ssd_partitions: 1 ssd_partitions: "/dev/nvme0n1p1" swap_partitions: rootfs_partition: brand: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz ucode: '0x3d' #! include/category/benchmark kmsg: boot-time: iostat: heartbeat: vmstat: numa-numastat: numa-vmstat: numa-meminfo: proc-vmstat: proc-stat: meminfo: slabinfo: interrupts: lock_stat: latency_stats: softirqs: bdi_dev_mapping: diskstats: nfsstat: cpuidle: cpufreq-stats: turbostat: sched_debug: perf-stat: mpstat: #! include/category/ALL cpufreq_governor: performance #! include/disk/nr_ssd need_kconfig: - CONFIG_BLK_DEV_SD - CONFIG_SCSI - CONFIG_BLOCK=y - CONFIG_SATA_AHCI - CONFIG_SATA_AHCI_PLATFORM - CONFIG_ATA - CONFIG_PCI=y - CONFIG_SWAP - CONFIG_MMU - CONFIG_BLOCK - CONFIG_BLK_DEV_LOOP #! include/swap #! include/vm-scalability #! include/queue/cyclic commit: ac5b2c18911ffe95c08d69273917f90212cf5659 #! default params kconfig: x86_64-rhel-7.2 compiler: gcc-7 rootfs: debian-x86_64-2018-04-03.cgz enqueue_time: 2018-11-21 03:45:55.818490092 +08:00 _id: 5bf464730b9a9399b443c46e _rt: "/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659" #! schedule options user: lkp head_commit: 872879f0b9025e9d84b186b442f9fb98c34f36b8 base_commit: 651022382c7f8da46cb4872a545ee1da6d097d2a branch: linux-devel/devel-hourly-2018111020 result_root: "/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/0" LKP_SERVER: inn max_uptime: 1500 initrd: "/osimage/debian/debian-x86_64-2018-04-03.cgz" bootloader_append: - root=/dev/ram0 - user=lkp - job=/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-39348-na2tm0-0.yaml - ARCH=x86_64 - kconfig=x86_64-rhel-7.2 - branch=linux-devel/devel-hourly-2018111020 - commit=ac5b2c18911ffe95c08d69273917f90212cf5659 - BOOT_IMAGE=/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/vmlinuz-4.19.0-12678-gac5b2c1 - max_uptime=1500 - RESULT_ROOT=/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/0 - LKP_SERVER=inn - debug - apic=debug - sysrq_always_enabled - rcupdate.rcu_cpu_stall_timeout=100 - net.ifnames=0 - printk.devkmsg=on - panic=-1 - softlockup_panic=1 - nmi_watchdog=panic - oops=panic - load_ramdisk=2 - prompt_ramdisk=0 - drbd.minor_count=8 - systemd.log_level=err - ignore_loglevel - console=tty0 - earlyprintk=ttyS0,115200 - console=ttyS0,115200 - vga=normal - rw modules_initrd: "/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/modules.cgz" bm_initrd: "/osimage/deps/debian-x86_64-2018-04-03.cgz/run-ipconfig_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/lkp_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/rsync-rootfs_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/perf_2018-06-26.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/perf-x86_64-6f0d349d922b_2018-06-26.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/vm-scalability_2018-05-17.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/vm-scalability-x86_64-7afdeab_2018-06-06.cgz,/osimage/pkg/common/vm-scalability-x86_64.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/mpstat_2018-06-19.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/turbostat_2018-05-17.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/turbostat-x86_64-d5256b2_2018-05-18.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/hw+lkp-run-on-qemu.cgz" lkp_initrd: "/lkp/lkp/lkp-x86_64.cgz" site: inn #! /lkp/lkp/.src-20181113-085441/include/site/inn LKP_CGI_PORT: 80 LKP_CIFS_PORT: 139 oom-killer: watchdog: #! runtime status repeat_to: 2 #! user overrides kernel: "/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/vmlinuz-4.19.0-12678-gac5b2c1" dequeue_time: 2018-11-21 04:14:26.995976798 +08:00 #! /lkp/lkp/.src-20181120-101648/include/site/inn job_state: finished loadavg: 14.22 19.85 9.78 1/613 8595 start_time: '1542745133' end_time: '1542745426' version: "/lkp/lkp/.src-20181120-101648" [-- Attachment #5: reproduce.ksh --] [-- Type: text/plain, Size: 942 bytes --] echo 'always' > /sys/kernel/mm/transparent_hugepage/enabled echo 'always' > /sys/kernel/mm/transparent_hugepage/defrag swapoff -a mkswap /dev/nvme0n1p1 swapon /dev/nvme0n1p1 for cpu_dir in /sys/devices/system/cpu/cpu[0-9]* do online_file="$cpu_dir"/online [ -f "$online_file" ] && [ "$(cat "$online_file")" -eq 0 ] && continue file="$cpu_dir"/cpufreq/scaling_governor [ -f "$file" ] && echo "performance" > "$file" done cd /lkp/benchmarks/vm-scalability mount -t tmpfs -o size=100% vm-scalability-tmp /tmp/vm-scalability-tmp truncate -s 135081086976 /tmp/vm-scalability-tmp/vm-scalability.img mkfs.xfs -q /tmp/vm-scalability-tmp/vm-scalability.img mount -o loop /tmp/vm-scalability-tmp/vm-scalability.img /tmp/vm-scalability-tmp/vm-scalability ./case-swap-w-seq ./usemem --runtime 300 -n 32 21842904768 umount /tmp/vm-scalability-tmp/vm-scalability rm /tmp/vm-scalability-tmp/vm-scalability.img umount /tmp/vm-scalability-tmp ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-11-27 6:25 ` kernel test robot @ 2018-11-27 17:08 ` Linus Torvalds -1 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-11-27 17:08 UTC (permalink / raw) To: rong.a.chen Cc: Andrea Arcangeli, Michal Hocko, s.priebe, alex.williamson, mgorman, zi.yan, Vlastimil Babka, rientjes, kirill, Andrew Morton, Linux List Kernel Mailing, lkp On Mon, Nov 26, 2018 at 10:24 PM kernel test robot <rong.a.chen@intel.com> wrote: > > FYI, we noticed a -61.3% regression of vm-scalability.throughput due > to commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for > MADV_HUGEPAGE mappings") Well, that's certainly noticeable and not good. Andrea, I suspect it might be causing fights with auto numa migration.. Lots more system time, but also look at this: > 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit > 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates > 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local > 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss > 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other > 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated Should the commit be reverted? Or perhaps at least modified? Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-27 17:08 ` Linus Torvalds 0 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-11-27 17:08 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 981 bytes --] On Mon, Nov 26, 2018 at 10:24 PM kernel test robot <rong.a.chen@intel.com> wrote: > > FYI, we noticed a -61.3% regression of vm-scalability.throughput due > to commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for > MADV_HUGEPAGE mappings") Well, that's certainly noticeable and not good. Andrea, I suspect it might be causing fights with auto numa migration.. Lots more system time, but also look at this: > 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit > 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates > 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local > 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss > 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other > 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated Should the commit be reverted? Or perhaps at least modified? Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-11-27 17:08 ` Linus Torvalds @ 2018-11-27 18:17 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-11-27 18:17 UTC (permalink / raw) To: Linus Torvalds Cc: rong.a.chen, Andrea Arcangeli, s.priebe, alex.williamson, mgorman, zi.yan, Vlastimil Babka, rientjes, kirill, Andrew Morton, Linux List Kernel Mailing, lkp On Tue 27-11-18 09:08:50, Linus Torvalds wrote: > On Mon, Nov 26, 2018 at 10:24 PM kernel test robot > <rong.a.chen@intel.com> wrote: > > > > FYI, we noticed a -61.3% regression of vm-scalability.throughput due > > to commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for > > MADV_HUGEPAGE mappings") > > Well, that's certainly noticeable and not good. > > Andrea, I suspect it might be causing fights with auto numa migration.. > > Lots more system time, but also look at this: > > > 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit > > 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates > > 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local > > 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss > > 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other > > 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated > > Should the commit be reverted? Or perhaps at least modified? Well, the commit is trying to revert to the behavior before 5265047ac301 because there are real usecases that suffered from that change and bug reports as a result of that. will-it-scale is certainly worth considering but it is an artificial testcase. A higher NUMA miss rate is an expected side effect of the patch because the fallback to a different NUMA node is more likely. The __GFP_THISNODE side effect is basically introducing node-reclaim behavior for THPages. Another thing is that there is no good behavior for everybody. Reclaim locally vs. THP on a remote node is hard to tell by default. We have discussed that at length and there were some conclusions. One of them is that we need a numa policy to tell whether a expensive localility is preferred over remote allocation. Also we definitely need a better pro-active defragmentation to allow larger pages on a local node. This is a work in progress and this patch is a stop gap fix. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-27 18:17 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-11-27 18:17 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2039 bytes --] On Tue 27-11-18 09:08:50, Linus Torvalds wrote: > On Mon, Nov 26, 2018 at 10:24 PM kernel test robot > <rong.a.chen@intel.com> wrote: > > > > FYI, we noticed a -61.3% regression of vm-scalability.throughput due > > to commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for > > MADV_HUGEPAGE mappings") > > Well, that's certainly noticeable and not good. > > Andrea, I suspect it might be causing fights with auto numa migration.. > > Lots more system time, but also look at this: > > > 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit > > 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates > > 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local > > 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss > > 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other > > 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated > > Should the commit be reverted? Or perhaps at least modified? Well, the commit is trying to revert to the behavior before 5265047ac301 because there are real usecases that suffered from that change and bug reports as a result of that. will-it-scale is certainly worth considering but it is an artificial testcase. A higher NUMA miss rate is an expected side effect of the patch because the fallback to a different NUMA node is more likely. The __GFP_THISNODE side effect is basically introducing node-reclaim behavior for THPages. Another thing is that there is no good behavior for everybody. Reclaim locally vs. THP on a remote node is hard to tell by default. We have discussed that at length and there were some conclusions. One of them is that we need a numa policy to tell whether a expensive localility is preferred over remote allocation. Also we definitely need a better pro-active defragmentation to allow larger pages on a local node. This is a work in progress and this patch is a stop gap fix. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-11-27 18:17 ` Michal Hocko @ 2018-11-27 18:21 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-11-27 18:21 UTC (permalink / raw) To: Linus Torvalds Cc: rong.a.chen, Andrea Arcangeli, s.priebe, alex.williamson, mgorman, zi.yan, Vlastimil Babka, rientjes, kirill, Andrew Morton, Linux List Kernel Mailing, lkp On Tue 27-11-18 19:17:27, Michal Hocko wrote: > On Tue 27-11-18 09:08:50, Linus Torvalds wrote: > > On Mon, Nov 26, 2018 at 10:24 PM kernel test robot > > <rong.a.chen@intel.com> wrote: > > > > > > FYI, we noticed a -61.3% regression of vm-scalability.throughput due > > > to commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for > > > MADV_HUGEPAGE mappings") > > > > Well, that's certainly noticeable and not good. > > > > Andrea, I suspect it might be causing fights with auto numa migration.. > > > > Lots more system time, but also look at this: > > > > > 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit > > > 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates > > > 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local > > > 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss > > > 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other > > > 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated > > > > Should the commit be reverted? Or perhaps at least modified? > > Well, the commit is trying to revert to the behavior before > 5265047ac301 because there are real usecases that suffered from that > change and bug reports as a result of that. > > will-it-scale is certainly worth considering but it is an artificial > testcase. A higher NUMA miss rate is an expected side effect of the > patch because the fallback to a different NUMA node is more likely. The > __GFP_THISNODE side effect is basically introducing node-reclaim > behavior for THPages. Another thing is that there is no good behavior > for everybody. Reclaim locally vs. THP on a remote node is hard to > tell by default. We have discussed that at length and there were some > conclusions. One of them is that we need a numa policy to tell whether > a expensive localility is preferred over remote allocation. Also we > definitely need a better pro-active defragmentation to allow larger > pages on a local node. This is a work in progress and this patch is a > stop gap fix. Btw. the associated discussion is http://lkml.kernel.org/r/20180925120326.24392-1-mhocko@kernel.org -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-27 18:21 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-11-27 18:21 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2269 bytes --] On Tue 27-11-18 19:17:27, Michal Hocko wrote: > On Tue 27-11-18 09:08:50, Linus Torvalds wrote: > > On Mon, Nov 26, 2018 at 10:24 PM kernel test robot > > <rong.a.chen@intel.com> wrote: > > > > > > FYI, we noticed a -61.3% regression of vm-scalability.throughput due > > > to commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for > > > MADV_HUGEPAGE mappings") > > > > Well, that's certainly noticeable and not good. > > > > Andrea, I suspect it might be causing fights with auto numa migration.. > > > > Lots more system time, but also look at this: > > > > > 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit > > > 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates > > > 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local > > > 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss > > > 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other > > > 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated > > > > Should the commit be reverted? Or perhaps at least modified? > > Well, the commit is trying to revert to the behavior before > 5265047ac301 because there are real usecases that suffered from that > change and bug reports as a result of that. > > will-it-scale is certainly worth considering but it is an artificial > testcase. A higher NUMA miss rate is an expected side effect of the > patch because the fallback to a different NUMA node is more likely. The > __GFP_THISNODE side effect is basically introducing node-reclaim > behavior for THPages. Another thing is that there is no good behavior > for everybody. Reclaim locally vs. THP on a remote node is hard to > tell by default. We have discussed that at length and there were some > conclusions. One of them is that we need a numa policy to tell whether > a expensive localility is preferred over remote allocation. Also we > definitely need a better pro-active defragmentation to allow larger > pages on a local node. This is a work in progress and this patch is a > stop gap fix. Btw. the associated discussion is http://lkml.kernel.org/r/20180925120326.24392-1-mhocko(a)kernel.org -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-11-27 17:08 ` Linus Torvalds @ 2018-11-27 19:05 ` Vlastimil Babka -1 siblings, 0 replies; 154+ messages in thread From: Vlastimil Babka @ 2018-11-27 19:05 UTC (permalink / raw) To: Linus Torvalds, rong.a.chen Cc: Andrea Arcangeli, Michal Hocko, s.priebe, alex.williamson, mgorman, zi.yan, rientjes, kirill, Andrew Morton, Linux List Kernel Mailing, lkp On 11/27/18 6:08 PM, Linus Torvalds wrote: > On Mon, Nov 26, 2018 at 10:24 PM kernel test robot > <rong.a.chen@intel.com> wrote: >> >> FYI, we noticed a -61.3% regression of vm-scalability.throughput due >> to commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for >> MADV_HUGEPAGE mappings") > > Well, that's certainly noticeable and not good. > > Andrea, I suspect it might be causing fights with auto numa migration.. > > Lots more system time, but also look at this: > >> 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit >> 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates >> 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local >> 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss >> 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other >> 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated > > Should the commit be reverted? Or perhaps at least modified? This part of the test's config is important: thp_defrag: always While the commit targets MADV_HUGEPAGE mappings (such as Andrea's kvm-qemu usecase), with defrag=always, all mappings behave almost as a MADV_HUGEPAGE mapping. That's no longer a default for some years now and I think nobody recommends it. In the default configuration nothing changes for non-madvise mappings. Vlastimil > Linus > ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-27 19:05 ` Vlastimil Babka 0 siblings, 0 replies; 154+ messages in thread From: Vlastimil Babka @ 2018-11-27 19:05 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 1466 bytes --] On 11/27/18 6:08 PM, Linus Torvalds wrote: > On Mon, Nov 26, 2018 at 10:24 PM kernel test robot > <rong.a.chen@intel.com> wrote: >> >> FYI, we noticed a -61.3% regression of vm-scalability.throughput due >> to commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for >> MADV_HUGEPAGE mappings") > > Well, that's certainly noticeable and not good. > > Andrea, I suspect it might be causing fights with auto numa migration.. > > Lots more system time, but also look at this: > >> 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit >> 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates >> 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local >> 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss >> 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other >> 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated > > Should the commit be reverted? Or perhaps at least modified? This part of the test's config is important: thp_defrag: always While the commit targets MADV_HUGEPAGE mappings (such as Andrea's kvm-qemu usecase), with defrag=always, all mappings behave almost as a MADV_HUGEPAGE mapping. That's no longer a default for some years now and I think nobody recommends it. In the default configuration nothing changes for non-madvise mappings. Vlastimil > Linus > ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-11-27 19:05 ` Vlastimil Babka @ 2018-11-27 19:16 ` Vlastimil Babka -1 siblings, 0 replies; 154+ messages in thread From: Vlastimil Babka @ 2018-11-27 19:16 UTC (permalink / raw) To: Linus Torvalds, rong.a.chen Cc: Andrea Arcangeli, Michal Hocko, s.priebe, alex.williamson, mgorman, zi.yan, rientjes, kirill, Andrew Morton, Linux List Kernel Mailing, lkp On 11/27/18 8:05 PM, Vlastimil Babka wrote: > On 11/27/18 6:08 PM, Linus Torvalds wrote: >> On Mon, Nov 26, 2018 at 10:24 PM kernel test robot >> <rong.a.chen@intel.com> wrote: >>> >>> FYI, we noticed a -61.3% regression of vm-scalability.throughput due >>> to commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for >>> MADV_HUGEPAGE mappings") >> >> Well, that's certainly noticeable and not good. >> >> Andrea, I suspect it might be causing fights with auto numa migration.. >> >> Lots more system time, but also look at this: >> >>> 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit >>> 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates >>> 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local >>> 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss >>> 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other >>> 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated >> >> Should the commit be reverted? Or perhaps at least modified? > > This part of the test's config is important: > > thp_defrag: always > > While the commit targets MADV_HUGEPAGE mappings (such as Andrea's > kvm-qemu usecase), with defrag=always, all mappings behave almost as a > MADV_HUGEPAGE mapping. That's no longer a default for some years now and Specifically, that's 444eb2a449ef ("mm: thp: set THP defrag by default to madvise and add a stall-free defrag option") merged in v4.5. So we might actually hit this regression with 4.4 stable backport... > I think nobody recommends it. In the default configuration nothing > changes for non-madvise mappings. > > Vlastimil > >> Linus >> > ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-27 19:16 ` Vlastimil Babka 0 siblings, 0 replies; 154+ messages in thread From: Vlastimil Babka @ 2018-11-27 19:16 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 1771 bytes --] On 11/27/18 8:05 PM, Vlastimil Babka wrote: > On 11/27/18 6:08 PM, Linus Torvalds wrote: >> On Mon, Nov 26, 2018 at 10:24 PM kernel test robot >> <rong.a.chen@intel.com> wrote: >>> >>> FYI, we noticed a -61.3% regression of vm-scalability.throughput due >>> to commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for >>> MADV_HUGEPAGE mappings") >> >> Well, that's certainly noticeable and not good. >> >> Andrea, I suspect it might be causing fights with auto numa migration.. >> >> Lots more system time, but also look at this: >> >>> 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit >>> 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates >>> 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local >>> 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss >>> 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other >>> 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated >> >> Should the commit be reverted? Or perhaps at least modified? > > This part of the test's config is important: > > thp_defrag: always > > While the commit targets MADV_HUGEPAGE mappings (such as Andrea's > kvm-qemu usecase), with defrag=always, all mappings behave almost as a > MADV_HUGEPAGE mapping. That's no longer a default for some years now and Specifically, that's 444eb2a449ef ("mm: thp: set THP defrag by default to madvise and add a stall-free defrag option") merged in v4.5. So we might actually hit this regression with 4.4 stable backport... > I think nobody recommends it. In the default configuration nothing > changes for non-madvise mappings. > > Vlastimil > >> Linus >> > ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-11-27 17:08 ` Linus Torvalds @ 2018-11-27 20:57 ` Andrea Arcangeli -1 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-11-27 20:57 UTC (permalink / raw) To: Linus Torvalds Cc: rong.a.chen, Michal Hocko, s.priebe, alex.williamson, mgorman, zi.yan, Vlastimil Babka, rientjes, kirill, Andrew Morton, Linux List Kernel Mailing, lkp Hi Linus, On Tue, Nov 27, 2018 at 09:08:50AM -0800, Linus Torvalds wrote: > On Mon, Nov 26, 2018 at 10:24 PM kernel test robot > <rong.a.chen@intel.com> wrote: > > > > FYI, we noticed a -61.3% regression of vm-scalability.throughput due > > to commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for > > MADV_HUGEPAGE mappings") > > Well, that's certainly noticeable and not good. Noticed this email too. This difference can only happen with defrag=always, and that's not the current upstream default. thp_enabled: always thp_defrag: always ^^^^^^^^^^^^^^^^^^ emulates MADV_HUGEPAGE always set > Andrea, I suspect it might be causing fights with auto numa migration.. That MADV_HUGEPAGE causes flights with NUMA balancing is not great indeed, qemu needs NUMA locality too, but then the badness caused by __GFP_THISNODE was a larger regression in the worst case for qemu. When the kernel wants to allocate a THP from node A, if there are no THP generated on node A but there are in node B, they'll be picked from node B now. __GFP_THISNODE previously prevented any THP to be allocated from any node except A. This introduces a higher chance of initial misplacement which NUMA balancing will correct over time, but it should only apply to long lived allocations under MADV_HUGEPAGE. Perhaps the workload here uses short lived allocations and sets defrag=always which is not optimal to begin with? The motivation of the fix, is that the previous code invoked reclaim with __GFP_THISNODE set. That looked insecure and such behavior should only have been possible under a mlock/mempolicy capability. __GFP_THISNODE is like a transient but still privileged mbind for reclaim. Before the fix, __GFP_THISNODE would end up swapping out everything from node A to free 4k pages from node A, despite perhaps there were gigabytes of memory free in node B. That caused severe regression to threaded workloads whose memory spanned more than one NUMA node. So again going back doesn't sounds great for NUMA in general. The vmscalability test is most certainly not including any multithreaded process whose memory doesn't fit in a single NUMA node or we'd see also the other side of the tradeoff. It'd be nice to add such a test to be sure that the old __GFP_THISNODE behavior won't happen again for apps that don't fit in a single node. > Lots more system time, but also look at this: > > > 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit > > 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates > > 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local > > 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss > > 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other > > 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated > > Should the commit be reverted? Or perhaps at least modified? I proposed two solutions, the other one required a new minor feature: __GFP_ONLY_COMPACT. The other solution wouldn't regress like above. The THP utilization ratio would decrease though (it had margin for improvement though). Kirill preferred the __GFP_ONLY_COMPACT, I was mostly neutral because it's a tradeoff. So the short term alternative again would be the alternate patch that does __GFP_THISNODE|GFP_ONLY_COMPACT appended below. There's no particular problem in restricting only compaction to the local node and to skip reclaim entirely during a THP allocation as long as reclaim is skipped entirely. David implemented a hardcoded version of GFP_COMPACTONLY too which was runtime equivalent, but it was hardcoded for THP only the allocator, but it looks less flexible to hardcode it for THP. The current fix you merged is simpler overall and puts us back to a "stable" state without introducing new (minor) features. The below is for further review of the potential alternative (which has still margin for improvement). ======= From: Andrea Arcangeli <aarcange@redhat.com> Subject: [PATCH 1/2] mm: thp: consolidate policy_nodemask call Just a minor cleanup. Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> --- mm/mempolicy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 01f1a14facc4..d6512ef28cde 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -2026,6 +2026,8 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma, goto out; } + nmask = policy_nodemask(gfp, pol); + if (unlikely(IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && hugepage)) { int hpage_node = node; @@ -2043,7 +2045,6 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma, !(pol->flags & MPOL_F_LOCAL)) hpage_node = pol->v.preferred_node; - nmask = policy_nodemask(gfp, pol); if (!nmask || node_isset(hpage_node, *nmask)) { mpol_cond_put(pol); page = __alloc_pages_node(hpage_node, @@ -2052,7 +2053,6 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma, } } - nmask = policy_nodemask(gfp, pol); preferred_nid = policy_node(gfp, pol, node); page = __alloc_pages_nodemask(gfp, order, preferred_nid, nmask); mpol_cond_put(pol); From: Andrea Arcangeli <aarcange@redhat.com> Subject: [PATCH 2/2] mm: thp: fix transparent_hugepage/defrag = madvise || always qemu uses MADV_HUGEPAGE which allows direct compaction (i.e. __GFP_DIRECT_RECLAIM is set). The problem is that direct compaction combined with the NUMA __GFP_THISNODE logic in mempolicy.c is telling reclaim to swap very hard the local node, instead of failing the allocation if there's no THP available in the local node. Such logic was ok until __GFP_THISNODE was added to the THP allocation path even with MPOL_DEFAULT. The idea behind the __GFP_THISNODE addition, is that it is better to provide local memory in PAGE_SIZE units than to use remote NUMA THP backed memory. That largely depends on the remote latency though, on threadrippers for example the overhead is relatively low in my experience. The combination of __GFP_THISNODE and __GFP_DIRECT_RECLAIM results in extremely slow qemu startup with vfio, if the VM is larger than the size of one host NUMA node. This is because it will try very hard to unsuccessfully swapout get_user_pages pinned pages as result of the __GFP_THISNODE being set, instead of falling back to PAGE_SIZE allocations and instead of trying to allocate THP on other nodes (it would be even worse without vfio type1 GUP pins of course, except it'd be swapping heavily instead). It's very easy to reproduce this by setting transparent_hugepage/defrag to "always", even with a simple memhog. 1) This can be fixed by retaining the __GFP_THISNODE logic also for __GFP_DIRECT_RELCAIM by allowing only one compaction run. Not even COMPACT_SKIPPED (i.e. compaction failing because not enough free memory in the zone) should be allowed to invoke reclaim. 2) An alternative is not use __GFP_THISNODE if __GFP_DIRECT_RELCAIM has been set by the caller (i.e. MADV_HUGEPAGE or defrag="always"). That would keep the NUMA locality restriction only when __GFP_DIRECT_RECLAIM is not set by the caller. So THP will be provided from remote nodes if available before falling back to PAGE_SIZE units in the local node, but an app using defrag = always (or madvise with MADV_HUGEPAGE) supposedly prefers that. These are the results of 1) (higher GB/s is better). Finished: 30 GB mapped, 10.188535s elapsed, 2.94GB/s Finished: 34 GB mapped, 12.274777s elapsed, 2.77GB/s Finished: 38 GB mapped, 13.847840s elapsed, 2.74GB/s Finished: 42 GB mapped, 14.288587s elapsed, 2.94GB/s Finished: 30 GB mapped, 8.907367s elapsed, 3.37GB/s Finished: 34 GB mapped, 10.724797s elapsed, 3.17GB/s Finished: 38 GB mapped, 14.272882s elapsed, 2.66GB/s Finished: 42 GB mapped, 13.929525s elapsed, 3.02GB/s These are the results of 2) (higher GB/s is better). Finished: 30 GB mapped, 10.163159s elapsed, 2.95GB/s Finished: 34 GB mapped, 11.806526s elapsed, 2.88GB/s Finished: 38 GB mapped, 10.369081s elapsed, 3.66GB/s Finished: 42 GB mapped, 12.357719s elapsed, 3.40GB/s Finished: 30 GB mapped, 8.251396s elapsed, 3.64GB/s Finished: 34 GB mapped, 12.093030s elapsed, 2.81GB/s Finished: 38 GB mapped, 11.824903s elapsed, 3.21GB/s Finished: 42 GB mapped, 15.950661s elapsed, 2.63GB/s This is current upstream (higher GB/s is better). Finished: 30 GB mapped, 8.821632s elapsed, 3.40GB/s Finished: 34 GB mapped, 341.979543s elapsed, 0.10GB/s Finished: 38 GB mapped, 761.933231s elapsed, 0.05GB/s Finished: 42 GB mapped, 1188.409235s elapsed, 0.04GB/s vfio is a good test because by pinning all memory it avoids the swapping and reclaim only wastes CPU, a memhog based test would created swapout storms and supposedly show a bigger stddev. What is better between 1) and 2) depends on the hardware and on the software. Virtualization EPT/NTP gets a bigger boost from THP as well than host applications. This commit implements 1). Reported-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> --- include/linux/gfp.h | 18 ++++++++++++++++++ mm/mempolicy.c | 12 +++++++++++- mm/page_alloc.c | 4 ++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/include/linux/gfp.h b/include/linux/gfp.h index a6afcec53795..3c04d5d90e6d 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -44,6 +44,7 @@ struct vm_area_struct; #else #define ___GFP_NOLOCKDEP 0 #endif +#define ___GFP_ONLY_COMPACT 0x1000000u /* If the above are modified, __GFP_BITS_SHIFT may need updating */ /* @@ -178,6 +179,21 @@ struct vm_area_struct; * definitely preferable to use the flag rather than opencode endless * loop around allocator. * Using this flag for costly allocations is _highly_ discouraged. + * + * __GFP_ONLY_COMPACT: Only invoke compaction. Do not try to succeed + * the allocation by freeing memory. Never risk to free any + * "PAGE_SIZE" memory unit even if compaction failed specifically + * because of not enough free pages in the zone. This only makes sense + * only in combination with __GFP_THISNODE (enforced with a + * VM_WARN_ON), to restrict the THP allocation in the local node that + * triggered the page fault and fallback into PAGE_SIZE allocations in + * the same node. We don't want to invoke reclaim because there may be + * plenty of free memory already in the local node. More importantly + * there may be even plenty of free THP available in remote nodes so + * we should allocate those if something instead of reclaiming any + * memory in the local node. Implementation detail: set ___GFP_NORETRY + * too so that ___GFP_ONLY_COMPACT only needs to be checked in a slow + * path. */ #define __GFP_IO ((__force gfp_t)___GFP_IO) #define __GFP_FS ((__force gfp_t)___GFP_FS) @@ -187,6 +203,8 @@ struct vm_area_struct; #define __GFP_RETRY_MAYFAIL ((__force gfp_t)___GFP_RETRY_MAYFAIL) #define __GFP_NOFAIL ((__force gfp_t)___GFP_NOFAIL) #define __GFP_NORETRY ((__force gfp_t)___GFP_NORETRY) +#define __GFP_ONLY_COMPACT ((__force gfp_t)(___GFP_NORETRY | \ + ___GFP_ONLY_COMPACT)) /* * Action modifiers diff --git a/mm/mempolicy.c b/mm/mempolicy.c index d6512ef28cde..6bf839f20dcc 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -2047,8 +2047,18 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma, if (!nmask || node_isset(hpage_node, *nmask)) { mpol_cond_put(pol); + /* + * We restricted the allocation to the + * hpage_node so we must use + * __GFP_ONLY_COMPACT to allow at most a + * compaction attempt and not ever get into + * reclaim or it'll swap heavily with + * transparent_hugepage/defrag = always (or + * madvise under MADV_HUGEPAGE). + */ page = __alloc_pages_node(hpage_node, - gfp | __GFP_THISNODE, order); + gfp | __GFP_THISNODE | + __GFP_ONLY_COMPACT, order); goto out; } } diff --git a/mm/page_alloc.c b/mm/page_alloc.c index a790ef4be74e..01a5c2bd0860 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -4144,6 +4144,10 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, */ if (compact_result == COMPACT_DEFERRED) goto nopage; + if (gfp_mask & __GFP_ONLY_COMPACT) { + VM_WARN_ON(!(gfp_mask & __GFP_THISNODE)); + goto nopage; + } /* * Looks like reclaim/compaction is worth trying, but ^ permalink raw reply related [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-27 20:57 ` Andrea Arcangeli 0 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-11-27 20:57 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 12748 bytes --] Hi Linus, On Tue, Nov 27, 2018 at 09:08:50AM -0800, Linus Torvalds wrote: > On Mon, Nov 26, 2018 at 10:24 PM kernel test robot > <rong.a.chen@intel.com> wrote: > > > > FYI, we noticed a -61.3% regression of vm-scalability.throughput due > > to commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for > > MADV_HUGEPAGE mappings") > > Well, that's certainly noticeable and not good. Noticed this email too. This difference can only happen with defrag=always, and that's not the current upstream default. thp_enabled: always thp_defrag: always ^^^^^^^^^^^^^^^^^^ emulates MADV_HUGEPAGE always set > Andrea, I suspect it might be causing fights with auto numa migration.. That MADV_HUGEPAGE causes flights with NUMA balancing is not great indeed, qemu needs NUMA locality too, but then the badness caused by __GFP_THISNODE was a larger regression in the worst case for qemu. When the kernel wants to allocate a THP from node A, if there are no THP generated on node A but there are in node B, they'll be picked from node B now. __GFP_THISNODE previously prevented any THP to be allocated from any node except A. This introduces a higher chance of initial misplacement which NUMA balancing will correct over time, but it should only apply to long lived allocations under MADV_HUGEPAGE. Perhaps the workload here uses short lived allocations and sets defrag=always which is not optimal to begin with? The motivation of the fix, is that the previous code invoked reclaim with __GFP_THISNODE set. That looked insecure and such behavior should only have been possible under a mlock/mempolicy capability. __GFP_THISNODE is like a transient but still privileged mbind for reclaim. Before the fix, __GFP_THISNODE would end up swapping out everything from node A to free 4k pages from node A, despite perhaps there were gigabytes of memory free in node B. That caused severe regression to threaded workloads whose memory spanned more than one NUMA node. So again going back doesn't sounds great for NUMA in general. The vmscalability test is most certainly not including any multithreaded process whose memory doesn't fit in a single NUMA node or we'd see also the other side of the tradeoff. It'd be nice to add such a test to be sure that the old __GFP_THISNODE behavior won't happen again for apps that don't fit in a single node. > Lots more system time, but also look at this: > > > 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit > > 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates > > 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local > > 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss > > 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other > > 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated > > Should the commit be reverted? Or perhaps at least modified? I proposed two solutions, the other one required a new minor feature: __GFP_ONLY_COMPACT. The other solution wouldn't regress like above. The THP utilization ratio would decrease though (it had margin for improvement though). Kirill preferred the __GFP_ONLY_COMPACT, I was mostly neutral because it's a tradeoff. So the short term alternative again would be the alternate patch that does __GFP_THISNODE|GFP_ONLY_COMPACT appended below. There's no particular problem in restricting only compaction to the local node and to skip reclaim entirely during a THP allocation as long as reclaim is skipped entirely. David implemented a hardcoded version of GFP_COMPACTONLY too which was runtime equivalent, but it was hardcoded for THP only the allocator, but it looks less flexible to hardcode it for THP. The current fix you merged is simpler overall and puts us back to a "stable" state without introducing new (minor) features. The below is for further review of the potential alternative (which has still margin for improvement). ======= From: Andrea Arcangeli <aarcange@redhat.com> Subject: [PATCH 1/2] mm: thp: consolidate policy_nodemask call Just a minor cleanup. Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> --- mm/mempolicy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 01f1a14facc4..d6512ef28cde 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -2026,6 +2026,8 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma, goto out; } + nmask = policy_nodemask(gfp, pol); + if (unlikely(IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && hugepage)) { int hpage_node = node; @@ -2043,7 +2045,6 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma, !(pol->flags & MPOL_F_LOCAL)) hpage_node = pol->v.preferred_node; - nmask = policy_nodemask(gfp, pol); if (!nmask || node_isset(hpage_node, *nmask)) { mpol_cond_put(pol); page = __alloc_pages_node(hpage_node, @@ -2052,7 +2053,6 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma, } } - nmask = policy_nodemask(gfp, pol); preferred_nid = policy_node(gfp, pol, node); page = __alloc_pages_nodemask(gfp, order, preferred_nid, nmask); mpol_cond_put(pol); From: Andrea Arcangeli <aarcange@redhat.com> Subject: [PATCH 2/2] mm: thp: fix transparent_hugepage/defrag = madvise || always qemu uses MADV_HUGEPAGE which allows direct compaction (i.e. __GFP_DIRECT_RECLAIM is set). The problem is that direct compaction combined with the NUMA __GFP_THISNODE logic in mempolicy.c is telling reclaim to swap very hard the local node, instead of failing the allocation if there's no THP available in the local node. Such logic was ok until __GFP_THISNODE was added to the THP allocation path even with MPOL_DEFAULT. The idea behind the __GFP_THISNODE addition, is that it is better to provide local memory in PAGE_SIZE units than to use remote NUMA THP backed memory. That largely depends on the remote latency though, on threadrippers for example the overhead is relatively low in my experience. The combination of __GFP_THISNODE and __GFP_DIRECT_RECLAIM results in extremely slow qemu startup with vfio, if the VM is larger than the size of one host NUMA node. This is because it will try very hard to unsuccessfully swapout get_user_pages pinned pages as result of the __GFP_THISNODE being set, instead of falling back to PAGE_SIZE allocations and instead of trying to allocate THP on other nodes (it would be even worse without vfio type1 GUP pins of course, except it'd be swapping heavily instead). It's very easy to reproduce this by setting transparent_hugepage/defrag to "always", even with a simple memhog. 1) This can be fixed by retaining the __GFP_THISNODE logic also for __GFP_DIRECT_RELCAIM by allowing only one compaction run. Not even COMPACT_SKIPPED (i.e. compaction failing because not enough free memory in the zone) should be allowed to invoke reclaim. 2) An alternative is not use __GFP_THISNODE if __GFP_DIRECT_RELCAIM has been set by the caller (i.e. MADV_HUGEPAGE or defrag="always"). That would keep the NUMA locality restriction only when __GFP_DIRECT_RECLAIM is not set by the caller. So THP will be provided from remote nodes if available before falling back to PAGE_SIZE units in the local node, but an app using defrag = always (or madvise with MADV_HUGEPAGE) supposedly prefers that. These are the results of 1) (higher GB/s is better). Finished: 30 GB mapped, 10.188535s elapsed, 2.94GB/s Finished: 34 GB mapped, 12.274777s elapsed, 2.77GB/s Finished: 38 GB mapped, 13.847840s elapsed, 2.74GB/s Finished: 42 GB mapped, 14.288587s elapsed, 2.94GB/s Finished: 30 GB mapped, 8.907367s elapsed, 3.37GB/s Finished: 34 GB mapped, 10.724797s elapsed, 3.17GB/s Finished: 38 GB mapped, 14.272882s elapsed, 2.66GB/s Finished: 42 GB mapped, 13.929525s elapsed, 3.02GB/s These are the results of 2) (higher GB/s is better). Finished: 30 GB mapped, 10.163159s elapsed, 2.95GB/s Finished: 34 GB mapped, 11.806526s elapsed, 2.88GB/s Finished: 38 GB mapped, 10.369081s elapsed, 3.66GB/s Finished: 42 GB mapped, 12.357719s elapsed, 3.40GB/s Finished: 30 GB mapped, 8.251396s elapsed, 3.64GB/s Finished: 34 GB mapped, 12.093030s elapsed, 2.81GB/s Finished: 38 GB mapped, 11.824903s elapsed, 3.21GB/s Finished: 42 GB mapped, 15.950661s elapsed, 2.63GB/s This is current upstream (higher GB/s is better). Finished: 30 GB mapped, 8.821632s elapsed, 3.40GB/s Finished: 34 GB mapped, 341.979543s elapsed, 0.10GB/s Finished: 38 GB mapped, 761.933231s elapsed, 0.05GB/s Finished: 42 GB mapped, 1188.409235s elapsed, 0.04GB/s vfio is a good test because by pinning all memory it avoids the swapping and reclaim only wastes CPU, a memhog based test would created swapout storms and supposedly show a bigger stddev. What is better between 1) and 2) depends on the hardware and on the software. Virtualization EPT/NTP gets a bigger boost from THP as well than host applications. This commit implements 1). Reported-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> --- include/linux/gfp.h | 18 ++++++++++++++++++ mm/mempolicy.c | 12 +++++++++++- mm/page_alloc.c | 4 ++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/include/linux/gfp.h b/include/linux/gfp.h index a6afcec53795..3c04d5d90e6d 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -44,6 +44,7 @@ struct vm_area_struct; #else #define ___GFP_NOLOCKDEP 0 #endif +#define ___GFP_ONLY_COMPACT 0x1000000u /* If the above are modified, __GFP_BITS_SHIFT may need updating */ /* @@ -178,6 +179,21 @@ struct vm_area_struct; * definitely preferable to use the flag rather than opencode endless * loop around allocator. * Using this flag for costly allocations is _highly_ discouraged. + * + * __GFP_ONLY_COMPACT: Only invoke compaction. Do not try to succeed + * the allocation by freeing memory. Never risk to free any + * "PAGE_SIZE" memory unit even if compaction failed specifically + * because of not enough free pages in the zone. This only makes sense + * only in combination with __GFP_THISNODE (enforced with a + * VM_WARN_ON), to restrict the THP allocation in the local node that + * triggered the page fault and fallback into PAGE_SIZE allocations in + * the same node. We don't want to invoke reclaim because there may be + * plenty of free memory already in the local node. More importantly + * there may be even plenty of free THP available in remote nodes so + * we should allocate those if something instead of reclaiming any + * memory in the local node. Implementation detail: set ___GFP_NORETRY + * too so that ___GFP_ONLY_COMPACT only needs to be checked in a slow + * path. */ #define __GFP_IO ((__force gfp_t)___GFP_IO) #define __GFP_FS ((__force gfp_t)___GFP_FS) @@ -187,6 +203,8 @@ struct vm_area_struct; #define __GFP_RETRY_MAYFAIL ((__force gfp_t)___GFP_RETRY_MAYFAIL) #define __GFP_NOFAIL ((__force gfp_t)___GFP_NOFAIL) #define __GFP_NORETRY ((__force gfp_t)___GFP_NORETRY) +#define __GFP_ONLY_COMPACT ((__force gfp_t)(___GFP_NORETRY | \ + ___GFP_ONLY_COMPACT)) /* * Action modifiers diff --git a/mm/mempolicy.c b/mm/mempolicy.c index d6512ef28cde..6bf839f20dcc 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -2047,8 +2047,18 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma, if (!nmask || node_isset(hpage_node, *nmask)) { mpol_cond_put(pol); + /* + * We restricted the allocation to the + * hpage_node so we must use + * __GFP_ONLY_COMPACT to allow at most a + * compaction attempt and not ever get into + * reclaim or it'll swap heavily with + * transparent_hugepage/defrag = always (or + * madvise under MADV_HUGEPAGE). + */ page = __alloc_pages_node(hpage_node, - gfp | __GFP_THISNODE, order); + gfp | __GFP_THISNODE | + __GFP_ONLY_COMPACT, order); goto out; } } diff --git a/mm/page_alloc.c b/mm/page_alloc.c index a790ef4be74e..01a5c2bd0860 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -4144,6 +4144,10 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, */ if (compact_result == COMPACT_DEFERRED) goto nopage; + if (gfp_mask & __GFP_ONLY_COMPACT) { + VM_WARN_ON(!(gfp_mask & __GFP_THISNODE)); + goto nopage; + } /* * Looks like reclaim/compaction is worth trying, but ^ permalink raw reply related [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-11-27 20:57 ` Andrea Arcangeli @ 2018-11-27 22:50 ` Linus Torvalds -1 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-11-27 22:50 UTC (permalink / raw) To: Andrea Arcangeli Cc: rong.a.chen, Michal Hocko, s.priebe, alex.williamson, mgorman, zi.yan, Vlastimil Babka, rientjes, kirill, Andrew Morton, Linux List Kernel Mailing, lkp On Tue, Nov 27, 2018 at 12:57 PM Andrea Arcangeli <aarcange@redhat.com> wrote: > > This difference can only happen with defrag=always, and that's not the > current upstream default. Ok, thanks. That makes it a bit less critical. > That MADV_HUGEPAGE causes flights with NUMA balancing is not great > indeed, qemu needs NUMA locality too, but then the badness caused by > __GFP_THISNODE was a larger regression in the worst case for qemu. [...] > So the short term alternative again would be the alternate patch that > does __GFP_THISNODE|GFP_ONLY_COMPACT appended below. Sounds like we should probably do this. Particularly since Vlastimil pointed out that we'd otherwise have issues with the back-port for 4.4 where that "defrag=always" was the default. The patch doesn't look horrible, and it directly addresses this particular issue. Is there some reason we wouldn't want to do it? Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-27 22:50 ` Linus Torvalds 0 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-11-27 22:50 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 936 bytes --] On Tue, Nov 27, 2018 at 12:57 PM Andrea Arcangeli <aarcange@redhat.com> wrote: > > This difference can only happen with defrag=always, and that's not the > current upstream default. Ok, thanks. That makes it a bit less critical. > That MADV_HUGEPAGE causes flights with NUMA balancing is not great > indeed, qemu needs NUMA locality too, but then the badness caused by > __GFP_THISNODE was a larger regression in the worst case for qemu. [...] > So the short term alternative again would be the alternate patch that > does __GFP_THISNODE|GFP_ONLY_COMPACT appended below. Sounds like we should probably do this. Particularly since Vlastimil pointed out that we'd otherwise have issues with the back-port for 4.4 where that "defrag=always" was the default. The patch doesn't look horrible, and it directly addresses this particular issue. Is there some reason we wouldn't want to do it? Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-11-27 22:50 ` Linus Torvalds @ 2018-11-28 6:30 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-11-28 6:30 UTC (permalink / raw) To: Linus Torvalds Cc: Andrea Arcangeli, rong.a.chen, s.priebe, alex.williamson, mgorman, zi.yan, Vlastimil Babka, rientjes, kirill, Andrew Morton, Linux List Kernel Mailing, lkp On Tue 27-11-18 14:50:05, Linus Torvalds wrote: > On Tue, Nov 27, 2018 at 12:57 PM Andrea Arcangeli <aarcange@redhat.com> wrote: > > > > This difference can only happen with defrag=always, and that's not the > > current upstream default. > > Ok, thanks. That makes it a bit less critical. > > > That MADV_HUGEPAGE causes flights with NUMA balancing is not great > > indeed, qemu needs NUMA locality too, but then the badness caused by > > __GFP_THISNODE was a larger regression in the worst case for qemu. > [...] > > So the short term alternative again would be the alternate patch that > > does __GFP_THISNODE|GFP_ONLY_COMPACT appended below. > > Sounds like we should probably do this. Particularly since Vlastimil > pointed out that we'd otherwise have issues with the back-port for 4.4 > where that "defrag=always" was the default. > > The patch doesn't look horrible, and it directly addresses this > particular issue. > > Is there some reason we wouldn't want to do it? We have discussed it previously and the biggest concern was that it introduces a new GFP flag with a very weird and one-off semantic. Anytime we have done that in the past it basically kicked back because people have started to use such a flag and any further changes were really hard to do. So I would really prefer some more systematic solution. And I believe we can do that here. MADV_HUGEPAGE (resp. THP always enabled) has gained a local memory policy with the patch which got effectively reverted. I do believe that conflating "I want THP" with "I want them local" is just wrong from the API point of view. There are different classes of usecases which obviously disagree on the later. So I believe that a long term solution should introduce a MPOL_NODE_RECLAIM kind of policy. It would effectively reclaim local nodes (within NODE_RECLAIM distance) before falling to other nodes. Apart from that we need a less disruptive reclaim driven by compaction and Mel is already working on that AFAIK. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-28 6:30 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-11-28 6:30 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2056 bytes --] On Tue 27-11-18 14:50:05, Linus Torvalds wrote: > On Tue, Nov 27, 2018 at 12:57 PM Andrea Arcangeli <aarcange@redhat.com> wrote: > > > > This difference can only happen with defrag=always, and that's not the > > current upstream default. > > Ok, thanks. That makes it a bit less critical. > > > That MADV_HUGEPAGE causes flights with NUMA balancing is not great > > indeed, qemu needs NUMA locality too, but then the badness caused by > > __GFP_THISNODE was a larger regression in the worst case for qemu. > [...] > > So the short term alternative again would be the alternate patch that > > does __GFP_THISNODE|GFP_ONLY_COMPACT appended below. > > Sounds like we should probably do this. Particularly since Vlastimil > pointed out that we'd otherwise have issues with the back-port for 4.4 > where that "defrag=always" was the default. > > The patch doesn't look horrible, and it directly addresses this > particular issue. > > Is there some reason we wouldn't want to do it? We have discussed it previously and the biggest concern was that it introduces a new GFP flag with a very weird and one-off semantic. Anytime we have done that in the past it basically kicked back because people have started to use such a flag and any further changes were really hard to do. So I would really prefer some more systematic solution. And I believe we can do that here. MADV_HUGEPAGE (resp. THP always enabled) has gained a local memory policy with the patch which got effectively reverted. I do believe that conflating "I want THP" with "I want them local" is just wrong from the API point of view. There are different classes of usecases which obviously disagree on the later. So I believe that a long term solution should introduce a MPOL_NODE_RECLAIM kind of policy. It would effectively reclaim local nodes (within NODE_RECLAIM distance) before falling to other nodes. Apart from that we need a less disruptive reclaim driven by compaction and Mel is already working on that AFAIK. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-11-27 20:57 ` Andrea Arcangeli @ 2018-11-28 3:20 ` Huang, Ying -1 siblings, 0 replies; 154+ messages in thread From: Huang, Ying @ 2018-11-28 3:20 UTC (permalink / raw) To: Andrea Arcangeli Cc: Linus Torvalds, Michal Hocko, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, rientjes, kirill, Andrew Morton, zi.yan, Vlastimil Babka Andrea Arcangeli <aarcange@redhat.com> writes: > Hi Linus, > > On Tue, Nov 27, 2018 at 09:08:50AM -0800, Linus Torvalds wrote: >> On Mon, Nov 26, 2018 at 10:24 PM kernel test robot >> <rong.a.chen@intel.com> wrote: >> > >> > FYI, we noticed a -61.3% regression of vm-scalability.throughput due >> > to commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for >> > MADV_HUGEPAGE mappings") >> >> Well, that's certainly noticeable and not good. > > Noticed this email too. > > This difference can only happen with defrag=always, and that's not the > current upstream default. > > thp_enabled: always > thp_defrag: always > ^^^^^^^^^^^^^^^^^^ emulates MADV_HUGEPAGE always set > >> Andrea, I suspect it might be causing fights with auto numa migration.. > > That MADV_HUGEPAGE causes flights with NUMA balancing is not great > indeed, qemu needs NUMA locality too, but then the badness caused by > __GFP_THISNODE was a larger regression in the worst case for qemu. > > When the kernel wants to allocate a THP from node A, if there are no > THP generated on node A but there are in node B, they'll be picked from > node B now. > > __GFP_THISNODE previously prevented any THP to be allocated from any > node except A. This introduces a higher chance of initial misplacement > which NUMA balancing will correct over time, but it should only apply > to long lived allocations under MADV_HUGEPAGE. Perhaps the workload > here uses short lived allocations and sets defrag=always which is not > optimal to begin with? > > The motivation of the fix, is that the previous code invoked reclaim > with __GFP_THISNODE set. That looked insecure and such behavior should > only have been possible under a mlock/mempolicy > capability. __GFP_THISNODE is like a transient but still privileged > mbind for reclaim. > > Before the fix, __GFP_THISNODE would end up swapping out everything > from node A to free 4k pages from node A, despite perhaps there were > gigabytes of memory free in node B. That caused severe regression to > threaded workloads whose memory spanned more than one NUMA node. So > again going back doesn't sounds great for NUMA in general. > > The vmscalability test is most certainly not including any > multithreaded process whose memory doesn't fit in a single NUMA node > or we'd see also the other side of the tradeoff. It'd be nice to add > such a test to be sure that the old __GFP_THISNODE behavior won't > happen again for apps that don't fit in a single node. The test case is to test swap subsystem. Where tens (32 in test job) processes are run to eat memory to trigger to swap to NVMe disk. The memory size to eat is almost same in this commit and its parent. But I found the swap triggered is much more for this commit. 70934968 ± 10% +51.7% 1.076e+08 ± 3% proc-vmstat.pswpout One possibility is that for parent commit, some processes exit much earlier than other processes, so the total memory requirement of the whole system is much lower. So I dig more on test log and found, For the parent commit, $ grep 'usecs =' vm-scalability 24573771360 bytes / 13189705 usecs = 1819435 KB/s 24573771360 bytes / 13853913 usecs = 1732205 KB/s 24573771360 bytes / 42953388 usecs = 558694 KB/s 24573771360 bytes / 52782761 usecs = 454652 KB/s 24573771360 bytes / 84026989 usecs = 285596 KB/s 24573771360 bytes / 111677310 usecs = 214885 KB/s 24573771360 bytes / 146084698 usecs = 164273 KB/s 24573771360 bytes / 146978329 usecs = 163274 KB/s 24573771360 bytes / 149371224 usecs = 160658 KB/s 24573771360 bytes / 162892070 usecs = 147323 KB/s 24573771360 bytes / 177949001 usecs = 134857 KB/s 24573771360 bytes / 181729992 usecs = 132052 KB/s 24573771360 bytes / 189812698 usecs = 126428 KB/s 24573771360 bytes / 190992698 usecs = 125647 KB/s 24573771360 bytes / 200039238 usecs = 119965 KB/s 24573771360 bytes / 201254461 usecs = 119241 KB/s 24573771360 bytes / 202825077 usecs = 118317 KB/s 24573771360 bytes / 203441285 usecs = 117959 KB/s 24573771360 bytes / 205378150 usecs = 116847 KB/s 24573771360 bytes / 204840555 usecs = 117153 KB/s 24573771360 bytes / 206235458 usecs = 116361 KB/s 24573771360 bytes / 206419877 usecs = 116257 KB/s 24573771360 bytes / 206619347 usecs = 116145 KB/s 24573771360 bytes / 206942267 usecs = 115963 KB/s 24573771360 bytes / 210289229 usecs = 114118 KB/s 24573771360 bytes / 210504531 usecs = 114001 KB/s 24573771360 bytes / 210521351 usecs = 113992 KB/s 24573771360 bytes / 211012852 usecs = 113726 KB/s 24573771360 bytes / 211547509 usecs = 113439 KB/s 24573771360 bytes / 212179521 usecs = 113101 KB/s 24573771360 bytes / 212907825 usecs = 112714 KB/s 24573771360 bytes / 215558786 usecs = 111328 KB/s For this commit, $ grep 'usecs =' vm-scalability 24573681072 bytes / 203705073 usecs = 117806 KB/s 24573681072 bytes / 216146130 usecs = 111025 KB/s 24573681072 bytes / 257234408 usecs = 93291 KB/s 24573681072 bytes / 259530715 usecs = 92465 KB/s 24573681072 bytes / 261335046 usecs = 91827 KB/s 24573681072 bytes / 260134706 usecs = 92251 KB/s 24573681072 bytes / 258848653 usecs = 92709 KB/s 24573681072 bytes / 259889050 usecs = 92338 KB/s 24573681072 bytes / 265457907 usecs = 90401 KB/s 24573681072 bytes / 261698183 usecs = 91700 KB/s 24573681072 bytes / 266806783 usecs = 89944 KB/s 24573681072 bytes / 273096611 usecs = 87872 KB/s 24573681072 bytes / 273601276 usecs = 87710 KB/s 24573681072 bytes / 276132454 usecs = 86906 KB/s 24573681072 bytes / 274162852 usecs = 87530 KB/s 24573681072 bytes / 277901662 usecs = 86353 KB/s 24573681072 bytes / 282373557 usecs = 84985 KB/s 24573681072 bytes / 278202538 usecs = 86259 KB/s 24573681072 bytes / 283311157 usecs = 84704 KB/s 24573681072 bytes / 284181483 usecs = 84445 KB/s 24573681072 bytes / 283331985 usecs = 84698 KB/s 24573681072 bytes / 284573067 usecs = 84328 KB/s 24573681072 bytes / 277832459 usecs = 86374 KB/s 24573681072 bytes / 284753391 usecs = 84275 KB/s 24573681072 bytes / 287701035 usecs = 83412 KB/s 24573681072 bytes / 287816910 usecs = 83378 KB/s 24573681072 bytes / 287871244 usecs = 83362 KB/s 24573681072 bytes / 288322443 usecs = 83232 KB/s 24573681072 bytes / 288750156 usecs = 83108 KB/s 24573681072 bytes / 289595079 usecs = 82866 KB/s 24573681072 bytes / 289741926 usecs = 82824 KB/s 24573681072 bytes / 290746427 usecs = 82538 KB/s From the above data, for the parent commit 3 processes exited within 14s, another 3 exited within 100s. For this commit, the first process exited at 203s. That is, this commit makes memory allocation more fair among processes, so that processes proceeded at more similar speed. But this raises system memory footprint too, so triggered much more swap, thus lower benchmark score. In general, memory allocation fairness among processes should be a good thing. So I think the report should have been a "performance improvement" instead of "performance regression". Best Regards, Huang, Ying ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-28 3:20 ` Huang, Ying 0 siblings, 0 replies; 154+ messages in thread From: Huang, Ying @ 2018-11-28 3:20 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 7066 bytes --] Andrea Arcangeli <aarcange@redhat.com> writes: > Hi Linus, > > On Tue, Nov 27, 2018 at 09:08:50AM -0800, Linus Torvalds wrote: >> On Mon, Nov 26, 2018 at 10:24 PM kernel test robot >> <rong.a.chen@intel.com> wrote: >> > >> > FYI, we noticed a -61.3% regression of vm-scalability.throughput due >> > to commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for >> > MADV_HUGEPAGE mappings") >> >> Well, that's certainly noticeable and not good. > > Noticed this email too. > > This difference can only happen with defrag=always, and that's not the > current upstream default. > > thp_enabled: always > thp_defrag: always > ^^^^^^^^^^^^^^^^^^ emulates MADV_HUGEPAGE always set > >> Andrea, I suspect it might be causing fights with auto numa migration.. > > That MADV_HUGEPAGE causes flights with NUMA balancing is not great > indeed, qemu needs NUMA locality too, but then the badness caused by > __GFP_THISNODE was a larger regression in the worst case for qemu. > > When the kernel wants to allocate a THP from node A, if there are no > THP generated on node A but there are in node B, they'll be picked from > node B now. > > __GFP_THISNODE previously prevented any THP to be allocated from any > node except A. This introduces a higher chance of initial misplacement > which NUMA balancing will correct over time, but it should only apply > to long lived allocations under MADV_HUGEPAGE. Perhaps the workload > here uses short lived allocations and sets defrag=always which is not > optimal to begin with? > > The motivation of the fix, is that the previous code invoked reclaim > with __GFP_THISNODE set. That looked insecure and such behavior should > only have been possible under a mlock/mempolicy > capability. __GFP_THISNODE is like a transient but still privileged > mbind for reclaim. > > Before the fix, __GFP_THISNODE would end up swapping out everything > from node A to free 4k pages from node A, despite perhaps there were > gigabytes of memory free in node B. That caused severe regression to > threaded workloads whose memory spanned more than one NUMA node. So > again going back doesn't sounds great for NUMA in general. > > The vmscalability test is most certainly not including any > multithreaded process whose memory doesn't fit in a single NUMA node > or we'd see also the other side of the tradeoff. It'd be nice to add > such a test to be sure that the old __GFP_THISNODE behavior won't > happen again for apps that don't fit in a single node. The test case is to test swap subsystem. Where tens (32 in test job) processes are run to eat memory to trigger to swap to NVMe disk. The memory size to eat is almost same in this commit and its parent. But I found the swap triggered is much more for this commit. 70934968 ± 10% +51.7% 1.076e+08 ± 3% proc-vmstat.pswpout One possibility is that for parent commit, some processes exit much earlier than other processes, so the total memory requirement of the whole system is much lower. So I dig more on test log and found, For the parent commit, $ grep 'usecs =' vm-scalability 24573771360 bytes / 13189705 usecs = 1819435 KB/s 24573771360 bytes / 13853913 usecs = 1732205 KB/s 24573771360 bytes / 42953388 usecs = 558694 KB/s 24573771360 bytes / 52782761 usecs = 454652 KB/s 24573771360 bytes / 84026989 usecs = 285596 KB/s 24573771360 bytes / 111677310 usecs = 214885 KB/s 24573771360 bytes / 146084698 usecs = 164273 KB/s 24573771360 bytes / 146978329 usecs = 163274 KB/s 24573771360 bytes / 149371224 usecs = 160658 KB/s 24573771360 bytes / 162892070 usecs = 147323 KB/s 24573771360 bytes / 177949001 usecs = 134857 KB/s 24573771360 bytes / 181729992 usecs = 132052 KB/s 24573771360 bytes / 189812698 usecs = 126428 KB/s 24573771360 bytes / 190992698 usecs = 125647 KB/s 24573771360 bytes / 200039238 usecs = 119965 KB/s 24573771360 bytes / 201254461 usecs = 119241 KB/s 24573771360 bytes / 202825077 usecs = 118317 KB/s 24573771360 bytes / 203441285 usecs = 117959 KB/s 24573771360 bytes / 205378150 usecs = 116847 KB/s 24573771360 bytes / 204840555 usecs = 117153 KB/s 24573771360 bytes / 206235458 usecs = 116361 KB/s 24573771360 bytes / 206419877 usecs = 116257 KB/s 24573771360 bytes / 206619347 usecs = 116145 KB/s 24573771360 bytes / 206942267 usecs = 115963 KB/s 24573771360 bytes / 210289229 usecs = 114118 KB/s 24573771360 bytes / 210504531 usecs = 114001 KB/s 24573771360 bytes / 210521351 usecs = 113992 KB/s 24573771360 bytes / 211012852 usecs = 113726 KB/s 24573771360 bytes / 211547509 usecs = 113439 KB/s 24573771360 bytes / 212179521 usecs = 113101 KB/s 24573771360 bytes / 212907825 usecs = 112714 KB/s 24573771360 bytes / 215558786 usecs = 111328 KB/s For this commit, $ grep 'usecs =' vm-scalability 24573681072 bytes / 203705073 usecs = 117806 KB/s 24573681072 bytes / 216146130 usecs = 111025 KB/s 24573681072 bytes / 257234408 usecs = 93291 KB/s 24573681072 bytes / 259530715 usecs = 92465 KB/s 24573681072 bytes / 261335046 usecs = 91827 KB/s 24573681072 bytes / 260134706 usecs = 92251 KB/s 24573681072 bytes / 258848653 usecs = 92709 KB/s 24573681072 bytes / 259889050 usecs = 92338 KB/s 24573681072 bytes / 265457907 usecs = 90401 KB/s 24573681072 bytes / 261698183 usecs = 91700 KB/s 24573681072 bytes / 266806783 usecs = 89944 KB/s 24573681072 bytes / 273096611 usecs = 87872 KB/s 24573681072 bytes / 273601276 usecs = 87710 KB/s 24573681072 bytes / 276132454 usecs = 86906 KB/s 24573681072 bytes / 274162852 usecs = 87530 KB/s 24573681072 bytes / 277901662 usecs = 86353 KB/s 24573681072 bytes / 282373557 usecs = 84985 KB/s 24573681072 bytes / 278202538 usecs = 86259 KB/s 24573681072 bytes / 283311157 usecs = 84704 KB/s 24573681072 bytes / 284181483 usecs = 84445 KB/s 24573681072 bytes / 283331985 usecs = 84698 KB/s 24573681072 bytes / 284573067 usecs = 84328 KB/s 24573681072 bytes / 277832459 usecs = 86374 KB/s 24573681072 bytes / 284753391 usecs = 84275 KB/s 24573681072 bytes / 287701035 usecs = 83412 KB/s 24573681072 bytes / 287816910 usecs = 83378 KB/s 24573681072 bytes / 287871244 usecs = 83362 KB/s 24573681072 bytes / 288322443 usecs = 83232 KB/s 24573681072 bytes / 288750156 usecs = 83108 KB/s 24573681072 bytes / 289595079 usecs = 82866 KB/s 24573681072 bytes / 289741926 usecs = 82824 KB/s 24573681072 bytes / 290746427 usecs = 82538 KB/s >From the above data, for the parent commit 3 processes exited within 14s, another 3 exited within 100s. For this commit, the first process exited at 203s. That is, this commit makes memory allocation more fair among processes, so that processes proceeded at more similar speed. But this raises system memory footprint too, so triggered much more swap, thus lower benchmark score. In general, memory allocation fairness among processes should be a good thing. So I think the report should have been a "performance improvement" instead of "performance regression". Best Regards, Huang, Ying ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-11-28 3:20 ` Huang, Ying @ 2018-11-28 16:48 ` Linus Torvalds -1 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-11-28 16:48 UTC (permalink / raw) To: ying.huang Cc: Andrea Arcangeli, Michal Hocko, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, rientjes, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Tue, Nov 27, 2018 at 7:20 PM Huang, Ying <ying.huang@intel.com> wrote: > > From the above data, for the parent commit 3 processes exited within > 14s, another 3 exited within 100s. For this commit, the first process > exited at 203s. That is, this commit makes memory allocation more fair > among processes, so that processes proceeded at more similar speed. But > this raises system memory footprint too, so triggered much more swap, > thus lower benchmark score. > > In general, memory allocation fairness among processes should be a good > thing. So I think the report should have been a "performance > improvement" instead of "performance regression". Hey, when you put it that way... Let's ignore this issue for now, and see if it shows up in some real workload and people complain. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-28 16:48 ` Linus Torvalds 0 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-11-28 16:48 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 844 bytes --] On Tue, Nov 27, 2018 at 7:20 PM Huang, Ying <ying.huang@intel.com> wrote: > > From the above data, for the parent commit 3 processes exited within > 14s, another 3 exited within 100s. For this commit, the first process > exited at 203s. That is, this commit makes memory allocation more fair > among processes, so that processes proceeded at more similar speed. But > this raises system memory footprint too, so triggered much more swap, > thus lower benchmark score. > > In general, memory allocation fairness among processes should be a good > thing. So I think the report should have been a "performance > improvement" instead of "performance regression". Hey, when you put it that way... Let's ignore this issue for now, and see if it shows up in some real workload and people complain. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-11-28 16:48 ` Linus Torvalds @ 2018-11-28 18:39 ` Andrea Arcangeli -1 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-11-28 18:39 UTC (permalink / raw) To: Linus Torvalds Cc: ying.huang, Michal Hocko, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, rientjes, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Wed, Nov 28, 2018 at 08:48:46AM -0800, Linus Torvalds wrote: > On Tue, Nov 27, 2018 at 7:20 PM Huang, Ying <ying.huang@intel.com> wrote: > > > > From the above data, for the parent commit 3 processes exited within > > 14s, another 3 exited within 100s. For this commit, the first process > > exited at 203s. That is, this commit makes memory allocation more fair > > among processes, so that processes proceeded at more similar speed. But > > this raises system memory footprint too, so triggered much more swap, > > thus lower benchmark score. Ok so it was the previous more unfair behavior that increased overall performance. It was also unclear to me that this was a full swap storm test. > > In general, memory allocation fairness among processes should be a good > > thing. So I think the report should have been a "performance > > improvement" instead of "performance regression". > > Hey, when you put it that way... > > Let's ignore this issue for now, and see if it shows up in some real > workload and people complain. Agreed. With regard to the other question about 4.4 backports, 4.0 didn't have __GFP_THISNODE, so this will still revert to the previous behavior and it won't risk to land into uncharted territory. So there should be no major concern for the backports. We should still work on improving this area, for now the idea was to apply a strict hotfix that would just revert to the previous behavior without introducing new features and new APIs, that would also have the side effect of diminishing THP utilization under MADV_HUGEPAGE. Thanks! Andrea ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-28 18:39 ` Andrea Arcangeli 0 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-11-28 18:39 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 1624 bytes --] On Wed, Nov 28, 2018 at 08:48:46AM -0800, Linus Torvalds wrote: > On Tue, Nov 27, 2018 at 7:20 PM Huang, Ying <ying.huang@intel.com> wrote: > > > > From the above data, for the parent commit 3 processes exited within > > 14s, another 3 exited within 100s. For this commit, the first process > > exited at 203s. That is, this commit makes memory allocation more fair > > among processes, so that processes proceeded at more similar speed. But > > this raises system memory footprint too, so triggered much more swap, > > thus lower benchmark score. Ok so it was the previous more unfair behavior that increased overall performance. It was also unclear to me that this was a full swap storm test. > > In general, memory allocation fairness among processes should be a good > > thing. So I think the report should have been a "performance > > improvement" instead of "performance regression". > > Hey, when you put it that way... > > Let's ignore this issue for now, and see if it shows up in some real > workload and people complain. Agreed. With regard to the other question about 4.4 backports, 4.0 didn't have __GFP_THISNODE, so this will still revert to the previous behavior and it won't risk to land into uncharted territory. So there should be no major concern for the backports. We should still work on improving this area, for now the idea was to apply a strict hotfix that would just revert to the previous behavior without introducing new features and new APIs, that would also have the side effect of diminishing THP utilization under MADV_HUGEPAGE. Thanks! Andrea ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-11-28 16:48 ` Linus Torvalds @ 2018-11-28 23:10 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-11-28 23:10 UTC (permalink / raw) To: Linus Torvalds Cc: ying.huang, Andrea Arcangeli, Michal Hocko, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Wed, 28 Nov 2018, Linus Torvalds wrote: > On Tue, Nov 27, 2018 at 7:20 PM Huang, Ying <ying.huang@intel.com> wrote: > > > > From the above data, for the parent commit 3 processes exited within > > 14s, another 3 exited within 100s. For this commit, the first process > > exited at 203s. That is, this commit makes memory allocation more fair > > among processes, so that processes proceeded at more similar speed. But > > this raises system memory footprint too, so triggered much more swap, > > thus lower benchmark score. > > > > In general, memory allocation fairness among processes should be a good > > thing. So I think the report should have been a "performance > > improvement" instead of "performance regression". > > Hey, when you put it that way... > > Let's ignore this issue for now, and see if it shows up in some real > workload and people complain. > Well, I originally complained[*] when the change was first proposed and when the stable backports were proposed[**]. On a fragmented host, the change itself showed a 13.9% access latency regression on Haswell and up to 40% allocation latency regression. This is more substantial on Naples and Rome. I also measured similar numbers to this for Haswell. We are particularly hit hard by this because we have libraries that remap the text segment of binaries to hugepages; hugetlbfs is not widely used so this normally falls back to transparent hugepages. We mmap(), madvise(MADV_HUGEPAGE), memcpy(), mremap(). We fully accept the latency to do this when the binary starts because the access latency at runtime is so much better. With this change, however, we have no userspace workaround other than mbind() to prefer the local node. On all of our platforms, native sized pages are always a win over remote hugepages and it leaves open the opportunity that we collapse memory into hugepages later by khugepaged if fragmentation is the issue. mbind() is not viable if the local node is saturated, we are ok with falling back to remote pages of the native page size when the local node is oom; this would result in an oom kill if we used it to retain the old behavior. Given this severe access and allocation latency regression, we must revert this patch in our own kernel, there is simply no path forward without doing so. [*] https://marc.info/?l=linux-kernel&m=153868420126775 [**] https://marc.info/?l=linux-kernel&m=154269994800842 ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-28 23:10 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-11-28 23:10 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2488 bytes --] On Wed, 28 Nov 2018, Linus Torvalds wrote: > On Tue, Nov 27, 2018 at 7:20 PM Huang, Ying <ying.huang@intel.com> wrote: > > > > From the above data, for the parent commit 3 processes exited within > > 14s, another 3 exited within 100s. For this commit, the first process > > exited at 203s. That is, this commit makes memory allocation more fair > > among processes, so that processes proceeded at more similar speed. But > > this raises system memory footprint too, so triggered much more swap, > > thus lower benchmark score. > > > > In general, memory allocation fairness among processes should be a good > > thing. So I think the report should have been a "performance > > improvement" instead of "performance regression". > > Hey, when you put it that way... > > Let's ignore this issue for now, and see if it shows up in some real > workload and people complain. > Well, I originally complained[*] when the change was first proposed and when the stable backports were proposed[**]. On a fragmented host, the change itself showed a 13.9% access latency regression on Haswell and up to 40% allocation latency regression. This is more substantial on Naples and Rome. I also measured similar numbers to this for Haswell. We are particularly hit hard by this because we have libraries that remap the text segment of binaries to hugepages; hugetlbfs is not widely used so this normally falls back to transparent hugepages. We mmap(), madvise(MADV_HUGEPAGE), memcpy(), mremap(). We fully accept the latency to do this when the binary starts because the access latency at runtime is so much better. With this change, however, we have no userspace workaround other than mbind() to prefer the local node. On all of our platforms, native sized pages are always a win over remote hugepages and it leaves open the opportunity that we collapse memory into hugepages later by khugepaged if fragmentation is the issue. mbind() is not viable if the local node is saturated, we are ok with falling back to remote pages of the native page size when the local node is oom; this would result in an oom kill if we used it to retain the old behavior. Given this severe access and allocation latency regression, we must revert this patch in our own kernel, there is simply no path forward without doing so. [*] https://marc.info/?l=linux-kernel&m=153868420126775 [**] https://marc.info/?l=linux-kernel&m=154269994800842 ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-11-28 16:48 ` Linus Torvalds @ 2018-12-03 18:01 ` Linus Torvalds -1 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-03 18:01 UTC (permalink / raw) To: ying.huang Cc: Andrea Arcangeli, Michal Hocko, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, rientjes, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Wed, Nov 28, 2018 at 8:48 AM Linus Torvalds <torvalds@linux-foundation.org> wrote: > > On Tue, Nov 27, 2018 at 7:20 PM Huang, Ying <ying.huang@intel.com> wrote: > > > > In general, memory allocation fairness among processes should be a good > > thing. So I think the report should have been a "performance > > improvement" instead of "performance regression". > > Hey, when you put it that way... > > Let's ignore this issue for now, and see if it shows up in some real > workload and people complain. Well, David Rientjes points out that it *does* cause real problems in real workloads, so it's not just this benchmark run that shows the issue. So I guess we should revert, or at least fix. David, please post your numbers again in public along with your suggested solution... Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 18:01 ` Linus Torvalds 0 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-03 18:01 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 832 bytes --] On Wed, Nov 28, 2018 at 8:48 AM Linus Torvalds <torvalds@linux-foundation.org> wrote: > > On Tue, Nov 27, 2018 at 7:20 PM Huang, Ying <ying.huang@intel.com> wrote: > > > > In general, memory allocation fairness among processes should be a good > > thing. So I think the report should have been a "performance > > improvement" instead of "performance regression". > > Hey, when you put it that way... > > Let's ignore this issue for now, and see if it shows up in some real > workload and people complain. Well, David Rientjes points out that it *does* cause real problems in real workloads, so it's not just this benchmark run that shows the issue. So I guess we should revert, or at least fix. David, please post your numbers again in public along with your suggested solution... Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 18:01 ` Linus Torvalds @ 2018-12-03 18:14 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-03 18:14 UTC (permalink / raw) To: Linus Torvalds Cc: ying.huang, Andrea Arcangeli, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, rientjes, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon 03-12-18 10:01:18, Linus Torvalds wrote: > On Wed, Nov 28, 2018 at 8:48 AM Linus Torvalds > <torvalds@linux-foundation.org> wrote: > > > > On Tue, Nov 27, 2018 at 7:20 PM Huang, Ying <ying.huang@intel.com> wrote: > > > > > > In general, memory allocation fairness among processes should be a good > > > thing. So I think the report should have been a "performance > > > improvement" instead of "performance regression". > > > > Hey, when you put it that way... > > > > Let's ignore this issue for now, and see if it shows up in some real > > workload and people complain. > > Well, David Rientjes points out that it *does* cause real problems in > real workloads, so it's not just this benchmark run that shows the > issue. The thing is that there is no universal win here. There are two different types of workloads and we cannot satisfy both. This has been discussed at lenght during the review process. David's workload makes some assumptions about the MADV_HUGEPAGE numa placement. There are other workalods like KVM setups which do not really require that and those are ones which regressed. The prevalent consensus was that a NUMA placement is not really implied by MADV_HUGEPAGE because a) this has never been documented or intended behavior and b) it is not a universal win (basically the same as node/zone_reclaim which used to be on by default on some NUMA setups). Reverting the patch would regress another class of workloads. As we cannot satisfy both I believe we should make the API clear and in favor of a more relaxed workloads. Those with special requirements should have a proper API to reflect that (this is our general NUMA policy pattern already). -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 18:14 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-03 18:14 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 1747 bytes --] On Mon 03-12-18 10:01:18, Linus Torvalds wrote: > On Wed, Nov 28, 2018 at 8:48 AM Linus Torvalds > <torvalds@linux-foundation.org> wrote: > > > > On Tue, Nov 27, 2018 at 7:20 PM Huang, Ying <ying.huang@intel.com> wrote: > > > > > > In general, memory allocation fairness among processes should be a good > > > thing. So I think the report should have been a "performance > > > improvement" instead of "performance regression". > > > > Hey, when you put it that way... > > > > Let's ignore this issue for now, and see if it shows up in some real > > workload and people complain. > > Well, David Rientjes points out that it *does* cause real problems in > real workloads, so it's not just this benchmark run that shows the > issue. The thing is that there is no universal win here. There are two different types of workloads and we cannot satisfy both. This has been discussed at lenght during the review process. David's workload makes some assumptions about the MADV_HUGEPAGE numa placement. There are other workalods like KVM setups which do not really require that and those are ones which regressed. The prevalent consensus was that a NUMA placement is not really implied by MADV_HUGEPAGE because a) this has never been documented or intended behavior and b) it is not a universal win (basically the same as node/zone_reclaim which used to be on by default on some NUMA setups). Reverting the patch would regress another class of workloads. As we cannot satisfy both I believe we should make the API clear and in favor of a more relaxed workloads. Those with special requirements should have a proper API to reflect that (this is our general NUMA policy pattern already). -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 18:14 ` Michal Hocko @ 2018-12-03 18:19 ` Linus Torvalds -1 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-03 18:19 UTC (permalink / raw) To: mhocko Cc: ying.huang, Andrea Arcangeli, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon, Dec 3, 2018 at 10:15 AM Michal Hocko <mhocko@kernel.org> wrote: > > The thing is that there is no universal win here. There are two > different types of workloads and we cannot satisfy both. Ok, if that's the case, then I'll just revert the commit. Michal, our rules are very simple: we don't generate regressions. It's better to have old reliable behavior than to start creating *new* problems. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 18:19 ` Linus Torvalds 0 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-03 18:19 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 442 bytes --] On Mon, Dec 3, 2018 at 10:15 AM Michal Hocko <mhocko@kernel.org> wrote: > > The thing is that there is no universal win here. There are two > different types of workloads and we cannot satisfy both. Ok, if that's the case, then I'll just revert the commit. Michal, our rules are very simple: we don't generate regressions. It's better to have old reliable behavior than to start creating *new* problems. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 18:19 ` Linus Torvalds @ 2018-12-03 18:30 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-03 18:30 UTC (permalink / raw) To: Linus Torvalds Cc: ying.huang, Andrea Arcangeli, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon 03-12-18 10:19:55, Linus Torvalds wrote: > On Mon, Dec 3, 2018 at 10:15 AM Michal Hocko <mhocko@kernel.org> wrote: > > > > The thing is that there is no universal win here. There are two > > different types of workloads and we cannot satisfy both. > > Ok, if that's the case, then I'll just revert the commit. > > Michal, our rules are very simple: we don't generate regressions. It's > better to have old reliable behavior than to start creating *new* > problems. I do not get it. 5265047ac301 which this patch effectively reverts has regressed kvm workloads. People started to notice only later because they were not running on kernels with that commit until later. We have 4.4 based kernels reports. What do you propose to do for those people? Let me remind that it was David who introduced 5265047ac301, presumably because his workload benefits from it. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 18:30 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-03 18:30 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 916 bytes --] On Mon 03-12-18 10:19:55, Linus Torvalds wrote: > On Mon, Dec 3, 2018 at 10:15 AM Michal Hocko <mhocko@kernel.org> wrote: > > > > The thing is that there is no universal win here. There are two > > different types of workloads and we cannot satisfy both. > > Ok, if that's the case, then I'll just revert the commit. > > Michal, our rules are very simple: we don't generate regressions. It's > better to have old reliable behavior than to start creating *new* > problems. I do not get it. 5265047ac301 which this patch effectively reverts has regressed kvm workloads. People started to notice only later because they were not running on kernels with that commit until later. We have 4.4 based kernels reports. What do you propose to do for those people? Let me remind that it was David who introduced 5265047ac301, presumably because his workload benefits from it. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 18:30 ` Michal Hocko @ 2018-12-03 18:45 ` Linus Torvalds -1 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-03 18:45 UTC (permalink / raw) To: mhocko Cc: ying.huang, Andrea Arcangeli, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon, Dec 3, 2018 at 10:30 AM Michal Hocko <mhocko@kernel.org> wrote: > > I do not get it. 5265047ac301 which this patch effectively reverts has > regressed kvm workloads. People started to notice only later because > they were not running on kernels with that commit until later. We have > 4.4 based kernels reports. What do you propose to do for those people? We have at least two patches that others claim to fix things. You dismissed them and said "can't be done". As a result, I'm not really interested in this discussion. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 18:45 ` Linus Torvalds 0 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-03 18:45 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 570 bytes --] On Mon, Dec 3, 2018 at 10:30 AM Michal Hocko <mhocko@kernel.org> wrote: > > I do not get it. 5265047ac301 which this patch effectively reverts has > regressed kvm workloads. People started to notice only later because > they were not running on kernels with that commit until later. We have > 4.4 based kernels reports. What do you propose to do for those people? We have at least two patches that others claim to fix things. You dismissed them and said "can't be done". As a result, I'm not really interested in this discussion. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 18:45 ` Linus Torvalds @ 2018-12-03 18:59 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-03 18:59 UTC (permalink / raw) To: Linus Torvalds Cc: ying.huang, Andrea Arcangeli, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon 03-12-18 10:45:35, Linus Torvalds wrote: > On Mon, Dec 3, 2018 at 10:30 AM Michal Hocko <mhocko@kernel.org> wrote: > > > > I do not get it. 5265047ac301 which this patch effectively reverts has > > regressed kvm workloads. People started to notice only later because > > they were not running on kernels with that commit until later. We have > > 4.4 based kernels reports. What do you propose to do for those people? > > We have at least two patches that others claim to fix things. > > You dismissed them and said "can't be done". You are misinterpreting my words. I haven't dismissed anything. I do recognize both usecases under discussion. I have merely said that a better THP locality needs more work and during the review discussion I have even volunteered to work on that. There are other reclaim related fixes under work right now. All I am saying is that MADV_TRANSHUGE having numa locality implications cannot satisfy all the usecases and it is particurarly KVM that suffers from it. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 18:59 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-03 18:59 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 1054 bytes --] On Mon 03-12-18 10:45:35, Linus Torvalds wrote: > On Mon, Dec 3, 2018 at 10:30 AM Michal Hocko <mhocko@kernel.org> wrote: > > > > I do not get it. 5265047ac301 which this patch effectively reverts has > > regressed kvm workloads. People started to notice only later because > > they were not running on kernels with that commit until later. We have > > 4.4 based kernels reports. What do you propose to do for those people? > > We have at least two patches that others claim to fix things. > > You dismissed them and said "can't be done". You are misinterpreting my words. I haven't dismissed anything. I do recognize both usecases under discussion. I have merely said that a better THP locality needs more work and during the review discussion I have even volunteered to work on that. There are other reclaim related fixes under work right now. All I am saying is that MADV_TRANSHUGE having numa locality implications cannot satisfy all the usecases and it is particurarly KVM that suffers from it. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 18:59 ` Michal Hocko @ 2018-12-03 19:23 ` Andrea Arcangeli -1 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-03 19:23 UTC (permalink / raw) To: Michal Hocko Cc: Linus Torvalds, ying.huang, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon, Dec 03, 2018 at 07:59:54PM +0100, Michal Hocko wrote: > I have merely said that a better THP locality needs more work and during > the review discussion I have even volunteered to work on that. There > are other reclaim related fixes under work right now. All I am saying > is that MADV_TRANSHUGE having numa locality implications cannot satisfy > all the usecases and it is particurarly KVM that suffers from it. I'd like to clarify it's not just KVM, we found with KVM because for KVM it's fairly common to create VM that won't possibly fit in a single node, while most other apps don't tend to allocate that much memory. It's trivial to reproduce the badness by running a memhog process that allocates more than the RAM of 1 NUMA node, under defrag=always setting (or by changing memhog to use MADV_HUGEPAGE) and it'll create swap storms despite 75% of the RAM is completely free in a 4 node NUMA (or 50% of RAM free in a 2 node NUMA) etc.. How can it be ok to push the system into gigabytes of swap by default without any special capability despite 50% - 75% or more of the RAM is free? That's the downside of the __GFP_THISNODE optimizaton. __GFP_THISNODE helps increasing NUMA locality if your app can fit in a single node which is the common David's workload. But if his workload would more often than not fit in a single node, he would also run into an unacceptable slowdown because of the __GFP_THISNODE. I think there's lots of room for improvement for the future, but in my view that __GFP_THISNODE as it was implemented was an incomplete hack, that opened the door for bad VM corner cases that should not happen. It also would be nice to have a reproducer for David's workload, the software to run the binary on THP is not released either. We have lots of reproducer for the corner case introduced by the __GFP_THISNODE trick. So this is basically a revert of the commit that made MADV_HUGEPAGE with __GFP_THISNODE behave like a privileged (although not as static) mbind. I provided an alternative but we weren't sure if that was the best long term solution that could satisfy everyone because it does have some drawback too. Thanks, Andrea ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 19:23 ` Andrea Arcangeli 0 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-03 19:23 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2216 bytes --] On Mon, Dec 03, 2018 at 07:59:54PM +0100, Michal Hocko wrote: > I have merely said that a better THP locality needs more work and during > the review discussion I have even volunteered to work on that. There > are other reclaim related fixes under work right now. All I am saying > is that MADV_TRANSHUGE having numa locality implications cannot satisfy > all the usecases and it is particurarly KVM that suffers from it. I'd like to clarify it's not just KVM, we found with KVM because for KVM it's fairly common to create VM that won't possibly fit in a single node, while most other apps don't tend to allocate that much memory. It's trivial to reproduce the badness by running a memhog process that allocates more than the RAM of 1 NUMA node, under defrag=always setting (or by changing memhog to use MADV_HUGEPAGE) and it'll create swap storms despite 75% of the RAM is completely free in a 4 node NUMA (or 50% of RAM free in a 2 node NUMA) etc.. How can it be ok to push the system into gigabytes of swap by default without any special capability despite 50% - 75% or more of the RAM is free? That's the downside of the __GFP_THISNODE optimizaton. __GFP_THISNODE helps increasing NUMA locality if your app can fit in a single node which is the common David's workload. But if his workload would more often than not fit in a single node, he would also run into an unacceptable slowdown because of the __GFP_THISNODE. I think there's lots of room for improvement for the future, but in my view that __GFP_THISNODE as it was implemented was an incomplete hack, that opened the door for bad VM corner cases that should not happen. It also would be nice to have a reproducer for David's workload, the software to run the binary on THP is not released either. We have lots of reproducer for the corner case introduced by the __GFP_THISNODE trick. So this is basically a revert of the commit that made MADV_HUGEPAGE with __GFP_THISNODE behave like a privileged (although not as static) mbind. I provided an alternative but we weren't sure if that was the best long term solution that could satisfy everyone because it does have some drawback too. Thanks, Andrea ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 19:23 ` Andrea Arcangeli @ 2018-12-03 20:26 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-03 20:26 UTC (permalink / raw) To: Andrea Arcangeli Cc: Michal Hocko, Linus Torvalds, ying.huang, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon, 3 Dec 2018, Andrea Arcangeli wrote: > It's trivial to reproduce the badness by running a memhog process that > allocates more than the RAM of 1 NUMA node, under defrag=always > setting (or by changing memhog to use MADV_HUGEPAGE) and it'll create > swap storms despite 75% of the RAM is completely free in a 4 node NUMA > (or 50% of RAM free in a 2 node NUMA) etc.. > > How can it be ok to push the system into gigabytes of swap by default > without any special capability despite 50% - 75% or more of the RAM is > free? That's the downside of the __GFP_THISNODE optimizaton. > The swap storm is the issue that is being addressed. If your remote memory is as low as local memory, the patch to clear __GFP_THISNODE has done nothing to fix it: you still get swap storms and memory compaction can still fail if the per-zone freeing scanner cannot utilize the reclaimed memory. Recall that this patch to clear __GFP_THISNODE was measured by me to have a 40% increase in allocation latency for fragmented remote memory on Haswell. It makes the problem much, much worse. > __GFP_THISNODE helps increasing NUMA locality if your app can fit in a > single node which is the common David's workload. But if his workload > would more often than not fit in a single node, he would also run into > an unacceptable slowdown because of the __GFP_THISNODE. > Which is why I have suggested that we do not do direct reclaim, as the page allocator implementation expects all thp page fault allocations to have __GFP_NORETRY set, because no amount of reclaim can be shown to be useful to the memory compaction freeing scanner if it is iterated over by the migration scanner. > I think there's lots of room for improvement for the future, but in my > view that __GFP_THISNODE as it was implemented was an incomplete hack, > that opened the door for bad VM corner cases that should not happen. > __GFP_THISNODE is intended specifically because of the remote access latency increase that is encountered if you fault remote hugepages over local pages of the native page size. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 20:26 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-03 20:26 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2126 bytes --] On Mon, 3 Dec 2018, Andrea Arcangeli wrote: > It's trivial to reproduce the badness by running a memhog process that > allocates more than the RAM of 1 NUMA node, under defrag=always > setting (or by changing memhog to use MADV_HUGEPAGE) and it'll create > swap storms despite 75% of the RAM is completely free in a 4 node NUMA > (or 50% of RAM free in a 2 node NUMA) etc.. > > How can it be ok to push the system into gigabytes of swap by default > without any special capability despite 50% - 75% or more of the RAM is > free? That's the downside of the __GFP_THISNODE optimizaton. > The swap storm is the issue that is being addressed. If your remote memory is as low as local memory, the patch to clear __GFP_THISNODE has done nothing to fix it: you still get swap storms and memory compaction can still fail if the per-zone freeing scanner cannot utilize the reclaimed memory. Recall that this patch to clear __GFP_THISNODE was measured by me to have a 40% increase in allocation latency for fragmented remote memory on Haswell. It makes the problem much, much worse. > __GFP_THISNODE helps increasing NUMA locality if your app can fit in a > single node which is the common David's workload. But if his workload > would more often than not fit in a single node, he would also run into > an unacceptable slowdown because of the __GFP_THISNODE. > Which is why I have suggested that we do not do direct reclaim, as the page allocator implementation expects all thp page fault allocations to have __GFP_NORETRY set, because no amount of reclaim can be shown to be useful to the memory compaction freeing scanner if it is iterated over by the migration scanner. > I think there's lots of room for improvement for the future, but in my > view that __GFP_THISNODE as it was implemented was an incomplete hack, > that opened the door for bad VM corner cases that should not happen. > __GFP_THISNODE is intended specifically because of the remote access latency increase that is encountered if you fault remote hugepages over local pages of the native page size. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 18:59 ` Michal Hocko @ 2018-12-03 19:28 ` Linus Torvalds -1 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-03 19:28 UTC (permalink / raw) To: mhocko Cc: ying.huang, Andrea Arcangeli, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon, Dec 3, 2018 at 10:59 AM Michal Hocko <mhocko@kernel.org> wrote: > > You are misinterpreting my words. I haven't dismissed anything. I do > recognize both usecases under discussion. > > I have merely said that a better THP locality needs more work and during > the review discussion I have even volunteered to work on that. We have two known patches that seem to have no real downsides. One is the patch posted by Andrea earlier in this thread, which seems to target just this known regression. The other seems to be to revert commit ac5b2c1891 and instead apply https://lore.kernel.org/lkml/alpine.DEB.2.21.1810081303060.221006@chino.kir.corp.google.com/ which also seems to be sensible. I'm not seeing why the KVM load would react badly to either of those models, and they are known to fix the google local-node issue. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 19:28 ` Linus Torvalds 0 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-03 19:28 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 883 bytes --] On Mon, Dec 3, 2018 at 10:59 AM Michal Hocko <mhocko@kernel.org> wrote: > > You are misinterpreting my words. I haven't dismissed anything. I do > recognize both usecases under discussion. > > I have merely said that a better THP locality needs more work and during > the review discussion I have even volunteered to work on that. We have two known patches that seem to have no real downsides. One is the patch posted by Andrea earlier in this thread, which seems to target just this known regression. The other seems to be to revert commit ac5b2c1891 and instead apply https://lore.kernel.org/lkml/alpine.DEB.2.21.1810081303060.221006(a)chino.kir.corp.google.com/ which also seems to be sensible. I'm not seeing why the KVM load would react badly to either of those models, and they are known to fix the google local-node issue. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 19:28 ` Linus Torvalds @ 2018-12-03 20:12 ` Andrea Arcangeli -1 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-03 20:12 UTC (permalink / raw) To: Linus Torvalds Cc: mhocko, ying.huang, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon, Dec 03, 2018 at 11:28:07AM -0800, Linus Torvalds wrote: > On Mon, Dec 3, 2018 at 10:59 AM Michal Hocko <mhocko@kernel.org> wrote: > > > > You are misinterpreting my words. I haven't dismissed anything. I do > > recognize both usecases under discussion. > > > > I have merely said that a better THP locality needs more work and during > > the review discussion I have even volunteered to work on that. > > We have two known patches that seem to have no real downsides. > > One is the patch posted by Andrea earlier in this thread, which seems > to target just this known regression. For the short term the important thing is to fix the VM regression one way or another, I don't personally mind which way. > The other seems to be to revert commit ac5b2c1891 and instead apply > > https://lore.kernel.org/lkml/alpine.DEB.2.21.1810081303060.221006@chino.kir.corp.google.com/ > > which also seems to be sensible. In my earlier review of David's patch, it looked runtime equivalent to the __GFP_COMPACT_ONLY solution. It has the only advantage of adding a new gfpflag until we're sure we need it but it's the worst solution available for the long term in my view. It'd be ok to apply it as stop-gap measure though. The "order == pageblock_order" hardcoding inside the allocator to workaround the __GFP_THISNODE flag passed from outside the allocator in the THP MADV_HUGEPAGE case, didn't look very attractive because it's not just THP allocating order >0 pages. It'd be nicer if whatever compaction latency optimization that applies to THP could also apply to all other allocation orders too and the hardcoding of the THP order prevents that. On the same lines if __GFP_THISNODE is so badly needed by MADV_HUGEPAGE, all other larger order allocations should also be able to take advantage of __GFP_THISNODE without ending in the same VM corner cases that required the "order == pageblock_order" hardcoding inside the allocator. If you prefer David's patch I would suggest pageblock_order to be replaced with HPAGE_PMD_ORDER so it's more likely to match the THP order in all archs. Thanks, Andrea ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 20:12 ` Andrea Arcangeli 0 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-03 20:12 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2165 bytes --] On Mon, Dec 03, 2018 at 11:28:07AM -0800, Linus Torvalds wrote: > On Mon, Dec 3, 2018 at 10:59 AM Michal Hocko <mhocko@kernel.org> wrote: > > > > You are misinterpreting my words. I haven't dismissed anything. I do > > recognize both usecases under discussion. > > > > I have merely said that a better THP locality needs more work and during > > the review discussion I have even volunteered to work on that. > > We have two known patches that seem to have no real downsides. > > One is the patch posted by Andrea earlier in this thread, which seems > to target just this known regression. For the short term the important thing is to fix the VM regression one way or another, I don't personally mind which way. > The other seems to be to revert commit ac5b2c1891 and instead apply > > https://lore.kernel.org/lkml/alpine.DEB.2.21.1810081303060.221006(a)chino.kir.corp.google.com/ > > which also seems to be sensible. In my earlier review of David's patch, it looked runtime equivalent to the __GFP_COMPACT_ONLY solution. It has the only advantage of adding a new gfpflag until we're sure we need it but it's the worst solution available for the long term in my view. It'd be ok to apply it as stop-gap measure though. The "order == pageblock_order" hardcoding inside the allocator to workaround the __GFP_THISNODE flag passed from outside the allocator in the THP MADV_HUGEPAGE case, didn't look very attractive because it's not just THP allocating order >0 pages. It'd be nicer if whatever compaction latency optimization that applies to THP could also apply to all other allocation orders too and the hardcoding of the THP order prevents that. On the same lines if __GFP_THISNODE is so badly needed by MADV_HUGEPAGE, all other larger order allocations should also be able to take advantage of __GFP_THISNODE without ending in the same VM corner cases that required the "order == pageblock_order" hardcoding inside the allocator. If you prefer David's patch I would suggest pageblock_order to be replaced with HPAGE_PMD_ORDER so it's more likely to match the THP order in all archs. Thanks, Andrea ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 20:12 ` Andrea Arcangeli @ 2018-12-03 20:36 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-03 20:36 UTC (permalink / raw) To: Andrea Arcangeli Cc: Linus Torvalds, mhocko, ying.huang, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon, 3 Dec 2018, Andrea Arcangeli wrote: > In my earlier review of David's patch, it looked runtime equivalent to > the __GFP_COMPACT_ONLY solution. It has the only advantage of adding a > new gfpflag until we're sure we need it but it's the worst solution > available for the long term in my view. It'd be ok to apply it as > stop-gap measure though. > > The "order == pageblock_order" hardcoding inside the allocator to > workaround the __GFP_THISNODE flag passed from outside the allocator > in the THP MADV_HUGEPAGE case, didn't look very attractive because > it's not just THP allocating order >0 pages. > We have two different things to consider: NUMA locality and the order of the allocation. THP is preferred locally and we know the order. For the other high-order pages you're referring to, I don't know if they are using __GFP_THISNODE or not (likely not). I see them as two separate issues. For thp on all platforms I have measured it on specifically for this patch (Broadwell, Haswell, Rome) there is a clear advantage to faulting local pages of the native page size over remote hugepages. It also has the added effect of allowing khugepaged to collapse it into a hugepage later if fragmentation allows (the reason why khugepaged cares about NUMA locality, the same reason I do). This is the rationale for __GFP_THISNODE for thp allocations. For order == pageblock_order (or more correctly order >= pageblock_order), this is not based on NUMA whatsoever but is rather based on the implementation of memory compaction. If it has already failed (or was deferred for order-HPAGE_PMD_ORDER), reclaim cannot be shown to help if memory compaction cannot utilize the freed memory in isolate_freepages(), so that reclaim has been pointless. If compaction fails for other reasons (any unmovable page preventing a pageblock from becoming free), *all* reclaim activity has been pointless. > It'd be nicer if whatever compaction latency optimization that applies > to THP could also apply to all other allocation orders too and the > hardcoding of the THP order prevents that. > > On the same lines if __GFP_THISNODE is so badly needed by > MADV_HUGEPAGE, all other larger order allocations should also be able > to take advantage of __GFP_THISNODE without ending in the same VM > corner cases that required the "order == pageblock_order" hardcoding > inside the allocator. > > If you prefer David's patch I would suggest pageblock_order to be > replaced with HPAGE_PMD_ORDER so it's more likely to match the THP > order in all archs. > That sounds fine and I will do that in my v2. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 20:36 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-03 20:36 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2674 bytes --] On Mon, 3 Dec 2018, Andrea Arcangeli wrote: > In my earlier review of David's patch, it looked runtime equivalent to > the __GFP_COMPACT_ONLY solution. It has the only advantage of adding a > new gfpflag until we're sure we need it but it's the worst solution > available for the long term in my view. It'd be ok to apply it as > stop-gap measure though. > > The "order == pageblock_order" hardcoding inside the allocator to > workaround the __GFP_THISNODE flag passed from outside the allocator > in the THP MADV_HUGEPAGE case, didn't look very attractive because > it's not just THP allocating order >0 pages. > We have two different things to consider: NUMA locality and the order of the allocation. THP is preferred locally and we know the order. For the other high-order pages you're referring to, I don't know if they are using __GFP_THISNODE or not (likely not). I see them as two separate issues. For thp on all platforms I have measured it on specifically for this patch (Broadwell, Haswell, Rome) there is a clear advantage to faulting local pages of the native page size over remote hugepages. It also has the added effect of allowing khugepaged to collapse it into a hugepage later if fragmentation allows (the reason why khugepaged cares about NUMA locality, the same reason I do). This is the rationale for __GFP_THISNODE for thp allocations. For order == pageblock_order (or more correctly order >= pageblock_order), this is not based on NUMA whatsoever but is rather based on the implementation of memory compaction. If it has already failed (or was deferred for order-HPAGE_PMD_ORDER), reclaim cannot be shown to help if memory compaction cannot utilize the freed memory in isolate_freepages(), so that reclaim has been pointless. If compaction fails for other reasons (any unmovable page preventing a pageblock from becoming free), *all* reclaim activity has been pointless. > It'd be nicer if whatever compaction latency optimization that applies > to THP could also apply to all other allocation orders too and the > hardcoding of the THP order prevents that. > > On the same lines if __GFP_THISNODE is so badly needed by > MADV_HUGEPAGE, all other larger order allocations should also be able > to take advantage of __GFP_THISNODE without ending in the same VM > corner cases that required the "order == pageblock_order" hardcoding > inside the allocator. > > If you prefer David's patch I would suggest pageblock_order to be > replaced with HPAGE_PMD_ORDER so it's more likely to match the THP > order in all archs. > That sounds fine and I will do that in my v2. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 20:12 ` Andrea Arcangeli @ 2018-12-03 22:04 ` Linus Torvalds -1 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-03 22:04 UTC (permalink / raw) To: Andrea Arcangeli Cc: mhocko, ying.huang, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon, Dec 3, 2018 at 12:12 PM Andrea Arcangeli <aarcange@redhat.com> wrote: > > On Mon, Dec 03, 2018 at 11:28:07AM -0800, Linus Torvalds wrote: > > > > One is the patch posted by Andrea earlier in this thread, which seems > > to target just this known regression. > > For the short term the important thing is to fix the VM regression one > way or another, I don't personally mind which way. > > > The other seems to be to revert commit ac5b2c1891 and instead apply > > > > https://lore.kernel.org/lkml/alpine.DEB.2.21.1810081303060.221006@chino.kir.corp.google.com/ > > > > which also seems to be sensible. > > In my earlier review of David's patch, it looked runtime equivalent to > the __GFP_COMPACT_ONLY solution. It has the only advantage of adding a I think there's a missing "not" in the above. > new gfpflag until we're sure we need it but it's the worst solution > available for the long term in my view. It'd be ok to apply it as > stop-gap measure though. So I have no really strong opinions either way. I looking at the two options, I think I'd personally have a slight preference for that patch by David, not so much because it doesn't add a new GFP flag, but because it seems to make it a lot more explicit that GFP_TRANSHUGE_LIGHT automatically implies __GFP_NORETRY. I think that makes a whole lot of conceptual sense with the whole meaning of GFP_TRANSHUGE_LIGHT. It's all about "no reclaim/compaction", but honestly, doesn't __GFP_NORETRY make sense? So I look at David's patch, and I go "that makes sense", and then I compare it with ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings") and that makes me go "ok, that's a hack". So *if* reverting ac5b2c18911f and applying David's patch instead fixes the KVM latency issues (which I assume it really should do, simply thanks to __GFP_NORETRY), then I think that makes more sense. That said, I do agree that the if (order == pageblock_order ...) test in __alloc_pages_slowpath() in David's patch then argues for "that looks hacky". But that code *is* inside the test for if (costly_order && (gfp_mask & __GFP_NORETRY)) { so within the context of that (not visible in the patch itself), it looks like a sensible model. The whole point of that block is, as the comment above it says /* * Checks for costly allocations with __GFP_NORETRY, which * includes THP page fault allocations */ so I think all of David's patch is somewhat sensible, even if that specific "order == pageblock_order" test really looks like it might want to be clarified. BUT. With all that said, I really don't mind that __GFP_COMPACT_ONLY approach either. I think David's patch makes sense in a bigger context, while the __GFP_COMPACT_ONLY patch makes sense in the context of "let's just fix this _particular_ special case. As long as both work (and apparently they do), either is perfectly find by me. Some kind of "Thunderdome for patches" is needed, with an epic soundtrack. "Two patches enter, one patch leaves!" I don't so much care which one. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 22:04 ` Linus Torvalds 0 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-03 22:04 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 3232 bytes --] On Mon, Dec 3, 2018 at 12:12 PM Andrea Arcangeli <aarcange@redhat.com> wrote: > > On Mon, Dec 03, 2018 at 11:28:07AM -0800, Linus Torvalds wrote: > > > > One is the patch posted by Andrea earlier in this thread, which seems > > to target just this known regression. > > For the short term the important thing is to fix the VM regression one > way or another, I don't personally mind which way. > > > The other seems to be to revert commit ac5b2c1891 and instead apply > > > > https://lore.kernel.org/lkml/alpine.DEB.2.21.1810081303060.221006(a)chino.kir.corp.google.com/ > > > > which also seems to be sensible. > > In my earlier review of David's patch, it looked runtime equivalent to > the __GFP_COMPACT_ONLY solution. It has the only advantage of adding a I think there's a missing "not" in the above. > new gfpflag until we're sure we need it but it's the worst solution > available for the long term in my view. It'd be ok to apply it as > stop-gap measure though. So I have no really strong opinions either way. I looking at the two options, I think I'd personally have a slight preference for that patch by David, not so much because it doesn't add a new GFP flag, but because it seems to make it a lot more explicit that GFP_TRANSHUGE_LIGHT automatically implies __GFP_NORETRY. I think that makes a whole lot of conceptual sense with the whole meaning of GFP_TRANSHUGE_LIGHT. It's all about "no reclaim/compaction", but honestly, doesn't __GFP_NORETRY make sense? So I look at David's patch, and I go "that makes sense", and then I compare it with ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings") and that makes me go "ok, that's a hack". So *if* reverting ac5b2c18911f and applying David's patch instead fixes the KVM latency issues (which I assume it really should do, simply thanks to __GFP_NORETRY), then I think that makes more sense. That said, I do agree that the if (order == pageblock_order ...) test in __alloc_pages_slowpath() in David's patch then argues for "that looks hacky". But that code *is* inside the test for if (costly_order && (gfp_mask & __GFP_NORETRY)) { so within the context of that (not visible in the patch itself), it looks like a sensible model. The whole point of that block is, as the comment above it says /* * Checks for costly allocations with __GFP_NORETRY, which * includes THP page fault allocations */ so I think all of David's patch is somewhat sensible, even if that specific "order == pageblock_order" test really looks like it might want to be clarified. BUT. With all that said, I really don't mind that __GFP_COMPACT_ONLY approach either. I think David's patch makes sense in a bigger context, while the __GFP_COMPACT_ONLY patch makes sense in the context of "let's just fix this _particular_ special case. As long as both work (and apparently they do), either is perfectly find by me. Some kind of "Thunderdome for patches" is needed, with an epic soundtrack. "Two patches enter, one patch leaves!" I don't so much care which one. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 22:04 ` Linus Torvalds @ 2018-12-03 22:27 ` Linus Torvalds -1 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-03 22:27 UTC (permalink / raw) To: Andrea Arcangeli Cc: mhocko, ying.huang, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon, Dec 3, 2018 at 2:04 PM Linus Torvalds <torvalds@linux-foundation.org> wrote: > > so I think all of David's patch is somewhat sensible, even if that > specific "order == pageblock_order" test really looks like it might > want to be clarified. Side note: I think maybe people should just look at that whole compaction logic for that block, because it doesn't make much sense to me: /* * Checks for costly allocations with __GFP_NORETRY, which * includes THP page fault allocations */ if (costly_order && (gfp_mask & __GFP_NORETRY)) { /* * If compaction is deferred for high-order allocations, * it is because sync compaction recently failed. If * this is the case and the caller requested a THP * allocation, we do not want to heavily disrupt the * system, so we fail the allocation instead of entering * direct reclaim. */ if (compact_result == COMPACT_DEFERRED) goto nopage; /* * Looks like reclaim/compaction is worth trying, but * sync compaction could be very expensive, so keep * using async compaction. */ compact_priority = INIT_COMPACT_PRIORITY; } this is where David wants to add *his* odd test, and I think everybody looks at that added case + if (order == pageblock_order && + !(current->flags & PF_KTHREAD)) + goto nopage; and just goes "Eww". But I think the real problem is that it's the "goto nopage" thing that makes _sense_, and the current cases for "let's try compaction" that are the odd ones, and then David adds one new special case for the sensible behavior. For example, why would COMPACT_DEFERRED mean "don't bother", but not all the other reasons it didn't really make sense? So does it really make sense to fall through AT ALL to that "retry" case, when we explicitly already had (gfp_mask & __GFP_NORETRY)? Maybe the real fix is to instead of adding yet another special case for "goto nopage", it should just be unconditional: simply don't try to compact large-pages if __GFP_NORETRY was set. Hmm? I dunno. Right now - for 4.20, I'd obviously want to keep changes smallish, so a hacky added special case might be the right thing to do. But the code does look odd, doesn't it? I think part of it comes from the fact that we *used* to do the compaction first, and then we did the reclaim, and then it was re-orghanized to do reclaim first, but it tried to keep semantic changes minimal and some of the above comes from that re-org. I think. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 22:27 ` Linus Torvalds 0 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-03 22:27 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 3073 bytes --] On Mon, Dec 3, 2018 at 2:04 PM Linus Torvalds <torvalds@linux-foundation.org> wrote: > > so I think all of David's patch is somewhat sensible, even if that > specific "order == pageblock_order" test really looks like it might > want to be clarified. Side note: I think maybe people should just look at that whole compaction logic for that block, because it doesn't make much sense to me: /* * Checks for costly allocations with __GFP_NORETRY, which * includes THP page fault allocations */ if (costly_order && (gfp_mask & __GFP_NORETRY)) { /* * If compaction is deferred for high-order allocations, * it is because sync compaction recently failed. If * this is the case and the caller requested a THP * allocation, we do not want to heavily disrupt the * system, so we fail the allocation instead of entering * direct reclaim. */ if (compact_result == COMPACT_DEFERRED) goto nopage; /* * Looks like reclaim/compaction is worth trying, but * sync compaction could be very expensive, so keep * using async compaction. */ compact_priority = INIT_COMPACT_PRIORITY; } this is where David wants to add *his* odd test, and I think everybody looks at that added case + if (order == pageblock_order && + !(current->flags & PF_KTHREAD)) + goto nopage; and just goes "Eww". But I think the real problem is that it's the "goto nopage" thing that makes _sense_, and the current cases for "let's try compaction" that are the odd ones, and then David adds one new special case for the sensible behavior. For example, why would COMPACT_DEFERRED mean "don't bother", but not all the other reasons it didn't really make sense? So does it really make sense to fall through AT ALL to that "retry" case, when we explicitly already had (gfp_mask & __GFP_NORETRY)? Maybe the real fix is to instead of adding yet another special case for "goto nopage", it should just be unconditional: simply don't try to compact large-pages if __GFP_NORETRY was set. Hmm? I dunno. Right now - for 4.20, I'd obviously want to keep changes smallish, so a hacky added special case might be the right thing to do. But the code does look odd, doesn't it? I think part of it comes from the fact that we *used* to do the compaction first, and then we did the reclaim, and then it was re-orghanized to do reclaim first, but it tried to keep semantic changes minimal and some of the above comes from that re-org. I think. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 22:27 ` Linus Torvalds @ 2018-12-03 22:57 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-03 22:57 UTC (permalink / raw) To: Linus Torvalds Cc: Andrea Arcangeli, mhocko, ying.huang, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon, 3 Dec 2018, Linus Torvalds wrote: > Side note: I think maybe people should just look at that whole > compaction logic for that block, because it doesn't make much sense to > me: > > /* > * Checks for costly allocations with __GFP_NORETRY, which > * includes THP page fault allocations > */ > if (costly_order && (gfp_mask & __GFP_NORETRY)) { > /* > * If compaction is deferred for high-order allocations, > * it is because sync compaction recently failed. If > * this is the case and the caller requested a THP > * allocation, we do not want to heavily disrupt the > * system, so we fail the allocation instead of entering > * direct reclaim. > */ > if (compact_result == COMPACT_DEFERRED) > goto nopage; > > /* > * Looks like reclaim/compaction is worth trying, but > * sync compaction could be very expensive, so keep > * using async compaction. > */ > compact_priority = INIT_COMPACT_PRIORITY; > } > > this is where David wants to add *his* odd test, and I think everybody > looks at that added case > > + if (order == pageblock_order && > + !(current->flags & PF_KTHREAD)) > + goto nopage; > > and just goes "Eww". > > But I think the real problem is that it's the "goto nopage" thing that > makes _sense_, and the current cases for "let's try compaction" that > are the odd ones, and then David adds one new special case for the > sensible behavior. > > For example, why would COMPACT_DEFERRED mean "don't bother", but not > all the other reasons it didn't really make sense? > > So does it really make sense to fall through AT ALL to that "retry" > case, when we explicitly already had (gfp_mask & __GFP_NORETRY)? > > Maybe the real fix is to instead of adding yet another special case > for "goto nopage", it should just be unconditional: simply don't try > to compact large-pages if __GFP_NORETRY was set. > I think what is intended, which may not be represented by the code, is that if compaction is not suitable (__compaction_suitable() returns COMPACT_SKIPPED because of failing watermarks) that for non-hugepage allocations reclaim may be useful. We just want to reclaim memory so that memory compaction has pages available for migration targets. Note the same caveat I keep bringing up still applies, though: if reclaim frees memory that is iterated over by the compaction migration scanner, it was pointless. That is a memory compaction implementation detail and can lead to a lot of unnecessary reclaim (or even thrashing) if unmovable page fragmentation cause compaction to fail even after it has migrated everything it could. I think the likelihood of that happening increases by the allocation order. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 22:57 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-03 22:57 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 3313 bytes --] On Mon, 3 Dec 2018, Linus Torvalds wrote: > Side note: I think maybe people should just look at that whole > compaction logic for that block, because it doesn't make much sense to > me: > > /* > * Checks for costly allocations with __GFP_NORETRY, which > * includes THP page fault allocations > */ > if (costly_order && (gfp_mask & __GFP_NORETRY)) { > /* > * If compaction is deferred for high-order allocations, > * it is because sync compaction recently failed. If > * this is the case and the caller requested a THP > * allocation, we do not want to heavily disrupt the > * system, so we fail the allocation instead of entering > * direct reclaim. > */ > if (compact_result == COMPACT_DEFERRED) > goto nopage; > > /* > * Looks like reclaim/compaction is worth trying, but > * sync compaction could be very expensive, so keep > * using async compaction. > */ > compact_priority = INIT_COMPACT_PRIORITY; > } > > this is where David wants to add *his* odd test, and I think everybody > looks at that added case > > + if (order == pageblock_order && > + !(current->flags & PF_KTHREAD)) > + goto nopage; > > and just goes "Eww". > > But I think the real problem is that it's the "goto nopage" thing that > makes _sense_, and the current cases for "let's try compaction" that > are the odd ones, and then David adds one new special case for the > sensible behavior. > > For example, why would COMPACT_DEFERRED mean "don't bother", but not > all the other reasons it didn't really make sense? > > So does it really make sense to fall through AT ALL to that "retry" > case, when we explicitly already had (gfp_mask & __GFP_NORETRY)? > > Maybe the real fix is to instead of adding yet another special case > for "goto nopage", it should just be unconditional: simply don't try > to compact large-pages if __GFP_NORETRY was set. > I think what is intended, which may not be represented by the code, is that if compaction is not suitable (__compaction_suitable() returns COMPACT_SKIPPED because of failing watermarks) that for non-hugepage allocations reclaim may be useful. We just want to reclaim memory so that memory compaction has pages available for migration targets. Note the same caveat I keep bringing up still applies, though: if reclaim frees memory that is iterated over by the compaction migration scanner, it was pointless. That is a memory compaction implementation detail and can lead to a lot of unnecessary reclaim (or even thrashing) if unmovable page fragmentation cause compaction to fail even after it has migrated everything it could. I think the likelihood of that happening increases by the allocation order. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 22:27 ` Linus Torvalds @ 2018-12-04 9:22 ` Vlastimil Babka -1 siblings, 0 replies; 154+ messages in thread From: Vlastimil Babka @ 2018-12-04 9:22 UTC (permalink / raw) To: Linus Torvalds, Andrea Arcangeli Cc: mhocko, ying.huang, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan On 12/3/18 11:27 PM, Linus Torvalds wrote: > On Mon, Dec 3, 2018 at 2:04 PM Linus Torvalds > <torvalds@linux-foundation.org> wrote: >> >> so I think all of David's patch is somewhat sensible, even if that >> specific "order == pageblock_order" test really looks like it might >> want to be clarified. > > Side note: I think maybe people should just look at that whole > compaction logic for that block, because it doesn't make much sense to > me: > > /* > * Checks for costly allocations with __GFP_NORETRY, which > * includes THP page fault allocations > */ > if (costly_order && (gfp_mask & __GFP_NORETRY)) { > /* > * If compaction is deferred for high-order allocations, > * it is because sync compaction recently failed. If > * this is the case and the caller requested a THP > * allocation, we do not want to heavily disrupt the > * system, so we fail the allocation instead of entering > * direct reclaim. > */ > if (compact_result == COMPACT_DEFERRED) > goto nopage; > > /* > * Looks like reclaim/compaction is worth trying, but > * sync compaction could be very expensive, so keep > * using async compaction. > */ > compact_priority = INIT_COMPACT_PRIORITY; > } > > this is where David wants to add *his* odd test, and I think everybody > looks at that added case > > + if (order == pageblock_order && > + !(current->flags & PF_KTHREAD)) > + goto nopage; > > and just goes "Eww". > > But I think the real problem is that it's the "goto nopage" thing that > makes _sense_, and the current cases for "let's try compaction" that More precisely it's "let's try reclaim + compaction". > are the odd ones, and then David adds one new special case for the > sensible behavior. > > For example, why would COMPACT_DEFERRED mean "don't bother", but not > all the other reasons it didn't really make sense? COMPACT_DEFERRED means that compaction was failing recently, even with sufficient free pages (e.g. freed by direct reclaim), so it doesn't make sense to continue. What are "all the other reasons"? __alloc_pages_direct_compact() could have also returned COMPACT_SKIPPED, which means compaction actually didn't happen at all, because there's not enough free pages. > So does it really make sense to fall through AT ALL to that "retry" > case, when we explicitly already had (gfp_mask & __GFP_NORETRY)? Well if there was no free memory to begin with, and thus compaction returned COMPACT_SKIPPED, then we didn't really "try" anything yet, so there's nothing to "not retry". > Maybe the real fix is to instead of adding yet another special case > for "goto nopage", it should just be unconditional: simply don't try > to compact large-pages if __GFP_NORETRY was set. I think that would destroy THP success rates too much, in situations where reclaim and compaction would succeed, because there's enough easily reclaimable and migratable memory. > Hmm? I dunno. Right now - for 4.20, I'd obviously want to keep changes > smallish, so a hacky added special case might be the right thing to > do. But the code does look odd, doesn't it? > > I think part of it comes from the fact that we *used* to do the > compaction first, and then we did the reclaim, and then it was > re-orghanized to do reclaim first, but it tried to keep semantic > changes minimal and some of the above comes from that re-org. IIRC the point of reorg was that in typical case we actually do want to try the reclaim first (or only), and the exception are those THP-ish allocations where typically the problem is fragmentation, and not number of free pages, so we check first if we can defragment the memory or whether it makes sense to free pages in case the defragmentation is expected to help afterwards. It seemed better to put this special case out of the main reclaim/compaction retry-with-increasing-priority loop for non-costly-order allocations that in general can't fail. Vlastimil > I think. > > Linus > ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-04 9:22 ` Vlastimil Babka 0 siblings, 0 replies; 154+ messages in thread From: Vlastimil Babka @ 2018-12-04 9:22 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 4618 bytes --] On 12/3/18 11:27 PM, Linus Torvalds wrote: > On Mon, Dec 3, 2018 at 2:04 PM Linus Torvalds > <torvalds@linux-foundation.org> wrote: >> >> so I think all of David's patch is somewhat sensible, even if that >> specific "order == pageblock_order" test really looks like it might >> want to be clarified. > > Side note: I think maybe people should just look at that whole > compaction logic for that block, because it doesn't make much sense to > me: > > /* > * Checks for costly allocations with __GFP_NORETRY, which > * includes THP page fault allocations > */ > if (costly_order && (gfp_mask & __GFP_NORETRY)) { > /* > * If compaction is deferred for high-order allocations, > * it is because sync compaction recently failed. If > * this is the case and the caller requested a THP > * allocation, we do not want to heavily disrupt the > * system, so we fail the allocation instead of entering > * direct reclaim. > */ > if (compact_result == COMPACT_DEFERRED) > goto nopage; > > /* > * Looks like reclaim/compaction is worth trying, but > * sync compaction could be very expensive, so keep > * using async compaction. > */ > compact_priority = INIT_COMPACT_PRIORITY; > } > > this is where David wants to add *his* odd test, and I think everybody > looks at that added case > > + if (order == pageblock_order && > + !(current->flags & PF_KTHREAD)) > + goto nopage; > > and just goes "Eww". > > But I think the real problem is that it's the "goto nopage" thing that > makes _sense_, and the current cases for "let's try compaction" that More precisely it's "let's try reclaim + compaction". > are the odd ones, and then David adds one new special case for the > sensible behavior. > > For example, why would COMPACT_DEFERRED mean "don't bother", but not > all the other reasons it didn't really make sense? COMPACT_DEFERRED means that compaction was failing recently, even with sufficient free pages (e.g. freed by direct reclaim), so it doesn't make sense to continue. What are "all the other reasons"? __alloc_pages_direct_compact() could have also returned COMPACT_SKIPPED, which means compaction actually didn't happen at all, because there's not enough free pages. > So does it really make sense to fall through AT ALL to that "retry" > case, when we explicitly already had (gfp_mask & __GFP_NORETRY)? Well if there was no free memory to begin with, and thus compaction returned COMPACT_SKIPPED, then we didn't really "try" anything yet, so there's nothing to "not retry". > Maybe the real fix is to instead of adding yet another special case > for "goto nopage", it should just be unconditional: simply don't try > to compact large-pages if __GFP_NORETRY was set. I think that would destroy THP success rates too much, in situations where reclaim and compaction would succeed, because there's enough easily reclaimable and migratable memory. > Hmm? I dunno. Right now - for 4.20, I'd obviously want to keep changes > smallish, so a hacky added special case might be the right thing to > do. But the code does look odd, doesn't it? > > I think part of it comes from the fact that we *used* to do the > compaction first, and then we did the reclaim, and then it was > re-orghanized to do reclaim first, but it tried to keep semantic > changes minimal and some of the above comes from that re-org. IIRC the point of reorg was that in typical case we actually do want to try the reclaim first (or only), and the exception are those THP-ish allocations where typically the problem is fragmentation, and not number of free pages, so we check first if we can defragment the memory or whether it makes sense to free pages in case the defragmentation is expected to help afterwards. It seemed better to put this special case out of the main reclaim/compaction retry-with-increasing-priority loop for non-costly-order allocations that in general can't fail. Vlastimil > I think. > > Linus > ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-04 9:22 ` Vlastimil Babka @ 2018-12-04 10:45 ` Mel Gorman -1 siblings, 0 replies; 154+ messages in thread From: Mel Gorman @ 2018-12-04 10:45 UTC (permalink / raw) To: Vlastimil Babka Cc: Linus Torvalds, Andrea Arcangeli, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan Much of this thread is a rehash of previous discussions so as a result, I glossed over parts of it so there will be a degree of error. Very preliminary results from David's approach are below and the bottom line is that it might fix some latency issues and locality issues at the cost of a high degree of THP allocation failure. On Tue, Dec 04, 2018 at 10:22:26AM +0100, Vlastimil Babka wrote: > > + if (order == pageblock_order && > > + !(current->flags & PF_KTHREAD)) > > + goto nopage; > > > > and just goes "Eww". > > > > But I think the real problem is that it's the "goto nopage" thing that > > makes _sense_, and the current cases for "let's try compaction" that > > More precisely it's "let's try reclaim + compaction". > The original intent has been muddied and special cased but the general idea was that compaction needs space to work with to both succeed and avoid excessive scanning -- particularly in direct context that is visible to the application. Before compaction, linear-reclaim (aka lumpy reclaim) was used but this caused both page age inversion issues and excessive thrasing. In Andrew's tree, there are patches that also do small amounts of reclaim in response to fragmentation which in some cases alleviates the need for the reclaim + compaction step as the reclaim has sometimes already happened. This has reduced latencies and increased THP allocation success rates but not by enough which needs further work. Parts of compaction are in need of a revisit. I'm in the process of doing but it's time consuming to do this because of the level of testing required at every step. The prototype currently is 12 patches and growing and I'm not sure what the final series will look like or how far it'll go. At this point, I believe that even when it's finished that the concept of "do some reclaim and try compaction" will remain. I'm focused primarily on the compaction core at the moment rather than the outer part in the page allocator. > > are the odd ones, and then David adds one new special case for the > > sensible behavior. > > > > For example, why would COMPACT_DEFERRED mean "don't bother", but not > > all the other reasons it didn't really make sense? > > COMPACT_DEFERRED means that compaction was failing recently, even with > sufficient free pages (e.g. freed by direct reclaim), so it doesn't make > sense to continue. Yes, the intent is that recent failures should not incur more useless scanning and stalls. As it is, the latencies are too high and too often it's useless work. Historically, this was put into place as the time spent in compaction was too high and the THP allocation latencies were so bad that it was preferred to disable THP entirely. This has improved in recent years with general improvements and changes to defaults but there is room to improve. Again, it's something I'm looking into but it's slow. > > <SNIP> > > So does it really make sense to fall through AT ALL to that "retry" > > case, when we explicitly already had (gfp_mask & __GFP_NORETRY)? > > Well if there was no free memory to begin with, and thus compaction > returned COMPACT_SKIPPED, then we didn't really "try" anything yet, so > there's nothing to "not retry". > What should also be kept in mind is that we should avoid conflating locality preferences with THP preferences which is separate from THP allocation latencies. The whole __GFP_THISNODE approach is pushing too hard on locality versus huge pages when MADV_HUGEPAGE or always-defrag are used which is very unfortunate given that MADV_HUGEPAGE in itself says nothing about locality -- that is the business of other madvise flags or a specific policy. Using remote nodes is bad but reclaiming excessively and pushing data out of memory is worse as the latency to fault data back from disk is higher than a remote access. Andrea already pointed it out -- workloads that fit within a node are happy to reclaim local memory, particularly in the case where the existing data is old which is the ideal for David. Workloads that do not fit within a node will often prefer using remote memory -- either THP or base pages in the general case and THP for definite in the KVM case. While KVM might not like remote memory, using THP at least reduces the page table access overhead even if the access is remote and eventually automatic NUMA balancing might intervene. > > Maybe the real fix is to instead of adding yet another special case > > for "goto nopage", it should just be unconditional: simply don't try > > to compact large-pages if __GFP_NORETRY was set. > > I think that would destroy THP success rates too much, in situations > where reclaim and compaction would succeed, because there's enough > easily reclaimable and migratable memory. > Tests are in progress but yes, this is the primary risk of abandoning the allocation request too early. I've already found during developing the prototype series that it's very easy to "fix" latencies by simply failing THP allocation very quickly. This is not the desired outcome and has occupied the bulk of my attention. I have *one* result of the series on a 1-socket machine running "thpscale". It creates a file, punches holes in it to create a very light form of fragmentation and then tries THP allocations using madvise measuring latency and success rates. It's the global-dhp__workload_thpscale-madvhugepage in mmtests using XFS as the filesystem. thpscale Fault Latencies 4.20.0-rc4 4.20.0-rc4 mmots-20181130 gfpthisnode-v1r1 Amean fault-base-3 5358.54 ( 0.00%) 2408.93 * 55.04%* Amean fault-base-5 9742.30 ( 0.00%) 3035.25 * 68.84%* Amean fault-base-7 13069.18 ( 0.00%) 4362.22 * 66.62%* Amean fault-base-12 14882.53 ( 0.00%) 9424.38 * 36.67%* Amean fault-base-18 15692.75 ( 0.00%) 16280.03 ( -3.74%) Amean fault-base-24 28775.11 ( 0.00%) 18374.84 * 36.14%* Amean fault-base-30 42056.32 ( 0.00%) 21984.55 * 47.73%* Amean fault-base-32 38634.26 ( 0.00%) 22199.49 * 42.54%* Amean fault-huge-1 0.00 ( 0.00%) 0.00 ( 0.00%) Amean fault-huge-3 3628.86 ( 0.00%) 963.45 * 73.45%* Amean fault-huge-5 4926.42 ( 0.00%) 2959.85 * 39.92%* Amean fault-huge-7 6717.15 ( 0.00%) 3828.68 * 43.00%* Amean fault-huge-12 11393.47 ( 0.00%) 5772.92 * 49.33%* Amean fault-huge-18 16979.38 ( 0.00%) 4435.95 * 73.87%* Amean fault-huge-24 16558.00 ( 0.00%) 4416.46 * 73.33%* Amean fault-huge-30 20351.46 ( 0.00%) 5099.73 * 74.94%* Amean fault-huge-32 23332.54 ( 0.00%) 6524.73 * 72.04%* So, looks like massive latency improvements but then the THP allocation success rates thpscale Percentage Faults Huge 4.20.0-rc4 4.20.0-rc4 mmots-20181130 gfpthisnode-v1r1 Percentage huge-3 95.14 ( 0.00%) 7.94 ( -91.65%) Percentage huge-5 91.28 ( 0.00%) 5.00 ( -94.52%) Percentage huge-7 86.87 ( 0.00%) 9.36 ( -89.22%) Percentage huge-12 83.36 ( 0.00%) 21.03 ( -74.78%) Percentage huge-18 83.04 ( 0.00%) 30.73 ( -63.00%) Percentage huge-24 83.74 ( 0.00%) 27.47 ( -67.20%) Percentage huge-30 83.66 ( 0.00%) 31.85 ( -61.93%) Percentage huge-32 83.89 ( 0.00%) 29.09 ( -65.32%) They're down the toilet. 3 threads are able to get 95% of the requested THP pages with Andrews tree as of Nov 30th. David's patch drops that to 8% success rate. "Compaction efficiency" which takes success vs failure rate into account goes from 45% to 1%. Compaction scan efficiency, which is how many pages for migration are scanned vs how many are scanned as free targets goes from 21% to 1%. I do not consider this to be a good outcome and hence will not be acking the patches. I would also re-emphasise that a major problem with addressing this problem is that we do not have a general reproducible test case for David's scenario where as we do have reproduction cases for the others. They're not related to KVM but that doesn't matter because it's enough to have a memory hog try allocating more memory than fits on a single node. Remember too that while the headline regression reported by LKP looks bad, they have mentioned themselves that the different threads in the workload are being treated fairly. We've seen "regressions" like this in the past. For example, way back we had a problem with a dbench regression that was due to IO fairness giving each thread time to issue IO which slowed overall throughput that benefitted from few threads making progress while others starved. > > Hmm? I dunno. Right now - for 4.20, I'd obviously want to keep changes > > smallish, so a hacky added special case might be the right thing to > > do. But the code does look odd, doesn't it? > > > > I think part of it comes from the fact that we *used* to do the > > compaction first, and then we did the reclaim, and then it was > > re-orghanized to do reclaim first, but it tried to keep semantic > > changes minimal and some of the above comes from that re-org. > > IIRC the point of reorg was that in typical case we actually do want to > try the reclaim first (or only), and the exception are those THP-ish > allocations where typically the problem is fragmentation, and not number > of free pages, so we check first if we can defragment the memory or > whether it makes sense to free pages in case the defragmentation is > expected to help afterwards. It seemed better to put this special case > out of the main reclaim/compaction retry-with-increasing-priority loop > for non-costly-order allocations that in general can't fail. > Again, this is accurate. Scanning/compaction costs a lot. This has improved over time, but minimally it's unmapping pages, copying data and a bunch of TLB flushes. During migration, any access to the data being migrated stalls. The harm of reclaiming a little first so that the compaction is more likely to succeed incurred fewer stalls of small magnitude in general -- or at least it was the case when that behaviour was developed. -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-04 10:45 ` Mel Gorman 0 siblings, 0 replies; 154+ messages in thread From: Mel Gorman @ 2018-12-04 10:45 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 10628 bytes --] Much of this thread is a rehash of previous discussions so as a result, I glossed over parts of it so there will be a degree of error. Very preliminary results from David's approach are below and the bottom line is that it might fix some latency issues and locality issues at the cost of a high degree of THP allocation failure. On Tue, Dec 04, 2018 at 10:22:26AM +0100, Vlastimil Babka wrote: > > + if (order == pageblock_order && > > + !(current->flags & PF_KTHREAD)) > > + goto nopage; > > > > and just goes "Eww". > > > > But I think the real problem is that it's the "goto nopage" thing that > > makes _sense_, and the current cases for "let's try compaction" that > > More precisely it's "let's try reclaim + compaction". > The original intent has been muddied and special cased but the general idea was that compaction needs space to work with to both succeed and avoid excessive scanning -- particularly in direct context that is visible to the application. Before compaction, linear-reclaim (aka lumpy reclaim) was used but this caused both page age inversion issues and excessive thrasing. In Andrew's tree, there are patches that also do small amounts of reclaim in response to fragmentation which in some cases alleviates the need for the reclaim + compaction step as the reclaim has sometimes already happened. This has reduced latencies and increased THP allocation success rates but not by enough which needs further work. Parts of compaction are in need of a revisit. I'm in the process of doing but it's time consuming to do this because of the level of testing required at every step. The prototype currently is 12 patches and growing and I'm not sure what the final series will look like or how far it'll go. At this point, I believe that even when it's finished that the concept of "do some reclaim and try compaction" will remain. I'm focused primarily on the compaction core at the moment rather than the outer part in the page allocator. > > are the odd ones, and then David adds one new special case for the > > sensible behavior. > > > > For example, why would COMPACT_DEFERRED mean "don't bother", but not > > all the other reasons it didn't really make sense? > > COMPACT_DEFERRED means that compaction was failing recently, even with > sufficient free pages (e.g. freed by direct reclaim), so it doesn't make > sense to continue. Yes, the intent is that recent failures should not incur more useless scanning and stalls. As it is, the latencies are too high and too often it's useless work. Historically, this was put into place as the time spent in compaction was too high and the THP allocation latencies were so bad that it was preferred to disable THP entirely. This has improved in recent years with general improvements and changes to defaults but there is room to improve. Again, it's something I'm looking into but it's slow. > > <SNIP> > > So does it really make sense to fall through AT ALL to that "retry" > > case, when we explicitly already had (gfp_mask & __GFP_NORETRY)? > > Well if there was no free memory to begin with, and thus compaction > returned COMPACT_SKIPPED, then we didn't really "try" anything yet, so > there's nothing to "not retry". > What should also be kept in mind is that we should avoid conflating locality preferences with THP preferences which is separate from THP allocation latencies. The whole __GFP_THISNODE approach is pushing too hard on locality versus huge pages when MADV_HUGEPAGE or always-defrag are used which is very unfortunate given that MADV_HUGEPAGE in itself says nothing about locality -- that is the business of other madvise flags or a specific policy. Using remote nodes is bad but reclaiming excessively and pushing data out of memory is worse as the latency to fault data back from disk is higher than a remote access. Andrea already pointed it out -- workloads that fit within a node are happy to reclaim local memory, particularly in the case where the existing data is old which is the ideal for David. Workloads that do not fit within a node will often prefer using remote memory -- either THP or base pages in the general case and THP for definite in the KVM case. While KVM might not like remote memory, using THP at least reduces the page table access overhead even if the access is remote and eventually automatic NUMA balancing might intervene. > > Maybe the real fix is to instead of adding yet another special case > > for "goto nopage", it should just be unconditional: simply don't try > > to compact large-pages if __GFP_NORETRY was set. > > I think that would destroy THP success rates too much, in situations > where reclaim and compaction would succeed, because there's enough > easily reclaimable and migratable memory. > Tests are in progress but yes, this is the primary risk of abandoning the allocation request too early. I've already found during developing the prototype series that it's very easy to "fix" latencies by simply failing THP allocation very quickly. This is not the desired outcome and has occupied the bulk of my attention. I have *one* result of the series on a 1-socket machine running "thpscale". It creates a file, punches holes in it to create a very light form of fragmentation and then tries THP allocations using madvise measuring latency and success rates. It's the global-dhp__workload_thpscale-madvhugepage in mmtests using XFS as the filesystem. thpscale Fault Latencies 4.20.0-rc4 4.20.0-rc4 mmots-20181130 gfpthisnode-v1r1 Amean fault-base-3 5358.54 ( 0.00%) 2408.93 * 55.04%* Amean fault-base-5 9742.30 ( 0.00%) 3035.25 * 68.84%* Amean fault-base-7 13069.18 ( 0.00%) 4362.22 * 66.62%* Amean fault-base-12 14882.53 ( 0.00%) 9424.38 * 36.67%* Amean fault-base-18 15692.75 ( 0.00%) 16280.03 ( -3.74%) Amean fault-base-24 28775.11 ( 0.00%) 18374.84 * 36.14%* Amean fault-base-30 42056.32 ( 0.00%) 21984.55 * 47.73%* Amean fault-base-32 38634.26 ( 0.00%) 22199.49 * 42.54%* Amean fault-huge-1 0.00 ( 0.00%) 0.00 ( 0.00%) Amean fault-huge-3 3628.86 ( 0.00%) 963.45 * 73.45%* Amean fault-huge-5 4926.42 ( 0.00%) 2959.85 * 39.92%* Amean fault-huge-7 6717.15 ( 0.00%) 3828.68 * 43.00%* Amean fault-huge-12 11393.47 ( 0.00%) 5772.92 * 49.33%* Amean fault-huge-18 16979.38 ( 0.00%) 4435.95 * 73.87%* Amean fault-huge-24 16558.00 ( 0.00%) 4416.46 * 73.33%* Amean fault-huge-30 20351.46 ( 0.00%) 5099.73 * 74.94%* Amean fault-huge-32 23332.54 ( 0.00%) 6524.73 * 72.04%* So, looks like massive latency improvements but then the THP allocation success rates thpscale Percentage Faults Huge 4.20.0-rc4 4.20.0-rc4 mmots-20181130 gfpthisnode-v1r1 Percentage huge-3 95.14 ( 0.00%) 7.94 ( -91.65%) Percentage huge-5 91.28 ( 0.00%) 5.00 ( -94.52%) Percentage huge-7 86.87 ( 0.00%) 9.36 ( -89.22%) Percentage huge-12 83.36 ( 0.00%) 21.03 ( -74.78%) Percentage huge-18 83.04 ( 0.00%) 30.73 ( -63.00%) Percentage huge-24 83.74 ( 0.00%) 27.47 ( -67.20%) Percentage huge-30 83.66 ( 0.00%) 31.85 ( -61.93%) Percentage huge-32 83.89 ( 0.00%) 29.09 ( -65.32%) They're down the toilet. 3 threads are able to get 95% of the requested THP pages with Andrews tree as of Nov 30th. David's patch drops that to 8% success rate. "Compaction efficiency" which takes success vs failure rate into account goes from 45% to 1%. Compaction scan efficiency, which is how many pages for migration are scanned vs how many are scanned as free targets goes from 21% to 1%. I do not consider this to be a good outcome and hence will not be acking the patches. I would also re-emphasise that a major problem with addressing this problem is that we do not have a general reproducible test case for David's scenario where as we do have reproduction cases for the others. They're not related to KVM but that doesn't matter because it's enough to have a memory hog try allocating more memory than fits on a single node. Remember too that while the headline regression reported by LKP looks bad, they have mentioned themselves that the different threads in the workload are being treated fairly. We've seen "regressions" like this in the past. For example, way back we had a problem with a dbench regression that was due to IO fairness giving each thread time to issue IO which slowed overall throughput that benefitted from few threads making progress while others starved. > > Hmm? I dunno. Right now - for 4.20, I'd obviously want to keep changes > > smallish, so a hacky added special case might be the right thing to > > do. But the code does look odd, doesn't it? > > > > I think part of it comes from the fact that we *used* to do the > > compaction first, and then we did the reclaim, and then it was > > re-orghanized to do reclaim first, but it tried to keep semantic > > changes minimal and some of the above comes from that re-org. > > IIRC the point of reorg was that in typical case we actually do want to > try the reclaim first (or only), and the exception are those THP-ish > allocations where typically the problem is fragmentation, and not number > of free pages, so we check first if we can defragment the memory or > whether it makes sense to free pages in case the defragmentation is > expected to help afterwards. It seemed better to put this special case > out of the main reclaim/compaction retry-with-increasing-priority loop > for non-costly-order allocations that in general can't fail. > Again, this is accurate. Scanning/compaction costs a lot. This has improved over time, but minimally it's unmapping pages, copying data and a bunch of TLB flushes. During migration, any access to the data being migrated stalls. The harm of reclaiming a little first so that the compaction is more likely to succeed incurred fewer stalls of small magnitude in general -- or at least it was the case when that behaviour was developed. -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-04 10:45 ` Mel Gorman @ 2018-12-05 0:47 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-05 0:47 UTC (permalink / raw) To: Mel Gorman Cc: Vlastimil Babka, Linus Torvalds, Andrea Arcangeli, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Tue, 4 Dec 2018, Mel Gorman wrote: > What should also be kept in mind is that we should avoid conflating > locality preferences with THP preferences which is separate from THP > allocation latencies. The whole __GFP_THISNODE approach is pushing too > hard on locality versus huge pages when MADV_HUGEPAGE or always-defrag > are used which is very unfortunate given that MADV_HUGEPAGE in itself says > nothing about locality -- that is the business of other madvise flags or > a specific policy. We currently lack those other madvise modes or mempolicies: mbind() is not a viable alternative because we do not want to oom kill when local memory is depleted, we want to fallback to remote memory. In my response to Michal, I noted three possible usecases that MADV_HUGEPAGE either currently has or has taken before: direct compaction/reclaim, avoid increased rss, and allow fallback to remote memory. It's certainly not the business of one madvise mode to define this. Thus, I'm trying to return to the behavior that was in 4.1 and what was restored three years ago because suddenly changing the behavior to allow remote allocation causes real-world regressions. > Using remote nodes is bad but reclaiming excessively > and pushing data out of memory is worse as the latency to fault data back > from disk is higher than a remote access. > That's discussing two things at the same time: local fragmentation and local low-on-memory conditions. If compaction quickly fails and local pages are available as fallback, that requires no reclaim. If we're truly low-on-memory locally then it is obviously better to allocate remotely than aggressively reclaim. > Andrea already pointed it out -- workloads that fit within a node are happy > to reclaim local memory, particularly in the case where the existing data > is old which is the ideal for David. Workloads that do not fit within a > node will often prefer using remote memory -- either THP or base pages > in the general case and THP for definite in the KVM case. While KVM > might not like remote memory, using THP at least reduces the page table > access overhead even if the access is remote and eventually automatic > NUMA balancing might intervene. > Sure, but not at the cost of regressing real-world workloads; what is being asked for here is legitimate and worthy of an extension, but since the long-standing behavior has been to use __GFP_THISNODE and people depend on that for NUMA locality, can we not fix the swap storm and look to extending the API to include workloads that span multiple nodes? > I have *one* result of the series on a 1-socket machine running > "thpscale". It creates a file, punches holes in it to create a > very light form of fragmentation and then tries THP allocations > using madvise measuring latency and success rates. It's the > global-dhp__workload_thpscale-madvhugepage in mmtests using XFS as the > filesystem. > > thpscale Fault Latencies > 4.20.0-rc4 4.20.0-rc4 > mmots-20181130 gfpthisnode-v1r1 > Amean fault-base-3 5358.54 ( 0.00%) 2408.93 * 55.04%* > Amean fault-base-5 9742.30 ( 0.00%) 3035.25 * 68.84%* > Amean fault-base-7 13069.18 ( 0.00%) 4362.22 * 66.62%* > Amean fault-base-12 14882.53 ( 0.00%) 9424.38 * 36.67%* > Amean fault-base-18 15692.75 ( 0.00%) 16280.03 ( -3.74%) > Amean fault-base-24 28775.11 ( 0.00%) 18374.84 * 36.14%* > Amean fault-base-30 42056.32 ( 0.00%) 21984.55 * 47.73%* > Amean fault-base-32 38634.26 ( 0.00%) 22199.49 * 42.54%* > Amean fault-huge-1 0.00 ( 0.00%) 0.00 ( 0.00%) > Amean fault-huge-3 3628.86 ( 0.00%) 963.45 * 73.45%* > Amean fault-huge-5 4926.42 ( 0.00%) 2959.85 * 39.92%* > Amean fault-huge-7 6717.15 ( 0.00%) 3828.68 * 43.00%* > Amean fault-huge-12 11393.47 ( 0.00%) 5772.92 * 49.33%* > Amean fault-huge-18 16979.38 ( 0.00%) 4435.95 * 73.87%* > Amean fault-huge-24 16558.00 ( 0.00%) 4416.46 * 73.33%* > Amean fault-huge-30 20351.46 ( 0.00%) 5099.73 * 74.94%* > Amean fault-huge-32 23332.54 ( 0.00%) 6524.73 * 72.04%* > > So, looks like massive latency improvements but then the THP allocation > success rates > > thpscale Percentage Faults Huge > 4.20.0-rc4 4.20.0-rc4 > mmots-20181130 gfpthisnode-v1r1 > Percentage huge-3 95.14 ( 0.00%) 7.94 ( -91.65%) > Percentage huge-5 91.28 ( 0.00%) 5.00 ( -94.52%) > Percentage huge-7 86.87 ( 0.00%) 9.36 ( -89.22%) > Percentage huge-12 83.36 ( 0.00%) 21.03 ( -74.78%) > Percentage huge-18 83.04 ( 0.00%) 30.73 ( -63.00%) > Percentage huge-24 83.74 ( 0.00%) 27.47 ( -67.20%) > Percentage huge-30 83.66 ( 0.00%) 31.85 ( -61.93%) > Percentage huge-32 83.89 ( 0.00%) 29.09 ( -65.32%) > > They're down the toilet. 3 threads are able to get 95% of the requested > THP pages with Andrews tree as of Nov 30th. David's patch drops that to > 8% success rate. > I'm not as concerned about fault latency for these binaries that remap their text segments to be backed by transparent hugepages, that's secondary to the primary concern: access latency. I agree that faulting thp is more likely successful if allowed to access remote memory; I'm reporting the regression in the access latency to that memory for the lifetime of the binary. > "Compaction efficiency" which takes success vs failure rate into account > goes from 45% to 1%. Compaction scan efficiency, which is how many pages > for migration are scanned vs how many are scanned as free targets goes > from 21% to 1%. > > I do not consider this to be a good outcome and hence will not be acking > the patches. > > I would also re-emphasise that a major problem with addressing this > problem is that we do not have a general reproducible test case for > David's scenario where as we do have reproduction cases for the others. > They're not related to KVM but that doesn't matter because it's enough > to have a memory hog try allocating more memory than fits on a single node. > It's trivial to reproduce this issue: fragment all local memory that compaction cannot resolve, do posix_memalign() for hugepage aligned memory, and measure the access latency. To fragment all local memory, you can simply insert a kernel module and allocate high-order memory (just do kmem_cache_alloc_node() or get_page() to pin it so compaction fails or punch holes in the file as you did above). You can do this for all memory rather than the local node to measure the even more severe allocation latency regression that not setting __GFP_THISNODE introduces. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-05 0:47 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-05 0:47 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 7093 bytes --] On Tue, 4 Dec 2018, Mel Gorman wrote: > What should also be kept in mind is that we should avoid conflating > locality preferences with THP preferences which is separate from THP > allocation latencies. The whole __GFP_THISNODE approach is pushing too > hard on locality versus huge pages when MADV_HUGEPAGE or always-defrag > are used which is very unfortunate given that MADV_HUGEPAGE in itself says > nothing about locality -- that is the business of other madvise flags or > a specific policy. We currently lack those other madvise modes or mempolicies: mbind() is not a viable alternative because we do not want to oom kill when local memory is depleted, we want to fallback to remote memory. In my response to Michal, I noted three possible usecases that MADV_HUGEPAGE either currently has or has taken before: direct compaction/reclaim, avoid increased rss, and allow fallback to remote memory. It's certainly not the business of one madvise mode to define this. Thus, I'm trying to return to the behavior that was in 4.1 and what was restored three years ago because suddenly changing the behavior to allow remote allocation causes real-world regressions. > Using remote nodes is bad but reclaiming excessively > and pushing data out of memory is worse as the latency to fault data back > from disk is higher than a remote access. > That's discussing two things at the same time: local fragmentation and local low-on-memory conditions. If compaction quickly fails and local pages are available as fallback, that requires no reclaim. If we're truly low-on-memory locally then it is obviously better to allocate remotely than aggressively reclaim. > Andrea already pointed it out -- workloads that fit within a node are happy > to reclaim local memory, particularly in the case where the existing data > is old which is the ideal for David. Workloads that do not fit within a > node will often prefer using remote memory -- either THP or base pages > in the general case and THP for definite in the KVM case. While KVM > might not like remote memory, using THP at least reduces the page table > access overhead even if the access is remote and eventually automatic > NUMA balancing might intervene. > Sure, but not at the cost of regressing real-world workloads; what is being asked for here is legitimate and worthy of an extension, but since the long-standing behavior has been to use __GFP_THISNODE and people depend on that for NUMA locality, can we not fix the swap storm and look to extending the API to include workloads that span multiple nodes? > I have *one* result of the series on a 1-socket machine running > "thpscale". It creates a file, punches holes in it to create a > very light form of fragmentation and then tries THP allocations > using madvise measuring latency and success rates. It's the > global-dhp__workload_thpscale-madvhugepage in mmtests using XFS as the > filesystem. > > thpscale Fault Latencies > 4.20.0-rc4 4.20.0-rc4 > mmots-20181130 gfpthisnode-v1r1 > Amean fault-base-3 5358.54 ( 0.00%) 2408.93 * 55.04%* > Amean fault-base-5 9742.30 ( 0.00%) 3035.25 * 68.84%* > Amean fault-base-7 13069.18 ( 0.00%) 4362.22 * 66.62%* > Amean fault-base-12 14882.53 ( 0.00%) 9424.38 * 36.67%* > Amean fault-base-18 15692.75 ( 0.00%) 16280.03 ( -3.74%) > Amean fault-base-24 28775.11 ( 0.00%) 18374.84 * 36.14%* > Amean fault-base-30 42056.32 ( 0.00%) 21984.55 * 47.73%* > Amean fault-base-32 38634.26 ( 0.00%) 22199.49 * 42.54%* > Amean fault-huge-1 0.00 ( 0.00%) 0.00 ( 0.00%) > Amean fault-huge-3 3628.86 ( 0.00%) 963.45 * 73.45%* > Amean fault-huge-5 4926.42 ( 0.00%) 2959.85 * 39.92%* > Amean fault-huge-7 6717.15 ( 0.00%) 3828.68 * 43.00%* > Amean fault-huge-12 11393.47 ( 0.00%) 5772.92 * 49.33%* > Amean fault-huge-18 16979.38 ( 0.00%) 4435.95 * 73.87%* > Amean fault-huge-24 16558.00 ( 0.00%) 4416.46 * 73.33%* > Amean fault-huge-30 20351.46 ( 0.00%) 5099.73 * 74.94%* > Amean fault-huge-32 23332.54 ( 0.00%) 6524.73 * 72.04%* > > So, looks like massive latency improvements but then the THP allocation > success rates > > thpscale Percentage Faults Huge > 4.20.0-rc4 4.20.0-rc4 > mmots-20181130 gfpthisnode-v1r1 > Percentage huge-3 95.14 ( 0.00%) 7.94 ( -91.65%) > Percentage huge-5 91.28 ( 0.00%) 5.00 ( -94.52%) > Percentage huge-7 86.87 ( 0.00%) 9.36 ( -89.22%) > Percentage huge-12 83.36 ( 0.00%) 21.03 ( -74.78%) > Percentage huge-18 83.04 ( 0.00%) 30.73 ( -63.00%) > Percentage huge-24 83.74 ( 0.00%) 27.47 ( -67.20%) > Percentage huge-30 83.66 ( 0.00%) 31.85 ( -61.93%) > Percentage huge-32 83.89 ( 0.00%) 29.09 ( -65.32%) > > They're down the toilet. 3 threads are able to get 95% of the requested > THP pages with Andrews tree as of Nov 30th. David's patch drops that to > 8% success rate. > I'm not as concerned about fault latency for these binaries that remap their text segments to be backed by transparent hugepages, that's secondary to the primary concern: access latency. I agree that faulting thp is more likely successful if allowed to access remote memory; I'm reporting the regression in the access latency to that memory for the lifetime of the binary. > "Compaction efficiency" which takes success vs failure rate into account > goes from 45% to 1%. Compaction scan efficiency, which is how many pages > for migration are scanned vs how many are scanned as free targets goes > from 21% to 1%. > > I do not consider this to be a good outcome and hence will not be acking > the patches. > > I would also re-emphasise that a major problem with addressing this > problem is that we do not have a general reproducible test case for > David's scenario where as we do have reproduction cases for the others. > They're not related to KVM but that doesn't matter because it's enough > to have a memory hog try allocating more memory than fits on a single node. > It's trivial to reproduce this issue: fragment all local memory that compaction cannot resolve, do posix_memalign() for hugepage aligned memory, and measure the access latency. To fragment all local memory, you can simply insert a kernel module and allocate high-order memory (just do kmem_cache_alloc_node() or get_page() to pin it so compaction fails or punch holes in the file as you did above). You can do this for all memory rather than the local node to measure the even more severe allocation latency regression that not setting __GFP_THISNODE introduces. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-05 0:47 ` David Rientjes @ 2018-12-05 9:08 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-05 9:08 UTC (permalink / raw) To: David Rientjes Cc: Mel Gorman, Vlastimil Babka, Linus Torvalds, Andrea Arcangeli, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Tue 04-12-18 16:47:23, David Rientjes wrote: > On Tue, 4 Dec 2018, Mel Gorman wrote: > > > What should also be kept in mind is that we should avoid conflating > > locality preferences with THP preferences which is separate from THP > > allocation latencies. The whole __GFP_THISNODE approach is pushing too > > hard on locality versus huge pages when MADV_HUGEPAGE or always-defrag > > are used which is very unfortunate given that MADV_HUGEPAGE in itself says > > nothing about locality -- that is the business of other madvise flags or > > a specific policy. > > We currently lack those other madvise modes or mempolicies: mbind() is not > a viable alternative because we do not want to oom kill when local memory > is depleted, we want to fallback to remote memory. Yes, there was a clear agreement that there is no suitable mempolicy right now and there were proposals to introduce MPOL_NODE_RECLAIM to introduce that behavior. This would be an improvement regardless of THP because global node-reclaim policy was simply a disaster we had to turn off by default and the global semantic was a reason people just gave up using it completely. [...] > Sure, but not at the cost of regressing real-world workloads; what is > being asked for here is legitimate and worthy of an extension, but since > the long-standing behavior has been to use __GFP_THISNODE and people > depend on that for NUMA locality, Well, your patch has altered the semantic and has introduced a subtle and _undocumented_ NUMA policy into MADV_HUGEPAGE. All that without any workload numbers. It would be preferable to have a simulator of those real world workloads of course but even getting some more detailed metric - e.g. without the patch we have X THP utilization and the runtime characteristics Y but without X1 and Y1). > can we not fix the swap storm and look > to extending the API to include workloads that span multiple nodes? Yes, we definitely want to address swap storms. No question about that. But our established approach for NUMA policy has been to fallback to other nodes and everybody focused on NUMA latency should use NUMA API to achive that. Not vice versa. As I've said in other thread, I am OK with restoring __GFP_THISNODE for now but we should really have a very good plan for further steps. And that involves an agreed NUMA behavior. I haven't seen any widespread agreement on that yet though. [...] > > I would also re-emphasise that a major problem with addressing this > > problem is that we do not have a general reproducible test case for > > David's scenario where as we do have reproduction cases for the others. > > They're not related to KVM but that doesn't matter because it's enough > > to have a memory hog try allocating more memory than fits on a single node. > > > > It's trivial to reproduce this issue: fragment all local memory that > compaction cannot resolve, do posix_memalign() for hugepage aligned > memory, and measure the access latency. To fragment all local memory, you > can simply insert a kernel module and allocate high-order memory (just do > kmem_cache_alloc_node() or get_page() to pin it so compaction fails or > punch holes in the file as you did above). You can do this for all memory > rather than the local node to measure the even more severe allocation > latency regression that not setting __GFP_THISNODE introduces. Sure, but can we get some numbers from a real workload rather than an artificial worst case? The utilization issue Mel pointed out before and here again is a real concern IMHO. We we definitely need a better picture to make an educated decision. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-05 9:08 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-05 9:08 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 3737 bytes --] On Tue 04-12-18 16:47:23, David Rientjes wrote: > On Tue, 4 Dec 2018, Mel Gorman wrote: > > > What should also be kept in mind is that we should avoid conflating > > locality preferences with THP preferences which is separate from THP > > allocation latencies. The whole __GFP_THISNODE approach is pushing too > > hard on locality versus huge pages when MADV_HUGEPAGE or always-defrag > > are used which is very unfortunate given that MADV_HUGEPAGE in itself says > > nothing about locality -- that is the business of other madvise flags or > > a specific policy. > > We currently lack those other madvise modes or mempolicies: mbind() is not > a viable alternative because we do not want to oom kill when local memory > is depleted, we want to fallback to remote memory. Yes, there was a clear agreement that there is no suitable mempolicy right now and there were proposals to introduce MPOL_NODE_RECLAIM to introduce that behavior. This would be an improvement regardless of THP because global node-reclaim policy was simply a disaster we had to turn off by default and the global semantic was a reason people just gave up using it completely. [...] > Sure, but not at the cost of regressing real-world workloads; what is > being asked for here is legitimate and worthy of an extension, but since > the long-standing behavior has been to use __GFP_THISNODE and people > depend on that for NUMA locality, Well, your patch has altered the semantic and has introduced a subtle and _undocumented_ NUMA policy into MADV_HUGEPAGE. All that without any workload numbers. It would be preferable to have a simulator of those real world workloads of course but even getting some more detailed metric - e.g. without the patch we have X THP utilization and the runtime characteristics Y but without X1 and Y1). > can we not fix the swap storm and look > to extending the API to include workloads that span multiple nodes? Yes, we definitely want to address swap storms. No question about that. But our established approach for NUMA policy has been to fallback to other nodes and everybody focused on NUMA latency should use NUMA API to achive that. Not vice versa. As I've said in other thread, I am OK with restoring __GFP_THISNODE for now but we should really have a very good plan for further steps. And that involves an agreed NUMA behavior. I haven't seen any widespread agreement on that yet though. [...] > > I would also re-emphasise that a major problem with addressing this > > problem is that we do not have a general reproducible test case for > > David's scenario where as we do have reproduction cases for the others. > > They're not related to KVM but that doesn't matter because it's enough > > to have a memory hog try allocating more memory than fits on a single node. > > > > It's trivial to reproduce this issue: fragment all local memory that > compaction cannot resolve, do posix_memalign() for hugepage aligned > memory, and measure the access latency. To fragment all local memory, you > can simply insert a kernel module and allocate high-order memory (just do > kmem_cache_alloc_node() or get_page() to pin it so compaction fails or > punch holes in the file as you did above). You can do this for all memory > rather than the local node to measure the even more severe allocation > latency regression that not setting __GFP_THISNODE introduces. Sure, but can we get some numbers from a real workload rather than an artificial worst case? The utilization issue Mel pointed out before and here again is a real concern IMHO. We we definitely need a better picture to make an educated decision. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-05 9:08 ` Michal Hocko @ 2018-12-05 10:43 ` Mel Gorman -1 siblings, 0 replies; 154+ messages in thread From: Mel Gorman @ 2018-12-05 10:43 UTC (permalink / raw) To: Michal Hocko Cc: David Rientjes, Vlastimil Babka, Linus Torvalds, Andrea Arcangeli, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Wed, Dec 05, 2018 at 10:08:56AM +0100, Michal Hocko wrote: > On Tue 04-12-18 16:47:23, David Rientjes wrote: > > On Tue, 4 Dec 2018, Mel Gorman wrote: > > > > > What should also be kept in mind is that we should avoid conflating > > > locality preferences with THP preferences which is separate from THP > > > allocation latencies. The whole __GFP_THISNODE approach is pushing too > > > hard on locality versus huge pages when MADV_HUGEPAGE or always-defrag > > > are used which is very unfortunate given that MADV_HUGEPAGE in itself says > > > nothing about locality -- that is the business of other madvise flags or > > > a specific policy. > > > > We currently lack those other madvise modes or mempolicies: mbind() is not > > a viable alternative because we do not want to oom kill when local memory > > is depleted, we want to fallback to remote memory. > > Yes, there was a clear agreement that there is no suitable mempolicy > right now and there were proposals to introduce MPOL_NODE_RECLAIM to > introduce that behavior. This would be an improvement regardless of THP > because global node-reclaim policy was simply a disaster we had to turn > off by default and the global semantic was a reason people just gave up > using it completely. > The alternative is to define a clear semantic for THP allocation requests that are considered "light" regardless of whether that needs a GFP flag or not. A sensible default might be o Allocate THP local if the amount of work is light or non-existant. o Allocate THP remote if one is freely available with no additional work (maybe kick remote kcompactd) o Allocate base page local if the amount of work is light or non-existant o Allocate base page remote if the amount of work is light or non-existant o Do heavy work in zonelist order until a base page is allocated somewhere It's not something could be clearly expressed with either NORETRY or THISNODE but longer-term might be saner than chopping and changing on which flags are more important and which workload is most relevant. That runs the risk of a revert-loop where each person targetting one workload reverts one patch to insert another until someone throws up their hands in frustration and just carries patches out-of-tree long-term. I'm not going to prototype something along these lines for now as fundamentally a better compaction could cut out part of the root cause of pain. -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-05 10:43 ` Mel Gorman 0 siblings, 0 replies; 154+ messages in thread From: Mel Gorman @ 2018-12-05 10:43 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2484 bytes --] On Wed, Dec 05, 2018 at 10:08:56AM +0100, Michal Hocko wrote: > On Tue 04-12-18 16:47:23, David Rientjes wrote: > > On Tue, 4 Dec 2018, Mel Gorman wrote: > > > > > What should also be kept in mind is that we should avoid conflating > > > locality preferences with THP preferences which is separate from THP > > > allocation latencies. The whole __GFP_THISNODE approach is pushing too > > > hard on locality versus huge pages when MADV_HUGEPAGE or always-defrag > > > are used which is very unfortunate given that MADV_HUGEPAGE in itself says > > > nothing about locality -- that is the business of other madvise flags or > > > a specific policy. > > > > We currently lack those other madvise modes or mempolicies: mbind() is not > > a viable alternative because we do not want to oom kill when local memory > > is depleted, we want to fallback to remote memory. > > Yes, there was a clear agreement that there is no suitable mempolicy > right now and there were proposals to introduce MPOL_NODE_RECLAIM to > introduce that behavior. This would be an improvement regardless of THP > because global node-reclaim policy was simply a disaster we had to turn > off by default and the global semantic was a reason people just gave up > using it completely. > The alternative is to define a clear semantic for THP allocation requests that are considered "light" regardless of whether that needs a GFP flag or not. A sensible default might be o Allocate THP local if the amount of work is light or non-existant. o Allocate THP remote if one is freely available with no additional work (maybe kick remote kcompactd) o Allocate base page local if the amount of work is light or non-existant o Allocate base page remote if the amount of work is light or non-existant o Do heavy work in zonelist order until a base page is allocated somewhere It's not something could be clearly expressed with either NORETRY or THISNODE but longer-term might be saner than chopping and changing on which flags are more important and which workload is most relevant. That runs the risk of a revert-loop where each person targetting one workload reverts one patch to insert another until someone throws up their hands in frustration and just carries patches out-of-tree long-term. I'm not going to prototype something along these lines for now as fundamentally a better compaction could cut out part of the root cause of pain. -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-05 10:43 ` Mel Gorman @ 2018-12-05 11:43 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-05 11:43 UTC (permalink / raw) To: Mel Gorman Cc: David Rientjes, Vlastimil Babka, Linus Torvalds, Andrea Arcangeli, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Wed 05-12-18 10:43:43, Mel Gorman wrote: > On Wed, Dec 05, 2018 at 10:08:56AM +0100, Michal Hocko wrote: > > On Tue 04-12-18 16:47:23, David Rientjes wrote: > > > On Tue, 4 Dec 2018, Mel Gorman wrote: > > > > > > > What should also be kept in mind is that we should avoid conflating > > > > locality preferences with THP preferences which is separate from THP > > > > allocation latencies. The whole __GFP_THISNODE approach is pushing too > > > > hard on locality versus huge pages when MADV_HUGEPAGE or always-defrag > > > > are used which is very unfortunate given that MADV_HUGEPAGE in itself says > > > > nothing about locality -- that is the business of other madvise flags or > > > > a specific policy. > > > > > > We currently lack those other madvise modes or mempolicies: mbind() is not > > > a viable alternative because we do not want to oom kill when local memory > > > is depleted, we want to fallback to remote memory. > > > > Yes, there was a clear agreement that there is no suitable mempolicy > > right now and there were proposals to introduce MPOL_NODE_RECLAIM to > > introduce that behavior. This would be an improvement regardless of THP > > because global node-reclaim policy was simply a disaster we had to turn > > off by default and the global semantic was a reason people just gave up > > using it completely. > > > > The alternative is to define a clear semantic for THP allocation > requests that are considered "light" regardless of whether that needs a > GFP flag or not. A sensible default might be > > o Allocate THP local if the amount of work is light or non-existant. > o Allocate THP remote if one is freely available with no additional work > (maybe kick remote kcompactd) > o Allocate base page local if the amount of work is light or non-existant > o Allocate base page remote if the amount of work is light or non-existant > o Do heavy work in zonelist order until a base page is allocated somewhere I am not sure about the ordering without a deeper consideration but I thin THP should reflect the approach we have for base bages. > It's not something could be clearly expressed with either NORETRY or > THISNODE but longer-term might be saner than chopping and changing on > which flags are more important and which workload is most relevant. That > runs the risk of a revert-loop where each person targetting one workload > reverts one patch to insert another until someone throws up their hands > in frustration and just carries patches out-of-tree long-term. Fully agreed! > I'm not going to prototype something along these lines for now as > fundamentally a better compaction could cut out part of the root cause > of pain. Yes there is some ground work to be done first. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-05 11:43 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-05 11:43 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2820 bytes --] On Wed 05-12-18 10:43:43, Mel Gorman wrote: > On Wed, Dec 05, 2018 at 10:08:56AM +0100, Michal Hocko wrote: > > On Tue 04-12-18 16:47:23, David Rientjes wrote: > > > On Tue, 4 Dec 2018, Mel Gorman wrote: > > > > > > > What should also be kept in mind is that we should avoid conflating > > > > locality preferences with THP preferences which is separate from THP > > > > allocation latencies. The whole __GFP_THISNODE approach is pushing too > > > > hard on locality versus huge pages when MADV_HUGEPAGE or always-defrag > > > > are used which is very unfortunate given that MADV_HUGEPAGE in itself says > > > > nothing about locality -- that is the business of other madvise flags or > > > > a specific policy. > > > > > > We currently lack those other madvise modes or mempolicies: mbind() is not > > > a viable alternative because we do not want to oom kill when local memory > > > is depleted, we want to fallback to remote memory. > > > > Yes, there was a clear agreement that there is no suitable mempolicy > > right now and there were proposals to introduce MPOL_NODE_RECLAIM to > > introduce that behavior. This would be an improvement regardless of THP > > because global node-reclaim policy was simply a disaster we had to turn > > off by default and the global semantic was a reason people just gave up > > using it completely. > > > > The alternative is to define a clear semantic for THP allocation > requests that are considered "light" regardless of whether that needs a > GFP flag or not. A sensible default might be > > o Allocate THP local if the amount of work is light or non-existant. > o Allocate THP remote if one is freely available with no additional work > (maybe kick remote kcompactd) > o Allocate base page local if the amount of work is light or non-existant > o Allocate base page remote if the amount of work is light or non-existant > o Do heavy work in zonelist order until a base page is allocated somewhere I am not sure about the ordering without a deeper consideration but I thin THP should reflect the approach we have for base bages. > It's not something could be clearly expressed with either NORETRY or > THISNODE but longer-term might be saner than chopping and changing on > which flags are more important and which workload is most relevant. That > runs the risk of a revert-loop where each person targetting one workload > reverts one patch to insert another until someone throws up their hands > in frustration and just carries patches out-of-tree long-term. Fully agreed! > I'm not going to prototype something along these lines for now as > fundamentally a better compaction could cut out part of the root cause > of pain. Yes there is some ground work to be done first. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-04 10:45 ` Mel Gorman @ 2018-12-05 10:06 ` Mel Gorman -1 siblings, 0 replies; 154+ messages in thread From: Mel Gorman @ 2018-12-05 10:06 UTC (permalink / raw) To: Vlastimil Babka Cc: Linus Torvalds, Andrea Arcangeli, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan On Tue, Dec 04, 2018 at 10:45:58AM +0000, Mel Gorman wrote: > I have *one* result of the series on a 1-socket machine running > "thpscale". It creates a file, punches holes in it to create a > very light form of fragmentation and then tries THP allocations > using madvise measuring latency and success rates. It's the > global-dhp__workload_thpscale-madvhugepage in mmtests using XFS as the > filesystem. > > thpscale Fault Latencies > 4.20.0-rc4 4.20.0-rc4 > mmots-20181130 gfpthisnode-v1r1 > Amean fault-base-3 5358.54 ( 0.00%) 2408.93 * 55.04%* > Amean fault-base-5 9742.30 ( 0.00%) 3035.25 * 68.84%* > Amean fault-base-7 13069.18 ( 0.00%) 4362.22 * 66.62%* > Amean fault-base-12 14882.53 ( 0.00%) 9424.38 * 36.67%* > Amean fault-base-18 15692.75 ( 0.00%) 16280.03 ( -3.74%) > Amean fault-base-24 28775.11 ( 0.00%) 18374.84 * 36.14%* > Amean fault-base-30 42056.32 ( 0.00%) 21984.55 * 47.73%* > Amean fault-base-32 38634.26 ( 0.00%) 22199.49 * 42.54%* > Amean fault-huge-1 0.00 ( 0.00%) 0.00 ( 0.00%) > Amean fault-huge-3 3628.86 ( 0.00%) 963.45 * 73.45%* > Amean fault-huge-5 4926.42 ( 0.00%) 2959.85 * 39.92%* > Amean fault-huge-7 6717.15 ( 0.00%) 3828.68 * 43.00%* > Amean fault-huge-12 11393.47 ( 0.00%) 5772.92 * 49.33%* > Amean fault-huge-18 16979.38 ( 0.00%) 4435.95 * 73.87%* > Amean fault-huge-24 16558.00 ( 0.00%) 4416.46 * 73.33%* > Amean fault-huge-30 20351.46 ( 0.00%) 5099.73 * 74.94%* > Amean fault-huge-32 23332.54 ( 0.00%) 6524.73 * 72.04%* > > So, looks like massive latency improvements but then the THP allocation > success rates > > thpscale Percentage Faults Huge > 4.20.0-rc4 4.20.0-rc4 > mmots-20181130 gfpthisnode-v1r1 > Percentage huge-3 95.14 ( 0.00%) 7.94 ( -91.65%) > Percentage huge-5 91.28 ( 0.00%) 5.00 ( -94.52%) > Percentage huge-7 86.87 ( 0.00%) 9.36 ( -89.22%) > Percentage huge-12 83.36 ( 0.00%) 21.03 ( -74.78%) > Percentage huge-18 83.04 ( 0.00%) 30.73 ( -63.00%) > Percentage huge-24 83.74 ( 0.00%) 27.47 ( -67.20%) > Percentage huge-30 83.66 ( 0.00%) 31.85 ( -61.93%) > Percentage huge-32 83.89 ( 0.00%) 29.09 ( -65.32%) > Other results arrived once the grid caught up and it's a mixed bag of gains and losses roughtly along the lines predicted by the discussion already -- namely locality is better as long as the workload fits, compaction is reduced, reclaim is reduced, THP allocation success rates are reduced but latencies are often better. Whether this is "good" or "bad" depends on whether you have a workload that benefits because it's neither universally good or bad. It would still be nice to hear how Andreas fared but I think we'll reach the same conclusion -- the patches shuffles the problem around with limited effort to address the root causes so all we end up changing is the identity of the person who complains about their workload. One might be tempted to think that the reduced latencies in some cases are great but not if the workload is one that benefits from longer startup costs in exchange for lower runtime costs in the active phase. For the much longer answer, I'll focus on the two-socket results because they are more relevant to the current discussion. The workloads are not realistic in the slightest, they just happen to trigger some of the interesting corner cases. global-dhp__workload_usemem-stress-numa-compact o Plain anonymous faulting workload o defrag=always (not representative, simply triggers a bad case) 4.20.0-rc4 4.20.0-rc4 mmots-20181130 gfpthisnode-v1r1 Amean Elapsd-1 26.79 ( 0.00%) 34.92 * -30.37%* Amean Elapsd-3 7.32 ( 0.00%) 8.10 * -10.61%* Amean Elapsd-4 5.53 ( 0.00%) 5.64 ( -1.94%) Units are seconds, time to complete 30.37% worse for the single-threaded case. No direct reclaim activity but other activity is interesting and I'll pick it out snippets; 4.20.0-rc4 4.20.0-rc4 mmots-20181130gfpthisnode-v1r1 Swap Ins 8 0 Swap Outs 1546 0 Allocation stalls 0 0 Fragmentation stalls 0 2022 Direct pages scanned 0 0 Kswapd pages scanned 42719 1078 Kswapd pages reclaimed 41082 1049 Page writes by reclaim 1546 0 Page writes file 0 0 Page writes anon 1546 0 Page reclaim immediate 2 0 Baseline kernel swaps out (bad), David's patch reclaims less (good). That's reasonably positive. Less positive is that fragmentation stalls are triggered with David's patch. This is due to a patch of mine in Andrew's tree which I've asked that he drop as while it helps control long-term fragmentation, there was always a risk that the short stalls would be problematic and it's a distraction. THP fault alloc 540043 456714 THP fault fallback 0 83329 THP collapse alloc 0 4 THP collapse fail 0 0 THP split 1 0 THP split failed 0 0 David's patch falls back to base page allocation to a much higher degree (bad). Compaction pages isolated 85381 11432 Compaction migrate scanned 204787 42635 Compaction free scanned 72376 13061 Compact scan efficiency 282% 326% David's patch also compacts less. NUMA alloc hit 1188182 1093244 NUMA alloc miss 68199 42764192 NUMA interleave hit 0 0 NUMA alloc local 1179614 1084665 NUMA base PTE updates 28902547 23270389 NUMA huge PMD updates 56437 45438 NUMA page range updates 57798291 46534645 NUMA hint faults 61395 47838 NUMA hint local faults 46440 47833 NUMA hint local percent 75% 99% NUMA pages migrated 2000156 5 Interestingly, the NUMA misses are higher with David's patch indicating that it's allocating *more* from remote nodes. However, there are also hints that the accessing process then removes to the remote node instead of the current mmotm kernel which tries to migrate the memory locally. So, in line with expectations. The baseline kernel works harder to allocate the THPs where as David's gives up quickly and moves over. At one level this is good but the bottom line is total time to complete the workload goes from the baseline of 280 seconds up to 344 seconds. This is overall mixed because depending on what you look at, it's both good and bad. global-dhp__workload_thpscale-xfs o Workload creates a large file, punches holes in it o Mapping is created and faulted to measure allocation success rates and latencies o No special madvise o Considered a relatively "simple" case 4.20.0-rc4 4.20.0-rc4 mmots-20181130 gfpthisnode-v1r1 Amean fault-base-3 2021.05 ( 0.00%) 2633.11 * -30.28%* Amean fault-base-5 2475.25 ( 0.00%) 2997.15 * -21.08%* Amean fault-base-7 5595.79 ( 0.00%) 7523.10 ( -34.44%) Amean fault-base-12 15604.91 ( 0.00%) 16355.02 ( -4.81%) Amean fault-base-18 20277.13 ( 0.00%) 22062.73 ( -8.81%) Amean fault-base-24 24218.46 ( 0.00%) 25772.49 ( -6.42%) Amean fault-base-30 28516.75 ( 0.00%) 28208.14 ( 1.08%) Amean fault-base-32 36722.30 ( 0.00%) 20712.46 * 43.60%* Amean fault-huge-1 0.00 ( 0.00%) 0.00 ( 0.00%) Amean fault-huge-3 685.38 ( 0.00%) 512.02 * 25.29%* Amean fault-huge-5 3639.75 ( 0.00%) 807.33 ( 77.82%) Amean fault-huge-7 1139.54 ( 0.00%) 555.45 * 51.26%* Amean fault-huge-12 1012.64 ( 0.00%) 850.68 ( 15.99%) Amean fault-huge-18 6694.45 ( 0.00%) 1310.39 * 80.43%* Amean fault-huge-24 10165.27 ( 0.00%) 3822.23 * 62.40%* Amean fault-huge-30 13496.19 ( 0.00%) 19248.06 * -42.62%* Amean fault-huge-32 4477.05 ( 0.00%) 63463.78 *-1317.54%* These latency outliers can be huge so take them with a grain of salt. Sometimes I'll look at the percentiles but it takes an age to discuss. In general, David's patch faults huge pages faster, particularly with higher threads. The allocation success rates are also great 4.20.0-rc4 4.20.0-rc4 mmots-20181130 gfpthisnode-v1r1 Percentage huge-3 2.86 ( 0.00%) 26.48 ( 825.27%) Percentage huge-5 1.07 ( 0.00%) 1.41 ( 31.16%) Percentage huge-7 20.38 ( 0.00%) 54.82 ( 168.94%) Percentage huge-12 19.07 ( 0.00%) 38.10 ( 99.76%) Percentage huge-18 10.72 ( 0.00%) 30.18 ( 181.49%) Percentage huge-24 8.44 ( 0.00%) 15.48 ( 83.39%) Percentage huge-30 7.41 ( 0.00%) 10.78 ( 45.38%) Percentage huge-32 29.08 ( 0.00%) 3.23 ( -88.91%) Overall system activity looks similar which is counter-intuitive. The only hints of what is going on is that David's patch reclaims less from kswapd context. Direct reclaim scanning is high in both cases but does not reclaim much. David's patch scans for free page as compaction targets much more aggressively but no indication as to why. Locality information looks similar. So, not as sure what to think about this. Headline results look good but no obvious explanation as to why exactly. It could be that stalls (higher with David's patch) mean there is less inteference between threads but that's thin. global-dhp__workload_thpscale-madvhugepage-xfs o Same as above except that MADV_HUGEPAGE is used 4.20.0-rc4 4.20.0-rc4 mmots-20181130 gfpthisnode-v1r1 Amean fault-base-1 0.00 ( 0.00%) 0.00 ( 0.00%) Amean fault-base-3 18880.35 ( 0.00%) 6341.60 * 66.41%* Amean fault-base-5 27608.74 ( 0.00%) 6515.10 * 76.40%* Amean fault-base-7 28345.03 ( 0.00%) 7529.98 * 73.43%* Amean fault-base-12 35690.33 ( 0.00%) 13518.77 * 62.12%* Amean fault-base-18 56538.31 ( 0.00%) 23933.91 * 57.67%* Amean fault-base-24 71485.33 ( 0.00%) 26927.03 * 62.33%* Amean fault-base-30 54286.39 ( 0.00%) 23453.61 * 56.80%* Amean fault-base-32 92143.50 ( 0.00%) 19474.99 * 78.86%* Amean fault-huge-1 0.00 ( 0.00%) 0.00 ( 0.00%) Amean fault-huge-3 5666.72 ( 0.00%) 1351.55 * 76.15%* Amean fault-huge-5 8307.35 ( 0.00%) 2776.28 * 66.58%* Amean fault-huge-7 10651.96 ( 0.00%) 2397.70 * 77.49%* Amean fault-huge-12 15489.56 ( 0.00%) 7034.98 * 54.58%* Amean fault-huge-18 20278.54 ( 0.00%) 6417.46 * 68.35%* Amean fault-huge-24 29378.24 ( 0.00%) 16173.41 * 44.95%* Amean fault-huge-30 29237.66 ( 0.00%) 81198.70 *-177.72%* Amean fault-huge-32 27177.37 ( 0.00%) 18966.08 * 30.21%* Superb improvement in latencies coupled with the following 4.20.0-rc4 4.20.0-rc4 mmots-20181130 gfpthisnode-v1r1 Percentage huge-1 0.00 ( 0.00%) 0.00 ( 0.00%) Percentage huge-3 99.74 ( 0.00%) 49.62 ( -50.25%) Percentage huge-5 99.24 ( 0.00%) 12.19 ( -87.72%) Percentage huge-7 97.98 ( 0.00%) 19.20 ( -80.40%) Percentage huge-12 95.76 ( 0.00%) 21.33 ( -77.73%) Percentage huge-18 94.91 ( 0.00%) 31.63 ( -66.67%) Percentage huge-24 94.36 ( 0.00%) 9.27 ( -90.18%) Percentage huge-30 92.15 ( 0.00%) 9.60 ( -89.58%) Percentage huge-32 94.18 ( 0.00%) 8.67 ( -90.79%) THP allocation success rates are through the floor which is why latencies overall are better. This goes back to the fundamental question -- does your workload benefit from THP or not and is it the primary metric? If yes (potentially in the case with KVM) then this is a disaster. It's actually a mixed bad for David because THP was desired but so was locality. In this case, the application specifically requested THP so presumably a real application specifying the flag means it The high-level system stats reflect the level of effort, David's patch does less work in the system which is both good and bad depending on your requirements 4.20.0-rc4 4.20.0-rc4 mmots-20181130gfpthisnode-v1r1 Swap Ins 1564 0 Swap Outs 12283 163 Allocation stalls 30236 24 Fragmentation stalls 1069 24683 Baseline kernel swaps and has high allocation stalls to reclaim memory. David's patch stalls on trying to control fragmentation instead. 4.20.0-rc4 4.20.0-rc4 mmots-20181130gfpthisnode-v1r1 Direct pages scanned 12780511 9955217 Kswapd pages scanned 1944181 16554296 Kswapd pages reclaimed 870023 4029534 Direct pages reclaimed 6738924 5884 Kswapd efficiency 44% 24% Kswapd velocity 1308.975 11200.850 Direct efficiency 52% 0% Direct velocity 8604.840 6735.828 The baseline kernel does much of the reclaim work in direct context while David's does it in kswapd context. THP fault alloc 316843 238810 THP fault fallback 17224 95256 THP collapse alloc 2 0 THP collapse fail 0 5 THP split 177536 180673 THP split failed 10024 2 Baseline kernel allocates THP while David's falls back THP collapse alloc 2 0 THP collapse fail 0 5 Compaction stalls 100198 75267 Compaction success 65803 3964 Compaction failures 34395 71303 Compaction efficiency 65% 5% Page migrate success 40807601 17963914 Page migrate failure 16206 16782 Compaction pages isolated 90818819 41285100 Compaction migrate scanned 98628306 36990342 Compaction free scanned 6547623619 6870889207 Unsurprisingly, David's patch tries to compact less. The collapse activity shows that enough time didn't pass for khugepaged to intervene. While outside the context of the current discussion, that compaction scanning activity is mental but also unsurprising. A lot of it is from kcompactd activity. It's a seperate series to deal with that. Given the mix of gains and losses, the patch simply shuffles the problem around in a circle. Some workloads benefit, some don't and whether it's merged or not merged, someone ends up annoyed as their workload suffers. I know I didn't review the patch in much detail because in this context, it was more interesting to know "what it does" than the specifics of the approach. I'm going to go back to hopping my face off the compaction series because I think it has the potential to reduce the problem overall instead of shuffling the deckchairs around the titanic[1] [1] Famous last words, the series could end up being the iceberg -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-05 10:06 ` Mel Gorman 0 siblings, 0 replies; 154+ messages in thread From: Mel Gorman @ 2018-12-05 10:06 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 16676 bytes --] On Tue, Dec 04, 2018 at 10:45:58AM +0000, Mel Gorman wrote: > I have *one* result of the series on a 1-socket machine running > "thpscale". It creates a file, punches holes in it to create a > very light form of fragmentation and then tries THP allocations > using madvise measuring latency and success rates. It's the > global-dhp__workload_thpscale-madvhugepage in mmtests using XFS as the > filesystem. > > thpscale Fault Latencies > 4.20.0-rc4 4.20.0-rc4 > mmots-20181130 gfpthisnode-v1r1 > Amean fault-base-3 5358.54 ( 0.00%) 2408.93 * 55.04%* > Amean fault-base-5 9742.30 ( 0.00%) 3035.25 * 68.84%* > Amean fault-base-7 13069.18 ( 0.00%) 4362.22 * 66.62%* > Amean fault-base-12 14882.53 ( 0.00%) 9424.38 * 36.67%* > Amean fault-base-18 15692.75 ( 0.00%) 16280.03 ( -3.74%) > Amean fault-base-24 28775.11 ( 0.00%) 18374.84 * 36.14%* > Amean fault-base-30 42056.32 ( 0.00%) 21984.55 * 47.73%* > Amean fault-base-32 38634.26 ( 0.00%) 22199.49 * 42.54%* > Amean fault-huge-1 0.00 ( 0.00%) 0.00 ( 0.00%) > Amean fault-huge-3 3628.86 ( 0.00%) 963.45 * 73.45%* > Amean fault-huge-5 4926.42 ( 0.00%) 2959.85 * 39.92%* > Amean fault-huge-7 6717.15 ( 0.00%) 3828.68 * 43.00%* > Amean fault-huge-12 11393.47 ( 0.00%) 5772.92 * 49.33%* > Amean fault-huge-18 16979.38 ( 0.00%) 4435.95 * 73.87%* > Amean fault-huge-24 16558.00 ( 0.00%) 4416.46 * 73.33%* > Amean fault-huge-30 20351.46 ( 0.00%) 5099.73 * 74.94%* > Amean fault-huge-32 23332.54 ( 0.00%) 6524.73 * 72.04%* > > So, looks like massive latency improvements but then the THP allocation > success rates > > thpscale Percentage Faults Huge > 4.20.0-rc4 4.20.0-rc4 > mmots-20181130 gfpthisnode-v1r1 > Percentage huge-3 95.14 ( 0.00%) 7.94 ( -91.65%) > Percentage huge-5 91.28 ( 0.00%) 5.00 ( -94.52%) > Percentage huge-7 86.87 ( 0.00%) 9.36 ( -89.22%) > Percentage huge-12 83.36 ( 0.00%) 21.03 ( -74.78%) > Percentage huge-18 83.04 ( 0.00%) 30.73 ( -63.00%) > Percentage huge-24 83.74 ( 0.00%) 27.47 ( -67.20%) > Percentage huge-30 83.66 ( 0.00%) 31.85 ( -61.93%) > Percentage huge-32 83.89 ( 0.00%) 29.09 ( -65.32%) > Other results arrived once the grid caught up and it's a mixed bag of gains and losses roughtly along the lines predicted by the discussion already -- namely locality is better as long as the workload fits, compaction is reduced, reclaim is reduced, THP allocation success rates are reduced but latencies are often better. Whether this is "good" or "bad" depends on whether you have a workload that benefits because it's neither universally good or bad. It would still be nice to hear how Andreas fared but I think we'll reach the same conclusion -- the patches shuffles the problem around with limited effort to address the root causes so all we end up changing is the identity of the person who complains about their workload. One might be tempted to think that the reduced latencies in some cases are great but not if the workload is one that benefits from longer startup costs in exchange for lower runtime costs in the active phase. For the much longer answer, I'll focus on the two-socket results because they are more relevant to the current discussion. The workloads are not realistic in the slightest, they just happen to trigger some of the interesting corner cases. global-dhp__workload_usemem-stress-numa-compact o Plain anonymous faulting workload o defrag=always (not representative, simply triggers a bad case) 4.20.0-rc4 4.20.0-rc4 mmots-20181130 gfpthisnode-v1r1 Amean Elapsd-1 26.79 ( 0.00%) 34.92 * -30.37%* Amean Elapsd-3 7.32 ( 0.00%) 8.10 * -10.61%* Amean Elapsd-4 5.53 ( 0.00%) 5.64 ( -1.94%) Units are seconds, time to complete 30.37% worse for the single-threaded case. No direct reclaim activity but other activity is interesting and I'll pick it out snippets; 4.20.0-rc4 4.20.0-rc4 mmots-20181130gfpthisnode-v1r1 Swap Ins 8 0 Swap Outs 1546 0 Allocation stalls 0 0 Fragmentation stalls 0 2022 Direct pages scanned 0 0 Kswapd pages scanned 42719 1078 Kswapd pages reclaimed 41082 1049 Page writes by reclaim 1546 0 Page writes file 0 0 Page writes anon 1546 0 Page reclaim immediate 2 0 Baseline kernel swaps out (bad), David's patch reclaims less (good). That's reasonably positive. Less positive is that fragmentation stalls are triggered with David's patch. This is due to a patch of mine in Andrew's tree which I've asked that he drop as while it helps control long-term fragmentation, there was always a risk that the short stalls would be problematic and it's a distraction. THP fault alloc 540043 456714 THP fault fallback 0 83329 THP collapse alloc 0 4 THP collapse fail 0 0 THP split 1 0 THP split failed 0 0 David's patch falls back to base page allocation to a much higher degree (bad). Compaction pages isolated 85381 11432 Compaction migrate scanned 204787 42635 Compaction free scanned 72376 13061 Compact scan efficiency 282% 326% David's patch also compacts less. NUMA alloc hit 1188182 1093244 NUMA alloc miss 68199 42764192 NUMA interleave hit 0 0 NUMA alloc local 1179614 1084665 NUMA base PTE updates 28902547 23270389 NUMA huge PMD updates 56437 45438 NUMA page range updates 57798291 46534645 NUMA hint faults 61395 47838 NUMA hint local faults 46440 47833 NUMA hint local percent 75% 99% NUMA pages migrated 2000156 5 Interestingly, the NUMA misses are higher with David's patch indicating that it's allocating *more* from remote nodes. However, there are also hints that the accessing process then removes to the remote node instead of the current mmotm kernel which tries to migrate the memory locally. So, in line with expectations. The baseline kernel works harder to allocate the THPs where as David's gives up quickly and moves over. At one level this is good but the bottom line is total time to complete the workload goes from the baseline of 280 seconds up to 344 seconds. This is overall mixed because depending on what you look at, it's both good and bad. global-dhp__workload_thpscale-xfs o Workload creates a large file, punches holes in it o Mapping is created and faulted to measure allocation success rates and latencies o No special madvise o Considered a relatively "simple" case 4.20.0-rc4 4.20.0-rc4 mmots-20181130 gfpthisnode-v1r1 Amean fault-base-3 2021.05 ( 0.00%) 2633.11 * -30.28%* Amean fault-base-5 2475.25 ( 0.00%) 2997.15 * -21.08%* Amean fault-base-7 5595.79 ( 0.00%) 7523.10 ( -34.44%) Amean fault-base-12 15604.91 ( 0.00%) 16355.02 ( -4.81%) Amean fault-base-18 20277.13 ( 0.00%) 22062.73 ( -8.81%) Amean fault-base-24 24218.46 ( 0.00%) 25772.49 ( -6.42%) Amean fault-base-30 28516.75 ( 0.00%) 28208.14 ( 1.08%) Amean fault-base-32 36722.30 ( 0.00%) 20712.46 * 43.60%* Amean fault-huge-1 0.00 ( 0.00%) 0.00 ( 0.00%) Amean fault-huge-3 685.38 ( 0.00%) 512.02 * 25.29%* Amean fault-huge-5 3639.75 ( 0.00%) 807.33 ( 77.82%) Amean fault-huge-7 1139.54 ( 0.00%) 555.45 * 51.26%* Amean fault-huge-12 1012.64 ( 0.00%) 850.68 ( 15.99%) Amean fault-huge-18 6694.45 ( 0.00%) 1310.39 * 80.43%* Amean fault-huge-24 10165.27 ( 0.00%) 3822.23 * 62.40%* Amean fault-huge-30 13496.19 ( 0.00%) 19248.06 * -42.62%* Amean fault-huge-32 4477.05 ( 0.00%) 63463.78 *-1317.54%* These latency outliers can be huge so take them with a grain of salt. Sometimes I'll look at the percentiles but it takes an age to discuss. In general, David's patch faults huge pages faster, particularly with higher threads. The allocation success rates are also great 4.20.0-rc4 4.20.0-rc4 mmots-20181130 gfpthisnode-v1r1 Percentage huge-3 2.86 ( 0.00%) 26.48 ( 825.27%) Percentage huge-5 1.07 ( 0.00%) 1.41 ( 31.16%) Percentage huge-7 20.38 ( 0.00%) 54.82 ( 168.94%) Percentage huge-12 19.07 ( 0.00%) 38.10 ( 99.76%) Percentage huge-18 10.72 ( 0.00%) 30.18 ( 181.49%) Percentage huge-24 8.44 ( 0.00%) 15.48 ( 83.39%) Percentage huge-30 7.41 ( 0.00%) 10.78 ( 45.38%) Percentage huge-32 29.08 ( 0.00%) 3.23 ( -88.91%) Overall system activity looks similar which is counter-intuitive. The only hints of what is going on is that David's patch reclaims less from kswapd context. Direct reclaim scanning is high in both cases but does not reclaim much. David's patch scans for free page as compaction targets much more aggressively but no indication as to why. Locality information looks similar. So, not as sure what to think about this. Headline results look good but no obvious explanation as to why exactly. It could be that stalls (higher with David's patch) mean there is less inteference between threads but that's thin. global-dhp__workload_thpscale-madvhugepage-xfs o Same as above except that MADV_HUGEPAGE is used 4.20.0-rc4 4.20.0-rc4 mmots-20181130 gfpthisnode-v1r1 Amean fault-base-1 0.00 ( 0.00%) 0.00 ( 0.00%) Amean fault-base-3 18880.35 ( 0.00%) 6341.60 * 66.41%* Amean fault-base-5 27608.74 ( 0.00%) 6515.10 * 76.40%* Amean fault-base-7 28345.03 ( 0.00%) 7529.98 * 73.43%* Amean fault-base-12 35690.33 ( 0.00%) 13518.77 * 62.12%* Amean fault-base-18 56538.31 ( 0.00%) 23933.91 * 57.67%* Amean fault-base-24 71485.33 ( 0.00%) 26927.03 * 62.33%* Amean fault-base-30 54286.39 ( 0.00%) 23453.61 * 56.80%* Amean fault-base-32 92143.50 ( 0.00%) 19474.99 * 78.86%* Amean fault-huge-1 0.00 ( 0.00%) 0.00 ( 0.00%) Amean fault-huge-3 5666.72 ( 0.00%) 1351.55 * 76.15%* Amean fault-huge-5 8307.35 ( 0.00%) 2776.28 * 66.58%* Amean fault-huge-7 10651.96 ( 0.00%) 2397.70 * 77.49%* Amean fault-huge-12 15489.56 ( 0.00%) 7034.98 * 54.58%* Amean fault-huge-18 20278.54 ( 0.00%) 6417.46 * 68.35%* Amean fault-huge-24 29378.24 ( 0.00%) 16173.41 * 44.95%* Amean fault-huge-30 29237.66 ( 0.00%) 81198.70 *-177.72%* Amean fault-huge-32 27177.37 ( 0.00%) 18966.08 * 30.21%* Superb improvement in latencies coupled with the following 4.20.0-rc4 4.20.0-rc4 mmots-20181130 gfpthisnode-v1r1 Percentage huge-1 0.00 ( 0.00%) 0.00 ( 0.00%) Percentage huge-3 99.74 ( 0.00%) 49.62 ( -50.25%) Percentage huge-5 99.24 ( 0.00%) 12.19 ( -87.72%) Percentage huge-7 97.98 ( 0.00%) 19.20 ( -80.40%) Percentage huge-12 95.76 ( 0.00%) 21.33 ( -77.73%) Percentage huge-18 94.91 ( 0.00%) 31.63 ( -66.67%) Percentage huge-24 94.36 ( 0.00%) 9.27 ( -90.18%) Percentage huge-30 92.15 ( 0.00%) 9.60 ( -89.58%) Percentage huge-32 94.18 ( 0.00%) 8.67 ( -90.79%) THP allocation success rates are through the floor which is why latencies overall are better. This goes back to the fundamental question -- does your workload benefit from THP or not and is it the primary metric? If yes (potentially in the case with KVM) then this is a disaster. It's actually a mixed bad for David because THP was desired but so was locality. In this case, the application specifically requested THP so presumably a real application specifying the flag means it The high-level system stats reflect the level of effort, David's patch does less work in the system which is both good and bad depending on your requirements 4.20.0-rc4 4.20.0-rc4 mmots-20181130gfpthisnode-v1r1 Swap Ins 1564 0 Swap Outs 12283 163 Allocation stalls 30236 24 Fragmentation stalls 1069 24683 Baseline kernel swaps and has high allocation stalls to reclaim memory. David's patch stalls on trying to control fragmentation instead. 4.20.0-rc4 4.20.0-rc4 mmots-20181130gfpthisnode-v1r1 Direct pages scanned 12780511 9955217 Kswapd pages scanned 1944181 16554296 Kswapd pages reclaimed 870023 4029534 Direct pages reclaimed 6738924 5884 Kswapd efficiency 44% 24% Kswapd velocity 1308.975 11200.850 Direct efficiency 52% 0% Direct velocity 8604.840 6735.828 The baseline kernel does much of the reclaim work in direct context while David's does it in kswapd context. THP fault alloc 316843 238810 THP fault fallback 17224 95256 THP collapse alloc 2 0 THP collapse fail 0 5 THP split 177536 180673 THP split failed 10024 2 Baseline kernel allocates THP while David's falls back THP collapse alloc 2 0 THP collapse fail 0 5 Compaction stalls 100198 75267 Compaction success 65803 3964 Compaction failures 34395 71303 Compaction efficiency 65% 5% Page migrate success 40807601 17963914 Page migrate failure 16206 16782 Compaction pages isolated 90818819 41285100 Compaction migrate scanned 98628306 36990342 Compaction free scanned 6547623619 6870889207 Unsurprisingly, David's patch tries to compact less. The collapse activity shows that enough time didn't pass for khugepaged to intervene. While outside the context of the current discussion, that compaction scanning activity is mental but also unsurprising. A lot of it is from kcompactd activity. It's a seperate series to deal with that. Given the mix of gains and losses, the patch simply shuffles the problem around in a circle. Some workloads benefit, some don't and whether it's merged or not merged, someone ends up annoyed as their workload suffers. I know I didn't review the patch in much detail because in this context, it was more interesting to know "what it does" than the specifics of the approach. I'm going to go back to hopping my face off the compaction series because I think it has the potential to reduce the problem overall instead of shuffling the deckchairs around the titanic[1] [1] Famous last words, the series could end up being the iceberg -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-04 10:45 ` Mel Gorman @ 2018-12-05 20:40 ` Andrea Arcangeli -1 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-05 20:40 UTC (permalink / raw) To: Mel Gorman Cc: Vlastimil Babka, Linus Torvalds, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan Hello, Sorry, it has been challenging to keep up with all fast replies, so I'll start by answering to the critical result below: On Tue, Dec 04, 2018 at 10:45:58AM +0000, Mel Gorman wrote: > thpscale Percentage Faults Huge > 4.20.0-rc4 4.20.0-rc4 > mmots-20181130 gfpthisnode-v1r1 > Percentage huge-3 95.14 ( 0.00%) 7.94 ( -91.65%) > Percentage huge-5 91.28 ( 0.00%) 5.00 ( -94.52%) > Percentage huge-7 86.87 ( 0.00%) 9.36 ( -89.22%) > Percentage huge-12 83.36 ( 0.00%) 21.03 ( -74.78%) > Percentage huge-18 83.04 ( 0.00%) 30.73 ( -63.00%) > Percentage huge-24 83.74 ( 0.00%) 27.47 ( -67.20%) > Percentage huge-30 83.66 ( 0.00%) 31.85 ( -61.93%) > Percentage huge-32 83.89 ( 0.00%) 29.09 ( -65.32%) > > They're down the toilet. 3 threads are able to get 95% of the requested > THP pages with Andrews tree as of Nov 30th. David's patch drops that to > 8% success rate. This is the downside of David's patch very well exposed above. And this will make non-NUMA system regress like above too despite they have no issue to begin with (which is probably why nobody noticed the trouble with __GFP_THISNODE reclaim until recently, combined with the fact most workloads can fit in a single NUMA node). So we're effectively crippling down MADV_HUGEPAGE effectiveness on non-NUMA (where it cannot help to do so) and on NUMA (as a workaround for the false positive swapout storms) because in some workload and system THP improvements are less significant than NUMA improvements. The higher fault latency is generally the higher cost you pay to get the good initial THP utilization for apps that do long lived allocations and in turn can use MADV_HUGEPAGE without downsides. The cost of compaction pays off over time. Short lived allocations sensitive to the allocation latency should not use MADV_HUGEPAGE in the first place. If you don't want high latency you shouldn't use MADV_HUGEPAGE and khugepaged already uses __GFP_THISNODE but it replaces memory so it has a neutral memory footprint at it, so it's ok with regard to reclaim. In my view David's workload is the outlier that uses MADV_HUGEPAGE but pretends a low latency and NUMA local behavior as first priority. If your workload fits in the per-socket CPU cache it doesn't matter which node it is but it totally matters if you've 2M or 4k tlb. I'm not even talking about KVM where THP has a multipler effect with EPT. Even if you make the __GFP_NORETRY change for the HPAGE_PMD_ORDER to skip reclaim in David's patch conditional NUMA being enabled in the host (so that it won't cripple THP utilization also on non-NUMA systems), imagine that you go in the bios, turn off interleaving to enable host NUMA and THP utilization unexpectedly drops significantly for your VM. Rome ryzen architecture has been mentioned several times by David but in my threadripper (not-Rome, as it's supposed to be available in 2019 only AFIK) enabling THP made a measurable difference for me for some workloads. As opposed if I turn off NUMA by setting up the interleaving in the dimm I get a barely measurable slowdown. So I'm surprised in Rome there's such a radical difference in behavior. Like Mel said we need to work towards a more complete solution than putting __GFP_THISNODE from the outside and then turning off reclaim from the inside. Mel made examples of things that should happen, that won't increase allocation latency and that can't happen with __GFP_THISNODE. I'll try to describe again what's going on: 1: The allocator is being asked through __GFP_THISNODE "ignore all remote nodes for all reclaim and compaction" from the outside. Compaction then returns COMPACT_SKIPPED and tells the allocator "I can generate many more huge pages if you reclaim/swapout 2M of anon memory in this node, the only reason I failed to compact memory is because there aren't enough 4k fragmented pages free in this zone". The allocator then goes ahead and swaps 2M and invokes compaction again that succeeds the order 9 allocation fine. Goto 1; The above keeps running in a loop at every additional page fault of the app using MADV_HUGEPAGE until all RAM of the node is swapped out and replaced by THP and all others nodes had 100% free memory, potentially 100% order 9, but the allocator completely ignored all other nodes. That is the thing that we're fixing here, because such swap storms caused massive slowdowns. If the workload can't fit in a single node, it's like running with only a fraction of the RAM. So David's patch (and __GFP_COMPACT_ONLY) to fix the above swap storm, inside the allocator skips reclaim entirely when compaction tells "I can generate one more HPAGE_PMD_ORDER compound page if you reclaim/swap 2M", if __GFP_NORETRY is set (and makes sure __GFP_NORETRY is always set for THP). And that however prevents to generate any more THP globally the moment any node is full of filesystem cache. NOTE: the filesystem cache will still be shrunk but it'll be shrunk by 4k allocations only. So we just artificially cripple compaction with David's patch as shown in the quoted results above. This applied to __GFP_COMPACT_ONLY too and that's I always said there's lots of margin for improvement there and even __GFP_COMPACT_ONLY was also a stop-gap measure. So ultimately we decided that the saner behavior that gives the least risk of regression for the short term, until we can do something better, was the one that is already applied upstream. Of course David's workload regressed, but that's because it gets a minuscle improvement from THP, maybe it's seeking across all RAM and it's very RAM heavy bandwidth-heavy workload so 4k or 2m tlb don't matter at all for his workload and probably he's running it on bare metal only. I think the challenge here is to get David's workload optimally without creating the above regression but we don't have a way to do it right now in an automatic way. It's trivial however to add a mbind new MPOL_THISNODE or MPOL_THISNODE_THP policy to force THP to set __GFP_THISNODE and return to the swap storm behavior that needle to say may have worked best by practically partioning the system, in fact you may want to use __GFP_THISNODE for 4k allocations too so you invoke reclaim from the local node before allocating RAM from the remote nodes. To me it doesn't seem the requirements of David's workload are the same as for other MADV_HUGEPAGE users, I can't image other MADV_HUGEPAGE users not to care at all if the THP utilization drops, for David it seems THP is a nice thing to have only, and it seems to care about allocation latency too (which normal apps using MADV_HUGEPAGE must not). In any case David's patch is better than reverting the revert, as the swap storms are a showstopper compared to crippling down compaction ability to compact memory when all nodes are full of cache. Thanks, Andrea ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-05 20:40 ` Andrea Arcangeli 0 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-05 20:40 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 7139 bytes --] Hello, Sorry, it has been challenging to keep up with all fast replies, so I'll start by answering to the critical result below: On Tue, Dec 04, 2018 at 10:45:58AM +0000, Mel Gorman wrote: > thpscale Percentage Faults Huge > 4.20.0-rc4 4.20.0-rc4 > mmots-20181130 gfpthisnode-v1r1 > Percentage huge-3 95.14 ( 0.00%) 7.94 ( -91.65%) > Percentage huge-5 91.28 ( 0.00%) 5.00 ( -94.52%) > Percentage huge-7 86.87 ( 0.00%) 9.36 ( -89.22%) > Percentage huge-12 83.36 ( 0.00%) 21.03 ( -74.78%) > Percentage huge-18 83.04 ( 0.00%) 30.73 ( -63.00%) > Percentage huge-24 83.74 ( 0.00%) 27.47 ( -67.20%) > Percentage huge-30 83.66 ( 0.00%) 31.85 ( -61.93%) > Percentage huge-32 83.89 ( 0.00%) 29.09 ( -65.32%) > > They're down the toilet. 3 threads are able to get 95% of the requested > THP pages with Andrews tree as of Nov 30th. David's patch drops that to > 8% success rate. This is the downside of David's patch very well exposed above. And this will make non-NUMA system regress like above too despite they have no issue to begin with (which is probably why nobody noticed the trouble with __GFP_THISNODE reclaim until recently, combined with the fact most workloads can fit in a single NUMA node). So we're effectively crippling down MADV_HUGEPAGE effectiveness on non-NUMA (where it cannot help to do so) and on NUMA (as a workaround for the false positive swapout storms) because in some workload and system THP improvements are less significant than NUMA improvements. The higher fault latency is generally the higher cost you pay to get the good initial THP utilization for apps that do long lived allocations and in turn can use MADV_HUGEPAGE without downsides. The cost of compaction pays off over time. Short lived allocations sensitive to the allocation latency should not use MADV_HUGEPAGE in the first place. If you don't want high latency you shouldn't use MADV_HUGEPAGE and khugepaged already uses __GFP_THISNODE but it replaces memory so it has a neutral memory footprint at it, so it's ok with regard to reclaim. In my view David's workload is the outlier that uses MADV_HUGEPAGE but pretends a low latency and NUMA local behavior as first priority. If your workload fits in the per-socket CPU cache it doesn't matter which node it is but it totally matters if you've 2M or 4k tlb. I'm not even talking about KVM where THP has a multipler effect with EPT. Even if you make the __GFP_NORETRY change for the HPAGE_PMD_ORDER to skip reclaim in David's patch conditional NUMA being enabled in the host (so that it won't cripple THP utilization also on non-NUMA systems), imagine that you go in the bios, turn off interleaving to enable host NUMA and THP utilization unexpectedly drops significantly for your VM. Rome ryzen architecture has been mentioned several times by David but in my threadripper (not-Rome, as it's supposed to be available in 2019 only AFIK) enabling THP made a measurable difference for me for some workloads. As opposed if I turn off NUMA by setting up the interleaving in the dimm I get a barely measurable slowdown. So I'm surprised in Rome there's such a radical difference in behavior. Like Mel said we need to work towards a more complete solution than putting __GFP_THISNODE from the outside and then turning off reclaim from the inside. Mel made examples of things that should happen, that won't increase allocation latency and that can't happen with __GFP_THISNODE. I'll try to describe again what's going on: 1: The allocator is being asked through __GFP_THISNODE "ignore all remote nodes for all reclaim and compaction" from the outside. Compaction then returns COMPACT_SKIPPED and tells the allocator "I can generate many more huge pages if you reclaim/swapout 2M of anon memory in this node, the only reason I failed to compact memory is because there aren't enough 4k fragmented pages free in this zone". The allocator then goes ahead and swaps 2M and invokes compaction again that succeeds the order 9 allocation fine. Goto 1; The above keeps running in a loop at every additional page fault of the app using MADV_HUGEPAGE until all RAM of the node is swapped out and replaced by THP and all others nodes had 100% free memory, potentially 100% order 9, but the allocator completely ignored all other nodes. That is the thing that we're fixing here, because such swap storms caused massive slowdowns. If the workload can't fit in a single node, it's like running with only a fraction of the RAM. So David's patch (and __GFP_COMPACT_ONLY) to fix the above swap storm, inside the allocator skips reclaim entirely when compaction tells "I can generate one more HPAGE_PMD_ORDER compound page if you reclaim/swap 2M", if __GFP_NORETRY is set (and makes sure __GFP_NORETRY is always set for THP). And that however prevents to generate any more THP globally the moment any node is full of filesystem cache. NOTE: the filesystem cache will still be shrunk but it'll be shrunk by 4k allocations only. So we just artificially cripple compaction with David's patch as shown in the quoted results above. This applied to __GFP_COMPACT_ONLY too and that's I always said there's lots of margin for improvement there and even __GFP_COMPACT_ONLY was also a stop-gap measure. So ultimately we decided that the saner behavior that gives the least risk of regression for the short term, until we can do something better, was the one that is already applied upstream. Of course David's workload regressed, but that's because it gets a minuscle improvement from THP, maybe it's seeking across all RAM and it's very RAM heavy bandwidth-heavy workload so 4k or 2m tlb don't matter at all for his workload and probably he's running it on bare metal only. I think the challenge here is to get David's workload optimally without creating the above regression but we don't have a way to do it right now in an automatic way. It's trivial however to add a mbind new MPOL_THISNODE or MPOL_THISNODE_THP policy to force THP to set __GFP_THISNODE and return to the swap storm behavior that needle to say may have worked best by practically partioning the system, in fact you may want to use __GFP_THISNODE for 4k allocations too so you invoke reclaim from the local node before allocating RAM from the remote nodes. To me it doesn't seem the requirements of David's workload are the same as for other MADV_HUGEPAGE users, I can't image other MADV_HUGEPAGE users not to care at all if the THP utilization drops, for David it seems THP is a nice thing to have only, and it seems to care about allocation latency too (which normal apps using MADV_HUGEPAGE must not). In any case David's patch is better than reverting the revert, as the swap storms are a showstopper compared to crippling down compaction ability to compact memory when all nodes are full of cache. Thanks, Andrea ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-05 20:40 ` Andrea Arcangeli @ 2018-12-05 21:59 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-05 21:59 UTC (permalink / raw) To: Andrea Arcangeli Cc: Mel Gorman, Vlastimil Babka, Linus Torvalds, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Wed, 5 Dec 2018, Andrea Arcangeli wrote: > > thpscale Percentage Faults Huge > > 4.20.0-rc4 4.20.0-rc4 > > mmots-20181130 gfpthisnode-v1r1 > > Percentage huge-3 95.14 ( 0.00%) 7.94 ( -91.65%) > > Percentage huge-5 91.28 ( 0.00%) 5.00 ( -94.52%) > > Percentage huge-7 86.87 ( 0.00%) 9.36 ( -89.22%) > > Percentage huge-12 83.36 ( 0.00%) 21.03 ( -74.78%) > > Percentage huge-18 83.04 ( 0.00%) 30.73 ( -63.00%) > > Percentage huge-24 83.74 ( 0.00%) 27.47 ( -67.20%) > > Percentage huge-30 83.66 ( 0.00%) 31.85 ( -61.93%) > > Percentage huge-32 83.89 ( 0.00%) 29.09 ( -65.32%) > > > > They're down the toilet. 3 threads are able to get 95% of the requested > > THP pages with Andrews tree as of Nov 30th. David's patch drops that to > > 8% success rate. > > This is the downside of David's patch very well exposed above. And > this will make non-NUMA system regress like above too despite they > have no issue to begin with (which is probably why nobody noticed the > trouble with __GFP_THISNODE reclaim until recently, combined with the > fact most workloads can fit in a single NUMA node). > > So we're effectively crippling down MADV_HUGEPAGE effectiveness on > non-NUMA (where it cannot help to do so) and on NUMA (as a workaround > for the false positive swapout storms) because in some workload and > system THP improvements are less significant than NUMA improvements. > For context, you're referring to the patch I posted that is similar to __GFP_COMPACT_ONLY and patch 2/2 in my series. It's not referring to the revert of the 4.20-rc commit that relaxes the __GFP_THISNODE restriction on thp faults and conflates MADV_HUGEPAGE with NUMA locality. For 4.20, I believe at minimum that patch 1/2 should be merged to restore what we have had for three years, stop piling more semantics on top of the intent (or perceived intent) of MADV_HUGEPAGE, and address the swap storm issue separately. > The higher fault latency is generally the higher cost you pay to get > the good initial THP utilization for apps that do long lived > allocations and in turn can use MADV_HUGEPAGE without downsides. The > cost of compaction pays off over time. > > Short lived allocations sensitive to the allocation latency should not > use MADV_HUGEPAGE in the first place. If you don't want high latency > you shouldn't use MADV_HUGEPAGE and khugepaged already uses > __GFP_THISNODE but it replaces memory so it has a neutral memory > footprint at it, so it's ok with regard to reclaim. > Completely agreed, and is why we want to try synchronous memory compaction to try to allocate hugepages locally in our usecases as well. We aren't particularly concerned about the allocation latency, that is secondary to the long-lived access latency regression that occurs when you do not set __GFP_THISNODE. > In my view David's workload is the outlier that uses MADV_HUGEPAGE but > pretends a low latency and NUMA local behavior as first priority. If > your workload fits in the per-socket CPU cache it doesn't matter which > node it is but it totally matters if you've 2M or 4k tlb. I'm not even > talking about KVM where THP has a multipler effect with EPT. > Hm, no, we do not mind the high allocation latency for MADV_HUGEPAGE users. We *do* care about access latency and that is due to NUMA locality. Before commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings"), *all* thp faults were done with __GFP_THISNODE and had been for at least three years. That commit conflates MADV_HUGEPAGE with a new semantic that it allows remote allocation instead of what it has done for three years: try harder synchronously to allocate hugepages locally. We obviously need to address the problem in another way and not change long-standing behavior that causes regressions. Either my patch 2/2, __GFP_COMPACT_ONLY, a new mempolicy mode, new madvise mode, prctl, etc. > Even if you make the __GFP_NORETRY change for the HPAGE_PMD_ORDER to > skip reclaim in David's patch conditional NUMA being enabled in the > host (so that it won't cripple THP utilization also on non-NUMA > systems), imagine that you go in the bios, turn off interleaving to > enable host NUMA and THP utilization unexpectedly drops significantly > for your VM. > What's needed is appropriate feedback from memory compaction to determine if reclaim is worthwhile: checking only COMPACT_DEFERRED is insufficient. We need to determine if compaction has failed due to order-0 low watermark checks or whether it simply failed to defragment memory so a hugepage could be allocated. Determining if compaction has failed due to order-0 low watermark checks is harder than it seems because the reclaimed memory may not be accessible by isolate_freepages(); we don't have the ability to only reclaim memory from the end of the zone. Otherwise, reclaim is very unlikely to help. > Rome ryzen architecture has been mentioned several times by David but > in my threadripper (not-Rome, as it's supposed to be available in 2019 > only AFIK) enabling THP made a measurable difference for me for some > workloads. As opposed if I turn off NUMA by setting up the > interleaving in the dimm I get a barely measurable slowdown. So I'm > surprised in Rome there's such a radical difference in behavior. > We can compare Naples if that's better; accessing remote hugepages over local pages of the native page size incurs a 13.8% latency increase intrasocket and 38.9% latency increase intersocket. Accessing remote hugepages over remote pages of the native page size is 2.2% better intrasocket and unchanged intersocket. > Like Mel said we need to work towards a more complete solution than > putting __GFP_THISNODE from the outside and then turning off reclaim > from the inside. Mel made examples of things that should > happen, that won't increase allocation latency and that can't happen > with __GFP_THISNODE. > > I'll try to describe again what's going on: > > 1: The allocator is being asked through __GFP_THISNODE "ignore all > remote nodes for all reclaim and compaction" from the > outside. Compaction then returns COMPACT_SKIPPED and tells the > allocator "I can generate many more huge pages if you reclaim/swapout > 2M of anon memory in this node, the only reason I failed to compact > memory is because there aren't enough 4k fragmented pages free in this > zone". The allocator then goes ahead and swaps 2M and invokes > compaction again that succeeds the order 9 allocation fine. Goto 1; > > The above keeps running in a loop at every additional page fault of > the app using MADV_HUGEPAGE until all RAM of the node is swapped out > and replaced by THP and all others nodes had 100% free memory, > potentially 100% order 9, but the allocator completely ignored all > other nodes. That is the thing that we're fixing here, because such > swap storms caused massive slowdowns. If the workload can't fit in a > single node, it's like running with only a fraction of the RAM. > > So David's patch (and __GFP_COMPACT_ONLY) to fix the above swap storm, > inside the allocator skips reclaim entirely when compaction tells "I > can generate one more HPAGE_PMD_ORDER compound page if you > reclaim/swap 2M", if __GFP_NORETRY is set (and makes sure > __GFP_NORETRY is always set for THP). And that however prevents to > generate any more THP globally the moment any node is full of > filesystem cache. > > NOTE: the filesystem cache will still be shrunk but it'll be shrunk by > 4k allocations only. So we just artificially cripple compaction with > David's patch as shown in the quoted results above. This applied to > __GFP_COMPACT_ONLY too and that's I always said there's lots of margin > for improvement there and even __GFP_COMPACT_ONLY was also a stop-gap > measure. > Right, this is all the same as __GFP_COMPACT_ONLY which implicitly set __GFP_NORETRY as part of the gfp flag itself. > So ultimately we decided that the saner behavior that gives the least > risk of regression for the short term, until we can do something > better, was the one that is already applied upstream. > > Of course David's workload regressed, but that's because it gets a > minuscle improvement from THP, maybe it's seeking across all RAM and > it's very RAM heavy bandwidth-heavy workload so 4k or 2m tlb don't > matter at all for his workload and probably he's running it on bare > metal only. > > I think the challenge here is to get David's workload optimally > without creating the above regression but we don't have a way to do it > right now in an automatic way. It's trivial however to add a mbind new > MPOL_THISNODE or MPOL_THISNODE_THP policy to force THP to set > __GFP_THISNODE and return to the swap storm behavior that needle to > say may have worked best by practically partioning the system, in fact > you may want to use __GFP_THISNODE for 4k allocations too so you > invoke reclaim from the local node before allocating RAM from the > remote nodes. > I'm not sure why we'd be changing the default behavior of three years that causes reported regressions instead of introducing a mempolicy that allows for the remote allocation. This commit from 4.0: commit 077fcf116c8c2bd7ee9487b645aa3b50368db7e1 Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Date: Wed Feb 11 15:27:12 2015 -0800 mm/thp: allocate transparent hugepages on local node This make sure that we try to allocate hugepages from local node if allowed by mempolicy. If we can't, we fallback to small page allocation based on mempolicy. This is based on the observation that allocating pages on local node is more beneficial than allocating hugepages on remote node. With this patch applied we may find transparent huge page allocation failures if the current node doesn't have enough freee hugepages. Before this patch such failures result in us retrying the allocation on other nodes in the numa node mask. [akpm@linux-foundation.org: fix comment, add CONFIG_TRANSPARENT_HUGEPAGE dependency] Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: David Rientjes <rientjes@google.com> Cc: Andrea Arcangeli <aarcange@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Is still needed, and the reason why I'm requesting we maintain that behavior of nearly four years and not conflate MADV_HUGEPAGE any more than it already is. > To me it doesn't seem the requirements of David's workload are the > same as for other MADV_HUGEPAGE users, I can't image other > MADV_HUGEPAGE users not to care at all if the THP utilization drops, > for David it seems THP is a nice thing to have only, and it seems to > care about allocation latency too (which normal apps using > MADV_HUGEPAGE must not). > I have repeatedly said that allocation latency is secondary to the access latency regression that not setting __GFP_THISNODE causes with a fragmented local node on all of our platforms. > In any case David's patch is better than reverting the revert, as the > swap storms are a showstopper compared to crippling down compaction > ability to compact memory when all nodes are full of cache. > I'm going to propose a v2 of my two patch series, including the feedback from Michal in the first. I suggest the first step is to restore the behavior we have had for three years to prevent the regression I'm reporting and the kernel test robot has reported, and then look to improvements that can be made to prevent local thrashing for users who would rather allocate remote hugepages (and perhaps incur the access latency issues if their workload does not span multiple nodes) instead of trying harder to allocate locally. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-05 21:59 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-05 21:59 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 12349 bytes --] On Wed, 5 Dec 2018, Andrea Arcangeli wrote: > > thpscale Percentage Faults Huge > > 4.20.0-rc4 4.20.0-rc4 > > mmots-20181130 gfpthisnode-v1r1 > > Percentage huge-3 95.14 ( 0.00%) 7.94 ( -91.65%) > > Percentage huge-5 91.28 ( 0.00%) 5.00 ( -94.52%) > > Percentage huge-7 86.87 ( 0.00%) 9.36 ( -89.22%) > > Percentage huge-12 83.36 ( 0.00%) 21.03 ( -74.78%) > > Percentage huge-18 83.04 ( 0.00%) 30.73 ( -63.00%) > > Percentage huge-24 83.74 ( 0.00%) 27.47 ( -67.20%) > > Percentage huge-30 83.66 ( 0.00%) 31.85 ( -61.93%) > > Percentage huge-32 83.89 ( 0.00%) 29.09 ( -65.32%) > > > > They're down the toilet. 3 threads are able to get 95% of the requested > > THP pages with Andrews tree as of Nov 30th. David's patch drops that to > > 8% success rate. > > This is the downside of David's patch very well exposed above. And > this will make non-NUMA system regress like above too despite they > have no issue to begin with (which is probably why nobody noticed the > trouble with __GFP_THISNODE reclaim until recently, combined with the > fact most workloads can fit in a single NUMA node). > > So we're effectively crippling down MADV_HUGEPAGE effectiveness on > non-NUMA (where it cannot help to do so) and on NUMA (as a workaround > for the false positive swapout storms) because in some workload and > system THP improvements are less significant than NUMA improvements. > For context, you're referring to the patch I posted that is similar to __GFP_COMPACT_ONLY and patch 2/2 in my series. It's not referring to the revert of the 4.20-rc commit that relaxes the __GFP_THISNODE restriction on thp faults and conflates MADV_HUGEPAGE with NUMA locality. For 4.20, I believe at minimum that patch 1/2 should be merged to restore what we have had for three years, stop piling more semantics on top of the intent (or perceived intent) of MADV_HUGEPAGE, and address the swap storm issue separately. > The higher fault latency is generally the higher cost you pay to get > the good initial THP utilization for apps that do long lived > allocations and in turn can use MADV_HUGEPAGE without downsides. The > cost of compaction pays off over time. > > Short lived allocations sensitive to the allocation latency should not > use MADV_HUGEPAGE in the first place. If you don't want high latency > you shouldn't use MADV_HUGEPAGE and khugepaged already uses > __GFP_THISNODE but it replaces memory so it has a neutral memory > footprint at it, so it's ok with regard to reclaim. > Completely agreed, and is why we want to try synchronous memory compaction to try to allocate hugepages locally in our usecases as well. We aren't particularly concerned about the allocation latency, that is secondary to the long-lived access latency regression that occurs when you do not set __GFP_THISNODE. > In my view David's workload is the outlier that uses MADV_HUGEPAGE but > pretends a low latency and NUMA local behavior as first priority. If > your workload fits in the per-socket CPU cache it doesn't matter which > node it is but it totally matters if you've 2M or 4k tlb. I'm not even > talking about KVM where THP has a multipler effect with EPT. > Hm, no, we do not mind the high allocation latency for MADV_HUGEPAGE users. We *do* care about access latency and that is due to NUMA locality. Before commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings"), *all* thp faults were done with __GFP_THISNODE and had been for at least three years. That commit conflates MADV_HUGEPAGE with a new semantic that it allows remote allocation instead of what it has done for three years: try harder synchronously to allocate hugepages locally. We obviously need to address the problem in another way and not change long-standing behavior that causes regressions. Either my patch 2/2, __GFP_COMPACT_ONLY, a new mempolicy mode, new madvise mode, prctl, etc. > Even if you make the __GFP_NORETRY change for the HPAGE_PMD_ORDER to > skip reclaim in David's patch conditional NUMA being enabled in the > host (so that it won't cripple THP utilization also on non-NUMA > systems), imagine that you go in the bios, turn off interleaving to > enable host NUMA and THP utilization unexpectedly drops significantly > for your VM. > What's needed is appropriate feedback from memory compaction to determine if reclaim is worthwhile: checking only COMPACT_DEFERRED is insufficient. We need to determine if compaction has failed due to order-0 low watermark checks or whether it simply failed to defragment memory so a hugepage could be allocated. Determining if compaction has failed due to order-0 low watermark checks is harder than it seems because the reclaimed memory may not be accessible by isolate_freepages(); we don't have the ability to only reclaim memory from the end of the zone. Otherwise, reclaim is very unlikely to help. > Rome ryzen architecture has been mentioned several times by David but > in my threadripper (not-Rome, as it's supposed to be available in 2019 > only AFIK) enabling THP made a measurable difference for me for some > workloads. As opposed if I turn off NUMA by setting up the > interleaving in the dimm I get a barely measurable slowdown. So I'm > surprised in Rome there's such a radical difference in behavior. > We can compare Naples if that's better; accessing remote hugepages over local pages of the native page size incurs a 13.8% latency increase intrasocket and 38.9% latency increase intersocket. Accessing remote hugepages over remote pages of the native page size is 2.2% better intrasocket and unchanged intersocket. > Like Mel said we need to work towards a more complete solution than > putting __GFP_THISNODE from the outside and then turning off reclaim > from the inside. Mel made examples of things that should > happen, that won't increase allocation latency and that can't happen > with __GFP_THISNODE. > > I'll try to describe again what's going on: > > 1: The allocator is being asked through __GFP_THISNODE "ignore all > remote nodes for all reclaim and compaction" from the > outside. Compaction then returns COMPACT_SKIPPED and tells the > allocator "I can generate many more huge pages if you reclaim/swapout > 2M of anon memory in this node, the only reason I failed to compact > memory is because there aren't enough 4k fragmented pages free in this > zone". The allocator then goes ahead and swaps 2M and invokes > compaction again that succeeds the order 9 allocation fine. Goto 1; > > The above keeps running in a loop at every additional page fault of > the app using MADV_HUGEPAGE until all RAM of the node is swapped out > and replaced by THP and all others nodes had 100% free memory, > potentially 100% order 9, but the allocator completely ignored all > other nodes. That is the thing that we're fixing here, because such > swap storms caused massive slowdowns. If the workload can't fit in a > single node, it's like running with only a fraction of the RAM. > > So David's patch (and __GFP_COMPACT_ONLY) to fix the above swap storm, > inside the allocator skips reclaim entirely when compaction tells "I > can generate one more HPAGE_PMD_ORDER compound page if you > reclaim/swap 2M", if __GFP_NORETRY is set (and makes sure > __GFP_NORETRY is always set for THP). And that however prevents to > generate any more THP globally the moment any node is full of > filesystem cache. > > NOTE: the filesystem cache will still be shrunk but it'll be shrunk by > 4k allocations only. So we just artificially cripple compaction with > David's patch as shown in the quoted results above. This applied to > __GFP_COMPACT_ONLY too and that's I always said there's lots of margin > for improvement there and even __GFP_COMPACT_ONLY was also a stop-gap > measure. > Right, this is all the same as __GFP_COMPACT_ONLY which implicitly set __GFP_NORETRY as part of the gfp flag itself. > So ultimately we decided that the saner behavior that gives the least > risk of regression for the short term, until we can do something > better, was the one that is already applied upstream. > > Of course David's workload regressed, but that's because it gets a > minuscle improvement from THP, maybe it's seeking across all RAM and > it's very RAM heavy bandwidth-heavy workload so 4k or 2m tlb don't > matter at all for his workload and probably he's running it on bare > metal only. > > I think the challenge here is to get David's workload optimally > without creating the above regression but we don't have a way to do it > right now in an automatic way. It's trivial however to add a mbind new > MPOL_THISNODE or MPOL_THISNODE_THP policy to force THP to set > __GFP_THISNODE and return to the swap storm behavior that needle to > say may have worked best by practically partioning the system, in fact > you may want to use __GFP_THISNODE for 4k allocations too so you > invoke reclaim from the local node before allocating RAM from the > remote nodes. > I'm not sure why we'd be changing the default behavior of three years that causes reported regressions instead of introducing a mempolicy that allows for the remote allocation. This commit from 4.0: commit 077fcf116c8c2bd7ee9487b645aa3b50368db7e1 Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Date: Wed Feb 11 15:27:12 2015 -0800 mm/thp: allocate transparent hugepages on local node This make sure that we try to allocate hugepages from local node if allowed by mempolicy. If we can't, we fallback to small page allocation based on mempolicy. This is based on the observation that allocating pages on local node is more beneficial than allocating hugepages on remote node. With this patch applied we may find transparent huge page allocation failures if the current node doesn't have enough freee hugepages. Before this patch such failures result in us retrying the allocation on other nodes in the numa node mask. [akpm(a)linux-foundation.org: fix comment, add CONFIG_TRANSPARENT_HUGEPAGE dependency] Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: David Rientjes <rientjes@google.com> Cc: Andrea Arcangeli <aarcange@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Is still needed, and the reason why I'm requesting we maintain that behavior of nearly four years and not conflate MADV_HUGEPAGE any more than it already is. > To me it doesn't seem the requirements of David's workload are the > same as for other MADV_HUGEPAGE users, I can't image other > MADV_HUGEPAGE users not to care at all if the THP utilization drops, > for David it seems THP is a nice thing to have only, and it seems to > care about allocation latency too (which normal apps using > MADV_HUGEPAGE must not). > I have repeatedly said that allocation latency is secondary to the access latency regression that not setting __GFP_THISNODE causes with a fragmented local node on all of our platforms. > In any case David's patch is better than reverting the revert, as the > swap storms are a showstopper compared to crippling down compaction > ability to compact memory when all nodes are full of cache. > I'm going to propose a v2 of my two patch series, including the feedback from Michal in the first. I suggest the first step is to restore the behavior we have had for three years to prevent the regression I'm reporting and the kernel test robot has reported, and then look to improvements that can be made to prevent local thrashing for users who would rather allocate remote hugepages (and perhaps incur the access latency issues if their workload does not span multiple nodes) instead of trying harder to allocate locally. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-05 21:59 ` David Rientjes @ 2018-12-06 0:00 ` Andrea Arcangeli -1 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-06 0:00 UTC (permalink / raw) To: David Rientjes Cc: Mel Gorman, Vlastimil Babka, Linus Torvalds, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan Hello, On Wed, Dec 05, 2018 at 01:59:32PM -0800, David Rientjes wrote: > [..] and the kernel test robot has reported, [..] Just for completeness you may have missed one email: https://lkml.kernel.org/r/87tvk1yjkp.fsf@yhuang-dev.intel.com 'So I think the report should have been a "performance improvement" instead of "performance regression".' ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-06 0:00 ` Andrea Arcangeli 0 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-06 0:00 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 359 bytes --] Hello, On Wed, Dec 05, 2018 at 01:59:32PM -0800, David Rientjes wrote: > [..] and the kernel test robot has reported, [..] Just for completeness you may have missed one email: https://lkml.kernel.org/r/87tvk1yjkp.fsf(a)yhuang-dev.intel.com 'So I think the report should have been a "performance improvement" instead of "performance regression".' ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-05 20:40 ` Andrea Arcangeli @ 2018-12-05 22:03 ` Linus Torvalds -1 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-05 22:03 UTC (permalink / raw) To: Andrea Arcangeli Cc: mgorman, Vlastimil Babka, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan On Wed, Dec 5, 2018 at 12:40 PM Andrea Arcangeli <aarcange@redhat.com> wrote: > > So ultimately we decided that the saner behavior that gives the least > risk of regression for the short term, until we can do something > better, was the one that is already applied upstream. You're ignoring the fact that people *did* report things regressed. That's the part I find unacceptable. You're saying "we picked something that minimized regressions". No it didn't. The regression is present and real, and is on a real load, not a benchmark. So that argument is clearly bogus. I'm going to revert the commit since people apparently seem to be ignoring this fundamental issue. Real workloads regressed. The regressions got reported. Ignoring that isn't acceptable. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-05 22:03 ` Linus Torvalds 0 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-05 22:03 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 813 bytes --] On Wed, Dec 5, 2018 at 12:40 PM Andrea Arcangeli <aarcange@redhat.com> wrote: > > So ultimately we decided that the saner behavior that gives the least > risk of regression for the short term, until we can do something > better, was the one that is already applied upstream. You're ignoring the fact that people *did* report things regressed. That's the part I find unacceptable. You're saying "we picked something that minimized regressions". No it didn't. The regression is present and real, and is on a real load, not a benchmark. So that argument is clearly bogus. I'm going to revert the commit since people apparently seem to be ignoring this fundamental issue. Real workloads regressed. The regressions got reported. Ignoring that isn't acceptable. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-05 22:03 ` Linus Torvalds @ 2018-12-05 22:12 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-05 22:12 UTC (permalink / raw) To: Linus Torvalds Cc: Andrea Arcangeli, mgorman, Vlastimil Babka, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Wed, 5 Dec 2018, Linus Torvalds wrote: > > So ultimately we decided that the saner behavior that gives the least > > risk of regression for the short term, until we can do something > > better, was the one that is already applied upstream. > > You're ignoring the fact that people *did* report things regressed. > > That's the part I find unacceptable. You're saying "we picked > something that minimized regressions". > > No it didn't. The regression is present and real, and is on a real > load, not a benchmark. > > So that argument is clearly bogus. > > I'm going to revert the commit since people apparently seem to be > ignoring this fundamental issue. > > Real workloads regressed. The regressions got reported. Ignoring that > isn't acceptable. > Please allow me to prepare my v2 because it's not a clean revert due to the follow-up 89c83fb539f9 ("mm, thp: consolidate THP gfp handling into alloc_hugepage_direct_gfpmask") and will incorporate the feedback from Michal to not change anything outside of the thp fault path. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-05 22:12 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-05 22:12 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 1074 bytes --] On Wed, 5 Dec 2018, Linus Torvalds wrote: > > So ultimately we decided that the saner behavior that gives the least > > risk of regression for the short term, until we can do something > > better, was the one that is already applied upstream. > > You're ignoring the fact that people *did* report things regressed. > > That's the part I find unacceptable. You're saying "we picked > something that minimized regressions". > > No it didn't. The regression is present and real, and is on a real > load, not a benchmark. > > So that argument is clearly bogus. > > I'm going to revert the commit since people apparently seem to be > ignoring this fundamental issue. > > Real workloads regressed. The regressions got reported. Ignoring that > isn't acceptable. > Please allow me to prepare my v2 because it's not a clean revert due to the follow-up 89c83fb539f9 ("mm, thp: consolidate THP gfp handling into alloc_hugepage_direct_gfpmask") and will incorporate the feedback from Michal to not change anything outside of the thp fault path. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-05 22:03 ` Linus Torvalds @ 2018-12-05 23:36 ` Andrea Arcangeli -1 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-05 23:36 UTC (permalink / raw) To: Linus Torvalds Cc: mgorman, Vlastimil Babka, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan On Wed, Dec 05, 2018 at 02:03:10PM -0800, Linus Torvalds wrote: > On Wed, Dec 5, 2018 at 12:40 PM Andrea Arcangeli <aarcange@redhat.com> wrote: > > > > So ultimately we decided that the saner behavior that gives the least > > risk of regression for the short term, until we can do something > > better, was the one that is already applied upstream. > > You're ignoring the fact that people *did* report things regressed. I don't ignore regressions.. after all the only reason I touched this code is that I have been asked to fix a regression that made the upstream kernel unusable in some enterprise workloads with very large processes. Enterprise releases don't happen every year so it's normal we noticed only last January a 3 years old regression. The fact it's an old regression doesn't make it any less relevant. It took until August until I had the time to track down this specific regression which artificially delayed this by another 8 months. With regard to David's specific regression I didn't ignore it either, I just prioritize on which regression has to be fixed with the most urgency and David's regression is less severe than the one we're fixing here. I posted below the numbers for the regression that is more urgent to fix. Now suppose (like I think is likely) David may be better off setting __GFP_THISNODE across the board including for 4k pages not just for THP. I don't think anybody would be ok if we set __GFP_THISNODE by on 4k pages too unless it's done under a very specific new MPOL. It'll probably work even better for him probably (the cache will be pushed into remote nodes by 4k allocations too, and even more of the app data and executable will be in the local NUMA node). But that's unusable for anything except his specialized workload that tends to fit in a single node and can accept to pay an incredible slowdown if it ever spills over (as long as the process is not getting OOM killed he's ok because it's such an uncommon occurrence for him that he can pay an extreme cost just to avoid OOM killing). It's totally fine to optimize such things with an opt-in like a new MPOL that makes those assumptions about process size, but it's that's an unacceptable assumption to impose on all workloads, because it breaks the VM bad for all workload that can't fit in a single NUMA node. > That's the part I find unacceptable. You're saying "we picked > something that minimized regressions". > > No it didn't. The regression is present and real, and is on a real > load, not a benchmark. > > So that argument is clearly bogus. Note that "this give the least risk of regression" I never meant the risk is zero. Obviously we know it's higher than zero. Otherwise David would have no regression in the first place. So I stand by my argument that this is what "gives the least risk of regression" if you're given any workload you know nothing about that uses MADV_HUGEPAGE and it's benefiting from it and you don't know beforehand if it can fit or not fit in a single NUMA node. If you knew for sure it can fit in a single NUMA node, __GFP_THISNODE would be better, obviously, but the same applies to 4k pages too... and we're not setting __GFP_THISNODE on 4k allocations under MPOL_DEFAULT. So I'm all for fixing David's workload but here we're trying to generalize an ad-hoc NUMA optimization that isn't necessarily only applicable to THP order allocations either, like it's a generic good thing when it isn't. __GFP_COMPACT_ONLY gave an hope it could give some middle ground but it shows awful compaction results, it basically destroys compaction effectiveness and we know why (COMPACT_SKIPPED must call reclaim or compaction can't succeed because there's not enough free memory in the node). If somebody used MADV_HUGEPAGE compaction should still work and not fail like that. Compaction would fail to be effective even in the local node where __GFP_THISNODE didn't fail. Worst of all it'd fail even on non-NUMA systems (that would be easy to fix though by making the HPAGE_PMD_ORDER check conditional to NUMA being enabled at runtime). Like said earlier still better to apply __GFP_COMPACT_ONLY or David's patch than to return to v4.18 though. === From: Andrea Arcangeli <aarcange@redhat.com> To: Andrew Morton <akpm@linux-foundation.org> Cc: linux-mm@kvack.org, Alex Williamson <alex.williamson@redhat.com>, David Rientjes <rientjes@google.com>, Vlastimil Babka <vbabka@suse.cz> Subject: [PATCH 1/1] mm: thp: fix transparent_hugepage/defrag = madvise || always Date: Sun, 19 Aug 2018 23:26:40 -0400 qemu uses MADV_HUGEPAGE which allows direct compaction (i.e. __GFP_DIRECT_RECLAIM is set). The problem is that direct compaction combined with the NUMA __GFP_THISNODE logic in mempolicy.c is telling reclaim to swap very hard the local node, instead of failing the allocation if there's no THP available in the local node. Such logic was ok until __GFP_THISNODE was added to the THP allocation path even with MPOL_DEFAULT. The idea behind the __GFP_THISNODE addition, is that it is better to provide local memory in PAGE_SIZE units than to use remote NUMA THP backed memory. That largely depends on the remote latency though, on threadrippers for example the overhead is relatively low in my experience. The combination of __GFP_THISNODE and __GFP_DIRECT_RECLAIM results in extremely slow qemu startup with vfio, if the VM is larger than the size of one host NUMA node. This is because it will try very hard to unsuccessfully swapout get_user_pages pinned pages as result of the __GFP_THISNODE being set, instead of falling back to PAGE_SIZE allocations and instead of trying to allocate THP on other nodes (it would be even worse without vfio type1 GUP pins of course, except it'd be swapping heavily instead). It's very easy to reproduce this by setting transparent_hugepage/defrag to "always", even with a simple memhog. 1) This can be fixed by retaining the __GFP_THISNODE logic also for __GFP_DIRECT_RELCAIM by allowing only one compaction run. Not even COMPACT_SKIPPED (i.e. compaction failing because not enough free memory in the zone) should be allowed to invoke reclaim. 2) An alternative is not use __GFP_THISNODE if __GFP_DIRECT_RELCAIM has been set by the caller (i.e. MADV_HUGEPAGE or defrag="always"). That would keep the NUMA locality restriction only when __GFP_DIRECT_RECLAIM is not set by the caller. So THP will be provided from remote nodes if available before falling back to PAGE_SIZE units in the local node, but an app using defrag = always (or madvise with MADV_HUGEPAGE) supposedly prefers that. These are the results of 1) (higher GB/s is better). Finished: 30 GB mapped, 10.188535s elapsed, 2.94GB/s Finished: 34 GB mapped, 12.274777s elapsed, 2.77GB/s Finished: 38 GB mapped, 13.847840s elapsed, 2.74GB/s Finished: 42 GB mapped, 14.288587s elapsed, 2.94GB/s Finished: 30 GB mapped, 8.907367s elapsed, 3.37GB/s Finished: 34 GB mapped, 10.724797s elapsed, 3.17GB/s Finished: 38 GB mapped, 14.272882s elapsed, 2.66GB/s Finished: 42 GB mapped, 13.929525s elapsed, 3.02GB/s These are the results of 2) (higher GB/s is better). Finished: 30 GB mapped, 10.163159s elapsed, 2.95GB/s Finished: 34 GB mapped, 11.806526s elapsed, 2.88GB/s Finished: 38 GB mapped, 10.369081s elapsed, 3.66GB/s Finished: 42 GB mapped, 12.357719s elapsed, 3.40GB/s Finished: 30 GB mapped, 8.251396s elapsed, 3.64GB/s Finished: 34 GB mapped, 12.093030s elapsed, 2.81GB/s Finished: 38 GB mapped, 11.824903s elapsed, 3.21GB/s Finished: 42 GB mapped, 15.950661s elapsed, 2.63GB/s This is current upstream (higher GB/s is better). Finished: 30 GB mapped, 8.821632s elapsed, 3.40GB/s Finished: 34 GB mapped, 341.979543s elapsed, 0.10GB/s Finished: 38 GB mapped, 761.933231s elapsed, 0.05GB/s Finished: 42 GB mapped, 1188.409235s elapsed, 0.04GB/s vfio is a good test because by pinning all memory it avoids the swapping and reclaim only wastes CPU, a memhog based test would created swapout storms and supposedly show a bigger stddev. What is better between 1) and 2) depends on the hardware and on the software. Virtualization EPT/NTP gets a bigger boost from THP as well than host applications. This commit implements 2). Reported-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> --- mm/mempolicy.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/mm/mempolicy.c b/mm/mempolicy.c index d6512ef28cde..fb7f9581a835 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -2047,8 +2047,36 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma, if (!nmask || node_isset(hpage_node, *nmask)) { mpol_cond_put(pol); - page = __alloc_pages_node(hpage_node, - gfp | __GFP_THISNODE, order); + /* + * We cannot invoke reclaim if __GFP_THISNODE + * is set. Invoking reclaim with + * __GFP_THISNODE set, would cause THP + * allocations to trigger heavy swapping + * despite there may be tons of free memory + * (including potentially plenty of THP + * already available in the buddy) on all the + * other NUMA nodes. + * + * At most we could invoke compaction when + * __GFP_THISNODE is set (but we would need to + * refrain from invoking reclaim even if + * compaction returned COMPACT_SKIPPED because + * there wasn't not enough memory to succeed + * compaction). For now just avoid + * __GFP_THISNODE instead of limiting the + * allocation path to a strict and single + * compaction invocation. + * + * Supposedly if direct reclaim was enabled by + * the caller, the app prefers THP regardless + * of the node it comes from so this would be + * more desiderable behavior than only + * providing THP originated from the local + * node in such case. + */ + if (!(gfp & __GFP_DIRECT_RECLAIM)) + gfp |= __GFP_THISNODE; + page = __alloc_pages_node(hpage_node, gfp, order); goto out; } } === ^ permalink raw reply related [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-05 23:36 ` Andrea Arcangeli 0 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-05 23:36 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 10229 bytes --] On Wed, Dec 05, 2018 at 02:03:10PM -0800, Linus Torvalds wrote: > On Wed, Dec 5, 2018 at 12:40 PM Andrea Arcangeli <aarcange@redhat.com> wrote: > > > > So ultimately we decided that the saner behavior that gives the least > > risk of regression for the short term, until we can do something > > better, was the one that is already applied upstream. > > You're ignoring the fact that people *did* report things regressed. I don't ignore regressions.. after all the only reason I touched this code is that I have been asked to fix a regression that made the upstream kernel unusable in some enterprise workloads with very large processes. Enterprise releases don't happen every year so it's normal we noticed only last January a 3 years old regression. The fact it's an old regression doesn't make it any less relevant. It took until August until I had the time to track down this specific regression which artificially delayed this by another 8 months. With regard to David's specific regression I didn't ignore it either, I just prioritize on which regression has to be fixed with the most urgency and David's regression is less severe than the one we're fixing here. I posted below the numbers for the regression that is more urgent to fix. Now suppose (like I think is likely) David may be better off setting __GFP_THISNODE across the board including for 4k pages not just for THP. I don't think anybody would be ok if we set __GFP_THISNODE by on 4k pages too unless it's done under a very specific new MPOL. It'll probably work even better for him probably (the cache will be pushed into remote nodes by 4k allocations too, and even more of the app data and executable will be in the local NUMA node). But that's unusable for anything except his specialized workload that tends to fit in a single node and can accept to pay an incredible slowdown if it ever spills over (as long as the process is not getting OOM killed he's ok because it's such an uncommon occurrence for him that he can pay an extreme cost just to avoid OOM killing). It's totally fine to optimize such things with an opt-in like a new MPOL that makes those assumptions about process size, but it's that's an unacceptable assumption to impose on all workloads, because it breaks the VM bad for all workload that can't fit in a single NUMA node. > That's the part I find unacceptable. You're saying "we picked > something that minimized regressions". > > No it didn't. The regression is present and real, and is on a real > load, not a benchmark. > > So that argument is clearly bogus. Note that "this give the least risk of regression" I never meant the risk is zero. Obviously we know it's higher than zero. Otherwise David would have no regression in the first place. So I stand by my argument that this is what "gives the least risk of regression" if you're given any workload you know nothing about that uses MADV_HUGEPAGE and it's benefiting from it and you don't know beforehand if it can fit or not fit in a single NUMA node. If you knew for sure it can fit in a single NUMA node, __GFP_THISNODE would be better, obviously, but the same applies to 4k pages too... and we're not setting __GFP_THISNODE on 4k allocations under MPOL_DEFAULT. So I'm all for fixing David's workload but here we're trying to generalize an ad-hoc NUMA optimization that isn't necessarily only applicable to THP order allocations either, like it's a generic good thing when it isn't. __GFP_COMPACT_ONLY gave an hope it could give some middle ground but it shows awful compaction results, it basically destroys compaction effectiveness and we know why (COMPACT_SKIPPED must call reclaim or compaction can't succeed because there's not enough free memory in the node). If somebody used MADV_HUGEPAGE compaction should still work and not fail like that. Compaction would fail to be effective even in the local node where __GFP_THISNODE didn't fail. Worst of all it'd fail even on non-NUMA systems (that would be easy to fix though by making the HPAGE_PMD_ORDER check conditional to NUMA being enabled at runtime). Like said earlier still better to apply __GFP_COMPACT_ONLY or David's patch than to return to v4.18 though. === From: Andrea Arcangeli <aarcange@redhat.com> To: Andrew Morton <akpm@linux-foundation.org> Cc: linux-mm(a)kvack.org, Alex Williamson <alex.williamson@redhat.com>, David Rientjes <rientjes@google.com>, Vlastimil Babka <vbabka@suse.cz> Subject: [PATCH 1/1] mm: thp: fix transparent_hugepage/defrag = madvise || always Date: Sun, 19 Aug 2018 23:26:40 -0400 qemu uses MADV_HUGEPAGE which allows direct compaction (i.e. __GFP_DIRECT_RECLAIM is set). The problem is that direct compaction combined with the NUMA __GFP_THISNODE logic in mempolicy.c is telling reclaim to swap very hard the local node, instead of failing the allocation if there's no THP available in the local node. Such logic was ok until __GFP_THISNODE was added to the THP allocation path even with MPOL_DEFAULT. The idea behind the __GFP_THISNODE addition, is that it is better to provide local memory in PAGE_SIZE units than to use remote NUMA THP backed memory. That largely depends on the remote latency though, on threadrippers for example the overhead is relatively low in my experience. The combination of __GFP_THISNODE and __GFP_DIRECT_RECLAIM results in extremely slow qemu startup with vfio, if the VM is larger than the size of one host NUMA node. This is because it will try very hard to unsuccessfully swapout get_user_pages pinned pages as result of the __GFP_THISNODE being set, instead of falling back to PAGE_SIZE allocations and instead of trying to allocate THP on other nodes (it would be even worse without vfio type1 GUP pins of course, except it'd be swapping heavily instead). It's very easy to reproduce this by setting transparent_hugepage/defrag to "always", even with a simple memhog. 1) This can be fixed by retaining the __GFP_THISNODE logic also for __GFP_DIRECT_RELCAIM by allowing only one compaction run. Not even COMPACT_SKIPPED (i.e. compaction failing because not enough free memory in the zone) should be allowed to invoke reclaim. 2) An alternative is not use __GFP_THISNODE if __GFP_DIRECT_RELCAIM has been set by the caller (i.e. MADV_HUGEPAGE or defrag="always"). That would keep the NUMA locality restriction only when __GFP_DIRECT_RECLAIM is not set by the caller. So THP will be provided from remote nodes if available before falling back to PAGE_SIZE units in the local node, but an app using defrag = always (or madvise with MADV_HUGEPAGE) supposedly prefers that. These are the results of 1) (higher GB/s is better). Finished: 30 GB mapped, 10.188535s elapsed, 2.94GB/s Finished: 34 GB mapped, 12.274777s elapsed, 2.77GB/s Finished: 38 GB mapped, 13.847840s elapsed, 2.74GB/s Finished: 42 GB mapped, 14.288587s elapsed, 2.94GB/s Finished: 30 GB mapped, 8.907367s elapsed, 3.37GB/s Finished: 34 GB mapped, 10.724797s elapsed, 3.17GB/s Finished: 38 GB mapped, 14.272882s elapsed, 2.66GB/s Finished: 42 GB mapped, 13.929525s elapsed, 3.02GB/s These are the results of 2) (higher GB/s is better). Finished: 30 GB mapped, 10.163159s elapsed, 2.95GB/s Finished: 34 GB mapped, 11.806526s elapsed, 2.88GB/s Finished: 38 GB mapped, 10.369081s elapsed, 3.66GB/s Finished: 42 GB mapped, 12.357719s elapsed, 3.40GB/s Finished: 30 GB mapped, 8.251396s elapsed, 3.64GB/s Finished: 34 GB mapped, 12.093030s elapsed, 2.81GB/s Finished: 38 GB mapped, 11.824903s elapsed, 3.21GB/s Finished: 42 GB mapped, 15.950661s elapsed, 2.63GB/s This is current upstream (higher GB/s is better). Finished: 30 GB mapped, 8.821632s elapsed, 3.40GB/s Finished: 34 GB mapped, 341.979543s elapsed, 0.10GB/s Finished: 38 GB mapped, 761.933231s elapsed, 0.05GB/s Finished: 42 GB mapped, 1188.409235s elapsed, 0.04GB/s vfio is a good test because by pinning all memory it avoids the swapping and reclaim only wastes CPU, a memhog based test would created swapout storms and supposedly show a bigger stddev. What is better between 1) and 2) depends on the hardware and on the software. Virtualization EPT/NTP gets a bigger boost from THP as well than host applications. This commit implements 2). Reported-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> --- mm/mempolicy.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/mm/mempolicy.c b/mm/mempolicy.c index d6512ef28cde..fb7f9581a835 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -2047,8 +2047,36 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma, if (!nmask || node_isset(hpage_node, *nmask)) { mpol_cond_put(pol); - page = __alloc_pages_node(hpage_node, - gfp | __GFP_THISNODE, order); + /* + * We cannot invoke reclaim if __GFP_THISNODE + * is set. Invoking reclaim with + * __GFP_THISNODE set, would cause THP + * allocations to trigger heavy swapping + * despite there may be tons of free memory + * (including potentially plenty of THP + * already available in the buddy) on all the + * other NUMA nodes. + * + * At most we could invoke compaction when + * __GFP_THISNODE is set (but we would need to + * refrain from invoking reclaim even if + * compaction returned COMPACT_SKIPPED because + * there wasn't not enough memory to succeed + * compaction). For now just avoid + * __GFP_THISNODE instead of limiting the + * allocation path to a strict and single + * compaction invocation. + * + * Supposedly if direct reclaim was enabled by + * the caller, the app prefers THP regardless + * of the node it comes from so this would be + * more desiderable behavior than only + * providing THP originated from the local + * node in such case. + */ + if (!(gfp & __GFP_DIRECT_RECLAIM)) + gfp |= __GFP_THISNODE; + page = __alloc_pages_node(hpage_node, gfp, order); goto out; } } === ^ permalink raw reply related [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-05 23:36 ` Andrea Arcangeli @ 2018-12-05 23:51 ` Linus Torvalds -1 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-05 23:51 UTC (permalink / raw) To: Andrea Arcangeli Cc: mgorman, Vlastimil Babka, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan On Wed, Dec 5, 2018 at 3:36 PM Andrea Arcangeli <aarcange@redhat.com> wrote: > > Like said earlier still better to apply __GFP_COMPACT_ONLY or David's > patch than to return to v4.18 though. Ok, I've applied David's latest patch. I'm not at all objecting to tweaking this further, I just didn't want to have this regression stand. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-05 23:51 ` Linus Torvalds 0 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-05 23:51 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 362 bytes --] On Wed, Dec 5, 2018 at 3:36 PM Andrea Arcangeli <aarcange@redhat.com> wrote: > > Like said earlier still better to apply __GFP_COMPACT_ONLY or David's > patch than to return to v4.18 though. Ok, I've applied David's latest patch. I'm not at all objecting to tweaking this further, I just didn't want to have this regression stand. Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-05 23:51 ` Linus Torvalds @ 2018-12-06 0:58 ` Linus Torvalds -1 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-06 0:58 UTC (permalink / raw) To: Andrea Arcangeli Cc: mgorman, Vlastimil Babka, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan On Wed, Dec 5, 2018 at 3:51 PM Linus Torvalds <torvalds@linux-foundation.org> wrote: > > Ok, I've applied David's latest patch. > > I'm not at all objecting to tweaking this further, I just didn't want > to have this regression stand. Hmm. Can somebody (David?) also perhaps try to state what the different latency impacts end up being? I suspect it's been mentioned several times during the argument, but it would be nice to have a "going forward, this is what I care about" kind of setup for good default behavior. How much of the problem ends up being about the cost of compaction vs the cost of getting a remote node bigpage? That would seem to be a fairly major issue, but __GFP_THISNODE affects both. It limits compaction to just this now, in addition to obviously limiting the allocation result. I realize that we probably do want to just have explicit policies that do not exist right now, but what are (a) sane defaults, and (b) sane policies? For example, if we cannot get a hugepage on this node, but we *do* get a node-local small page, is the local memory advantage simply better than the possible TLB advantage? Because if that's the case (at least commonly), then that in itself is a fairly good argument for "hugepage allocations should always be THISNODE". But David also did mention the actual allocation overhead itself in the commit, and maybe the math is more "try to get a local hugepage, but if no such thing exists, see if you can get a remote hugepage _cheaply_". So another model can be "do local-only compaction, but allow non-local allocation if the local node doesn't have anything". IOW, if other nodes have hugepages available, pick them up, but don't try to compact other nodes to do so? And yet another model might be "do a least-effort thing, give me a local hugepage if it exists, otherwise fall back to small pages". So there are different combinations of "try compaction" vs "local-remote". Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-06 0:58 ` Linus Torvalds 0 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-06 0:58 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2016 bytes --] On Wed, Dec 5, 2018 at 3:51 PM Linus Torvalds <torvalds@linux-foundation.org> wrote: > > Ok, I've applied David's latest patch. > > I'm not at all objecting to tweaking this further, I just didn't want > to have this regression stand. Hmm. Can somebody (David?) also perhaps try to state what the different latency impacts end up being? I suspect it's been mentioned several times during the argument, but it would be nice to have a "going forward, this is what I care about" kind of setup for good default behavior. How much of the problem ends up being about the cost of compaction vs the cost of getting a remote node bigpage? That would seem to be a fairly major issue, but __GFP_THISNODE affects both. It limits compaction to just this now, in addition to obviously limiting the allocation result. I realize that we probably do want to just have explicit policies that do not exist right now, but what are (a) sane defaults, and (b) sane policies? For example, if we cannot get a hugepage on this node, but we *do* get a node-local small page, is the local memory advantage simply better than the possible TLB advantage? Because if that's the case (at least commonly), then that in itself is a fairly good argument for "hugepage allocations should always be THISNODE". But David also did mention the actual allocation overhead itself in the commit, and maybe the math is more "try to get a local hugepage, but if no such thing exists, see if you can get a remote hugepage _cheaply_". So another model can be "do local-only compaction, but allow non-local allocation if the local node doesn't have anything". IOW, if other nodes have hugepages available, pick them up, but don't try to compact other nodes to do so? And yet another model might be "do a least-effort thing, give me a local hugepage if it exists, otherwise fall back to small pages". So there are different combinations of "try compaction" vs "local-remote". Linus ^ permalink raw reply [flat|nested] 154+ messages in thread
* MADV_HUGEPAGE vs. NUMA semantic (was: Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) 2018-12-06 0:58 ` Linus Torvalds @ 2018-12-06 9:14 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-06 9:14 UTC (permalink / raw) To: Linus Torvalds Cc: Andrea Arcangeli, mgorman, Vlastimil Babka, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan On Wed 05-12-18 16:58:02, Linus Torvalds wrote: [...] > I realize that we probably do want to just have explicit policies that > do not exist right now, but what are (a) sane defaults, and (b) sane > policies? I would focus on the current default first (which is defrag=madvise). This means that we only try the cheapest possible THP without MADV_HUGEPAGE. If there is none we simply fallback. We do restrict to the local node. I guess there is a general agreement that this is a sane default. MADV_HUGEPAGE changes the picture because the caller expressed a need for THP and is willing to go extra mile to get it. That involves allocation latency and as of now also a potential remote access. We do not have complete agreement on the later but the prevailing argument is that any strong NUMA locality is just reinventing node-reclaim story again or makes THP success rate down the toilet (to quote Mel). I agree that we do not want to fallback to a remote node overeagerly. I believe that something like the below would be sensible 1) THP on a local node with compaction not giving up too early 2) THP on a remote node in NOWAIT mode - so no direct compaction/reclaim (trigger kswapd/kcompactd only for defrag=defer+madvise) 3) fallback to the base page allocation This would allow both full memory utilization and try to be as local as possible. Whoever strongly prefers NUMA locality should be using MPOL_NODE_RECLAIM (or similar) and that would skip 2 and make 1) and 2) use more aggressive compaction and reclaim. This will also fit into our existing NUMA api. MPOL_NODE_RECLAIM wouldn't be restricted to THP obviously. It would act on base pages as well and it would basically use the same implementation as we have for the global node_reclaim and make it usable again. Does this sound at least remotely sane? -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* MADV_HUGEPAGE vs. NUMA semantic (was: Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) @ 2018-12-06 9:14 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-06 9:14 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 1899 bytes --] On Wed 05-12-18 16:58:02, Linus Torvalds wrote: [...] > I realize that we probably do want to just have explicit policies that > do not exist right now, but what are (a) sane defaults, and (b) sane > policies? I would focus on the current default first (which is defrag=madvise). This means that we only try the cheapest possible THP without MADV_HUGEPAGE. If there is none we simply fallback. We do restrict to the local node. I guess there is a general agreement that this is a sane default. MADV_HUGEPAGE changes the picture because the caller expressed a need for THP and is willing to go extra mile to get it. That involves allocation latency and as of now also a potential remote access. We do not have complete agreement on the later but the prevailing argument is that any strong NUMA locality is just reinventing node-reclaim story again or makes THP success rate down the toilet (to quote Mel). I agree that we do not want to fallback to a remote node overeagerly. I believe that something like the below would be sensible 1) THP on a local node with compaction not giving up too early 2) THP on a remote node in NOWAIT mode - so no direct compaction/reclaim (trigger kswapd/kcompactd only for defrag=defer+madvise) 3) fallback to the base page allocation This would allow both full memory utilization and try to be as local as possible. Whoever strongly prefers NUMA locality should be using MPOL_NODE_RECLAIM (or similar) and that would skip 2 and make 1) and 2) use more aggressive compaction and reclaim. This will also fit into our existing NUMA api. MPOL_NODE_RECLAIM wouldn't be restricted to THP obviously. It would act on base pages as well and it would basically use the same implementation as we have for the global node_reclaim and make it usable again. Does this sound at least remotely sane? -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: MADV_HUGEPAGE vs. NUMA semantic (was: Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) 2018-12-06 9:14 ` MADV_HUGEPAGE vs. NUMA semantic (was: " Michal Hocko @ 2018-12-06 23:49 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-06 23:49 UTC (permalink / raw) To: Michal Hocko Cc: Linus Torvalds, Andrea Arcangeli, mgorman, Vlastimil Babka, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Thu, 6 Dec 2018, Michal Hocko wrote: > MADV_HUGEPAGE changes the picture because the caller expressed a need > for THP and is willing to go extra mile to get it. That involves > allocation latency and as of now also a potential remote access. We do > not have complete agreement on the later but the prevailing argument is > that any strong NUMA locality is just reinventing node-reclaim story > again or makes THP success rate down the toilet (to quote Mel). I agree > that we do not want to fallback to a remote node overeagerly. I believe > that something like the below would be sensible > 1) THP on a local node with compaction not giving up too early > 2) THP on a remote node in NOWAIT mode - so no direct > compaction/reclaim (trigger kswapd/kcompactd only for > defrag=defer+madvise) > 3) fallback to the base page allocation > I disagree that MADV_HUGEPAGE should take on any new semantic that overrides the preference of node local memory for a hugepage, which is the nearly four year behavior. The order of MADV_HUGEPAGE preferences listed above would cause current users to regress who rely on local small page fallback rather than remote hugepages because the access latency is much better. I think the preference of remote hugepages over local small pages needs to be expressed differently to prevent regression. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: MADV_HUGEPAGE vs. NUMA semantic (was: Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) @ 2018-12-06 23:49 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-06 23:49 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 1377 bytes --] On Thu, 6 Dec 2018, Michal Hocko wrote: > MADV_HUGEPAGE changes the picture because the caller expressed a need > for THP and is willing to go extra mile to get it. That involves > allocation latency and as of now also a potential remote access. We do > not have complete agreement on the later but the prevailing argument is > that any strong NUMA locality is just reinventing node-reclaim story > again or makes THP success rate down the toilet (to quote Mel). I agree > that we do not want to fallback to a remote node overeagerly. I believe > that something like the below would be sensible > 1) THP on a local node with compaction not giving up too early > 2) THP on a remote node in NOWAIT mode - so no direct > compaction/reclaim (trigger kswapd/kcompactd only for > defrag=defer+madvise) > 3) fallback to the base page allocation > I disagree that MADV_HUGEPAGE should take on any new semantic that overrides the preference of node local memory for a hugepage, which is the nearly four year behavior. The order of MADV_HUGEPAGE preferences listed above would cause current users to regress who rely on local small page fallback rather than remote hugepages because the access latency is much better. I think the preference of remote hugepages over local small pages needs to be expressed differently to prevent regression. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: MADV_HUGEPAGE vs. NUMA semantic (was: Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) 2018-12-06 23:49 ` MADV_HUGEPAGE vs. NUMA semantic (was: " David Rientjes @ 2018-12-07 7:34 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-07 7:34 UTC (permalink / raw) To: David Rientjes Cc: Linus Torvalds, Andrea Arcangeli, mgorman, Vlastimil Babka, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Thu 06-12-18 15:49:04, David Rientjes wrote: > On Thu, 6 Dec 2018, Michal Hocko wrote: > > > MADV_HUGEPAGE changes the picture because the caller expressed a need > > for THP and is willing to go extra mile to get it. That involves > > allocation latency and as of now also a potential remote access. We do > > not have complete agreement on the later but the prevailing argument is > > that any strong NUMA locality is just reinventing node-reclaim story > > again or makes THP success rate down the toilet (to quote Mel). I agree > > that we do not want to fallback to a remote node overeagerly. I believe > > that something like the below would be sensible > > 1) THP on a local node with compaction not giving up too early > > 2) THP on a remote node in NOWAIT mode - so no direct > > compaction/reclaim (trigger kswapd/kcompactd only for > > defrag=defer+madvise) > > 3) fallback to the base page allocation > > > > I disagree that MADV_HUGEPAGE should take on any new semantic that > overrides the preference of node local memory for a hugepage, which is the > nearly four year behavior. The order of MADV_HUGEPAGE preferences listed > above would cause current users to regress who rely on local small page > fallback rather than remote hugepages because the access latency is much > better. I think the preference of remote hugepages over local small pages > needs to be expressed differently to prevent regression. Such a model would be broken. It doesn't provide consistent semantic and leads to surprising results. MADV_HUGEPAGE with local node binding will not prevent remote base pages to be used and you are back to square one. It has been a huge mistake to merge your __GFP_THISNODE patch back then in 4.1. Especially with an absolute lack of numbers for a variety of workloads. I still believe we can do better, offer a sane mem policy to help workloads with higher locality demands but it is outright wrong to confalte demand for THP with the locality semantic. If this is absolutely no go then we need a MADV_HUGEPAGE_SANE... -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: MADV_HUGEPAGE vs. NUMA semantic (was: Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) @ 2018-12-07 7:34 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-07 7:34 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2141 bytes --] On Thu 06-12-18 15:49:04, David Rientjes wrote: > On Thu, 6 Dec 2018, Michal Hocko wrote: > > > MADV_HUGEPAGE changes the picture because the caller expressed a need > > for THP and is willing to go extra mile to get it. That involves > > allocation latency and as of now also a potential remote access. We do > > not have complete agreement on the later but the prevailing argument is > > that any strong NUMA locality is just reinventing node-reclaim story > > again or makes THP success rate down the toilet (to quote Mel). I agree > > that we do not want to fallback to a remote node overeagerly. I believe > > that something like the below would be sensible > > 1) THP on a local node with compaction not giving up too early > > 2) THP on a remote node in NOWAIT mode - so no direct > > compaction/reclaim (trigger kswapd/kcompactd only for > > defrag=defer+madvise) > > 3) fallback to the base page allocation > > > > I disagree that MADV_HUGEPAGE should take on any new semantic that > overrides the preference of node local memory for a hugepage, which is the > nearly four year behavior. The order of MADV_HUGEPAGE preferences listed > above would cause current users to regress who rely on local small page > fallback rather than remote hugepages because the access latency is much > better. I think the preference of remote hugepages over local small pages > needs to be expressed differently to prevent regression. Such a model would be broken. It doesn't provide consistent semantic and leads to surprising results. MADV_HUGEPAGE with local node binding will not prevent remote base pages to be used and you are back to square one. It has been a huge mistake to merge your __GFP_THISNODE patch back then in 4.1. Especially with an absolute lack of numbers for a variety of workloads. I still believe we can do better, offer a sane mem policy to help workloads with higher locality demands but it is outright wrong to confalte demand for THP with the locality semantic. If this is absolutely no go then we need a MADV_HUGEPAGE_SANE... -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: MADV_HUGEPAGE vs. NUMA semantic (was: Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) 2018-12-06 9:14 ` MADV_HUGEPAGE vs. NUMA semantic (was: " Michal Hocko @ 2018-12-07 4:31 ` Linus Torvalds -1 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-07 4:31 UTC (permalink / raw) To: Michal Hocko Cc: Andrea Arcangeli, mgorman, Vlastimil Babka, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan [-- Attachment #1: Type: text/plain, Size: 4738 bytes --] [ Oops. different thread for me due to edited subject, so I saw this after replying to the earlier email by David ] On Thu, Dec 6, 2018 at 1:14 AM Michal Hocko <mhocko@kernel.org> wrote: > > MADV_HUGEPAGE changes the picture because the caller expressed a need > for THP and is willing to go extra mile to get it. Actually, I think MADV_HUGEPAGE should just be "TRANSPARENT_HUGEPAGE_ALWAYS but only for this vma". So MADV_HUGEPAGE shouldn't change any behavior at all, if the kernel was built with TRANSPARENT_HUGEPAGE_ALWAYS. Put another way: even if you decide to run a kernel that does *not* have that "always THP" (beause you presumably think that it's too blunt an instrument), then MADV_HUGEPAGE says "for _this_ vma, do the 'always THP' bebavior" I think those semantics would be a whole lot easier to explain to people, and perhaps more imporantly, starting off from that kind of mindset also gives good guidance to what MADV_HUGEPAGE behavior should be: it should be sane enough that it makes sense as the _default_ behavior for the TRANSPARENT_HUGEPAGE_ALWAYS configuration. But that also means that no, MADV_HUGEPAGE doesn't really change the picture. All it does is says "I know that for this vma, THP really does make sense as a default". It doesn't say "I _have_ to have THP", exactly like TRANSPARENT_HUGEPAGE_ALWAYS does not mean that every allocation should strive to be THP. >I believe that something like the below would be sensible > 1) THP on a local node with compaction not giving up too early > 2) THP on a remote node in NOWAIT mode - so no direct > compaction/reclaim (trigger kswapd/kcompactd only for > defrag=defer+madvise) > 3) fallback to the base page allocation That doesn't sound insane to me. That said, the numbers David quoted do fairly strongly imply that local small-pages are actually preferred to any remote THP pages. But *that* in turn makes for other possible questions: - if the reason we couldn't get a local hugepage is that we're simply out of local memory (huge *or* small), then maybe a remote hugepage is better. Note that this now implies that the choice can be an issue of "did the hugepage allocation fail due to fragmentation, or due to the node being low of memory" and there is the other question that I asked in the other thread (before subject edit): - how local is the load to begin with? Relatively shortlived processes - or processes that are explicitly bound to a node - might have different preferences than some long-lived process where the CPU bounces around, and might have different trade-offs for the local vs remote question too. So just based on David's numbers, and some wild handwaving on my part, a slightly more complex, but still very sensible default might be something like 1) try to do a cheap local node hugepage allocation Rationale: everybody agrees this is the best case. But if that fails: 2) look at compacting and the local node, but not very hard. If there's lots of memory on the local node, but synchronous compaction doesn't do anything easily, just fall back to small pages. Rationale: local memory is generally more important than THP. If that fails (ie local node is simply low on memory): 3) Try to do remote THP allocation Rationale: Ok, we simply didn't have a lot of local memory, so it's not just a question of fragmentation. If it *had* been fragmentation, lots of small local pages would have been better than a remote THP page. Oops, remote THP allocation failed (possibly after synchronous remote compaction, but maybe this is where we do kcompactd). 4) Just do any small page, and do reclaim etc. THP isn't happening, and it's not a priority when you're starting to feel memory pressure. In general, I really would want to avoid magic kernel command lines (or sysfs settings, or whatever) making a huge difference in behavior. So I really wish people would see the whole 'transparent_hugepage_flags' thing as a way for kernel developers to try different settings, not as a way for users to tune their loads. Our default should work as sane defaults, we shouldn't have a "ok, let's have this sysfs tunable and let people make their own decisions". That's a cop-out. Btw, don't get me wrong: I'm not suggesting removing the sysfs knob. As a debug tool, it's great, where you can ask "ok, do things work better if you set THP-defrag to defer+madvise". I'm just saying that we should *not* use that sysfs flag as an excuse for "ok, if we get the default wrong, people can make their own defaults". We should strive to do well enough that it really shouldn't be an issue in normal situations. Linus [-- Attachment #2: S/MIME Cryptographic Signature --] [-- Type: application/pkcs7-signature, Size: 5120 bytes --] ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: MADV_HUGEPAGE vs. NUMA semantic (was: Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) @ 2018-12-07 4:31 ` Linus Torvalds 0 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-07 4:31 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 4854 bytes --] [ Oops. different thread for me due to edited subject, so I saw this after replying to the earlier email by David ] On Thu, Dec 6, 2018 at 1:14 AM Michal Hocko <mhocko@kernel.org> wrote: > > MADV_HUGEPAGE changes the picture because the caller expressed a need > for THP and is willing to go extra mile to get it. Actually, I think MADV_HUGEPAGE should just be "TRANSPARENT_HUGEPAGE_ALWAYS but only for this vma". So MADV_HUGEPAGE shouldn't change any behavior at all, if the kernel was built with TRANSPARENT_HUGEPAGE_ALWAYS. Put another way: even if you decide to run a kernel that does *not* have that "always THP" (beause you presumably think that it's too blunt an instrument), then MADV_HUGEPAGE says "for _this_ vma, do the 'always THP' bebavior" I think those semantics would be a whole lot easier to explain to people, and perhaps more imporantly, starting off from that kind of mindset also gives good guidance to what MADV_HUGEPAGE behavior should be: it should be sane enough that it makes sense as the _default_ behavior for the TRANSPARENT_HUGEPAGE_ALWAYS configuration. But that also means that no, MADV_HUGEPAGE doesn't really change the picture. All it does is says "I know that for this vma, THP really does make sense as a default". It doesn't say "I _have_ to have THP", exactly like TRANSPARENT_HUGEPAGE_ALWAYS does not mean that every allocation should strive to be THP. >I believe that something like the below would be sensible > 1) THP on a local node with compaction not giving up too early > 2) THP on a remote node in NOWAIT mode - so no direct > compaction/reclaim (trigger kswapd/kcompactd only for > defrag=defer+madvise) > 3) fallback to the base page allocation That doesn't sound insane to me. That said, the numbers David quoted do fairly strongly imply that local small-pages are actually preferred to any remote THP pages. But *that* in turn makes for other possible questions: - if the reason we couldn't get a local hugepage is that we're simply out of local memory (huge *or* small), then maybe a remote hugepage is better. Note that this now implies that the choice can be an issue of "did the hugepage allocation fail due to fragmentation, or due to the node being low of memory" and there is the other question that I asked in the other thread (before subject edit): - how local is the load to begin with? Relatively shortlived processes - or processes that are explicitly bound to a node - might have different preferences than some long-lived process where the CPU bounces around, and might have different trade-offs for the local vs remote question too. So just based on David's numbers, and some wild handwaving on my part, a slightly more complex, but still very sensible default might be something like 1) try to do a cheap local node hugepage allocation Rationale: everybody agrees this is the best case. But if that fails: 2) look at compacting and the local node, but not very hard. If there's lots of memory on the local node, but synchronous compaction doesn't do anything easily, just fall back to small pages. Rationale: local memory is generally more important than THP. If that fails (ie local node is simply low on memory): 3) Try to do remote THP allocation Rationale: Ok, we simply didn't have a lot of local memory, so it's not just a question of fragmentation. If it *had* been fragmentation, lots of small local pages would have been better than a remote THP page. Oops, remote THP allocation failed (possibly after synchronous remote compaction, but maybe this is where we do kcompactd). 4) Just do any small page, and do reclaim etc. THP isn't happening, and it's not a priority when you're starting to feel memory pressure. In general, I really would want to avoid magic kernel command lines (or sysfs settings, or whatever) making a huge difference in behavior. So I really wish people would see the whole 'transparent_hugepage_flags' thing as a way for kernel developers to try different settings, not as a way for users to tune their loads. Our default should work as sane defaults, we shouldn't have a "ok, let's have this sysfs tunable and let people make their own decisions". That's a cop-out. Btw, don't get me wrong: I'm not suggesting removing the sysfs knob. As a debug tool, it's great, where you can ask "ok, do things work better if you set THP-defrag to defer+madvise". I'm just saying that we should *not* use that sysfs flag as an excuse for "ok, if we get the default wrong, people can make their own defaults". We should strive to do well enough that it really shouldn't be an issue in normal situations. Linus [-- Attachment #2: smime.p7s --] [-- Type: application/pkcs7-signature, Size: 5120 bytes --] ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: MADV_HUGEPAGE vs. NUMA semantic (was: Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) 2018-12-07 4:31 ` MADV_HUGEPAGE vs. NUMA semantic (was: " Linus Torvalds @ 2018-12-07 7:49 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-07 7:49 UTC (permalink / raw) To: Linus Torvalds Cc: Andrea Arcangeli, mgorman, Vlastimil Babka, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan On Thu 06-12-18 20:31:46, Linus Torvalds wrote: > [ Oops. different thread for me due to edited subject, so I saw this > after replying to the earlier email by David ] Sorry about that but I really wanted to make the actual discussion about semantic clearly distinguished because the thread just grown too large with back and forth that didn't lead to anywhere. > On Thu, Dec 6, 2018 at 1:14 AM Michal Hocko <mhocko@kernel.org> wrote: > > > > MADV_HUGEPAGE changes the picture because the caller expressed a need > > for THP and is willing to go extra mile to get it. > > Actually, I think MADV_HUGEPAGE should just be > "TRANSPARENT_HUGEPAGE_ALWAYS but only for this vma". Yes, that is the case and I didn't want to make the description more complicated than necessary so I've focused only on the current default. But historically we have treated defrag=always and MADV_HUGEPAGE the same. [...] > >I believe that something like the below would be sensible > > 1) THP on a local node with compaction not giving up too early > > 2) THP on a remote node in NOWAIT mode - so no direct > > compaction/reclaim (trigger kswapd/kcompactd only for > > defrag=defer+madvise) > > 3) fallback to the base page allocation > > That doesn't sound insane to me. That said, the numbers David quoted > do fairly strongly imply that local small-pages are actually preferred > to any remote THP pages. As I and others pointed out elsewhere remote penalty is just a part of the picture and on its own might be quite misleading. There are other aspects (TLB pressure, page tables overhead etc) that might amortize the access latency. > But *that* in turn makes for other possible questions: > > - if the reason we couldn't get a local hugepage is that we're simply > out of local memory (huge *or* small), then maybe a remote hugepage is > better. > > Note that this now implies that the choice can be an issue of "did > the hugepage allocation fail due to fragmentation, or due to the node > being low of memory" How exactly do you tell? Many systems are simply low on memory due to caching. A clean pagecache is quite cheap to reclaim but it can be more expensive to fault in. Do we consider it to be a viable target? > > and there is the other question that I asked in the other thread > (before subject edit): > > - how local is the load to begin with? > > Relatively shortlived processes - or processes that are explicitly > bound to a node - might have different preferences than some > long-lived process where the CPU bounces around, and might have > different trade-offs for the local vs remote question too. Agreed > So just based on David's numbers, and some wild handwaving on my part, > a slightly more complex, but still very sensible default might be > something like > > 1) try to do a cheap local node hugepage allocation > > Rationale: everybody agrees this is the best case. > > But if that fails: > > 2) look at compacting and the local node, but not very hard. > > If there's lots of memory on the local node, but synchronous > compaction doesn't do anything easily, just fall back to small pages. Do we reclaim at this stage or this is mostly GFP_NOWAIT attempt? > Rationale: local memory is generally more important than THP. > > If that fails (ie local node is simply low on memory): > > 3) Try to do remote THP allocation > > Rationale: Ok, we simply didn't have a lot of local memory, so > it's not just a question of fragmentation. If it *had* been > fragmentation, lots of small local pages would have been better than a > remote THP page. > > Oops, remote THP allocation failed (possibly after synchronous > remote compaction, but maybe this is where we do kcompactd). > > 4) Just do any small page, and do reclaim etc. THP isn't happening, > and it's not a priority when you're starting to feel memory pressure. If 2) doesn't reclaim heavily (e.g. only try to reclaim clean page cache) or even do NOWAIT (which would be even better) then I _think_ this sounds sane. > In general, I really would want to avoid magic kernel command lines > (or sysfs settings, or whatever) making a huge difference in behavior. > So I really wish people would see the whole > 'transparent_hugepage_flags' thing as a way for kernel developers to > try different settings, not as a way for users to tune their loads. > > Our default should work as sane defaults, we shouldn't have a "ok, > let's have this sysfs tunable and let people make their own > decisions". That's a cop-out. Agreed. I cannot say I am happy with all the ways THP can be tuned. It is quite confusing to say the least. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: MADV_HUGEPAGE vs. NUMA semantic (was: Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) @ 2018-12-07 7:49 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-07 7:49 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 4846 bytes --] On Thu 06-12-18 20:31:46, Linus Torvalds wrote: > [ Oops. different thread for me due to edited subject, so I saw this > after replying to the earlier email by David ] Sorry about that but I really wanted to make the actual discussion about semantic clearly distinguished because the thread just grown too large with back and forth that didn't lead to anywhere. > On Thu, Dec 6, 2018 at 1:14 AM Michal Hocko <mhocko@kernel.org> wrote: > > > > MADV_HUGEPAGE changes the picture because the caller expressed a need > > for THP and is willing to go extra mile to get it. > > Actually, I think MADV_HUGEPAGE should just be > "TRANSPARENT_HUGEPAGE_ALWAYS but only for this vma". Yes, that is the case and I didn't want to make the description more complicated than necessary so I've focused only on the current default. But historically we have treated defrag=always and MADV_HUGEPAGE the same. [...] > >I believe that something like the below would be sensible > > 1) THP on a local node with compaction not giving up too early > > 2) THP on a remote node in NOWAIT mode - so no direct > > compaction/reclaim (trigger kswapd/kcompactd only for > > defrag=defer+madvise) > > 3) fallback to the base page allocation > > That doesn't sound insane to me. That said, the numbers David quoted > do fairly strongly imply that local small-pages are actually preferred > to any remote THP pages. As I and others pointed out elsewhere remote penalty is just a part of the picture and on its own might be quite misleading. There are other aspects (TLB pressure, page tables overhead etc) that might amortize the access latency. > But *that* in turn makes for other possible questions: > > - if the reason we couldn't get a local hugepage is that we're simply > out of local memory (huge *or* small), then maybe a remote hugepage is > better. > > Note that this now implies that the choice can be an issue of "did > the hugepage allocation fail due to fragmentation, or due to the node > being low of memory" How exactly do you tell? Many systems are simply low on memory due to caching. A clean pagecache is quite cheap to reclaim but it can be more expensive to fault in. Do we consider it to be a viable target? > > and there is the other question that I asked in the other thread > (before subject edit): > > - how local is the load to begin with? > > Relatively shortlived processes - or processes that are explicitly > bound to a node - might have different preferences than some > long-lived process where the CPU bounces around, and might have > different trade-offs for the local vs remote question too. Agreed > So just based on David's numbers, and some wild handwaving on my part, > a slightly more complex, but still very sensible default might be > something like > > 1) try to do a cheap local node hugepage allocation > > Rationale: everybody agrees this is the best case. > > But if that fails: > > 2) look at compacting and the local node, but not very hard. > > If there's lots of memory on the local node, but synchronous > compaction doesn't do anything easily, just fall back to small pages. Do we reclaim at this stage or this is mostly GFP_NOWAIT attempt? > Rationale: local memory is generally more important than THP. > > If that fails (ie local node is simply low on memory): > > 3) Try to do remote THP allocation > > Rationale: Ok, we simply didn't have a lot of local memory, so > it's not just a question of fragmentation. If it *had* been > fragmentation, lots of small local pages would have been better than a > remote THP page. > > Oops, remote THP allocation failed (possibly after synchronous > remote compaction, but maybe this is where we do kcompactd). > > 4) Just do any small page, and do reclaim etc. THP isn't happening, > and it's not a priority when you're starting to feel memory pressure. If 2) doesn't reclaim heavily (e.g. only try to reclaim clean page cache) or even do NOWAIT (which would be even better) then I _think_ this sounds sane. > In general, I really would want to avoid magic kernel command lines > (or sysfs settings, or whatever) making a huge difference in behavior. > So I really wish people would see the whole > 'transparent_hugepage_flags' thing as a way for kernel developers to > try different settings, not as a way for users to tune their loads. > > Our default should work as sane defaults, we shouldn't have a "ok, > let's have this sysfs tunable and let people make their own > decisions". That's a cop-out. Agreed. I cannot say I am happy with all the ways THP can be tuned. It is quite confusing to say the least. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: MADV_HUGEPAGE vs. NUMA semantic (was: Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) 2018-12-07 7:49 ` MADV_HUGEPAGE vs. NUMA semantic (was: " Michal Hocko @ 2018-12-07 9:06 ` Vlastimil Babka -1 siblings, 0 replies; 154+ messages in thread From: Vlastimil Babka @ 2018-12-07 9:06 UTC (permalink / raw) To: Michal Hocko, Linus Torvalds Cc: Andrea Arcangeli, mgorman, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, David Rientjes, kirill, Andrew Morton, zi.yan On 12/7/18 8:49 AM, Michal Hocko wrote: >> But *that* in turn makes for other possible questions: >> >> - if the reason we couldn't get a local hugepage is that we're simply >> out of local memory (huge *or* small), then maybe a remote hugepage is >> better. >> >> Note that this now implies that the choice can be an issue of "did >> the hugepage allocation fail due to fragmentation, or due to the node >> being low of memory" > How exactly do you tell? Many systems are simply low on memory due to > caching. A clean pagecache is quite cheap to reclaim but it can be more > expensive to fault in. Do we consider it to be a viable target? Compaction can report if it failed (more precisely: was skipped) due to low memory, or for other reasons. It doesn't distinguish how easily reclaimable is the memory, but I don't think we should reclaim anything (see below). >> and there is the other question that I asked in the other thread >> (before subject edit): >> >> - how local is the load to begin with? >> >> Relatively shortlived processes - or processes that are explicitly >> bound to a node - might have different preferences than some >> long-lived process where the CPU bounces around, and might have >> different trade-offs for the local vs remote question too. > Agreed > >> So just based on David's numbers, and some wild handwaving on my part, >> a slightly more complex, but still very sensible default might be >> something like >> >> 1) try to do a cheap local node hugepage allocation >> >> Rationale: everybody agrees this is the best case. >> >> But if that fails: >> >> 2) look at compacting and the local node, but not very hard. >> >> If there's lots of memory on the local node, but synchronous >> compaction doesn't do anything easily, just fall back to small pages. > Do we reclaim at this stage or this is mostly GFP_NOWAIT attempt? I would expect no reclaim, because for non-THP faults we also don't reclaim the local node before trying to allocate from remote node. If somebody wants such behavior they can enable the node reclaim mode. THP faults shouldn't be different in this regard, right? ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: MADV_HUGEPAGE vs. NUMA semantic (was: Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) @ 2018-12-07 9:06 ` Vlastimil Babka 0 siblings, 0 replies; 154+ messages in thread From: Vlastimil Babka @ 2018-12-07 9:06 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2199 bytes --] On 12/7/18 8:49 AM, Michal Hocko wrote: >> But *that* in turn makes for other possible questions: >> >> - if the reason we couldn't get a local hugepage is that we're simply >> out of local memory (huge *or* small), then maybe a remote hugepage is >> better. >> >> Note that this now implies that the choice can be an issue of "did >> the hugepage allocation fail due to fragmentation, or due to the node >> being low of memory" > How exactly do you tell? Many systems are simply low on memory due to > caching. A clean pagecache is quite cheap to reclaim but it can be more > expensive to fault in. Do we consider it to be a viable target? Compaction can report if it failed (more precisely: was skipped) due to low memory, or for other reasons. It doesn't distinguish how easily reclaimable is the memory, but I don't think we should reclaim anything (see below). >> and there is the other question that I asked in the other thread >> (before subject edit): >> >> - how local is the load to begin with? >> >> Relatively shortlived processes - or processes that are explicitly >> bound to a node - might have different preferences than some >> long-lived process where the CPU bounces around, and might have >> different trade-offs for the local vs remote question too. > Agreed > >> So just based on David's numbers, and some wild handwaving on my part, >> a slightly more complex, but still very sensible default might be >> something like >> >> 1) try to do a cheap local node hugepage allocation >> >> Rationale: everybody agrees this is the best case. >> >> But if that fails: >> >> 2) look at compacting and the local node, but not very hard. >> >> If there's lots of memory on the local node, but synchronous >> compaction doesn't do anything easily, just fall back to small pages. > Do we reclaim at this stage or this is mostly GFP_NOWAIT attempt? I would expect no reclaim, because for non-THP faults we also don't reclaim the local node before trying to allocate from remote node. If somebody wants such behavior they can enable the node reclaim mode. THP faults shouldn't be different in this regard, right? ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: MADV_HUGEPAGE vs. NUMA semantic (was: Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) 2018-12-07 9:06 ` MADV_HUGEPAGE vs. NUMA semantic (was: " Vlastimil Babka @ 2018-12-07 23:15 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-07 23:15 UTC (permalink / raw) To: Vlastimil Babka Cc: Michal Hocko, Linus Torvalds, Andrea Arcangeli, mgorman, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Fri, 7 Dec 2018, Vlastimil Babka wrote: > >> But *that* in turn makes for other possible questions: > >> > >> - if the reason we couldn't get a local hugepage is that we're simply > >> out of local memory (huge *or* small), then maybe a remote hugepage is > >> better. > >> > >> Note that this now implies that the choice can be an issue of "did > >> the hugepage allocation fail due to fragmentation, or due to the node > >> being low of memory" > > How exactly do you tell? Many systems are simply low on memory due to > > caching. A clean pagecache is quite cheap to reclaim but it can be more > > expensive to fault in. Do we consider it to be a viable target? > > Compaction can report if it failed (more precisely: was skipped) due to > low memory, or for other reasons. It doesn't distinguish how easily > reclaimable is the memory, but I don't think we should reclaim anything > (see below). > Note that just reclaiming when the order-0 watermark in __compaction_suitable() fails is unfortunately not always sufficient: it needs to be accessible to isolate_freepages(). For order-9 memory, it's possible for isolate_migratepages_block() to skip over a top of free pages that were just reclaimed if there are unmovable pages preventing the entire pageblock from being freed. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: MADV_HUGEPAGE vs. NUMA semantic (was: Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) @ 2018-12-07 23:15 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-07 23:15 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 1326 bytes --] On Fri, 7 Dec 2018, Vlastimil Babka wrote: > >> But *that* in turn makes for other possible questions: > >> > >> - if the reason we couldn't get a local hugepage is that we're simply > >> out of local memory (huge *or* small), then maybe a remote hugepage is > >> better. > >> > >> Note that this now implies that the choice can be an issue of "did > >> the hugepage allocation fail due to fragmentation, or due to the node > >> being low of memory" > > How exactly do you tell? Many systems are simply low on memory due to > > caching. A clean pagecache is quite cheap to reclaim but it can be more > > expensive to fault in. Do we consider it to be a viable target? > > Compaction can report if it failed (more precisely: was skipped) due to > low memory, or for other reasons. It doesn't distinguish how easily > reclaimable is the memory, but I don't think we should reclaim anything > (see below). > Note that just reclaiming when the order-0 watermark in __compaction_suitable() fails is unfortunately not always sufficient: it needs to be accessible to isolate_freepages(). For order-9 memory, it's possible for isolate_migratepages_block() to skip over a top of free pages that were just reclaimed if there are unmovable pages preventing the entire pageblock from being freed. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-06 0:58 ` Linus Torvalds @ 2018-12-06 23:43 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-06 23:43 UTC (permalink / raw) To: Linus Torvalds Cc: Andrea Arcangeli, mgorman, Vlastimil Babka, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Wed, 5 Dec 2018, Linus Torvalds wrote: > > Ok, I've applied David's latest patch. > > > > I'm not at all objecting to tweaking this further, I just didn't want > > to have this regression stand. > > Hmm. Can somebody (David?) also perhaps try to state what the > different latency impacts end up being? I suspect it's been mentioned > several times during the argument, but it would be nice to have a > "going forward, this is what I care about" kind of setup for good > default behavior. > I'm in the process of writing a more complete test case for this but I benchmarked a few platforms based solely on remote hugepages vs local small pages vs remote hugepages. My previous numbers were based on data from actual workloads. For all platforms, local hugepages are the premium, of course. On Broadwell, the access latency to local small pages was +5.6%, remote hugepages +16.4%, and remote small pages +19.9%. On Naples, the access latency to local small pages was +4.9%, intrasocket hugepages +10.5%, intrasocket small pages +19.6%, intersocket small pages +26.6%, and intersocket hugepages +29.2% The results on Murano were similar, which is why I suspect Aneesh introduced the __GFP_THISNODE requirement for thp in 4.0, which preferred, in order, local small pages, remote 1-hop hugepages, remote 2-hop hugepages, remote 1-hop small pages, remote 2-hop small pages. So it *appears* from the x86 platforms that NUMA matters much more significantly than hugeness, but remote hugepages are a slight win over remote small pages. PPC appeared the same wrt the local node but then prefers hugeness over affinity when it comes to remote pages. Of course this could be much different on platforms I have not tested. I can look at POWER9 but I suspect it will be similar to Murano. > How much of the problem ends up being about the cost of compaction vs > the cost of getting a remote node bigpage? > > That would seem to be a fairly major issue, but __GFP_THISNODE affects > both. It limits compaction to just this now, in addition to obviously > limiting the allocation result. > > I realize that we probably do want to just have explicit policies that > do not exist right now, but what are (a) sane defaults, and (b) sane > policies? > The common case is that local node allocation, whether huge or small, is *always* better. After that, I assume than some actual measurement of access latency at boot would be better than hardcoding a single policy in the page allocator for everybody. On my x86 platforms, it's always a simple preference of "try huge, try small, go to the next nearest node, repeat". On my PPC platforms, it's "try local huge, try local small, try huge from remaining nodes, try small from remaining nodes." > For example, if we cannot get a hugepage on this node, but we *do* get > a node-local small page, is the local memory advantage simply better > than the possible TLB advantage? > > Because if that's the case (at least commonly), then that in itself is > a fairly good argument for "hugepage allocations should always be > THISNODE". > > But David also did mention the actual allocation overhead itself in > the commit, and maybe the math is more "try to get a local hugepage, > but if no such thing exists, see if you can get a remote hugepage > _cheaply_". > > So another model can be "do local-only compaction, but allow non-local > allocation if the local node doesn't have anything". IOW, if other > nodes have hugepages available, pick them up, but don't try to compact > other nodes to do so? > It would be nice if there was a specific policy that was optimal on all platforms; since that's not the case, introducing a sane default policy is going to require some complexity. It would likely always make sense to allocate huge over small pages remotely when local allocation is not possible both for MADV_HUGEPAGE users and non-MADV_HUGEPAGE users. That would require a restructuring of how thp fallback is done which, today, is try to allocate huge locally and fail so handle_pte_fault() can take it from there and would obviously touch more than just the page allocator. I *suspect* that's not all that common because it's easier to reclaim some pages and fault local small pages instead, which always has better access latency. What's different in this discussion thus far is workloads that do not fit into a single node so allocating remote hugepages is actually better than constantly reclaiming and compacting locally. Mempolicies are interesting, but I worry about the interaction it would have with small page policies because you can only define one mode: we may have a combination of default, interleave, bind, and preferred policies for huge and small memory and that may become overly complex. Since these workloads are in the minority and it seems, to me at least, that it's a property of the size of the workload rather than a general desire for remote hugepages over small pages for specific ranges of memory. We already have prctl(PR_SET_THP_DISABLE) which was introduced by SGI and is inherited by child processes so that it's possible to disable hugepages for a process where you cannot modify the binary or rebuild it. For this particular usecase, I'd suggest adding a new prctl() mode rather than any new madvise mode or mempolicy to prefer allocating remote hugepages as well because the workload cannot fit into a single node. The implementation would be quite simple, add a new per-process PF_REMOTE_HUGEPAGE flag that is inherited across fork, and does not set __GFP_THISNODE in alloc_pages_vma() when faulting hugepages. This would require no change to qemu or any other binary if the execing process sets it because it already *knows* the special requirements of that specific workload. Andrea, would this work for you? It also seems more extensible because prctl() modes can take arguments so you could specify the exact allocation policy for the workload to define whether it is willing to reclaim or compact from remote memory, for example, during fault to get a hugepage or whether it should truly be best effort. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-06 23:43 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-06 23:43 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 6296 bytes --] On Wed, 5 Dec 2018, Linus Torvalds wrote: > > Ok, I've applied David's latest patch. > > > > I'm not at all objecting to tweaking this further, I just didn't want > > to have this regression stand. > > Hmm. Can somebody (David?) also perhaps try to state what the > different latency impacts end up being? I suspect it's been mentioned > several times during the argument, but it would be nice to have a > "going forward, this is what I care about" kind of setup for good > default behavior. > I'm in the process of writing a more complete test case for this but I benchmarked a few platforms based solely on remote hugepages vs local small pages vs remote hugepages. My previous numbers were based on data from actual workloads. For all platforms, local hugepages are the premium, of course. On Broadwell, the access latency to local small pages was +5.6%, remote hugepages +16.4%, and remote small pages +19.9%. On Naples, the access latency to local small pages was +4.9%, intrasocket hugepages +10.5%, intrasocket small pages +19.6%, intersocket small pages +26.6%, and intersocket hugepages +29.2% The results on Murano were similar, which is why I suspect Aneesh introduced the __GFP_THISNODE requirement for thp in 4.0, which preferred, in order, local small pages, remote 1-hop hugepages, remote 2-hop hugepages, remote 1-hop small pages, remote 2-hop small pages. So it *appears* from the x86 platforms that NUMA matters much more significantly than hugeness, but remote hugepages are a slight win over remote small pages. PPC appeared the same wrt the local node but then prefers hugeness over affinity when it comes to remote pages. Of course this could be much different on platforms I have not tested. I can look at POWER9 but I suspect it will be similar to Murano. > How much of the problem ends up being about the cost of compaction vs > the cost of getting a remote node bigpage? > > That would seem to be a fairly major issue, but __GFP_THISNODE affects > both. It limits compaction to just this now, in addition to obviously > limiting the allocation result. > > I realize that we probably do want to just have explicit policies that > do not exist right now, but what are (a) sane defaults, and (b) sane > policies? > The common case is that local node allocation, whether huge or small, is *always* better. After that, I assume than some actual measurement of access latency at boot would be better than hardcoding a single policy in the page allocator for everybody. On my x86 platforms, it's always a simple preference of "try huge, try small, go to the next nearest node, repeat". On my PPC platforms, it's "try local huge, try local small, try huge from remaining nodes, try small from remaining nodes." > For example, if we cannot get a hugepage on this node, but we *do* get > a node-local small page, is the local memory advantage simply better > than the possible TLB advantage? > > Because if that's the case (at least commonly), then that in itself is > a fairly good argument for "hugepage allocations should always be > THISNODE". > > But David also did mention the actual allocation overhead itself in > the commit, and maybe the math is more "try to get a local hugepage, > but if no such thing exists, see if you can get a remote hugepage > _cheaply_". > > So another model can be "do local-only compaction, but allow non-local > allocation if the local node doesn't have anything". IOW, if other > nodes have hugepages available, pick them up, but don't try to compact > other nodes to do so? > It would be nice if there was a specific policy that was optimal on all platforms; since that's not the case, introducing a sane default policy is going to require some complexity. It would likely always make sense to allocate huge over small pages remotely when local allocation is not possible both for MADV_HUGEPAGE users and non-MADV_HUGEPAGE users. That would require a restructuring of how thp fallback is done which, today, is try to allocate huge locally and fail so handle_pte_fault() can take it from there and would obviously touch more than just the page allocator. I *suspect* that's not all that common because it's easier to reclaim some pages and fault local small pages instead, which always has better access latency. What's different in this discussion thus far is workloads that do not fit into a single node so allocating remote hugepages is actually better than constantly reclaiming and compacting locally. Mempolicies are interesting, but I worry about the interaction it would have with small page policies because you can only define one mode: we may have a combination of default, interleave, bind, and preferred policies for huge and small memory and that may become overly complex. Since these workloads are in the minority and it seems, to me at least, that it's a property of the size of the workload rather than a general desire for remote hugepages over small pages for specific ranges of memory. We already have prctl(PR_SET_THP_DISABLE) which was introduced by SGI and is inherited by child processes so that it's possible to disable hugepages for a process where you cannot modify the binary or rebuild it. For this particular usecase, I'd suggest adding a new prctl() mode rather than any new madvise mode or mempolicy to prefer allocating remote hugepages as well because the workload cannot fit into a single node. The implementation would be quite simple, add a new per-process PF_REMOTE_HUGEPAGE flag that is inherited across fork, and does not set __GFP_THISNODE in alloc_pages_vma() when faulting hugepages. This would require no change to qemu or any other binary if the execing process sets it because it already *knows* the special requirements of that specific workload. Andrea, would this work for you? It also seems more extensible because prctl() modes can take arguments so you could specify the exact allocation policy for the workload to define whether it is willing to reclaim or compact from remote memory, for example, during fault to get a hugepage or whether it should truly be best effort. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-06 23:43 ` David Rientjes @ 2018-12-07 4:01 ` Linus Torvalds -1 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-07 4:01 UTC (permalink / raw) To: David Rientjes Cc: Andrea Arcangeli, mgorman, Vlastimil Babka, Michal Hocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan [-- Attachment #1: Type: text/plain, Size: 3005 bytes --] On Thu, Dec 6, 2018 at 3:43 PM David Rientjes <rientjes@google.com> wrote: > > On Broadwell, the access latency to local small pages was +5.6%, remote > hugepages +16.4%, and remote small pages +19.9%. > > On Naples, the access latency to local small pages was +4.9%, intrasocket > hugepages +10.5%, intrasocket small pages +19.6%, intersocket small pages > +26.6%, and intersocket hugepages +29.2% Are those two last numbers transposed? Or why would small page accesses be *faster* than hugepages for the intersocket case? Of course, depending on testing, maybe the page itself was remote, but the page tables were random, and you happened to get a remote page table for the hugepage case? > The results on Murano were similar, which is why I suspect Aneesh > introduced the __GFP_THISNODE requirement for thp in 4.0, which preferred, > in order, local small pages, remote 1-hop hugepages, remote 2-hop > hugepages, remote 1-hop small pages, remote 2-hop small pages. it sounds like on the whole the TLB advantage of hugepages is smaller than the locality advantage. Which doesn't surprise me on x86, because TLB costs really are fairly low. Very good TLB fills, relatively to what I've seen elsewhere. > So it *appears* from the x86 platforms that NUMA matters much more > significantly than hugeness, but remote hugepages are a slight win over > remote small pages. PPC appeared the same wrt the local node but then > prefers hugeness over affinity when it comes to remote pages. I do think POWER at least historically has much weaker TLB fills, but also very costly page table creation/teardown. Constant-time O(1) arguments about hash lookups are only worth so much when the constant time is pretty big. They've been working on it. So at least on POWER, afaik one issue is literally that hugepages made the hash setup and teardown situation much better. One thing that might be worth looking at is whether the process itself is all that node-local. Maybe we could aim for a policy that says "prefer local memory, but if we notice that the accesses to this vma aren't all that local, then who cares?". IOW, the default could be something more dynamic than just "always use __GFP_THISNODE". It could be more along the lines of "start off using __GFP_THISNODE, but for longer-lived processes that bounce around across nodes, maybe relax it?" I don't think we have that kind of information right now, though, do we? Honestly, I think things like vm_policy etc should not be the solution - yes, some people may know *exactly* what access patterns they want, but for most situations, I think the policy should be that defaults "just work". In fact, I wish even MADV_HUGEPAGE itself were to approach being a no-op with THP. We already have TRANSPARENT_HUGEPAGE_ALWAYS being the default kconfig option (but I think it's a bit detbatable, because I'm not sure everybody always agrees about memory use), so on the whole MADV_HUGEPAGE shouldn't really *do* anything. Linus [-- Attachment #2: S/MIME Cryptographic Signature --] [-- Type: application/pkcs7-signature, Size: 5120 bytes --] ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-07 4:01 ` Linus Torvalds 0 siblings, 0 replies; 154+ messages in thread From: Linus Torvalds @ 2018-12-07 4:01 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 3073 bytes --] On Thu, Dec 6, 2018 at 3:43 PM David Rientjes <rientjes@google.com> wrote: > > On Broadwell, the access latency to local small pages was +5.6%, remote > hugepages +16.4%, and remote small pages +19.9%. > > On Naples, the access latency to local small pages was +4.9%, intrasocket > hugepages +10.5%, intrasocket small pages +19.6%, intersocket small pages > +26.6%, and intersocket hugepages +29.2% Are those two last numbers transposed? Or why would small page accesses be *faster* than hugepages for the intersocket case? Of course, depending on testing, maybe the page itself was remote, but the page tables were random, and you happened to get a remote page table for the hugepage case? > The results on Murano were similar, which is why I suspect Aneesh > introduced the __GFP_THISNODE requirement for thp in 4.0, which preferred, > in order, local small pages, remote 1-hop hugepages, remote 2-hop > hugepages, remote 1-hop small pages, remote 2-hop small pages. it sounds like on the whole the TLB advantage of hugepages is smaller than the locality advantage. Which doesn't surprise me on x86, because TLB costs really are fairly low. Very good TLB fills, relatively to what I've seen elsewhere. > So it *appears* from the x86 platforms that NUMA matters much more > significantly than hugeness, but remote hugepages are a slight win over > remote small pages. PPC appeared the same wrt the local node but then > prefers hugeness over affinity when it comes to remote pages. I do think POWER at least historically has much weaker TLB fills, but also very costly page table creation/teardown. Constant-time O(1) arguments about hash lookups are only worth so much when the constant time is pretty big. They've been working on it. So at least on POWER, afaik one issue is literally that hugepages made the hash setup and teardown situation much better. One thing that might be worth looking at is whether the process itself is all that node-local. Maybe we could aim for a policy that says "prefer local memory, but if we notice that the accesses to this vma aren't all that local, then who cares?". IOW, the default could be something more dynamic than just "always use __GFP_THISNODE". It could be more along the lines of "start off using __GFP_THISNODE, but for longer-lived processes that bounce around across nodes, maybe relax it?" I don't think we have that kind of information right now, though, do we? Honestly, I think things like vm_policy etc should not be the solution - yes, some people may know *exactly* what access patterns they want, but for most situations, I think the policy should be that defaults "just work". In fact, I wish even MADV_HUGEPAGE itself were to approach being a no-op with THP. We already have TRANSPARENT_HUGEPAGE_ALWAYS being the default kconfig option (but I think it's a bit detbatable, because I'm not sure everybody always agrees about memory use), so on the whole MADV_HUGEPAGE shouldn't really *do* anything. Linus [-- Attachment #2: smime.p7s --] [-- Type: application/pkcs7-signature, Size: 5120 bytes --] ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-07 4:01 ` Linus Torvalds @ 2018-12-10 0:29 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-10 0:29 UTC (permalink / raw) To: Linus Torvalds Cc: Andrea Arcangeli, mgorman, Vlastimil Babka, Michal Hocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Thu, 6 Dec 2018, Linus Torvalds wrote: > > On Broadwell, the access latency to local small pages was +5.6%, remote > > hugepages +16.4%, and remote small pages +19.9%. > > > > On Naples, the access latency to local small pages was +4.9%, intrasocket > > hugepages +10.5%, intrasocket small pages +19.6%, intersocket small pages > > +26.6%, and intersocket hugepages +29.2% > > Are those two last numbers transposed? > > Or why would small page accesses be *faster* than hugepages for the > intersocket case? > > Of course, depending on testing, maybe the page itself was remote, but > the page tables were random, and you happened to get a remote page > table for the hugepage case? > Yes, looks like that was the case, if the page tables were from the same node as the intersocket remote hugepage it looks like a ~0.1% increase accessing small pages, so basically unchanged. So this complicates the allocation strategy somewhat; on this platform, at least, hugepages are preferred on the same socket but there isn't a significant benefit from getting a cross socket hugepage over small page. The typical way this is resolved is based on the SLIT and how the kernel defines RECLAIM_DISTANCE. I'm not sure that we can expect the distances between proximity domains to be defined according to this value for a one-size-fits-all solution. I've always thought that RECLAIM_DISTANCE should be configurable so that initscripts can actually determine its ideal value when using vm.zone_reclaim_mode. > > So it *appears* from the x86 platforms that NUMA matters much more > > significantly than hugeness, but remote hugepages are a slight win over > > remote small pages. PPC appeared the same wrt the local node but then > > prefers hugeness over affinity when it comes to remote pages. > > I do think POWER at least historically has much weaker TLB fills, but > also very costly page table creation/teardown. Constant-time O(1) > arguments about hash lookups are only worth so much when the constant > time is pretty big. They've been working on it. > > So at least on POWER, afaik one issue is literally that hugepages made > the hash setup and teardown situation much better. > I'm still working on the more elaborate test case that will generate these results because I think I can use it at boot to determine an ideal RECLAIM_DISTANCE. I can also get numbers for hash vs radix MMU if you're interested. > One thing that might be worth looking at is whether the process itself > is all that node-local. Maybe we could aim for a policy that says > "prefer local memory, but if we notice that the accesses to this vma > aren't all that local, then who cares?". > > IOW, the default could be something more dynamic than just "always use > __GFP_THISNODE". It could be more along the lines of "start off using > __GFP_THISNODE, but for longer-lived processes that bounce around > across nodes, maybe relax it?" > It would allow the use of MPOL_PREFERRED for an exact preference if they are known to not be bounced around. This would be required for processes that are bound to the cpus of a single node through cpuset or sched_setaffinity() but unconstrained as far as memory is concerned. The goal of __GFP_THISNODE being the default for thp, however, is that we *know* we're going to be accessing it locally at least in the short term, perhaps forever. Any other default would assume the remotely allocated hugepage would eventually be accessed locally, otherwise we would have been much better off just failing the hugepage allocation and accessing small pages. You could make an assumption that's the case iff the process does not fit in its local node, and I think that would be the minority of applications. I guess there could be some heuristic that could determine this based on MM_ANONPAGES of Andrea's qemu and zone->zone_pgdat->node_present_pages. It feels like something that should be more exactly defined, though, for the application to say that it prefers remote hugepages over local small pages because it can't access either locally forever anyway. This was where I suggested a new prctl() mode so that an application can prefer remote hugepages because it knows it's larger than the single node and that requires no change to the binary itself because it is inherited across fork. The sane default, though, seems to always prefer local allocation, whether hugepages or small pages, for the majority of workloads since that's where the lowest access latency is. > Honestly, I think things like vm_policy etc should not be the solution > - yes, some people may know *exactly* what access patterns they want, > but for most situations, I think the policy should be that defaults > "just work". > > In fact, I wish even MADV_HUGEPAGE itself were to approach being a > no-op with THP. > Besides the NUMA locality of the allocations, we still have the allocation latency concern that MADV_HUGEPAGE changes. The madvise mode has taken on two meanings: (1) prefer to fault hugepages when the thp enabled setting is "madvise" so other applications don't blow up their rss unexpectedly, and (2) try synchronous compaction/reclaim at fault for thp defrag settings of "madvise" or "defer+madvise". [ It was intended to take on an additional meaning through the now-reverted patch, which was (3) relax the NUMA locality preference. ] My binaries that remap their text segment to be backed by transparent hugepages and qemu both share the same preference to try hard to fault hugepages through compaction because we don't necessarily care about allocation latency, we care about access latency later. Smaller binaries, those that do not have strict NUMA locality requirements, and short-lived allocations are not going to want to incur the performance penalty of synchronous compaction. So I think today's semantics for MADV_HUGEPAGE make sense, but I'd like to explore other areas that could improve this, both for the default case and the specialized cases: - prctl() mode to readily allow remote allocations rather than reclaiming or compacting memory locally (affects more than just hugepages if the system has a non-zero vm.zone_reclaim_mode), - better feedback loop after the first compaction attempt in the page allocator slowpath to determine if reclaim is actually worthwhile for high-order allocations, and - configurable vm.reclaim_distance (use RECLAIM_DISTANCE as the default) which can be defined since there is not a one-size-fits-all strategy for allocations (there's no benefit to allocating hugepages cross socket on Naples, for example), ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-10 0:29 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-10 0:29 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 6809 bytes --] On Thu, 6 Dec 2018, Linus Torvalds wrote: > > On Broadwell, the access latency to local small pages was +5.6%, remote > > hugepages +16.4%, and remote small pages +19.9%. > > > > On Naples, the access latency to local small pages was +4.9%, intrasocket > > hugepages +10.5%, intrasocket small pages +19.6%, intersocket small pages > > +26.6%, and intersocket hugepages +29.2% > > Are those two last numbers transposed? > > Or why would small page accesses be *faster* than hugepages for the > intersocket case? > > Of course, depending on testing, maybe the page itself was remote, but > the page tables were random, and you happened to get a remote page > table for the hugepage case? > Yes, looks like that was the case, if the page tables were from the same node as the intersocket remote hugepage it looks like a ~0.1% increase accessing small pages, so basically unchanged. So this complicates the allocation strategy somewhat; on this platform, at least, hugepages are preferred on the same socket but there isn't a significant benefit from getting a cross socket hugepage over small page. The typical way this is resolved is based on the SLIT and how the kernel defines RECLAIM_DISTANCE. I'm not sure that we can expect the distances between proximity domains to be defined according to this value for a one-size-fits-all solution. I've always thought that RECLAIM_DISTANCE should be configurable so that initscripts can actually determine its ideal value when using vm.zone_reclaim_mode. > > So it *appears* from the x86 platforms that NUMA matters much more > > significantly than hugeness, but remote hugepages are a slight win over > > remote small pages. PPC appeared the same wrt the local node but then > > prefers hugeness over affinity when it comes to remote pages. > > I do think POWER at least historically has much weaker TLB fills, but > also very costly page table creation/teardown. Constant-time O(1) > arguments about hash lookups are only worth so much when the constant > time is pretty big. They've been working on it. > > So at least on POWER, afaik one issue is literally that hugepages made > the hash setup and teardown situation much better. > I'm still working on the more elaborate test case that will generate these results because I think I can use it at boot to determine an ideal RECLAIM_DISTANCE. I can also get numbers for hash vs radix MMU if you're interested. > One thing that might be worth looking at is whether the process itself > is all that node-local. Maybe we could aim for a policy that says > "prefer local memory, but if we notice that the accesses to this vma > aren't all that local, then who cares?". > > IOW, the default could be something more dynamic than just "always use > __GFP_THISNODE". It could be more along the lines of "start off using > __GFP_THISNODE, but for longer-lived processes that bounce around > across nodes, maybe relax it?" > It would allow the use of MPOL_PREFERRED for an exact preference if they are known to not be bounced around. This would be required for processes that are bound to the cpus of a single node through cpuset or sched_setaffinity() but unconstrained as far as memory is concerned. The goal of __GFP_THISNODE being the default for thp, however, is that we *know* we're going to be accessing it locally at least in the short term, perhaps forever. Any other default would assume the remotely allocated hugepage would eventually be accessed locally, otherwise we would have been much better off just failing the hugepage allocation and accessing small pages. You could make an assumption that's the case iff the process does not fit in its local node, and I think that would be the minority of applications. I guess there could be some heuristic that could determine this based on MM_ANONPAGES of Andrea's qemu and zone->zone_pgdat->node_present_pages. It feels like something that should be more exactly defined, though, for the application to say that it prefers remote hugepages over local small pages because it can't access either locally forever anyway. This was where I suggested a new prctl() mode so that an application can prefer remote hugepages because it knows it's larger than the single node and that requires no change to the binary itself because it is inherited across fork. The sane default, though, seems to always prefer local allocation, whether hugepages or small pages, for the majority of workloads since that's where the lowest access latency is. > Honestly, I think things like vm_policy etc should not be the solution > - yes, some people may know *exactly* what access patterns they want, > but for most situations, I think the policy should be that defaults > "just work". > > In fact, I wish even MADV_HUGEPAGE itself were to approach being a > no-op with THP. > Besides the NUMA locality of the allocations, we still have the allocation latency concern that MADV_HUGEPAGE changes. The madvise mode has taken on two meanings: (1) prefer to fault hugepages when the thp enabled setting is "madvise" so other applications don't blow up their rss unexpectedly, and (2) try synchronous compaction/reclaim at fault for thp defrag settings of "madvise" or "defer+madvise". [ It was intended to take on an additional meaning through the now-reverted patch, which was (3) relax the NUMA locality preference. ] My binaries that remap their text segment to be backed by transparent hugepages and qemu both share the same preference to try hard to fault hugepages through compaction because we don't necessarily care about allocation latency, we care about access latency later. Smaller binaries, those that do not have strict NUMA locality requirements, and short-lived allocations are not going to want to incur the performance penalty of synchronous compaction. So I think today's semantics for MADV_HUGEPAGE make sense, but I'd like to explore other areas that could improve this, both for the default case and the specialized cases: - prctl() mode to readily allow remote allocations rather than reclaiming or compacting memory locally (affects more than just hugepages if the system has a non-zero vm.zone_reclaim_mode), - better feedback loop after the first compaction attempt in the page allocator slowpath to determine if reclaim is actually worthwhile for high-order allocations, and - configurable vm.reclaim_distance (use RECLAIM_DISTANCE as the default) which can be defined since there is not a one-size-fits-all strategy for allocations (there's no benefit to allocating hugepages cross socket on Naples, for example), ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-10 0:29 ` David Rientjes @ 2018-12-10 4:49 ` Andrea Arcangeli -1 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-10 4:49 UTC (permalink / raw) To: David Rientjes Cc: Linus Torvalds, mgorman, Vlastimil Babka, Michal Hocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan Hello, On Sun, Dec 09, 2018 at 04:29:13PM -0800, David Rientjes wrote: > [..] on this platform, at least, hugepages are > preferred on the same socket but there isn't a significant benefit from > getting a cross socket hugepage over small page. [..] You didn't release the proprietary software that depends on __GFP_THISNODE behavior and that you're afraid is getting a regression. Could you at least release with an open source license the benchmark software that you must have used to do the above measurement to understand why it gives such a weird result on remote THP? On skylake and on the threadripper I can't confirm that there isn't a significant benefit from cross socket hugepage over cross socket small page. Skylake Xeon(R) Gold 5115: # numactl --hardware available: 2 nodes (0-1) node 0 cpus: 0 1 2 3 4 5 6 7 8 9 20 21 22 23 24 25 26 27 28 29 node 0 size: 15602 MB node 0 free: 14077 MB node 1 cpus: 10 11 12 13 14 15 16 17 18 19 30 31 32 33 34 35 36 37 38 39 node 1 size: 16099 MB node 1 free: 15949 MB node distances: node 0 1 0: 10 21 1: 21 10 # numactl -m 0 -C 0 ./numa-thp-bench random writes MADV_HUGEPAGE 10109753 usec random writes MADV_NOHUGEPAGE 13682041 usec random writes MADV_NOHUGEPAGE 13704208 usec random writes MADV_HUGEPAGE 10120405 usec # numactl -m 0 -C 10 ./numa-thp-bench random writes MADV_HUGEPAGE 15393923 usec random writes MADV_NOHUGEPAGE 19644793 usec random writes MADV_NOHUGEPAGE 19671287 usec random writes MADV_HUGEPAGE 15495281 usec # grep Xeon /proc/cpuinfo |head -1 model name : Intel(R) Xeon(R) Gold 5115 CPU @ 2.40GHz local 4k -> local 2m: +35% local 4k -> remote 2m: -11% remote 4k -> remote 2m: +26% threadripper 1950x: # numactl --hardware available: 2 nodes (0-1) node 0 cpus: 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23 node 0 size: 15982 MB node 0 free: 14422 MB node 1 cpus: 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 node 1 size: 16124 MB node 1 free: 5357 MB node distances: node 0 1 0: 10 16 1: 16 10 # numactl -m 0 -C 0 /tmp/numa-thp-bench random writes MADV_HUGEPAGE 12902667 usec random writes MADV_NOHUGEPAGE 17543070 usec random writes MADV_NOHUGEPAGE 17568858 usec random writes MADV_HUGEPAGE 12896588 usec # numactl -m 0 -C 8 /tmp/numa-thp-bench random writes MADV_HUGEPAGE 19663515 usec random writes MADV_NOHUGEPAGE 27819864 usec random writes MADV_NOHUGEPAGE 27844066 usec random writes MADV_HUGEPAGE 19662706 usec # grep Threadripper /proc/cpuinfo |head -1 model name : AMD Ryzen Threadripper 1950X 16-Core Processor local 4k -> local 2m: +35% local 4k -> remote 2m: -10% remote 4k -> remote 2m: +41% Or if you prefer reversed in terms of compute time (negative percentage is better in this case): local 4k -> local 2m: -26% local 4k -> remote 2m: +12% remote 4k -> remote 2m: -29% It's true that local 4k is generally a win vs remote THP when the workload is memory bound also for the threadripper, the threadripper seems even more favorable to remote THP than skylake Xeon is. The above is the host bare metal result. Now let's try guest mode on the threadripper. The last two lines seems more reliable (the first two lines also needs to fault in the guest RAM because the guest was fresh booted). guest backed by local 2M pages: random writes MADV_HUGEPAGE 16025855 usec random writes MADV_NOHUGEPAGE 21903002 usec random writes MADV_NOHUGEPAGE 19762767 usec random writes MADV_HUGEPAGE 15189231 usec guest backed by remote 2M pages: random writes MADV_HUGEPAGE 25434251 usec random writes MADV_NOHUGEPAGE 32404119 usec random writes MADV_NOHUGEPAGE 31455592 usec random writes MADV_HUGEPAGE 22248304 usec guest backed by local 4k pages: random writes MADV_HUGEPAGE 28945251 usec random writes MADV_NOHUGEPAGE 32217690 usec random writes MADV_NOHUGEPAGE 30664731 usec random writes MADV_HUGEPAGE 22981082 usec guest backed by remote 4k pages: random writes MADV_HUGEPAGE 43772939 usec random writes MADV_NOHUGEPAGE 52745664 usec random writes MADV_NOHUGEPAGE 51632065 usec random writes MADV_HUGEPAGE 40263194 usec I haven't yet tried the guest mode on the skylake nor haswell/broadwell. I can do that too but I don't expect a significant difference. On a threadripper guest, the remote 2m is practically identical to local 4k. So shutting down compaction to try to generate local 4k memory looks a sure loss. Even if we ignore the guest mode results completely, if we don't make assumption on the workload to be able to fit in the node, if I use MADV_HUGEPAGE I think I'd prefer the risk of a -10% slowdown if the THP page ends up in a remote node, than not getting the +41% THP speedup on remote memory if the pagetable ends up being remote or the 4k page itself ends up being remote over time. The cons left from your latest patch, is that you eventually also lose the +35% speedup when compaction is clogged by COMPACT_SKIPPED, which for a guest mode computation translates in losing the +59% speedup of having host local THP (when guest uses 4k pages). khugepaged will correct that by unclogging compaction but it may take hours. The idea was to have MADV_HUGEPAGE provide THP without having to wait for khugepaged to catch up with it. Thanks, Andrea ===== /* * numa-thp-bench.c * * Copyright (C) 2018 Red Hat, Inc. * * This work is licensed under the terms of the GNU GPL, version 2. */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/mman.h> #include <sys/time.h> #define HPAGE_PMD_SIZE (2*1024*1024) #define SIZE (2048UL*1024*1024-HPAGE_PMD_SIZE) #if SIZE >= RAND_MAX #error "SIZE >= RAND_MAX" #endif #define RATIO 5 int main() { char * p; struct timeval before, after; unsigned long i; if (posix_memalign((void **) &p, HPAGE_PMD_SIZE, SIZE)) perror("posix_memalign"), exit(1); if (madvise(p, SIZE, MADV_HUGEPAGE)) perror("madvise"), exit(1); memset(p, 0, SIZE); srand(100); if (gettimeofday(&before, NULL)) perror("gettimeofday"), exit(1); for (i = 0; i < SIZE / RATIO; i++) p[rand() % SIZE] = 0; if (gettimeofday(&after, NULL)) perror("gettimeofday"), exit(1); printf("random writes MADV_HUGEPAGE %lu usec\n", (after.tv_sec-before.tv_sec)*1000000UL + after.tv_usec-before.tv_usec); munmap(p, SIZE); if (posix_memalign((void **) &p, HPAGE_PMD_SIZE, SIZE)) perror("posix_memalign"), exit(1); if (madvise(p, SIZE, MADV_NOHUGEPAGE)) perror("madvise"), exit(1); memset(p, 0, SIZE); srand(100); if (gettimeofday(&before, NULL)) perror("gettimeofday"), exit(1); for (i = 0; i < SIZE / RATIO; i++) p[rand() % SIZE] = 0; if (gettimeofday(&after, NULL)) perror("gettimeofday"), exit(1); printf("random writes MADV_NOHUGEPAGE %lu usec\n", (after.tv_sec-before.tv_sec)*1000000UL + after.tv_usec-before.tv_usec); munmap(p, SIZE); if (posix_memalign((void **) &p, HPAGE_PMD_SIZE, SIZE)) perror("posix_memalign"), exit(1); if (madvise(p, SIZE, MADV_NOHUGEPAGE)) perror("madvise"), exit(1); memset(p, 0, SIZE); srand(100); if (gettimeofday(&before, NULL)) perror("gettimeofday"), exit(1); for (i = 0; i < SIZE / RATIO; i++) p[rand() % SIZE] = 0; if (gettimeofday(&after, NULL)) perror("gettimeofday"), exit(1); printf("random writes MADV_NOHUGEPAGE %lu usec\n", (after.tv_sec-before.tv_sec)*1000000UL + after.tv_usec-before.tv_usec); munmap(p, SIZE); if (posix_memalign((void **) &p, HPAGE_PMD_SIZE, SIZE)) perror("posix_memalign"), exit(1); if (madvise(p, SIZE, MADV_HUGEPAGE)) perror("madvise"), exit(1); memset(p, 0, SIZE); srand(100); if (gettimeofday(&before, NULL)) perror("gettimeofday"), exit(1); for (i = 0; i < SIZE / RATIO; i++) p[rand() % SIZE] = 0; if (gettimeofday(&after, NULL)) perror("gettimeofday"), exit(1); printf("random writes MADV_HUGEPAGE %lu usec\n", (after.tv_sec-before.tv_sec)*1000000UL + after.tv_usec-before.tv_usec); munmap(p, SIZE); return 0; } ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-10 4:49 ` Andrea Arcangeli 0 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-10 4:49 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 8146 bytes --] Hello, On Sun, Dec 09, 2018 at 04:29:13PM -0800, David Rientjes wrote: > [..] on this platform, at least, hugepages are > preferred on the same socket but there isn't a significant benefit from > getting a cross socket hugepage over small page. [..] You didn't release the proprietary software that depends on __GFP_THISNODE behavior and that you're afraid is getting a regression. Could you at least release with an open source license the benchmark software that you must have used to do the above measurement to understand why it gives such a weird result on remote THP? On skylake and on the threadripper I can't confirm that there isn't a significant benefit from cross socket hugepage over cross socket small page. Skylake Xeon(R) Gold 5115: # numactl --hardware available: 2 nodes (0-1) node 0 cpus: 0 1 2 3 4 5 6 7 8 9 20 21 22 23 24 25 26 27 28 29 node 0 size: 15602 MB node 0 free: 14077 MB node 1 cpus: 10 11 12 13 14 15 16 17 18 19 30 31 32 33 34 35 36 37 38 39 node 1 size: 16099 MB node 1 free: 15949 MB node distances: node 0 1 0: 10 21 1: 21 10 # numactl -m 0 -C 0 ./numa-thp-bench random writes MADV_HUGEPAGE 10109753 usec random writes MADV_NOHUGEPAGE 13682041 usec random writes MADV_NOHUGEPAGE 13704208 usec random writes MADV_HUGEPAGE 10120405 usec # numactl -m 0 -C 10 ./numa-thp-bench random writes MADV_HUGEPAGE 15393923 usec random writes MADV_NOHUGEPAGE 19644793 usec random writes MADV_NOHUGEPAGE 19671287 usec random writes MADV_HUGEPAGE 15495281 usec # grep Xeon /proc/cpuinfo |head -1 model name : Intel(R) Xeon(R) Gold 5115 CPU @ 2.40GHz local 4k -> local 2m: +35% local 4k -> remote 2m: -11% remote 4k -> remote 2m: +26% threadripper 1950x: # numactl --hardware available: 2 nodes (0-1) node 0 cpus: 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23 node 0 size: 15982 MB node 0 free: 14422 MB node 1 cpus: 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 node 1 size: 16124 MB node 1 free: 5357 MB node distances: node 0 1 0: 10 16 1: 16 10 # numactl -m 0 -C 0 /tmp/numa-thp-bench random writes MADV_HUGEPAGE 12902667 usec random writes MADV_NOHUGEPAGE 17543070 usec random writes MADV_NOHUGEPAGE 17568858 usec random writes MADV_HUGEPAGE 12896588 usec # numactl -m 0 -C 8 /tmp/numa-thp-bench random writes MADV_HUGEPAGE 19663515 usec random writes MADV_NOHUGEPAGE 27819864 usec random writes MADV_NOHUGEPAGE 27844066 usec random writes MADV_HUGEPAGE 19662706 usec # grep Threadripper /proc/cpuinfo |head -1 model name : AMD Ryzen Threadripper 1950X 16-Core Processor local 4k -> local 2m: +35% local 4k -> remote 2m: -10% remote 4k -> remote 2m: +41% Or if you prefer reversed in terms of compute time (negative percentage is better in this case): local 4k -> local 2m: -26% local 4k -> remote 2m: +12% remote 4k -> remote 2m: -29% It's true that local 4k is generally a win vs remote THP when the workload is memory bound also for the threadripper, the threadripper seems even more favorable to remote THP than skylake Xeon is. The above is the host bare metal result. Now let's try guest mode on the threadripper. The last two lines seems more reliable (the first two lines also needs to fault in the guest RAM because the guest was fresh booted). guest backed by local 2M pages: random writes MADV_HUGEPAGE 16025855 usec random writes MADV_NOHUGEPAGE 21903002 usec random writes MADV_NOHUGEPAGE 19762767 usec random writes MADV_HUGEPAGE 15189231 usec guest backed by remote 2M pages: random writes MADV_HUGEPAGE 25434251 usec random writes MADV_NOHUGEPAGE 32404119 usec random writes MADV_NOHUGEPAGE 31455592 usec random writes MADV_HUGEPAGE 22248304 usec guest backed by local 4k pages: random writes MADV_HUGEPAGE 28945251 usec random writes MADV_NOHUGEPAGE 32217690 usec random writes MADV_NOHUGEPAGE 30664731 usec random writes MADV_HUGEPAGE 22981082 usec guest backed by remote 4k pages: random writes MADV_HUGEPAGE 43772939 usec random writes MADV_NOHUGEPAGE 52745664 usec random writes MADV_NOHUGEPAGE 51632065 usec random writes MADV_HUGEPAGE 40263194 usec I haven't yet tried the guest mode on the skylake nor haswell/broadwell. I can do that too but I don't expect a significant difference. On a threadripper guest, the remote 2m is practically identical to local 4k. So shutting down compaction to try to generate local 4k memory looks a sure loss. Even if we ignore the guest mode results completely, if we don't make assumption on the workload to be able to fit in the node, if I use MADV_HUGEPAGE I think I'd prefer the risk of a -10% slowdown if the THP page ends up in a remote node, than not getting the +41% THP speedup on remote memory if the pagetable ends up being remote or the 4k page itself ends up being remote over time. The cons left from your latest patch, is that you eventually also lose the +35% speedup when compaction is clogged by COMPACT_SKIPPED, which for a guest mode computation translates in losing the +59% speedup of having host local THP (when guest uses 4k pages). khugepaged will correct that by unclogging compaction but it may take hours. The idea was to have MADV_HUGEPAGE provide THP without having to wait for khugepaged to catch up with it. Thanks, Andrea ===== /* * numa-thp-bench.c * * Copyright (C) 2018 Red Hat, Inc. * * This work is licensed under the terms of the GNU GPL, version 2. */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/mman.h> #include <sys/time.h> #define HPAGE_PMD_SIZE (2*1024*1024) #define SIZE (2048UL*1024*1024-HPAGE_PMD_SIZE) #if SIZE >= RAND_MAX #error "SIZE >= RAND_MAX" #endif #define RATIO 5 int main() { char * p; struct timeval before, after; unsigned long i; if (posix_memalign((void **) &p, HPAGE_PMD_SIZE, SIZE)) perror("posix_memalign"), exit(1); if (madvise(p, SIZE, MADV_HUGEPAGE)) perror("madvise"), exit(1); memset(p, 0, SIZE); srand(100); if (gettimeofday(&before, NULL)) perror("gettimeofday"), exit(1); for (i = 0; i < SIZE / RATIO; i++) p[rand() % SIZE] = 0; if (gettimeofday(&after, NULL)) perror("gettimeofday"), exit(1); printf("random writes MADV_HUGEPAGE %lu usec\n", (after.tv_sec-before.tv_sec)*1000000UL + after.tv_usec-before.tv_usec); munmap(p, SIZE); if (posix_memalign((void **) &p, HPAGE_PMD_SIZE, SIZE)) perror("posix_memalign"), exit(1); if (madvise(p, SIZE, MADV_NOHUGEPAGE)) perror("madvise"), exit(1); memset(p, 0, SIZE); srand(100); if (gettimeofday(&before, NULL)) perror("gettimeofday"), exit(1); for (i = 0; i < SIZE / RATIO; i++) p[rand() % SIZE] = 0; if (gettimeofday(&after, NULL)) perror("gettimeofday"), exit(1); printf("random writes MADV_NOHUGEPAGE %lu usec\n", (after.tv_sec-before.tv_sec)*1000000UL + after.tv_usec-before.tv_usec); munmap(p, SIZE); if (posix_memalign((void **) &p, HPAGE_PMD_SIZE, SIZE)) perror("posix_memalign"), exit(1); if (madvise(p, SIZE, MADV_NOHUGEPAGE)) perror("madvise"), exit(1); memset(p, 0, SIZE); srand(100); if (gettimeofday(&before, NULL)) perror("gettimeofday"), exit(1); for (i = 0; i < SIZE / RATIO; i++) p[rand() % SIZE] = 0; if (gettimeofday(&after, NULL)) perror("gettimeofday"), exit(1); printf("random writes MADV_NOHUGEPAGE %lu usec\n", (after.tv_sec-before.tv_sec)*1000000UL + after.tv_usec-before.tv_usec); munmap(p, SIZE); if (posix_memalign((void **) &p, HPAGE_PMD_SIZE, SIZE)) perror("posix_memalign"), exit(1); if (madvise(p, SIZE, MADV_HUGEPAGE)) perror("madvise"), exit(1); memset(p, 0, SIZE); srand(100); if (gettimeofday(&before, NULL)) perror("gettimeofday"), exit(1); for (i = 0; i < SIZE / RATIO; i++) p[rand() % SIZE] = 0; if (gettimeofday(&after, NULL)) perror("gettimeofday"), exit(1); printf("random writes MADV_HUGEPAGE %lu usec\n", (after.tv_sec-before.tv_sec)*1000000UL + after.tv_usec-before.tv_usec); munmap(p, SIZE); return 0; } ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-10 4:49 ` Andrea Arcangeli @ 2018-12-12 0:37 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-12 0:37 UTC (permalink / raw) To: Andrea Arcangeli Cc: Linus Torvalds, mgorman, Vlastimil Babka, Michal Hocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Sun, 9 Dec 2018, Andrea Arcangeli wrote: > You didn't release the proprietary software that depends on > __GFP_THISNODE behavior and that you're afraid is getting a > regression. > > Could you at least release with an open source license the benchmark > software that you must have used to do the above measurement to > understand why it gives such a weird result on remote THP? > Hi Andrea, As I said in response to Linus, I'm in the process of writing a more complete benchmarking test across all of our platforms for access and allocation latency for x86 (both Intel and AMD), POWER8/9, and arm64, and doing so on a kernel with minimum overhead (for the allocation latency, I want to remove things like mem cgroup overhead from the result). > On skylake and on the threadripper I can't confirm that there isn't a > significant benefit from cross socket hugepage over cross socket small > page. > > Skylake Xeon(R) Gold 5115: > > # numactl --hardware > available: 2 nodes (0-1) > node 0 cpus: 0 1 2 3 4 5 6 7 8 9 20 21 22 23 24 25 26 27 28 29 > node 0 size: 15602 MB > node 0 free: 14077 MB > node 1 cpus: 10 11 12 13 14 15 16 17 18 19 30 31 32 33 34 35 36 37 38 39 > node 1 size: 16099 MB > node 1 free: 15949 MB > node distances: > node 0 1 > 0: 10 21 > 1: 21 10 > # numactl -m 0 -C 0 ./numa-thp-bench > random writes MADV_HUGEPAGE 10109753 usec > random writes MADV_NOHUGEPAGE 13682041 usec > random writes MADV_NOHUGEPAGE 13704208 usec > random writes MADV_HUGEPAGE 10120405 usec > # numactl -m 0 -C 10 ./numa-thp-bench > random writes MADV_HUGEPAGE 15393923 usec > random writes MADV_NOHUGEPAGE 19644793 usec > random writes MADV_NOHUGEPAGE 19671287 usec > random writes MADV_HUGEPAGE 15495281 usec > # grep Xeon /proc/cpuinfo |head -1 > model name : Intel(R) Xeon(R) Gold 5115 CPU @ 2.40GHz > > local 4k -> local 2m: +35% > local 4k -> remote 2m: -11% > remote 4k -> remote 2m: +26% > > threadripper 1950x: > > # numactl --hardware > available: 2 nodes (0-1) > node 0 cpus: 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23 > node 0 size: 15982 MB > node 0 free: 14422 MB > node 1 cpus: 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 > node 1 size: 16124 MB > node 1 free: 5357 MB > node distances: > node 0 1 > 0: 10 16 > 1: 16 10 > # numactl -m 0 -C 0 /tmp/numa-thp-bench > random writes MADV_HUGEPAGE 12902667 usec > random writes MADV_NOHUGEPAGE 17543070 usec > random writes MADV_NOHUGEPAGE 17568858 usec > random writes MADV_HUGEPAGE 12896588 usec > # numactl -m 0 -C 8 /tmp/numa-thp-bench > random writes MADV_HUGEPAGE 19663515 usec > random writes MADV_NOHUGEPAGE 27819864 usec > random writes MADV_NOHUGEPAGE 27844066 usec > random writes MADV_HUGEPAGE 19662706 usec > # grep Threadripper /proc/cpuinfo |head -1 > model name : AMD Ryzen Threadripper 1950X 16-Core Processor > > local 4k -> local 2m: +35% > local 4k -> remote 2m: -10% > remote 4k -> remote 2m: +41% > > Or if you prefer reversed in terms of compute time (negative > percentage is better in this case): > > local 4k -> local 2m: -26% > local 4k -> remote 2m: +12% > remote 4k -> remote 2m: -29% > > It's true that local 4k is generally a win vs remote THP when the > workload is memory bound also for the threadripper, the threadripper > seems even more favorable to remote THP than skylake Xeon is. > My results are organized slightly different since it considers local hugepages as the baseline and is what we optimize for: on Broadwell, I've obtained more accurate results that show local small pages at +3.8%, remote hugepages at +12.8% and remote small pages at +18.8%. I think we both agree that the locality preference for workloads that fit within a single node is local hugepage -> local small page -> remote hugepage -> remote small page, and that has been unchanged in any of benchmarking results for either of us. > The above is the host bare metal result. Now let's try guest mode on > the threadripper. The last two lines seems more reliable (the first > two lines also needs to fault in the guest RAM because the guest > was fresh booted). > > guest backed by local 2M pages: > > random writes MADV_HUGEPAGE 16025855 usec > random writes MADV_NOHUGEPAGE 21903002 usec > random writes MADV_NOHUGEPAGE 19762767 usec > random writes MADV_HUGEPAGE 15189231 usec > > guest backed by remote 2M pages: > > random writes MADV_HUGEPAGE 25434251 usec > random writes MADV_NOHUGEPAGE 32404119 usec > random writes MADV_NOHUGEPAGE 31455592 usec > random writes MADV_HUGEPAGE 22248304 usec > > guest backed by local 4k pages: > > random writes MADV_HUGEPAGE 28945251 usec > random writes MADV_NOHUGEPAGE 32217690 usec > random writes MADV_NOHUGEPAGE 30664731 usec > random writes MADV_HUGEPAGE 22981082 usec > > guest backed by remote 4k pages: > > random writes MADV_HUGEPAGE 43772939 usec > random writes MADV_NOHUGEPAGE 52745664 usec > random writes MADV_NOHUGEPAGE 51632065 usec > random writes MADV_HUGEPAGE 40263194 usec > > I haven't yet tried the guest mode on the skylake nor > haswell/broadwell. I can do that too but I don't expect a significant > difference. > > On a threadripper guest, the remote 2m is practically identical to > local 4k. So shutting down compaction to try to generate local 4k > memory looks a sure loss. > I'm assuming your results above are with a defrag setting of "madvise" or "defer+madvise". > Even if we ignore the guest mode results completely, if we don't make > assumption on the workload to be able to fit in the node, if I use > MADV_HUGEPAGE I think I'd prefer the risk of a -10% slowdown if the > THP page ends up in a remote node, than not getting the +41% THP > speedup on remote memory if the pagetable ends up being remote or the > 4k page itself ends up being remote over time. > I'm agreeing with you that the preference for remote hugepages over local small pages depends on the configuration and the workload that you are running and there are clear advantages and disadvantages to both. This is different than what the long-standing NUMA preferences have been for thp allocations. I think we can optimize for *both* usecases without causing an unnecessary regression for other and doing so is not extremely complex. Since it depends on the workload, specifically workloads that fit within a single node, I think the reasonable approach would be to have a sane default regardless of the use of MADV_HUGEPAGE or thp defrag settings and then optimzie for the minority of cases where the workload does not fit in a single node. I'm assuming there is no debate about these larger workloads being in the minority, although we have single machines where this encompasses the totality of their workloads. Regarding the role of direct reclaim in the allocator, I think we need work on the feedback from compaction to determine whether it's worthwhile. That's difficult because of the point I continue to bring up: isolate_freepages() is not necessarily always able to access this freed memory. But for cases where we get COMPACT_SKIPPED because the order-0 watermarks are failing, reclaim *is* likely to have an impact in the success of compaction, otherwise we fail and defer because it wasn't able to make a hugepage available. [ If we run compaction regardless of the order-0 watermark check and find a pageblock where we can likely free a hugepage because it is fragmented movable pages, this is a pretty good indication that reclaim is worthwhile iff the reclaimed memory is beyond the migration scanner. ] Let me try to list out what I think is a reasonable design for the various configs assuming we are able to address the reclaim concern above. Note that this is for the majority of users where workloads do not span multiple nodes: - defrag=always: always compact, obviously - defrag=madvise/defer+madvise: - MADV_HUGEPAGE: always compact locally, fallback to small pages locally (small pages become eligible for khugepaged to collapse locally later, no chance of additional access latency) - neither MADV_HUGEPAGE nor MADV_NOHUGEPAGE: kick kcompactd locally, fallback to small pages locally - defrag=defer: kick kcompactd locally, fallback to small pages locally - defrag=never: fallback to small pages locally And that, AFAICT, has been the implementation for almost four years. For workloads that *can* span multiple nodes, this doesn't make much sense, as you point out and have reported in your bug. Considering the reclaim problem separately where we thrash a node unnecessarily, if we consider only hugepages and NUMA locality: - defrag=always: always compact for all allowed zones, zonelist ordered according to NUMA locality - defrag=madvise/defer+madvise: - MADV_HUGEPAGE: always compact for all allowed zones, try to allocate hugepages in zonelist order, only fallback to small pages when compaction fails - neither MADV_HUGEPAGE nor MADV_NOHUGEPAGE: kick kcompactd for all allowed zones, fallback to small pages locally - defrag=defer: kick kcompactd for all allowed zones, fallback to small pages locally - defrag=never: fallback to small pages locally For this policy to be possible, we must clear __GFP_THISNODE. How to determine when to do this? I think we have three options: heuristics (rss vs zone managed pages), per-process prctl(), or global thp setting for machine-wide behavior. I've been suggesting a per-process prctl() that can be set and carried across fork so that there are no changes needed to any workload and can simply special-case the thp allocation policy to use __GFP_THISNODE, which is the default for bare metal, and to not use it when we've said the workload will span multiple nodes. Depending on the size of the workload, it may choose to use this setting on certain systems and not others. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-12 0:37 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-12 0:37 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 10126 bytes --] On Sun, 9 Dec 2018, Andrea Arcangeli wrote: > You didn't release the proprietary software that depends on > __GFP_THISNODE behavior and that you're afraid is getting a > regression. > > Could you at least release with an open source license the benchmark > software that you must have used to do the above measurement to > understand why it gives such a weird result on remote THP? > Hi Andrea, As I said in response to Linus, I'm in the process of writing a more complete benchmarking test across all of our platforms for access and allocation latency for x86 (both Intel and AMD), POWER8/9, and arm64, and doing so on a kernel with minimum overhead (for the allocation latency, I want to remove things like mem cgroup overhead from the result). > On skylake and on the threadripper I can't confirm that there isn't a > significant benefit from cross socket hugepage over cross socket small > page. > > Skylake Xeon(R) Gold 5115: > > # numactl --hardware > available: 2 nodes (0-1) > node 0 cpus: 0 1 2 3 4 5 6 7 8 9 20 21 22 23 24 25 26 27 28 29 > node 0 size: 15602 MB > node 0 free: 14077 MB > node 1 cpus: 10 11 12 13 14 15 16 17 18 19 30 31 32 33 34 35 36 37 38 39 > node 1 size: 16099 MB > node 1 free: 15949 MB > node distances: > node 0 1 > 0: 10 21 > 1: 21 10 > # numactl -m 0 -C 0 ./numa-thp-bench > random writes MADV_HUGEPAGE 10109753 usec > random writes MADV_NOHUGEPAGE 13682041 usec > random writes MADV_NOHUGEPAGE 13704208 usec > random writes MADV_HUGEPAGE 10120405 usec > # numactl -m 0 -C 10 ./numa-thp-bench > random writes MADV_HUGEPAGE 15393923 usec > random writes MADV_NOHUGEPAGE 19644793 usec > random writes MADV_NOHUGEPAGE 19671287 usec > random writes MADV_HUGEPAGE 15495281 usec > # grep Xeon /proc/cpuinfo |head -1 > model name : Intel(R) Xeon(R) Gold 5115 CPU @ 2.40GHz > > local 4k -> local 2m: +35% > local 4k -> remote 2m: -11% > remote 4k -> remote 2m: +26% > > threadripper 1950x: > > # numactl --hardware > available: 2 nodes (0-1) > node 0 cpus: 0 1 2 3 4 5 6 7 16 17 18 19 20 21 22 23 > node 0 size: 15982 MB > node 0 free: 14422 MB > node 1 cpus: 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 > node 1 size: 16124 MB > node 1 free: 5357 MB > node distances: > node 0 1 > 0: 10 16 > 1: 16 10 > # numactl -m 0 -C 0 /tmp/numa-thp-bench > random writes MADV_HUGEPAGE 12902667 usec > random writes MADV_NOHUGEPAGE 17543070 usec > random writes MADV_NOHUGEPAGE 17568858 usec > random writes MADV_HUGEPAGE 12896588 usec > # numactl -m 0 -C 8 /tmp/numa-thp-bench > random writes MADV_HUGEPAGE 19663515 usec > random writes MADV_NOHUGEPAGE 27819864 usec > random writes MADV_NOHUGEPAGE 27844066 usec > random writes MADV_HUGEPAGE 19662706 usec > # grep Threadripper /proc/cpuinfo |head -1 > model name : AMD Ryzen Threadripper 1950X 16-Core Processor > > local 4k -> local 2m: +35% > local 4k -> remote 2m: -10% > remote 4k -> remote 2m: +41% > > Or if you prefer reversed in terms of compute time (negative > percentage is better in this case): > > local 4k -> local 2m: -26% > local 4k -> remote 2m: +12% > remote 4k -> remote 2m: -29% > > It's true that local 4k is generally a win vs remote THP when the > workload is memory bound also for the threadripper, the threadripper > seems even more favorable to remote THP than skylake Xeon is. > My results are organized slightly different since it considers local hugepages as the baseline and is what we optimize for: on Broadwell, I've obtained more accurate results that show local small pages at +3.8%, remote hugepages at +12.8% and remote small pages at +18.8%. I think we both agree that the locality preference for workloads that fit within a single node is local hugepage -> local small page -> remote hugepage -> remote small page, and that has been unchanged in any of benchmarking results for either of us. > The above is the host bare metal result. Now let's try guest mode on > the threadripper. The last two lines seems more reliable (the first > two lines also needs to fault in the guest RAM because the guest > was fresh booted). > > guest backed by local 2M pages: > > random writes MADV_HUGEPAGE 16025855 usec > random writes MADV_NOHUGEPAGE 21903002 usec > random writes MADV_NOHUGEPAGE 19762767 usec > random writes MADV_HUGEPAGE 15189231 usec > > guest backed by remote 2M pages: > > random writes MADV_HUGEPAGE 25434251 usec > random writes MADV_NOHUGEPAGE 32404119 usec > random writes MADV_NOHUGEPAGE 31455592 usec > random writes MADV_HUGEPAGE 22248304 usec > > guest backed by local 4k pages: > > random writes MADV_HUGEPAGE 28945251 usec > random writes MADV_NOHUGEPAGE 32217690 usec > random writes MADV_NOHUGEPAGE 30664731 usec > random writes MADV_HUGEPAGE 22981082 usec > > guest backed by remote 4k pages: > > random writes MADV_HUGEPAGE 43772939 usec > random writes MADV_NOHUGEPAGE 52745664 usec > random writes MADV_NOHUGEPAGE 51632065 usec > random writes MADV_HUGEPAGE 40263194 usec > > I haven't yet tried the guest mode on the skylake nor > haswell/broadwell. I can do that too but I don't expect a significant > difference. > > On a threadripper guest, the remote 2m is practically identical to > local 4k. So shutting down compaction to try to generate local 4k > memory looks a sure loss. > I'm assuming your results above are with a defrag setting of "madvise" or "defer+madvise". > Even if we ignore the guest mode results completely, if we don't make > assumption on the workload to be able to fit in the node, if I use > MADV_HUGEPAGE I think I'd prefer the risk of a -10% slowdown if the > THP page ends up in a remote node, than not getting the +41% THP > speedup on remote memory if the pagetable ends up being remote or the > 4k page itself ends up being remote over time. > I'm agreeing with you that the preference for remote hugepages over local small pages depends on the configuration and the workload that you are running and there are clear advantages and disadvantages to both. This is different than what the long-standing NUMA preferences have been for thp allocations. I think we can optimize for *both* usecases without causing an unnecessary regression for other and doing so is not extremely complex. Since it depends on the workload, specifically workloads that fit within a single node, I think the reasonable approach would be to have a sane default regardless of the use of MADV_HUGEPAGE or thp defrag settings and then optimzie for the minority of cases where the workload does not fit in a single node. I'm assuming there is no debate about these larger workloads being in the minority, although we have single machines where this encompasses the totality of their workloads. Regarding the role of direct reclaim in the allocator, I think we need work on the feedback from compaction to determine whether it's worthwhile. That's difficult because of the point I continue to bring up: isolate_freepages() is not necessarily always able to access this freed memory. But for cases where we get COMPACT_SKIPPED because the order-0 watermarks are failing, reclaim *is* likely to have an impact in the success of compaction, otherwise we fail and defer because it wasn't able to make a hugepage available. [ If we run compaction regardless of the order-0 watermark check and find a pageblock where we can likely free a hugepage because it is fragmented movable pages, this is a pretty good indication that reclaim is worthwhile iff the reclaimed memory is beyond the migration scanner. ] Let me try to list out what I think is a reasonable design for the various configs assuming we are able to address the reclaim concern above. Note that this is for the majority of users where workloads do not span multiple nodes: - defrag=always: always compact, obviously - defrag=madvise/defer+madvise: - MADV_HUGEPAGE: always compact locally, fallback to small pages locally (small pages become eligible for khugepaged to collapse locally later, no chance of additional access latency) - neither MADV_HUGEPAGE nor MADV_NOHUGEPAGE: kick kcompactd locally, fallback to small pages locally - defrag=defer: kick kcompactd locally, fallback to small pages locally - defrag=never: fallback to small pages locally And that, AFAICT, has been the implementation for almost four years. For workloads that *can* span multiple nodes, this doesn't make much sense, as you point out and have reported in your bug. Considering the reclaim problem separately where we thrash a node unnecessarily, if we consider only hugepages and NUMA locality: - defrag=always: always compact for all allowed zones, zonelist ordered according to NUMA locality - defrag=madvise/defer+madvise: - MADV_HUGEPAGE: always compact for all allowed zones, try to allocate hugepages in zonelist order, only fallback to small pages when compaction fails - neither MADV_HUGEPAGE nor MADV_NOHUGEPAGE: kick kcompactd for all allowed zones, fallback to small pages locally - defrag=defer: kick kcompactd for all allowed zones, fallback to small pages locally - defrag=never: fallback to small pages locally For this policy to be possible, we must clear __GFP_THISNODE. How to determine when to do this? I think we have three options: heuristics (rss vs zone managed pages), per-process prctl(), or global thp setting for machine-wide behavior. I've been suggesting a per-process prctl() that can be set and carried across fork so that there are no changes needed to any workload and can simply special-case the thp allocation policy to use __GFP_THISNODE, which is the default for bare metal, and to not use it when we've said the workload will span multiple nodes. Depending on the size of the workload, it may choose to use this setting on certain systems and not others. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-12 0:37 ` David Rientjes @ 2018-12-12 9:50 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-12 9:50 UTC (permalink / raw) To: David Rientjes Cc: Andrea Arcangeli, Linus Torvalds, mgorman, Vlastimil Babka, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Tue 11-12-18 16:37:22, David Rientjes wrote: [...] > Since it depends on the workload, specifically workloads that fit within a > single node, I think the reasonable approach would be to have a sane > default regardless of the use of MADV_HUGEPAGE or thp defrag settings and > then optimzie for the minority of cases where the workload does not fit in > a single node. I'm assuming there is no debate about these larger > workloads being in the minority, although we have single machines where > this encompasses the totality of their workloads. Your assumption is wrong I believe. This is the fundamental disagreement we are discussing here. You are essentially arguing for node_reclaim (formerly zone_reclaim) behavior for THP pages. All that without any actual data on wider variety of workloads. As the matter of _fact_ we know that node_reclaim behavior is not a suitable default. We did that mistake in the past and we had to revert that default _exactly_ because a wider variety of workloads suffered from over reclaim and performance issues as a result of constant reclaim You have also haven't explained why you do care so much about remote THP while you do not care about remote base bages (the page allocator falls back to those as soon as the kswapd doesn't keep pace with the allocation rate; THP or high order pages in general is analoguous with kcompactd doing a pro-active compaction). Like the base pages we do not want larger pages to fallback to a remote node too easily. There is no question about that I believe. I can be convinced that larger pages really require a different behavior than base pages but you should better show _real_ numbers on a wider variety workloads to back your claims. I have only heard hand waving and a very vague and quite doubtful numbers for a non-disclosed benchmark without a clear indication on how it relates to real world workloads. So color me unconvinced. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-12 9:50 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-12 9:50 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 1990 bytes --] On Tue 11-12-18 16:37:22, David Rientjes wrote: [...] > Since it depends on the workload, specifically workloads that fit within a > single node, I think the reasonable approach would be to have a sane > default regardless of the use of MADV_HUGEPAGE or thp defrag settings and > then optimzie for the minority of cases where the workload does not fit in > a single node. I'm assuming there is no debate about these larger > workloads being in the minority, although we have single machines where > this encompasses the totality of their workloads. Your assumption is wrong I believe. This is the fundamental disagreement we are discussing here. You are essentially arguing for node_reclaim (formerly zone_reclaim) behavior for THP pages. All that without any actual data on wider variety of workloads. As the matter of _fact_ we know that node_reclaim behavior is not a suitable default. We did that mistake in the past and we had to revert that default _exactly_ because a wider variety of workloads suffered from over reclaim and performance issues as a result of constant reclaim You have also haven't explained why you do care so much about remote THP while you do not care about remote base bages (the page allocator falls back to those as soon as the kswapd doesn't keep pace with the allocation rate; THP or high order pages in general is analoguous with kcompactd doing a pro-active compaction). Like the base pages we do not want larger pages to fallback to a remote node too easily. There is no question about that I believe. I can be convinced that larger pages really require a different behavior than base pages but you should better show _real_ numbers on a wider variety workloads to back your claims. I have only heard hand waving and a very vague and quite doubtful numbers for a non-disclosed benchmark without a clear indication on how it relates to real world workloads. So color me unconvinced. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-12 9:50 ` Michal Hocko @ 2018-12-12 17:00 ` Andrea Arcangeli -1 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-12 17:00 UTC (permalink / raw) To: Michal Hocko Cc: David Rientjes, Linus Torvalds, mgorman, Vlastimil Babka, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Wed, Dec 12, 2018 at 10:50:51AM +0100, Michal Hocko wrote: > I can be convinced that larger pages really require a different behavior > than base pages but you should better show _real_ numbers on a wider > variety workloads to back your claims. I have only heard hand waving and I agree with your point about node_reclaim and I think David complaint of "I got remote THP instead of local 4k" with our proposed fix, is going to morph into "I got remote 4k instead of local 4k" with his favorite fix. Because David stopped calling reclaim with __GFP_THISNODE, the moment the node is full of pagecache, node_reclaim behavior will go away and even 4k pages will start to be allocated remote (and because of __GFP_THISNODE set in the THP allocation, all readily available or trivial to compact remote THP will be ignored too). What David needs I think is a way to set __GFP_THISNODE for THP *and 4k* allocations and if both fails in a row with __GFP_THISNODE set, we need to repeat the whole thing without __GFP_THISNODE set (ideally with a mask to skip the node that we already scraped down to the bottom during the initial __GFP_THISNODE pass). This way his proprietary software binary will work even better than before when the local node is fragmented and he'll finally be able to get the speedup from remote THP too in case the local node is truly OOM, but all other nodes are full of readily available THP. To achieve this without a new MADV_THISNODE/MADV_NODE_RECLAIM, we'd need a way to start with __GFP_THISNODE and then draw the line in reclaim and decide to drop __GFP_THISNODE when too much pressure mounts in the local node, but like you said it becomes like node_reclaim and it would be better if it can be done with an opt-in, like MADV_HUGEPAGE because not all workloads would benefit from such extra pagecache reclaim cost (like not all workload benefits from synchronous compaction). I think some NUMA reclaim mode semantics ended up being embedded and hidden in the THP MADV_HUGEPAGE, but they imposed massive slowdown to all workloads that can't cope with the node_reclaim mode behavior because they don't fit in a node. Adding MADV_THISNODE/MADV_NODE_RECLAIM, will guarantee his proprietary software binary will run at maximum performance without cache interference, and he's happy to accept the risk of massive slowdown in case the local node is truly OOM. The fallback, despite very inefficient, will still happen without OOM killer triggering. Thanks, Andrea ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-12 17:00 ` Andrea Arcangeli 0 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-12 17:00 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2537 bytes --] On Wed, Dec 12, 2018 at 10:50:51AM +0100, Michal Hocko wrote: > I can be convinced that larger pages really require a different behavior > than base pages but you should better show _real_ numbers on a wider > variety workloads to back your claims. I have only heard hand waving and I agree with your point about node_reclaim and I think David complaint of "I got remote THP instead of local 4k" with our proposed fix, is going to morph into "I got remote 4k instead of local 4k" with his favorite fix. Because David stopped calling reclaim with __GFP_THISNODE, the moment the node is full of pagecache, node_reclaim behavior will go away and even 4k pages will start to be allocated remote (and because of __GFP_THISNODE set in the THP allocation, all readily available or trivial to compact remote THP will be ignored too). What David needs I think is a way to set __GFP_THISNODE for THP *and 4k* allocations and if both fails in a row with __GFP_THISNODE set, we need to repeat the whole thing without __GFP_THISNODE set (ideally with a mask to skip the node that we already scraped down to the bottom during the initial __GFP_THISNODE pass). This way his proprietary software binary will work even better than before when the local node is fragmented and he'll finally be able to get the speedup from remote THP too in case the local node is truly OOM, but all other nodes are full of readily available THP. To achieve this without a new MADV_THISNODE/MADV_NODE_RECLAIM, we'd need a way to start with __GFP_THISNODE and then draw the line in reclaim and decide to drop __GFP_THISNODE when too much pressure mounts in the local node, but like you said it becomes like node_reclaim and it would be better if it can be done with an opt-in, like MADV_HUGEPAGE because not all workloads would benefit from such extra pagecache reclaim cost (like not all workload benefits from synchronous compaction). I think some NUMA reclaim mode semantics ended up being embedded and hidden in the THP MADV_HUGEPAGE, but they imposed massive slowdown to all workloads that can't cope with the node_reclaim mode behavior because they don't fit in a node. Adding MADV_THISNODE/MADV_NODE_RECLAIM, will guarantee his proprietary software binary will run at maximum performance without cache interference, and he's happy to accept the risk of massive slowdown in case the local node is truly OOM. The fallback, despite very inefficient, will still happen without OOM killer triggering. Thanks, Andrea ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-12 17:00 ` Andrea Arcangeli @ 2018-12-14 11:32 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-14 11:32 UTC (permalink / raw) To: Andrea Arcangeli Cc: David Rientjes, Linus Torvalds, mgorman, Vlastimil Babka, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Wed 12-12-18 12:00:16, Andrea Arcangeli wrote: [...] > Adding MADV_THISNODE/MADV_NODE_RECLAIM, will guarantee his proprietary > software binary will run at maximum performance without cache > interference, and he's happy to accept the risk of massive slowdown in > case the local node is truly OOM. The fallback, despite very > inefficient, will still happen without OOM killer triggering. I believe this fits much better into a MPOL_$FOO rather than MADV_$FOO. But other than that I full agree. There are reasonable usecases for the node reclaim like behavior. As a bonus you do not get local node only but all nodes within reclaim distance as well. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-14 11:32 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-14 11:32 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 697 bytes --] On Wed 12-12-18 12:00:16, Andrea Arcangeli wrote: [...] > Adding MADV_THISNODE/MADV_NODE_RECLAIM, will guarantee his proprietary > software binary will run at maximum performance without cache > interference, and he's happy to accept the risk of massive slowdown in > case the local node is truly OOM. The fallback, despite very > inefficient, will still happen without OOM killer triggering. I believe this fits much better into a MPOL_$FOO rather than MADV_$FOO. But other than that I full agree. There are reasonable usecases for the node reclaim like behavior. As a bonus you do not get local node only but all nodes within reclaim distance as well. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-12 0:37 ` David Rientjes @ 2018-12-12 10:14 ` Vlastimil Babka -1 siblings, 0 replies; 154+ messages in thread From: Vlastimil Babka @ 2018-12-12 10:14 UTC (permalink / raw) To: David Rientjes, Andrea Arcangeli Cc: Linus Torvalds, mgorman, Michal Hocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On 12/12/18 1:37 AM, David Rientjes wrote: > > Regarding the role of direct reclaim in the allocator, I think we need > work on the feedback from compaction to determine whether it's worthwhile. > That's difficult because of the point I continue to bring up: > isolate_freepages() is not necessarily always able to access this freed > memory. That's one of the *many* reasons why having free base pages doesn't guarantee compaction success. We can and will improve on that. But I don't think it would be e.g. practical to check the pfns of free pages wrt compaction scanner positions and decide based on that. Also when you invoke reclaim, you can't tell in advance those pfns, so I'm not sure how the better feedback from compaction to reclaim for this specific aspect would be supposed to work? > But for cases where we get COMPACT_SKIPPED because the order-0 > watermarks are failing, reclaim *is* likely to have an impact in the > success of compaction, Yes that's the heuristic we rely on. > otherwise we fail and defer because it wasn't able > to make a hugepage available. Note that THP fault compaction doesn't actually defer itself, which I think is a weakness of the current implementation and hope that patch 3 in my series from yesterday [1] can address that. Because defering is the general feedback mechanism that we have for suppressing compaction (and thus associated reclaim) in cases it fails for any reason, not just the one you mention. Instead of inspecting failure conditions in detail, which would be costly, it's a simple statistical approach. And when compaction is improved to fail less, defering automatically also happens less. > [ If we run compaction regardless of the order-0 watermark check and find > a pageblock where we can likely free a hugepage because it is > fragmented movable pages, this is a pretty good indication that reclaim > is worthwhile iff the reclaimed memory is beyond the migration scanner. ] I don't think that would be a good direction to pursue, to let scanning happen even without having the free pages. Also as I've mentioned above, LRU-based reclaim cannot satisfy your 'iff' condition, unless it inspected the pfn's it freed, and continued reclaiming until enough of those beyond migration scanner were freed. Instead IMHO we should look again into replacing the free scanner with direct allocation from freelists. [1] https://lkml.kernel.org/r/20181211142941.20500-1-vbabka@suse.cz ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-12 10:14 ` Vlastimil Babka 0 siblings, 0 replies; 154+ messages in thread From: Vlastimil Babka @ 2018-12-12 10:14 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2521 bytes --] On 12/12/18 1:37 AM, David Rientjes wrote: > > Regarding the role of direct reclaim in the allocator, I think we need > work on the feedback from compaction to determine whether it's worthwhile. > That's difficult because of the point I continue to bring up: > isolate_freepages() is not necessarily always able to access this freed > memory. That's one of the *many* reasons why having free base pages doesn't guarantee compaction success. We can and will improve on that. But I don't think it would be e.g. practical to check the pfns of free pages wrt compaction scanner positions and decide based on that. Also when you invoke reclaim, you can't tell in advance those pfns, so I'm not sure how the better feedback from compaction to reclaim for this specific aspect would be supposed to work? > But for cases where we get COMPACT_SKIPPED because the order-0 > watermarks are failing, reclaim *is* likely to have an impact in the > success of compaction, Yes that's the heuristic we rely on. > otherwise we fail and defer because it wasn't able > to make a hugepage available. Note that THP fault compaction doesn't actually defer itself, which I think is a weakness of the current implementation and hope that patch 3 in my series from yesterday [1] can address that. Because defering is the general feedback mechanism that we have for suppressing compaction (and thus associated reclaim) in cases it fails for any reason, not just the one you mention. Instead of inspecting failure conditions in detail, which would be costly, it's a simple statistical approach. And when compaction is improved to fail less, defering automatically also happens less. > [ If we run compaction regardless of the order-0 watermark check and find > a pageblock where we can likely free a hugepage because it is > fragmented movable pages, this is a pretty good indication that reclaim > is worthwhile iff the reclaimed memory is beyond the migration scanner. ] I don't think that would be a good direction to pursue, to let scanning happen even without having the free pages. Also as I've mentioned above, LRU-based reclaim cannot satisfy your 'iff' condition, unless it inspected the pfn's it freed, and continued reclaiming until enough of those beyond migration scanner were freed. Instead IMHO we should look again into replacing the free scanner with direct allocation from freelists. [1] https://lkml.kernel.org/r/20181211142941.20500-1-vbabka(a)suse.cz ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-12 10:14 ` Vlastimil Babka @ 2018-12-14 21:04 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-14 21:04 UTC (permalink / raw) To: Vlastimil Babka Cc: Andrea Arcangeli, Linus Torvalds, mgorman, Michal Hocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Wed, 12 Dec 2018, Vlastimil Babka wrote: > > Regarding the role of direct reclaim in the allocator, I think we need > > work on the feedback from compaction to determine whether it's worthwhile. > > That's difficult because of the point I continue to bring up: > > isolate_freepages() is not necessarily always able to access this freed > > memory. > > That's one of the *many* reasons why having free base pages doesn't > guarantee compaction success. We can and will improve on that. But I > don't think it would be e.g. practical to check the pfns of free pages > wrt compaction scanner positions and decide based on that. Yeah, agreed. Rather than proposing that memory is only reclaimed if its known that it can be accessible to isolate_freepages(), I'm wondering about the implementation of the freeing scanner entirely. In other words, I think there is a lot of potential stranding that occurs for both scanners that could otherwise result in completely free pageblocks. If there a single movable page present near the end of the zone in an otherwise fully free pageblock, surely we can do better than the current implementation that would never consider this very easy to compact memory. For hugepages, we don't care what pageblock we allocate from. There are requirements for MAX_ORDER-1, but I assume we shouldn't optimize for these cases (and if CMA has requirements for a migration/freeing scanner redesign, I think that can be special cased). The same problem occurs for the migration scanner where we can iterate over a ton of free memory that is never considered a suitable migration target. The implementation that attempts to migrate all memory toward the end of the zone penalizes the freeing scanner when it is reset: we just iterate over a ton of used pages. Reclaim likely could be deterministically useful if we consider a redesign of how migration sources and targets are determined in compaction. Has anybody tried a migration scanner that isn't linearly based, rather finding the highest-order free page of the same migratetype, iterating the pages of its pageblock, and using this to determine whether the actual migration will be worthwhile or not? I could imagine pageblock_skip being repurposed for this as the heuristic. Finding migration targets would be more tricky, but if we iterate the pages of the pageblock for low-order free pages and find them to be mostly used, that seems more appropriate than just pushing all memory to the end of the zone? It would be interesting to know if anybody has tried using the per-zone free_area's to determine migration targets and set a bit if it should be considered a migration source or a migration target. If all pages for a pageblock are not on free_areas, they are fully used. > > otherwise we fail and defer because it wasn't able > > to make a hugepage available. > > Note that THP fault compaction doesn't actually defer itself, which I > think is a weakness of the current implementation and hope that patch 3 > in my series from yesterday [1] can address that. Because defering is > the general feedback mechanism that we have for suppressing compaction > (and thus associated reclaim) in cases it fails for any reason, not just > the one you mention. Instead of inspecting failure conditions in detail, > which would be costly, it's a simple statistical approach. And when > compaction is improved to fail less, defering automatically also happens > less. > I couldn't get the link to work, unfortunately, I don't think the patch series made it to LKML :/ I do see it archived for linux-mm, though, so I'll take a look, thanks! > [1] https://lkml.kernel.org/r/20181211142941.20500-1-vbabka@suse.cz > ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-14 21:04 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-14 21:04 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 3818 bytes --] On Wed, 12 Dec 2018, Vlastimil Babka wrote: > > Regarding the role of direct reclaim in the allocator, I think we need > > work on the feedback from compaction to determine whether it's worthwhile. > > That's difficult because of the point I continue to bring up: > > isolate_freepages() is not necessarily always able to access this freed > > memory. > > That's one of the *many* reasons why having free base pages doesn't > guarantee compaction success. We can and will improve on that. But I > don't think it would be e.g. practical to check the pfns of free pages > wrt compaction scanner positions and decide based on that. Yeah, agreed. Rather than proposing that memory is only reclaimed if its known that it can be accessible to isolate_freepages(), I'm wondering about the implementation of the freeing scanner entirely. In other words, I think there is a lot of potential stranding that occurs for both scanners that could otherwise result in completely free pageblocks. If there a single movable page present near the end of the zone in an otherwise fully free pageblock, surely we can do better than the current implementation that would never consider this very easy to compact memory. For hugepages, we don't care what pageblock we allocate from. There are requirements for MAX_ORDER-1, but I assume we shouldn't optimize for these cases (and if CMA has requirements for a migration/freeing scanner redesign, I think that can be special cased). The same problem occurs for the migration scanner where we can iterate over a ton of free memory that is never considered a suitable migration target. The implementation that attempts to migrate all memory toward the end of the zone penalizes the freeing scanner when it is reset: we just iterate over a ton of used pages. Reclaim likely could be deterministically useful if we consider a redesign of how migration sources and targets are determined in compaction. Has anybody tried a migration scanner that isn't linearly based, rather finding the highest-order free page of the same migratetype, iterating the pages of its pageblock, and using this to determine whether the actual migration will be worthwhile or not? I could imagine pageblock_skip being repurposed for this as the heuristic. Finding migration targets would be more tricky, but if we iterate the pages of the pageblock for low-order free pages and find them to be mostly used, that seems more appropriate than just pushing all memory to the end of the zone? It would be interesting to know if anybody has tried using the per-zone free_area's to determine migration targets and set a bit if it should be considered a migration source or a migration target. If all pages for a pageblock are not on free_areas, they are fully used. > > otherwise we fail and defer because it wasn't able > > to make a hugepage available. > > Note that THP fault compaction doesn't actually defer itself, which I > think is a weakness of the current implementation and hope that patch 3 > in my series from yesterday [1] can address that. Because defering is > the general feedback mechanism that we have for suppressing compaction > (and thus associated reclaim) in cases it fails for any reason, not just > the one you mention. Instead of inspecting failure conditions in detail, > which would be costly, it's a simple statistical approach. And when > compaction is improved to fail less, defering automatically also happens > less. > I couldn't get the link to work, unfortunately, I don't think the patch series made it to LKML :/ I do see it archived for linux-mm, though, so I'll take a look, thanks! > [1] https://lkml.kernel.org/r/20181211142941.20500-1-vbabka(a)suse.cz > ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-14 21:04 ` David Rientjes @ 2018-12-14 21:33 ` Vlastimil Babka -1 siblings, 0 replies; 154+ messages in thread From: Vlastimil Babka @ 2018-12-14 21:33 UTC (permalink / raw) To: David Rientjes Cc: Andrea Arcangeli, Linus Torvalds, mgorman, Michal Hocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Linux-MM layout On 12/14/18 10:04 PM, David Rientjes wrote: > On Wed, 12 Dec 2018, Vlastimil Babka wrote: ... > Reclaim likely could be deterministically useful if we consider a redesign > of how migration sources and targets are determined in compaction. > > Has anybody tried a migration scanner that isn't linearly based, rather > finding the highest-order free page of the same migratetype, iterating the > pages of its pageblock, and using this to determine whether the actual > migration will be worthwhile or not? Not exactly that AFAIK, but a year ago in my series [1] patch 6 made migration scanner 'prescan' the block of requested order before actually trying to isolate anything for migration. > I could imagine pageblock_skip being > repurposed for this as the heuristic. > > Finding migration targets would be more tricky, but if we iterate the > pages of the pageblock for low-order free pages and find them to be mostly > used, that seems more appropriate than just pushing all memory to the end > of the zone? Agree. That was patch 8/8 of the same series [1]. > It would be interesting to know if anybody has tried using the per-zone > free_area's to determine migration targets and set a bit if it should be > considered a migration source or a migration target. If all pages for a > pageblock are not on free_areas, they are fully used. Repurposing/adding a new pageblock bit was in my mind to help multiple compactors not undo each other's work in the scheme where there's no free page scanner, but I didn't implement it yet. >>> otherwise we fail and defer because it wasn't able >>> to make a hugepage available. >> >> Note that THP fault compaction doesn't actually defer itself, which I >> think is a weakness of the current implementation and hope that patch 3 >> in my series from yesterday [1] can address that. Because defering is >> the general feedback mechanism that we have for suppressing compaction >> (and thus associated reclaim) in cases it fails for any reason, not just >> the one you mention. Instead of inspecting failure conditions in detail, >> which would be costly, it's a simple statistical approach. And when >> compaction is improved to fail less, defering automatically also happens >> less. >> > > I couldn't get the link to work, unfortunately, I don't think the patch > series made it to LKML :/ I do see it archived for linux-mm, though, so > I'll take a look, thanks! Yeah I forgot to Cc: LKML, but you were also in direct To: so you should have received them directly. Also the abovementioned series, but that's year ago. My fault for not returning to it after being done with the Meltdown fun. I hope to do that soon. [1] https://marc.info/?l=linux-mm&m=151315560308753 >> [1] https://lkml.kernel.org/r/20181211142941.20500-1-vbabka@suse.cz >> ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-14 21:33 ` Vlastimil Babka 0 siblings, 0 replies; 154+ messages in thread From: Vlastimil Babka @ 2018-12-14 21:33 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2880 bytes --] On 12/14/18 10:04 PM, David Rientjes wrote: > On Wed, 12 Dec 2018, Vlastimil Babka wrote: ... > Reclaim likely could be deterministically useful if we consider a redesign > of how migration sources and targets are determined in compaction. > > Has anybody tried a migration scanner that isn't linearly based, rather > finding the highest-order free page of the same migratetype, iterating the > pages of its pageblock, and using this to determine whether the actual > migration will be worthwhile or not? Not exactly that AFAIK, but a year ago in my series [1] patch 6 made migration scanner 'prescan' the block of requested order before actually trying to isolate anything for migration. > I could imagine pageblock_skip being > repurposed for this as the heuristic. > > Finding migration targets would be more tricky, but if we iterate the > pages of the pageblock for low-order free pages and find them to be mostly > used, that seems more appropriate than just pushing all memory to the end > of the zone? Agree. That was patch 8/8 of the same series [1]. > It would be interesting to know if anybody has tried using the per-zone > free_area's to determine migration targets and set a bit if it should be > considered a migration source or a migration target. If all pages for a > pageblock are not on free_areas, they are fully used. Repurposing/adding a new pageblock bit was in my mind to help multiple compactors not undo each other's work in the scheme where there's no free page scanner, but I didn't implement it yet. >>> otherwise we fail and defer because it wasn't able >>> to make a hugepage available. >> >> Note that THP fault compaction doesn't actually defer itself, which I >> think is a weakness of the current implementation and hope that patch 3 >> in my series from yesterday [1] can address that. Because defering is >> the general feedback mechanism that we have for suppressing compaction >> (and thus associated reclaim) in cases it fails for any reason, not just >> the one you mention. Instead of inspecting failure conditions in detail, >> which would be costly, it's a simple statistical approach. And when >> compaction is improved to fail less, defering automatically also happens >> less. >> > > I couldn't get the link to work, unfortunately, I don't think the patch > series made it to LKML :/ I do see it archived for linux-mm, though, so > I'll take a look, thanks! Yeah I forgot to Cc: LKML, but you were also in direct To: so you should have received them directly. Also the abovementioned series, but that's year ago. My fault for not returning to it after being done with the Meltdown fun. I hope to do that soon. [1] https://marc.info/?l=linux-mm&m=151315560308753 >> [1] https://lkml.kernel.org/r/20181211142941.20500-1-vbabka(a)suse.cz >> ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-21 22:18 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-21 22:18 UTC (permalink / raw) To: Vlastimil Babka Cc: Andrea Arcangeli, Linus Torvalds, mgorman, Michal Hocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Linux-MM layout On Fri, 14 Dec 2018, Vlastimil Babka wrote: > > It would be interesting to know if anybody has tried using the per-zone > > free_area's to determine migration targets and set a bit if it should be > > considered a migration source or a migration target. If all pages for a > > pageblock are not on free_areas, they are fully used. > > Repurposing/adding a new pageblock bit was in my mind to help multiple > compactors not undo each other's work in the scheme where there's no > free page scanner, but I didn't implement it yet. > It looks like Mel has a series posted that still is implemented with linear scans through memory, so I'm happy to move the discussion there; I think the goal for compaction with regard to this thread is determining whether reclaim in the page allocator would actually be useful and targeted reclaim to make memory available for isolate_freepages() could be expensive. I'd hope that we could move in a direction where compaction doesn't care where the pageblock is and does the minimal amount of work possible to make a high-order page available, not sure if that's possible with a linear scan. I'll take a look at Mel's series though. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-21 22:18 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-21 22:18 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 1205 bytes --] On Fri, 14 Dec 2018, Vlastimil Babka wrote: > > It would be interesting to know if anybody has tried using the per-zone > > free_area's to determine migration targets and set a bit if it should be > > considered a migration source or a migration target. If all pages for a > > pageblock are not on free_areas, they are fully used. > > Repurposing/adding a new pageblock bit was in my mind to help multiple > compactors not undo each other's work in the scheme where there's no > free page scanner, but I didn't implement it yet. > It looks like Mel has a series posted that still is implemented with linear scans through memory, so I'm happy to move the discussion there; I think the goal for compaction with regard to this thread is determining whether reclaim in the page allocator would actually be useful and targeted reclaim to make memory available for isolate_freepages() could be expensive. I'd hope that we could move in a direction where compaction doesn't care where the pageblock is and does the minimal amount of work possible to make a high-order page available, not sure if that's possible with a linear scan. I'll take a look at Mel's series though. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-21 22:18 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-21 22:18 UTC (permalink / raw) To: Vlastimil Babka Cc: Andrea Arcangeli, Linus Torvalds, mgorman, Michal Hocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Linux-MM layout On Fri, 14 Dec 2018, Vlastimil Babka wrote: > > It would be interesting to know if anybody has tried using the per-zone > > free_area's to determine migration targets and set a bit if it should be > > considered a migration source or a migration target. If all pages for a > > pageblock are not on free_areas, they are fully used. > > Repurposing/adding a new pageblock bit was in my mind to help multiple > compactors not undo each other's work in the scheme where there's no > free page scanner, but I didn't implement it yet. > It looks like Mel has a series posted that still is implemented with linear scans through memory, so I'm happy to move the discussion there; I think the goal for compaction with regard to this thread is determining whether reclaim in the page allocator would actually be useful and targeted reclaim to make memory available for isolate_freepages() could be expensive. I'd hope that we could move in a direction where compaction doesn't care where the pageblock is and does the minimal amount of work possible to make a high-order page available, not sure if that's possible with a linear scan. I'll take a look at Mel's series though. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-21 22:18 ` [LKP] " David Rientjes @ 2018-12-22 12:08 ` Mel Gorman -1 siblings, 0 replies; 154+ messages in thread From: Mel Gorman @ 2018-12-22 12:08 UTC (permalink / raw) To: David Rientjes Cc: Vlastimil Babka, Andrea Arcangeli, Linus Torvalds, Michal Hocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Linux-MM layout On Fri, Dec 21, 2018 at 02:18:45PM -0800, David Rientjes wrote: > On Fri, 14 Dec 2018, Vlastimil Babka wrote: > > > > It would be interesting to know if anybody has tried using the per-zone > > > free_area's to determine migration targets and set a bit if it should be > > > considered a migration source or a migration target. If all pages for a > > > pageblock are not on free_areas, they are fully used. > > > > Repurposing/adding a new pageblock bit was in my mind to help multiple > > compactors not undo each other's work in the scheme where there's no > > free page scanner, but I didn't implement it yet. > > > > It looks like Mel has a series posted that still is implemented with > linear scans through memory, so I'm happy to move the discussion there; I > think the goal for compaction with regard to this thread is determining > whether reclaim in the page allocator would actually be useful and > targeted reclaim to make memory available for isolate_freepages() could be > expensive. I'd hope that we could move in a direction where compaction > doesn't care where the pageblock is and does the minimal amount of work > possible to make a high-order page available, not sure if that's possible > with a linear scan. I'll take a look at Mel's series though. That series has evolved significantly because there was a lot of missing pieces. While it's somewhat ready other than badly written changelogs, I didn't post it because I'm going offline and wouldn't respond to feedback and I imagine others are offline too and unavailable for review. Besides, the merge window is about to open and I know there are patches in Andrews tree for mainline that should be taken into account. The series is now 25 patches long and covers a lot of pre-requisites that would be necessary before removing the linear scanner. What is critical for a purely free-list scanner is that the exit conditions are identified and the series provides a lot of the pieces. For example, a non-linear scanner must properly control skip bits and isolate pageblocks from multiple compaction instances which this series does. The main takeawy from the series is that it reduces system CPU usage by 17%, reduces free scan rates by 99.5% and increases THP allocation success rates by 33% giving almost 99% allocation success rates. It also; o Isolates pageblocks for a single compaction instance o Synchronises async/sync scanners when appropriate to reduce rescanning o Identifies when a pageblock is being rescanned and is "sticky" and makes forward progress instead of looping excessively o Smarter logic when clearing pageblock skip bits so reduce scanning o Various different methods for reducing unnecessary scanning o Better handling of contention o Avoids compaction of remote nodes in direct compaction context If you do not want to wait until the new year, it's at git://git.kernel.org/pub/scm/linux/kernel/git/mel/linux.git mm-fast-compact-v2r15 Preliminary results based on thpscale using MADV_HUGEPAGE to allocate huge pages on a fragmented system. thpscale Fault Latencies 4.20.0-rc6 4.20.0-rc6 mmotm-20181210 noremote-v2r14 Amean fault-both-1 864.83 ( 0.00%) 1006.88 * -16.43%* Amean fault-both-3 3566.05 ( 0.00%) 2460.97 * 30.99%* Amean fault-both-5 5685.02 ( 0.00%) 4052.92 * 28.71%* Amean fault-both-7 7289.40 ( 0.00%) 5929.65 ( 18.65%) Amean fault-both-12 10937.46 ( 0.00%) 8870.53 ( 18.90%) Amean fault-both-18 15440.48 ( 0.00%) 11464.86 * 25.75%* Amean fault-both-24 15345.83 ( 0.00%) 13040.01 * 15.03%* Amean fault-both-30 20159.73 ( 0.00%) 16618.73 * 17.56%* Amean fault-both-32 20843.51 ( 0.00%) 14401.25 * 30.91%* Fault latency (either huge or base) is mostly improved even when 32 tasks are trying to allocate huge pages on an 8-CPU single socket machine where contention is a factor thpscale Percentage Faults Huge 4.20.0-rc6 4.20.0-rc6 mmotm-20181210 noremote-v2r14 Percentage huge-1 96.03 ( 0.00%) 96.94 ( 0.95%) Percentage huge-3 71.43 ( 0.00%) 95.43 ( 33.60%) Percentage huge-5 70.44 ( 0.00%) 96.85 ( 37.48%) Percentage huge-7 70.39 ( 0.00%) 94.77 ( 34.63%) Percentage huge-12 71.53 ( 0.00%) 98.07 ( 37.11%) Percentage huge-18 70.61 ( 0.00%) 98.42 ( 39.38%) Percentage huge-24 71.84 ( 0.00%) 97.85 ( 36.20%) Percentage huge-30 69.94 ( 0.00%) 98.13 ( 40.31%) Percentage huge-32 66.92 ( 0.00%) 97.79 ( 46.13%) 96-98% of THP requests get huge pages on request 4.20.0-rc6 4.20.0-rc6 mmotm-20181210noremote-v2r14 User 27.30 27.86 System 192.70 159.42 Elapsed 580.13 571.98 System CPU usage is reduced so we get more huge pages for less work and the workload completes slightly faster. 4.20.0-rc6 4.20.0-rc6 mmotm-20181210 noremote-v2r14 Allocation stalls 19156.00 3627.00 Fewer stalls which is always a plus. THP fault alloc 77804.00 84618.00 THP fault fallback 7628.00 816.00 THP collapse alloc 12.00 0.00 THP collapse fail 0.00 0.00 THP split 56921.00 56920.00 THP split failed 1982.00 116.00 Compaction stalls 36350.00 25541.00 Compaction success 17491.00 22651.00 Compaction failures 18859.00 2890.00 Compaction efficiency 48.12 88.68 Compaction efficiency is increased a lot (efficiency is a basic measure of success vs failure). Previously almost half of the THP requests failed. Page migrate success 10200844.00 7802473.00 Page migrate failure 3703.00 409.00 Compaction pages isolated 23093029.00 16532642.00 Compaction migrate scanned 28454655.00 8976143.00 Compaction free scanned 717517120.00 3632762.00 Compact scan efficiency 3.97 247.09 Migration scanning is down 32%, free scanning is down 99.5%. Scan efficiency is interesting because it's a measure of how many pages the free scanner examines for one migration source. Before the series, we had to scan *way* more pages to find a free page where as now we scan *fewer* pages to find a migration target due to the use of free lists. Kcompactd wake 1.00 9.00 Kcompactd migrate scanned 14023.00 13318.00 Kcompactd free scanned 6932.00 6643.00 Minor improvements for kcompactd but for this workload, it was barely active. I'll rebase and repost in the new year and I think it should be considered a prerequisite before considering the removal of the linear scanning. It'll be impossible to remove completely due to memory isoluation. If built on this series I would imagine that it would take the following approach. o The migration scanner remains linear or mostly linear (series uses free page lists to get hints on where suitable migration sources are) o The free scanner would be purely based on the free lists i.e. fast_isolate_freepages would be the only scanner o The migration scanner would need to be strict about obeying the skip bit to avoid picking a migration source that was previously a migration target o The exit condition for compaction is not when scanners meet but when fast_isolate_freepages cannot find any pageblock that is MIGRATE_MOVABLE && !pageblock_skip -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-22 12:08 ` Mel Gorman 0 siblings, 0 replies; 154+ messages in thread From: Mel Gorman @ 2018-12-22 12:08 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 8039 bytes --] On Fri, Dec 21, 2018 at 02:18:45PM -0800, David Rientjes wrote: > On Fri, 14 Dec 2018, Vlastimil Babka wrote: > > > > It would be interesting to know if anybody has tried using the per-zone > > > free_area's to determine migration targets and set a bit if it should be > > > considered a migration source or a migration target. If all pages for a > > > pageblock are not on free_areas, they are fully used. > > > > Repurposing/adding a new pageblock bit was in my mind to help multiple > > compactors not undo each other's work in the scheme where there's no > > free page scanner, but I didn't implement it yet. > > > > It looks like Mel has a series posted that still is implemented with > linear scans through memory, so I'm happy to move the discussion there; I > think the goal for compaction with regard to this thread is determining > whether reclaim in the page allocator would actually be useful and > targeted reclaim to make memory available for isolate_freepages() could be > expensive. I'd hope that we could move in a direction where compaction > doesn't care where the pageblock is and does the minimal amount of work > possible to make a high-order page available, not sure if that's possible > with a linear scan. I'll take a look at Mel's series though. That series has evolved significantly because there was a lot of missing pieces. While it's somewhat ready other than badly written changelogs, I didn't post it because I'm going offline and wouldn't respond to feedback and I imagine others are offline too and unavailable for review. Besides, the merge window is about to open and I know there are patches in Andrews tree for mainline that should be taken into account. The series is now 25 patches long and covers a lot of pre-requisites that would be necessary before removing the linear scanner. What is critical for a purely free-list scanner is that the exit conditions are identified and the series provides a lot of the pieces. For example, a non-linear scanner must properly control skip bits and isolate pageblocks from multiple compaction instances which this series does. The main takeawy from the series is that it reduces system CPU usage by 17%, reduces free scan rates by 99.5% and increases THP allocation success rates by 33% giving almost 99% allocation success rates. It also; o Isolates pageblocks for a single compaction instance o Synchronises async/sync scanners when appropriate to reduce rescanning o Identifies when a pageblock is being rescanned and is "sticky" and makes forward progress instead of looping excessively o Smarter logic when clearing pageblock skip bits so reduce scanning o Various different methods for reducing unnecessary scanning o Better handling of contention o Avoids compaction of remote nodes in direct compaction context If you do not want to wait until the new year, it's at git://git.kernel.org/pub/scm/linux/kernel/git/mel/linux.git mm-fast-compact-v2r15 Preliminary results based on thpscale using MADV_HUGEPAGE to allocate huge pages on a fragmented system. thpscale Fault Latencies 4.20.0-rc6 4.20.0-rc6 mmotm-20181210 noremote-v2r14 Amean fault-both-1 864.83 ( 0.00%) 1006.88 * -16.43%* Amean fault-both-3 3566.05 ( 0.00%) 2460.97 * 30.99%* Amean fault-both-5 5685.02 ( 0.00%) 4052.92 * 28.71%* Amean fault-both-7 7289.40 ( 0.00%) 5929.65 ( 18.65%) Amean fault-both-12 10937.46 ( 0.00%) 8870.53 ( 18.90%) Amean fault-both-18 15440.48 ( 0.00%) 11464.86 * 25.75%* Amean fault-both-24 15345.83 ( 0.00%) 13040.01 * 15.03%* Amean fault-both-30 20159.73 ( 0.00%) 16618.73 * 17.56%* Amean fault-both-32 20843.51 ( 0.00%) 14401.25 * 30.91%* Fault latency (either huge or base) is mostly improved even when 32 tasks are trying to allocate huge pages on an 8-CPU single socket machine where contention is a factor thpscale Percentage Faults Huge 4.20.0-rc6 4.20.0-rc6 mmotm-20181210 noremote-v2r14 Percentage huge-1 96.03 ( 0.00%) 96.94 ( 0.95%) Percentage huge-3 71.43 ( 0.00%) 95.43 ( 33.60%) Percentage huge-5 70.44 ( 0.00%) 96.85 ( 37.48%) Percentage huge-7 70.39 ( 0.00%) 94.77 ( 34.63%) Percentage huge-12 71.53 ( 0.00%) 98.07 ( 37.11%) Percentage huge-18 70.61 ( 0.00%) 98.42 ( 39.38%) Percentage huge-24 71.84 ( 0.00%) 97.85 ( 36.20%) Percentage huge-30 69.94 ( 0.00%) 98.13 ( 40.31%) Percentage huge-32 66.92 ( 0.00%) 97.79 ( 46.13%) 96-98% of THP requests get huge pages on request 4.20.0-rc6 4.20.0-rc6 mmotm-20181210noremote-v2r14 User 27.30 27.86 System 192.70 159.42 Elapsed 580.13 571.98 System CPU usage is reduced so we get more huge pages for less work and the workload completes slightly faster. 4.20.0-rc6 4.20.0-rc6 mmotm-20181210 noremote-v2r14 Allocation stalls 19156.00 3627.00 Fewer stalls which is always a plus. THP fault alloc 77804.00 84618.00 THP fault fallback 7628.00 816.00 THP collapse alloc 12.00 0.00 THP collapse fail 0.00 0.00 THP split 56921.00 56920.00 THP split failed 1982.00 116.00 Compaction stalls 36350.00 25541.00 Compaction success 17491.00 22651.00 Compaction failures 18859.00 2890.00 Compaction efficiency 48.12 88.68 Compaction efficiency is increased a lot (efficiency is a basic measure of success vs failure). Previously almost half of the THP requests failed. Page migrate success 10200844.00 7802473.00 Page migrate failure 3703.00 409.00 Compaction pages isolated 23093029.00 16532642.00 Compaction migrate scanned 28454655.00 8976143.00 Compaction free scanned 717517120.00 3632762.00 Compact scan efficiency 3.97 247.09 Migration scanning is down 32%, free scanning is down 99.5%. Scan efficiency is interesting because it's a measure of how many pages the free scanner examines for one migration source. Before the series, we had to scan *way* more pages to find a free page where as now we scan *fewer* pages to find a migration target due to the use of free lists. Kcompactd wake 1.00 9.00 Kcompactd migrate scanned 14023.00 13318.00 Kcompactd free scanned 6932.00 6643.00 Minor improvements for kcompactd but for this workload, it was barely active. I'll rebase and repost in the new year and I think it should be considered a prerequisite before considering the removal of the linear scanning. It'll be impossible to remove completely due to memory isoluation. If built on this series I would imagine that it would take the following approach. o The migration scanner remains linear or mostly linear (series uses free page lists to get hints on where suitable migration sources are) o The free scanner would be purely based on the free lists i.e. fast_isolate_freepages would be the only scanner o The migration scanner would need to be strict about obeying the skip bit to avoid picking a migration source that was previously a migration target o The exit condition for compaction is not when scanners meet but when fast_isolate_freepages cannot find any pageblock that is MIGRATE_MOVABLE && !pageblock_skip -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-14 21:04 ` David Rientjes @ 2018-12-14 23:11 ` Mel Gorman -1 siblings, 0 replies; 154+ messages in thread From: Mel Gorman @ 2018-12-14 23:11 UTC (permalink / raw) To: David Rientjes Cc: Vlastimil Babka, Andrea Arcangeli, Linus Torvalds, Michal Hocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Fri, Dec 14, 2018 at 01:04:11PM -0800, David Rientjes wrote: > On Wed, 12 Dec 2018, Vlastimil Babka wrote: > > > > Regarding the role of direct reclaim in the allocator, I think we need > > > work on the feedback from compaction to determine whether it's worthwhile. > > > That's difficult because of the point I continue to bring up: > > > isolate_freepages() is not necessarily always able to access this freed > > > memory. > > > > That's one of the *many* reasons why having free base pages doesn't > > guarantee compaction success. We can and will improve on that. But I > > don't think it would be e.g. practical to check the pfns of free pages > > wrt compaction scanner positions and decide based on that. > > Yeah, agreed. Rather than proposing that memory is only reclaimed if its > known that it can be accessible to isolate_freepages(), I'm wondering > about the implementation of the freeing scanner entirely. > > In other words, I think there is a lot of potential stranding that occurs > for both scanners that could otherwise result in completely free > pageblocks. If there a single movable page present near the end of the > zone in an otherwise fully free pageblock, surely we can do better than > the current implementation that would never consider this very easy to > compact memory. > While it's somewhat premature, I posted a series before I had a full set of results because it uses free lists to reduce searches and reduces inference between multiple scanners. Preliminary results indicated it boosted allocation success rates by 20%ish, reduced migration scanning by 99% and free scanning by 27%. > The same problem occurs for the migration scanner where we can iterate > over a ton of free memory that is never considered a suitable migration > target. The implementation that attempts to migrate all memory toward the > end of the zone penalizes the freeing scanner when it is reset: we just > iterate over a ton of used pages. > Yes, partially addressed in series. It can be improved significantly but it hit a boundary condition near the points where compaction scanners meet. I dropped the patch in question as it needs more thought on how to deal with the boundary condition without remigrating the blocks close to it. Besides, at 14 patches, it would probably be best to get that reviewed and finalised before building upon it further so review would be welcome. > Has anybody tried a migration scanner that isn't linearly based, rather > finding the highest-order free page of the same migratetype, iterating the > pages of its pageblock, and using this to determine whether the actual > migration will be worthwhile or not? I could imagine pageblock_skip being > repurposed for this as the heuristic. > Yes, but it has downsides. Redoing the same work on pageblocks, tracking state and tracking the exit conditions are tricky. I think it's best to squeeze the most out of the linear scanning first and the series is the first step in that. > It would be interesting to know if anybody has tried using the per-zone > free_area's to determine migration targets and set a bit if it should be > considered a migration source or a migration target. If all pages for a > pageblock are not on free_areas, they are fully used. > Series has patches which implement something similar to this idea. -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-14 23:11 ` Mel Gorman 0 siblings, 0 replies; 154+ messages in thread From: Mel Gorman @ 2018-12-14 23:11 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 3465 bytes --] On Fri, Dec 14, 2018 at 01:04:11PM -0800, David Rientjes wrote: > On Wed, 12 Dec 2018, Vlastimil Babka wrote: > > > > Regarding the role of direct reclaim in the allocator, I think we need > > > work on the feedback from compaction to determine whether it's worthwhile. > > > That's difficult because of the point I continue to bring up: > > > isolate_freepages() is not necessarily always able to access this freed > > > memory. > > > > That's one of the *many* reasons why having free base pages doesn't > > guarantee compaction success. We can and will improve on that. But I > > don't think it would be e.g. practical to check the pfns of free pages > > wrt compaction scanner positions and decide based on that. > > Yeah, agreed. Rather than proposing that memory is only reclaimed if its > known that it can be accessible to isolate_freepages(), I'm wondering > about the implementation of the freeing scanner entirely. > > In other words, I think there is a lot of potential stranding that occurs > for both scanners that could otherwise result in completely free > pageblocks. If there a single movable page present near the end of the > zone in an otherwise fully free pageblock, surely we can do better than > the current implementation that would never consider this very easy to > compact memory. > While it's somewhat premature, I posted a series before I had a full set of results because it uses free lists to reduce searches and reduces inference between multiple scanners. Preliminary results indicated it boosted allocation success rates by 20%ish, reduced migration scanning by 99% and free scanning by 27%. > The same problem occurs for the migration scanner where we can iterate > over a ton of free memory that is never considered a suitable migration > target. The implementation that attempts to migrate all memory toward the > end of the zone penalizes the freeing scanner when it is reset: we just > iterate over a ton of used pages. > Yes, partially addressed in series. It can be improved significantly but it hit a boundary condition near the points where compaction scanners meet. I dropped the patch in question as it needs more thought on how to deal with the boundary condition without remigrating the blocks close to it. Besides, at 14 patches, it would probably be best to get that reviewed and finalised before building upon it further so review would be welcome. > Has anybody tried a migration scanner that isn't linearly based, rather > finding the highest-order free page of the same migratetype, iterating the > pages of its pageblock, and using this to determine whether the actual > migration will be worthwhile or not? I could imagine pageblock_skip being > repurposed for this as the heuristic. > Yes, but it has downsides. Redoing the same work on pageblocks, tracking state and tracking the exit conditions are tricky. I think it's best to squeeze the most out of the linear scanning first and the series is the first step in that. > It would be interesting to know if anybody has tried using the per-zone > free_area's to determine migration targets and set a bit if it should be > considered a migration source or a migration target. If all pages for a > pageblock are not on free_areas, they are fully used. > Series has patches which implement something similar to this idea. -- Mel Gorman SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-14 23:11 ` Mel Gorman @ 2018-12-21 22:15 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-21 22:15 UTC (permalink / raw) To: Mel Gorman Cc: Vlastimil Babka, Andrea Arcangeli, Linus Torvalds, Michal Hocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Fri, 14 Dec 2018, Mel Gorman wrote: > > In other words, I think there is a lot of potential stranding that occurs > > for both scanners that could otherwise result in completely free > > pageblocks. If there a single movable page present near the end of the > > zone in an otherwise fully free pageblock, surely we can do better than > > the current implementation that would never consider this very easy to > > compact memory. > > > > While it's somewhat premature, I posted a series before I had a full set > of results because it uses free lists to reduce searches and reduces > inference between multiple scanners. Preliminary results indicated it > boosted allocation success rates by 20%ish, reduced migration scanning > by 99% and free scanning by 27%. > Always good to have code to look at, I'll take a closer look. I've unfortunately been distracted with other kernel issues lately :/ ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-21 22:15 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-21 22:15 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 930 bytes --] On Fri, 14 Dec 2018, Mel Gorman wrote: > > In other words, I think there is a lot of potential stranding that occurs > > for both scanners that could otherwise result in completely free > > pageblocks. If there a single movable page present near the end of the > > zone in an otherwise fully free pageblock, surely we can do better than > > the current implementation that would never consider this very easy to > > compact memory. > > > > While it's somewhat premature, I posted a series before I had a full set > of results because it uses free lists to reduce searches and reduces > inference between multiple scanners. Preliminary results indicated it > boosted allocation success rates by 20%ish, reduced migration scanning > by 99% and free scanning by 27%. > Always good to have code to look at, I'll take a closer look. I've unfortunately been distracted with other kernel issues lately :/ ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-10 4:49 ` Andrea Arcangeli @ 2018-12-12 10:44 ` Andrea Arcangeli -1 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-12 10:44 UTC (permalink / raw) To: David Rientjes Cc: Linus Torvalds, mgorman, Vlastimil Babka, Michal Hocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan Hello, I now found a two socket EPYC (is this Naples?) to try to confirm the THP effect of intra-socket THP. CPU(s): 128 On-line CPU(s) list: 0-127 Thread(s) per core: 2 Core(s) per socket: 32 Socket(s): 2 NUMA node(s): 8 NUMA node0 CPU(s): 0-7,64-71 NUMA node1 CPU(s): 8-15,72-79 NUMA node2 CPU(s): 16-23,80-87 NUMA node3 CPU(s): 24-31,88-95 NUMA node4 CPU(s): 32-39,96-103 NUMA node5 CPU(s): 40-47,104-111 NUMA node6 CPU(s): 48-55,112-119 NUMA node7 CPU(s): 56-63,120-127 # numactl --hardware available: 8 nodes (0-7) node 0 cpus: 0 1 2 3 4 5 6 7 64 65 66 67 68 69 70 71 node 0 size: 32658 MB node 0 free: 31554 MB node 1 cpus: 8 9 10 11 12 13 14 15 72 73 74 75 76 77 78 79 node 1 size: 32767 MB node 1 free: 31854 MB node 2 cpus: 16 17 18 19 20 21 22 23 80 81 82 83 84 85 86 87 node 2 size: 32767 MB node 2 free: 31535 MB node 3 cpus: 24 25 26 27 28 29 30 31 88 89 90 91 92 93 94 95 node 3 size: 32767 MB node 3 free: 31777 MB node 4 cpus: 32 33 34 35 36 37 38 39 96 97 98 99 100 101 102 103 node 4 size: 32767 MB node 4 free: 31949 MB node 5 cpus: 40 41 42 43 44 45 46 47 104 105 106 107 108 109 110 111 node 5 size: 32767 MB node 5 free: 31957 MB node 6 cpus: 48 49 50 51 52 53 54 55 112 113 114 115 116 117 118 119 node 6 size: 32767 MB node 6 free: 31945 MB node 7 cpus: 56 57 58 59 60 61 62 63 120 121 122 123 124 125 126 127 node 7 size: 32767 MB node 7 free: 31958 MB node distances: node 0 1 2 3 4 5 6 7 0: 10 16 16 16 32 32 32 32 1: 16 10 16 16 32 32 32 32 2: 16 16 10 16 32 32 32 32 3: 16 16 16 10 32 32 32 32 4: 32 32 32 32 10 16 16 16 5: 32 32 32 32 16 10 16 16 6: 32 32 32 32 16 16 10 16 7: 32 32 32 32 16 16 16 10 # for i in 0 8 16 24 32 40 48 56; do numactl -m 0 -C $i /tmp/numa-thp-bench; done random writes MADV_HUGEPAGE 17622885 usec random writes MADV_NOHUGEPAGE 25316593 usec random writes MADV_NOHUGEPAGE 25291927 usec random writes MADV_HUGEPAGE 17672446 usec random writes MADV_HUGEPAGE 25698555 usec random writes MADV_NOHUGEPAGE 36413941 usec random writes MADV_NOHUGEPAGE 36402155 usec random writes MADV_HUGEPAGE 25689574 usec random writes MADV_HUGEPAGE 25136558 usec random writes MADV_NOHUGEPAGE 35562724 usec random writes MADV_NOHUGEPAGE 35504708 usec random writes MADV_HUGEPAGE 25123186 usec random writes MADV_HUGEPAGE 25137002 usec random writes MADV_NOHUGEPAGE 35577429 usec random writes MADV_NOHUGEPAGE 35582865 usec random writes MADV_HUGEPAGE 25116561 usec random writes MADV_HUGEPAGE 40281721 usec random writes MADV_NOHUGEPAGE 56891233 usec random writes MADV_NOHUGEPAGE 56924134 usec random writes MADV_HUGEPAGE 40286512 usec random writes MADV_HUGEPAGE 40377662 usec random writes MADV_NOHUGEPAGE 56731400 usec random writes MADV_NOHUGEPAGE 56443959 usec random writes MADV_HUGEPAGE 40379022 usec random writes MADV_HUGEPAGE 33907588 usec random writes MADV_NOHUGEPAGE 47609976 usec random writes MADV_NOHUGEPAGE 47523481 usec random writes MADV_HUGEPAGE 33881974 usec random writes MADV_HUGEPAGE 40809719 usec random writes MADV_NOHUGEPAGE 57148321 usec random writes MADV_NOHUGEPAGE 57164499 usec random writes MADV_HUGEPAGE 40802979 usec # grep EPYC /proc/cpuinfo |head -1 model name : AMD EPYC 7601 32-Core Processor I suppose node 0-1-2-3 are socket 0 and node 4-5-6-7 are socket 1. With the ram kept in nodeid 0, cpuid 0 is NUMA local, cpuid 8,16,24 are NUMA intrasocket remote and cpuid 32 40 48 56 are NUMA intersocket remote. local 4k -> local THP: +43.6% improvement local 4k -> intersocket remote THP: -1.4% intersocket remote 4k -> intersocket remote THP: +41.6% local 4k -> intersocket remote 4k: -30.4% local THP -> intersocket remote THP: -31.4% local 4k -> intrasocket remote THP: -37.15% (-25% on node 6?) intrasocket remote 4k -> intrasocket remote THP: +41.23% local 4k -> intrasocket remote 4k: -55.5% (-46% on node 6?) local THP -> intrasocket remote THP: -56.25% (-47% on node 6?) In short intrasocket is a whole lot more expensive (4k -55% THP -56%) than intersocket (4k -30% THP -31%)... as expected. The benefits of THP vs 4k remains the same for intrasocket (+41.23%) and intersocket (+41.6%) and local (+43.6%), also as expected. The above was measured on bare metal on guests the impact of THP as usual will be multiplied (I can try to measure that another time). So while before I couldn't confirm that THP didn't help intersocket, I think I can confirm it helps just like intrasocket and local now on this architecture. Especially intresocket the slowdown from remote THP compared to local 4k is a tiny -1% so in theory __GFP_THISNODE would at least need to switch to __GFP_THISSOCKET for this architecture.. (I'm not suggesting that, I'm talking in theory). Intersocket is even more favorable than a 2 node 1 socket threadripper and a 2 node (2 sockets?) skylake in fact even on bare metal. Losing the +41% THP benefit across all distances makes __GFP_THISNODE again questionable optimization, it only ever pays off in the intersocket case (-37% is an increase of compute time of +59% which is pretty bad and we should definitely have some logic that optimizes for it). However eliminating the possibility of remote THP doesn't look good, especially because the 4k allocation may end up being remote too if the node is full of cache (there is no __GFP_THISNODE set on 4k allocations...). __GFP_THISNODE made MADV_HUGEPAGE act a bit like a NUMA node reclaim hack embedded in MADV_HUGEPAGE: if you didn't set MADV_HUGEPAGE you'd potentially get more intrasocket remote 4k pages instead of local THPs thanks to the __GFP_THISNODE reclaim. I think with the current __GFP_THISNODE and HPAGE_PMD_SIZE hardcoding, you'll get a lot less local node memory when the local node is full of clean pagecache, because 4k allocations have no __GFP_THISNODE set, so you'll get a lot more of intrasocket remote 4k even when there's a ton of +41% faster intrasocket remote THP memory available. This is because it the new safe __GFP_THISNODE won't shrink the cache without mbind anymore. NUMA balancing must be enabled in a system like above and it should be able to optimize a lack of convergence as long as the workload can fit in a node (and if the workload doesn't fit in a node __GFP_THISNODE will backfire anyway). We need to keep thinking at how to optimize the case of preferring local 4k to remote THP in a way that won't backfire the moment the task in the CPU is moved to a different node, but __GFP_THISNODE set in the only single attempt of allocating THP memory in a THP fault, isn't the direction because without a __GFP_THISNODE-reclaim, less local 4k memory will be allocated once the node is full of cache and the remote THP will be totally ignored when they would perform better than remote 4k. Ignoring remote THP isn't the purpose of MADV_HUGEPAGE, quite the contrary. Thanks, Andrea ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-12 10:44 ` Andrea Arcangeli 0 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-12 10:44 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 7141 bytes --] Hello, I now found a two socket EPYC (is this Naples?) to try to confirm the THP effect of intra-socket THP. CPU(s): 128 On-line CPU(s) list: 0-127 Thread(s) per core: 2 Core(s) per socket: 32 Socket(s): 2 NUMA node(s): 8 NUMA node0 CPU(s): 0-7,64-71 NUMA node1 CPU(s): 8-15,72-79 NUMA node2 CPU(s): 16-23,80-87 NUMA node3 CPU(s): 24-31,88-95 NUMA node4 CPU(s): 32-39,96-103 NUMA node5 CPU(s): 40-47,104-111 NUMA node6 CPU(s): 48-55,112-119 NUMA node7 CPU(s): 56-63,120-127 # numactl --hardware available: 8 nodes (0-7) node 0 cpus: 0 1 2 3 4 5 6 7 64 65 66 67 68 69 70 71 node 0 size: 32658 MB node 0 free: 31554 MB node 1 cpus: 8 9 10 11 12 13 14 15 72 73 74 75 76 77 78 79 node 1 size: 32767 MB node 1 free: 31854 MB node 2 cpus: 16 17 18 19 20 21 22 23 80 81 82 83 84 85 86 87 node 2 size: 32767 MB node 2 free: 31535 MB node 3 cpus: 24 25 26 27 28 29 30 31 88 89 90 91 92 93 94 95 node 3 size: 32767 MB node 3 free: 31777 MB node 4 cpus: 32 33 34 35 36 37 38 39 96 97 98 99 100 101 102 103 node 4 size: 32767 MB node 4 free: 31949 MB node 5 cpus: 40 41 42 43 44 45 46 47 104 105 106 107 108 109 110 111 node 5 size: 32767 MB node 5 free: 31957 MB node 6 cpus: 48 49 50 51 52 53 54 55 112 113 114 115 116 117 118 119 node 6 size: 32767 MB node 6 free: 31945 MB node 7 cpus: 56 57 58 59 60 61 62 63 120 121 122 123 124 125 126 127 node 7 size: 32767 MB node 7 free: 31958 MB node distances: node 0 1 2 3 4 5 6 7 0: 10 16 16 16 32 32 32 32 1: 16 10 16 16 32 32 32 32 2: 16 16 10 16 32 32 32 32 3: 16 16 16 10 32 32 32 32 4: 32 32 32 32 10 16 16 16 5: 32 32 32 32 16 10 16 16 6: 32 32 32 32 16 16 10 16 7: 32 32 32 32 16 16 16 10 # for i in 0 8 16 24 32 40 48 56; do numactl -m 0 -C $i /tmp/numa-thp-bench; done random writes MADV_HUGEPAGE 17622885 usec random writes MADV_NOHUGEPAGE 25316593 usec random writes MADV_NOHUGEPAGE 25291927 usec random writes MADV_HUGEPAGE 17672446 usec random writes MADV_HUGEPAGE 25698555 usec random writes MADV_NOHUGEPAGE 36413941 usec random writes MADV_NOHUGEPAGE 36402155 usec random writes MADV_HUGEPAGE 25689574 usec random writes MADV_HUGEPAGE 25136558 usec random writes MADV_NOHUGEPAGE 35562724 usec random writes MADV_NOHUGEPAGE 35504708 usec random writes MADV_HUGEPAGE 25123186 usec random writes MADV_HUGEPAGE 25137002 usec random writes MADV_NOHUGEPAGE 35577429 usec random writes MADV_NOHUGEPAGE 35582865 usec random writes MADV_HUGEPAGE 25116561 usec random writes MADV_HUGEPAGE 40281721 usec random writes MADV_NOHUGEPAGE 56891233 usec random writes MADV_NOHUGEPAGE 56924134 usec random writes MADV_HUGEPAGE 40286512 usec random writes MADV_HUGEPAGE 40377662 usec random writes MADV_NOHUGEPAGE 56731400 usec random writes MADV_NOHUGEPAGE 56443959 usec random writes MADV_HUGEPAGE 40379022 usec random writes MADV_HUGEPAGE 33907588 usec random writes MADV_NOHUGEPAGE 47609976 usec random writes MADV_NOHUGEPAGE 47523481 usec random writes MADV_HUGEPAGE 33881974 usec random writes MADV_HUGEPAGE 40809719 usec random writes MADV_NOHUGEPAGE 57148321 usec random writes MADV_NOHUGEPAGE 57164499 usec random writes MADV_HUGEPAGE 40802979 usec # grep EPYC /proc/cpuinfo |head -1 model name : AMD EPYC 7601 32-Core Processor I suppose node 0-1-2-3 are socket 0 and node 4-5-6-7 are socket 1. With the ram kept in nodeid 0, cpuid 0 is NUMA local, cpuid 8,16,24 are NUMA intrasocket remote and cpuid 32 40 48 56 are NUMA intersocket remote. local 4k -> local THP: +43.6% improvement local 4k -> intersocket remote THP: -1.4% intersocket remote 4k -> intersocket remote THP: +41.6% local 4k -> intersocket remote 4k: -30.4% local THP -> intersocket remote THP: -31.4% local 4k -> intrasocket remote THP: -37.15% (-25% on node 6?) intrasocket remote 4k -> intrasocket remote THP: +41.23% local 4k -> intrasocket remote 4k: -55.5% (-46% on node 6?) local THP -> intrasocket remote THP: -56.25% (-47% on node 6?) In short intrasocket is a whole lot more expensive (4k -55% THP -56%) than intersocket (4k -30% THP -31%)... as expected. The benefits of THP vs 4k remains the same for intrasocket (+41.23%) and intersocket (+41.6%) and local (+43.6%), also as expected. The above was measured on bare metal on guests the impact of THP as usual will be multiplied (I can try to measure that another time). So while before I couldn't confirm that THP didn't help intersocket, I think I can confirm it helps just like intrasocket and local now on this architecture. Especially intresocket the slowdown from remote THP compared to local 4k is a tiny -1% so in theory __GFP_THISNODE would at least need to switch to __GFP_THISSOCKET for this architecture.. (I'm not suggesting that, I'm talking in theory). Intersocket is even more favorable than a 2 node 1 socket threadripper and a 2 node (2 sockets?) skylake in fact even on bare metal. Losing the +41% THP benefit across all distances makes __GFP_THISNODE again questionable optimization, it only ever pays off in the intersocket case (-37% is an increase of compute time of +59% which is pretty bad and we should definitely have some logic that optimizes for it). However eliminating the possibility of remote THP doesn't look good, especially because the 4k allocation may end up being remote too if the node is full of cache (there is no __GFP_THISNODE set on 4k allocations...). __GFP_THISNODE made MADV_HUGEPAGE act a bit like a NUMA node reclaim hack embedded in MADV_HUGEPAGE: if you didn't set MADV_HUGEPAGE you'd potentially get more intrasocket remote 4k pages instead of local THPs thanks to the __GFP_THISNODE reclaim. I think with the current __GFP_THISNODE and HPAGE_PMD_SIZE hardcoding, you'll get a lot less local node memory when the local node is full of clean pagecache, because 4k allocations have no __GFP_THISNODE set, so you'll get a lot more of intrasocket remote 4k even when there's a ton of +41% faster intrasocket remote THP memory available. This is because it the new safe __GFP_THISNODE won't shrink the cache without mbind anymore. NUMA balancing must be enabled in a system like above and it should be able to optimize a lack of convergence as long as the workload can fit in a node (and if the workload doesn't fit in a node __GFP_THISNODE will backfire anyway). We need to keep thinking at how to optimize the case of preferring local 4k to remote THP in a way that won't backfire the moment the task in the CPU is moved to a different node, but __GFP_THISNODE set in the only single attempt of allocating THP memory in a THP fault, isn't the direction because without a __GFP_THISNODE-reclaim, less local 4k memory will be allocated once the node is full of cache and the remote THP will be totally ignored when they would perform better than remote 4k. Ignoring remote THP isn't the purpose of MADV_HUGEPAGE, quite the contrary. Thanks, Andrea ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-06 23:43 ` David Rientjes @ 2019-04-15 11:48 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2019-04-15 11:48 UTC (permalink / raw) To: David Rientjes Cc: Linus Torvalds, Andrea Arcangeli, mgorman, Vlastimil Babka, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Thu 06-12-18 15:43:26, David Rientjes wrote: > On Wed, 5 Dec 2018, Linus Torvalds wrote: > > > > Ok, I've applied David's latest patch. > > > > > > I'm not at all objecting to tweaking this further, I just didn't want > > > to have this regression stand. > > > > Hmm. Can somebody (David?) also perhaps try to state what the > > different latency impacts end up being? I suspect it's been mentioned > > several times during the argument, but it would be nice to have a > > "going forward, this is what I care about" kind of setup for good > > default behavior. > > > > I'm in the process of writing a more complete test case for this but I > benchmarked a few platforms based solely on remote hugepages vs local > small pages vs remote hugepages. My previous numbers were based on data > from actual workloads. Has this materialized into anything we can use? We plan to discuss this particular topic at the LSFMM this year and it would be great to have something to play with. I am quite nervious that we have left quite a common case with a bad performance based on a complain that we cannot really reproduce so it is really hard to move on. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2019-04-15 11:48 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2019-04-15 11:48 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 1213 bytes --] On Thu 06-12-18 15:43:26, David Rientjes wrote: > On Wed, 5 Dec 2018, Linus Torvalds wrote: > > > > Ok, I've applied David's latest patch. > > > > > > I'm not at all objecting to tweaking this further, I just didn't want > > > to have this regression stand. > > > > Hmm. Can somebody (David?) also perhaps try to state what the > > different latency impacts end up being? I suspect it's been mentioned > > several times during the argument, but it would be nice to have a > > "going forward, this is what I care about" kind of setup for good > > default behavior. > > > > I'm in the process of writing a more complete test case for this but I > benchmarked a few platforms based solely on remote hugepages vs local > small pages vs remote hugepages. My previous numbers were based on data > from actual workloads. Has this materialized into anything we can use? We plan to discuss this particular topic at the LSFMM this year and it would be great to have something to play with. I am quite nervious that we have left quite a common case with a bad performance based on a complain that we cannot really reproduce so it is really hard to move on. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-05 23:36 ` Andrea Arcangeli @ 2018-12-06 0:18 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-06 0:18 UTC (permalink / raw) To: Andrea Arcangeli Cc: Linus Torvalds, mgorman, Vlastimil Babka, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Wed, 5 Dec 2018, Andrea Arcangeli wrote: > __GFP_COMPACT_ONLY gave an hope it could give some middle ground but > it shows awful compaction results, it basically destroys compaction > effectiveness and we know why (COMPACT_SKIPPED must call reclaim or > compaction can't succeed because there's not enough free memory in the > node). If somebody used MADV_HUGEPAGE compaction should still work and > not fail like that. Compaction would fail to be effective even in the > local node where __GFP_THISNODE didn't fail. Worst of all it'd fail > even on non-NUMA systems (that would be easy to fix though by making > the HPAGE_PMD_ORDER check conditional to NUMA being enabled at > runtime). > Note that in addition to COMPACT_SKIPPED that you mention, compaction can fail with COMPACT_COMPLETE, meaning the full scan has finished without freeing a hugepage, or COMPACT_DEFERRED, meaning that doing another scan is unlikely to produce a different result. COMPACT_SKIPPED makes sense to do reclaim if it can become accessible to isolate_freepages() and hopefully another allocator does not allocate from these newly freed pages before compaction can scan the zone again. For COMPACT_COMPLETE and COMPACT_DEFERRED, reclaim is unlikely to ever help. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-06 0:18 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-06 0:18 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 1280 bytes --] On Wed, 5 Dec 2018, Andrea Arcangeli wrote: > __GFP_COMPACT_ONLY gave an hope it could give some middle ground but > it shows awful compaction results, it basically destroys compaction > effectiveness and we know why (COMPACT_SKIPPED must call reclaim or > compaction can't succeed because there's not enough free memory in the > node). If somebody used MADV_HUGEPAGE compaction should still work and > not fail like that. Compaction would fail to be effective even in the > local node where __GFP_THISNODE didn't fail. Worst of all it'd fail > even on non-NUMA systems (that would be easy to fix though by making > the HPAGE_PMD_ORDER check conditional to NUMA being enabled at > runtime). > Note that in addition to COMPACT_SKIPPED that you mention, compaction can fail with COMPACT_COMPLETE, meaning the full scan has finished without freeing a hugepage, or COMPACT_DEFERRED, meaning that doing another scan is unlikely to produce a different result. COMPACT_SKIPPED makes sense to do reclaim if it can become accessible to isolate_freepages() and hopefully another allocator does not allocate from these newly freed pages before compaction can scan the zone again. For COMPACT_COMPLETE and COMPACT_DEFERRED, reclaim is unlikely to ever help. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-06 0:18 ` David Rientjes @ 2018-12-06 0:54 ` Andrea Arcangeli -1 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-06 0:54 UTC (permalink / raw) To: David Rientjes Cc: Linus Torvalds, mgorman, Vlastimil Babka, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On Wed, Dec 05, 2018 at 04:18:14PM -0800, David Rientjes wrote: > On Wed, 5 Dec 2018, Andrea Arcangeli wrote: > > > __GFP_COMPACT_ONLY gave an hope it could give some middle ground but > > it shows awful compaction results, it basically destroys compaction > > effectiveness and we know why (COMPACT_SKIPPED must call reclaim or > > compaction can't succeed because there's not enough free memory in the > > node). If somebody used MADV_HUGEPAGE compaction should still work and > > not fail like that. Compaction would fail to be effective even in the > > local node where __GFP_THISNODE didn't fail. Worst of all it'd fail > > even on non-NUMA systems (that would be easy to fix though by making > > the HPAGE_PMD_ORDER check conditional to NUMA being enabled at > > runtime). > > > > Note that in addition to COMPACT_SKIPPED that you mention, compaction can > fail with COMPACT_COMPLETE, meaning the full scan has finished without > freeing a hugepage, or COMPACT_DEFERRED, meaning that doing another scan > is unlikely to produce a different result. COMPACT_SKIPPED makes sense to > do reclaim if it can become accessible to isolate_freepages() and > hopefully another allocator does not allocate from these newly freed pages > before compaction can scan the zone again. For COMPACT_COMPLETE and > COMPACT_DEFERRED, reclaim is unlikely to ever help. The COMPACT_COMPLETE and (COMPACT_PARTIAL_SKIPPED for that matter) seems just a mistake in the max() evaluation try_to_compact_pages() that let it return COMPACT_COMPLETE and COMPACT_PARTIAL_SKIPPED. I think it should just return COMPACT_DEFERRED in those two cases and it should be enforced forced for all prio. There are really only 3 cases that matter for the caller: 1) succeed -> we got the page 2) defer -> we failed (caller won't care about why) 3) skipped -> failed because not enough 4k freed -> reclaim must be invoked then compaction can be retried PARTIAL_SKIPPED/COMPLETE both fall into 2) above so for the caller they should be treated the same way. It doesn't seem very concerning that it may try like if it succeeded and do a spurious single reclaim invocation, but it's good to fix this and take the COMPACT_DEFERRED nopage path in the __GFP_NORETRY case. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-06 0:54 ` Andrea Arcangeli 0 siblings, 0 replies; 154+ messages in thread From: Andrea Arcangeli @ 2018-12-06 0:54 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2288 bytes --] On Wed, Dec 05, 2018 at 04:18:14PM -0800, David Rientjes wrote: > On Wed, 5 Dec 2018, Andrea Arcangeli wrote: > > > __GFP_COMPACT_ONLY gave an hope it could give some middle ground but > > it shows awful compaction results, it basically destroys compaction > > effectiveness and we know why (COMPACT_SKIPPED must call reclaim or > > compaction can't succeed because there's not enough free memory in the > > node). If somebody used MADV_HUGEPAGE compaction should still work and > > not fail like that. Compaction would fail to be effective even in the > > local node where __GFP_THISNODE didn't fail. Worst of all it'd fail > > even on non-NUMA systems (that would be easy to fix though by making > > the HPAGE_PMD_ORDER check conditional to NUMA being enabled at > > runtime). > > > > Note that in addition to COMPACT_SKIPPED that you mention, compaction can > fail with COMPACT_COMPLETE, meaning the full scan has finished without > freeing a hugepage, or COMPACT_DEFERRED, meaning that doing another scan > is unlikely to produce a different result. COMPACT_SKIPPED makes sense to > do reclaim if it can become accessible to isolate_freepages() and > hopefully another allocator does not allocate from these newly freed pages > before compaction can scan the zone again. For COMPACT_COMPLETE and > COMPACT_DEFERRED, reclaim is unlikely to ever help. The COMPACT_COMPLETE and (COMPACT_PARTIAL_SKIPPED for that matter) seems just a mistake in the max() evaluation try_to_compact_pages() that let it return COMPACT_COMPLETE and COMPACT_PARTIAL_SKIPPED. I think it should just return COMPACT_DEFERRED in those two cases and it should be enforced forced for all prio. There are really only 3 cases that matter for the caller: 1) succeed -> we got the page 2) defer -> we failed (caller won't care about why) 3) skipped -> failed because not enough 4k freed -> reclaim must be invoked then compaction can be retried PARTIAL_SKIPPED/COMPLETE both fall into 2) above so for the caller they should be treated the same way. It doesn't seem very concerning that it may try like if it succeeded and do a spurious single reclaim invocation, but it's good to fix this and take the COMPACT_DEFERRED nopage path in the __GFP_NORETRY case. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-06 0:54 ` Andrea Arcangeli @ 2018-12-06 9:23 ` Vlastimil Babka -1 siblings, 0 replies; 154+ messages in thread From: Vlastimil Babka @ 2018-12-06 9:23 UTC (permalink / raw) To: Andrea Arcangeli, David Rientjes Cc: Linus Torvalds, mgorman, mhocko, ying.huang, s.priebe, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan On 12/6/18 1:54 AM, Andrea Arcangeli wrote: > On Wed, Dec 05, 2018 at 04:18:14PM -0800, David Rientjes wrote: >> On Wed, 5 Dec 2018, Andrea Arcangeli wrote: >> >> Note that in addition to COMPACT_SKIPPED that you mention, compaction can >> fail with COMPACT_COMPLETE, meaning the full scan has finished without >> freeing a hugepage, or COMPACT_DEFERRED, meaning that doing another scan >> is unlikely to produce a different result. COMPACT_SKIPPED makes sense to >> do reclaim if it can become accessible to isolate_freepages() and >> hopefully another allocator does not allocate from these newly freed pages >> before compaction can scan the zone again. For COMPACT_COMPLETE and >> COMPACT_DEFERRED, reclaim is unlikely to ever help. > > The COMPACT_COMPLETE and (COMPACT_PARTIAL_SKIPPED for that matter) > seems just a mistake in the max() evaluation try_to_compact_pages() > that let it return COMPACT_COMPLETE and COMPACT_PARTIAL_SKIPPED. I > think it should just return COMPACT_DEFERRED in those two cases and it > should be enforced forced for all prio. > > There are really only 3 cases that matter for the caller: > > 1) succeed -> we got the page > 2) defer -> we failed (caller won't care about why) > 3) skipped -> failed because not enough 4k freed -> reclaim must be invoked then > compaction can be retried > > PARTIAL_SKIPPED/COMPLETE both fall into 2) above so for the caller > they should be treated the same way. It doesn't seem very concerning > that it may try like if it succeeded and do a spurious single reclaim > invocation, but it's good to fix this and take the COMPACT_DEFERRED > nopage path in the __GFP_NORETRY case. Yeah good point. I wouldn't change the general logic of try_to_compact_pages() though, but the condition for __GFP_NORETRY can simply change to: if (compact_result != COMPACT_SKIPPED) goto nopage; I can make a patch ASAP together with a few others I think are needed, that should hopefully avoid the need for __GFP_COMPACT_ONLY or checks based on order. What's probably unavoidable though is adding back __GFP_NORETRY for madvised allocations (i.e. partially reverting 2516035499b95), but David was fine with that and your __GFP_ONLY_COMPACT approach effectively did it too. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-06 9:23 ` Vlastimil Babka 0 siblings, 0 replies; 154+ messages in thread From: Vlastimil Babka @ 2018-12-06 9:23 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2294 bytes --] On 12/6/18 1:54 AM, Andrea Arcangeli wrote: > On Wed, Dec 05, 2018 at 04:18:14PM -0800, David Rientjes wrote: >> On Wed, 5 Dec 2018, Andrea Arcangeli wrote: >> >> Note that in addition to COMPACT_SKIPPED that you mention, compaction can >> fail with COMPACT_COMPLETE, meaning the full scan has finished without >> freeing a hugepage, or COMPACT_DEFERRED, meaning that doing another scan >> is unlikely to produce a different result. COMPACT_SKIPPED makes sense to >> do reclaim if it can become accessible to isolate_freepages() and >> hopefully another allocator does not allocate from these newly freed pages >> before compaction can scan the zone again. For COMPACT_COMPLETE and >> COMPACT_DEFERRED, reclaim is unlikely to ever help. > > The COMPACT_COMPLETE and (COMPACT_PARTIAL_SKIPPED for that matter) > seems just a mistake in the max() evaluation try_to_compact_pages() > that let it return COMPACT_COMPLETE and COMPACT_PARTIAL_SKIPPED. I > think it should just return COMPACT_DEFERRED in those two cases and it > should be enforced forced for all prio. > > There are really only 3 cases that matter for the caller: > > 1) succeed -> we got the page > 2) defer -> we failed (caller won't care about why) > 3) skipped -> failed because not enough 4k freed -> reclaim must be invoked then > compaction can be retried > > PARTIAL_SKIPPED/COMPLETE both fall into 2) above so for the caller > they should be treated the same way. It doesn't seem very concerning > that it may try like if it succeeded and do a spurious single reclaim > invocation, but it's good to fix this and take the COMPACT_DEFERRED > nopage path in the __GFP_NORETRY case. Yeah good point. I wouldn't change the general logic of try_to_compact_pages() though, but the condition for __GFP_NORETRY can simply change to: if (compact_result != COMPACT_SKIPPED) goto nopage; I can make a patch ASAP together with a few others I think are needed, that should hopefully avoid the need for __GFP_COMPACT_ONLY or checks based on order. What's probably unavoidable though is adding back __GFP_NORETRY for madvised allocations (i.e. partially reverting 2516035499b95), but David was fine with that and your __GFP_ONLY_COMPACT approach effectively did it too. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 18:59 ` Michal Hocko @ 2018-12-03 20:39 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-03 20:39 UTC (permalink / raw) To: Michal Hocko Cc: Linus Torvalds, ying.huang, Andrea Arcangeli, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon, 3 Dec 2018, Michal Hocko wrote: > I have merely said that a better THP locality needs more work and during > the review discussion I have even volunteered to work on that. There > are other reclaim related fixes under work right now. All I am saying > is that MADV_TRANSHUGE having numa locality implications cannot satisfy > all the usecases and it is particurarly KVM that suffers from it. I think extending functionality so thp can be allocated remotely if truly desired is worthwhile just so long as it does not cause regressions for other users. I think that is separate from the swap storm regression that Andrea is reporting, however, since that would also exist even if we allowed remote thp allocations when the host is fully fragmented rather than only locally fragmented. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 20:39 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-03 20:39 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 813 bytes --] On Mon, 3 Dec 2018, Michal Hocko wrote: > I have merely said that a better THP locality needs more work and during > the review discussion I have even volunteered to work on that. There > are other reclaim related fixes under work right now. All I am saying > is that MADV_TRANSHUGE having numa locality implications cannot satisfy > all the usecases and it is particurarly KVM that suffers from it. I think extending functionality so thp can be allocated remotely if truly desired is worthwhile just so long as it does not cause regressions for other users. I think that is separate from the swap storm regression that Andrea is reporting, however, since that would also exist even if we allowed remote thp allocations when the host is fully fragmented rather than only locally fragmented. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 20:39 ` David Rientjes @ 2018-12-03 21:25 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-03 21:25 UTC (permalink / raw) To: David Rientjes Cc: Linus Torvalds, ying.huang, Andrea Arcangeli, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon 03-12-18 12:39:34, David Rientjes wrote: > On Mon, 3 Dec 2018, Michal Hocko wrote: > > > I have merely said that a better THP locality needs more work and during > > the review discussion I have even volunteered to work on that. There > > are other reclaim related fixes under work right now. All I am saying > > is that MADV_TRANSHUGE having numa locality implications cannot satisfy > > all the usecases and it is particurarly KVM that suffers from it. > > I think extending functionality so thp can be allocated remotely if truly > desired is worthwhile This is a complete NUMA policy antipatern that we have for all other user memory allocations. So far you have to be explicit for your numa requirements. You are trying to conflate NUMA api with MADV and that is just conflating two orthogonal things and that is just wrong. Let's put the __GFP_THISNODE issue aside. I do not remember you confirming that __GFP_COMPACT_ONLY patch is OK for you (sorry it might got lost in the emails storm from back then) but if that is the only agreeable solution for now then I can live with that. __GFP_NORETRY hack was shown to not work properly by Mel AFAIR. Again if I misremember then I am sorry and I can live with that. But conflating MADV_TRANSHUGE with an implicit numa placement policy and/or adding an opt-in for remote NUMA placing is completely backwards and a broken API which will likely bites us later. I sincerely hope we are not going to repeat mistakes from the past. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 21:25 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-03 21:25 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 1546 bytes --] On Mon 03-12-18 12:39:34, David Rientjes wrote: > On Mon, 3 Dec 2018, Michal Hocko wrote: > > > I have merely said that a better THP locality needs more work and during > > the review discussion I have even volunteered to work on that. There > > are other reclaim related fixes under work right now. All I am saying > > is that MADV_TRANSHUGE having numa locality implications cannot satisfy > > all the usecases and it is particurarly KVM that suffers from it. > > I think extending functionality so thp can be allocated remotely if truly > desired is worthwhile This is a complete NUMA policy antipatern that we have for all other user memory allocations. So far you have to be explicit for your numa requirements. You are trying to conflate NUMA api with MADV and that is just conflating two orthogonal things and that is just wrong. Let's put the __GFP_THISNODE issue aside. I do not remember you confirming that __GFP_COMPACT_ONLY patch is OK for you (sorry it might got lost in the emails storm from back then) but if that is the only agreeable solution for now then I can live with that. __GFP_NORETRY hack was shown to not work properly by Mel AFAIR. Again if I misremember then I am sorry and I can live with that. But conflating MADV_TRANSHUGE with an implicit numa placement policy and/or adding an opt-in for remote NUMA placing is completely backwards and a broken API which will likely bites us later. I sincerely hope we are not going to repeat mistakes from the past. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 21:25 ` Michal Hocko @ 2018-12-03 21:53 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-03 21:53 UTC (permalink / raw) To: Michal Hocko Cc: Linus Torvalds, ying.huang, Andrea Arcangeli, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon, 3 Dec 2018, Michal Hocko wrote: > > I think extending functionality so thp can be allocated remotely if truly > > desired is worthwhile > > This is a complete NUMA policy antipatern that we have for all other > user memory allocations. So far you have to be explicit for your numa > requirements. You are trying to conflate NUMA api with MADV and that is > just conflating two orthogonal things and that is just wrong. > No, the page allocator change for both my patch and __GFP_COMPACT_ONLY has nothing to do with any madvise() mode. It has to do with where thp allocations are preferred. Yes, this is different than other memory allocations where it doesn't cause a 13.9% access latency regression for the lifetime of a binary for users who back their text with hugepages. MADV_HUGEPAGE still has its purpose to try synchronous memory compaction at fault time under all thp defrag modes other than "never". The specific problem being reported here, and that both my patch and __GFP_COMPACT_ONLY address, is the pointless reclaim activity that does not assist in making compaction more successful. > Let's put the __GFP_THISNODE issue aside. I do not remember you > confirming that __GFP_COMPACT_ONLY patch is OK for you (sorry it might > got lost in the emails storm from back then) but if that is the only > agreeable solution for now then I can live with that. The discussion between my patch and Andrea's patch seemed to only be about whether this should be a gfp bit or not > __GFP_NORETRY hack > was shown to not work properly by Mel AFAIR. Again if I misremember then > I am sorry and I can live with that. Andrea's patch as posted in this thread sets __GFP_NORETRY for __GFP_ONLY_COMPACT, so both my patch and his patch require it. His patch gets this behavior for page faults by way of alloc_pages_vma(), mine gets it from modifying GFP_TRANSHUGE. > But conflating MADV_TRANSHUGE with > an implicit numa placement policy and/or adding an opt-in for remote > NUMA placing is completely backwards and a broken API which will likely > bites us later. I sincerely hope we are not going to repeat mistakes > from the past. Assuming s/MADV_TRANSHUGE/MADV_HUGEPAGE/. Again, this is *not* about the madvise(); it's specifically about the role of direct reclaim in the allocation of a transparent hugepage at fault time regardless of any madvise() because you can get the same behavior with defrag=always (and the inconsistent use of __GFP_NORETRY there that is fixed by both of our patches). ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-03 21:53 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-03 21:53 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2588 bytes --] On Mon, 3 Dec 2018, Michal Hocko wrote: > > I think extending functionality so thp can be allocated remotely if truly > > desired is worthwhile > > This is a complete NUMA policy antipatern that we have for all other > user memory allocations. So far you have to be explicit for your numa > requirements. You are trying to conflate NUMA api with MADV and that is > just conflating two orthogonal things and that is just wrong. > No, the page allocator change for both my patch and __GFP_COMPACT_ONLY has nothing to do with any madvise() mode. It has to do with where thp allocations are preferred. Yes, this is different than other memory allocations where it doesn't cause a 13.9% access latency regression for the lifetime of a binary for users who back their text with hugepages. MADV_HUGEPAGE still has its purpose to try synchronous memory compaction at fault time under all thp defrag modes other than "never". The specific problem being reported here, and that both my patch and __GFP_COMPACT_ONLY address, is the pointless reclaim activity that does not assist in making compaction more successful. > Let's put the __GFP_THISNODE issue aside. I do not remember you > confirming that __GFP_COMPACT_ONLY patch is OK for you (sorry it might > got lost in the emails storm from back then) but if that is the only > agreeable solution for now then I can live with that. The discussion between my patch and Andrea's patch seemed to only be about whether this should be a gfp bit or not > __GFP_NORETRY hack > was shown to not work properly by Mel AFAIR. Again if I misremember then > I am sorry and I can live with that. Andrea's patch as posted in this thread sets __GFP_NORETRY for __GFP_ONLY_COMPACT, so both my patch and his patch require it. His patch gets this behavior for page faults by way of alloc_pages_vma(), mine gets it from modifying GFP_TRANSHUGE. > But conflating MADV_TRANSHUGE with > an implicit numa placement policy and/or adding an opt-in for remote > NUMA placing is completely backwards and a broken API which will likely > bites us later. I sincerely hope we are not going to repeat mistakes > from the past. Assuming s/MADV_TRANSHUGE/MADV_HUGEPAGE/. Again, this is *not* about the madvise(); it's specifically about the role of direct reclaim in the allocation of a transparent hugepage at fault time regardless of any madvise() because you can get the same behavior with defrag=always (and the inconsistent use of __GFP_NORETRY there that is fixed by both of our patches). ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-03 21:53 ` David Rientjes @ 2018-12-04 8:48 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-04 8:48 UTC (permalink / raw) To: David Rientjes Cc: Linus Torvalds, ying.huang, Andrea Arcangeli, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Mon 03-12-18 13:53:21, David Rientjes wrote: > On Mon, 3 Dec 2018, Michal Hocko wrote: > > > > I think extending functionality so thp can be allocated remotely if truly > > > desired is worthwhile > > > > This is a complete NUMA policy antipatern that we have for all other > > user memory allocations. So far you have to be explicit for your numa > > requirements. You are trying to conflate NUMA api with MADV and that is > > just conflating two orthogonal things and that is just wrong. > > > > No, the page allocator change for both my patch and __GFP_COMPACT_ONLY has > nothing to do with any madvise() mode. It has to do with where thp > allocations are preferred. Yes, this is different than other memory > allocations where it doesn't cause a 13.9% access latency regression for > the lifetime of a binary for users who back their text with hugepages. > MADV_HUGEPAGE still has its purpose to try synchronous memory compaction > at fault time under all thp defrag modes other than "never". The specific > problem being reported here, and that both my patch and __GFP_COMPACT_ONLY > address, is the pointless reclaim activity that does not assist in making > compaction more successful. You do not address my concern though. Sure there are reclaim related issues. Nobody is questioning that. But that is only half of the problem. The thing I am really up to here is that reintroduction of __GFP_THISNODE, which you are pushing for, will conflate madvise mode resp. defrag=always with a numa placement policy because the allocation doesn't fallback to a remote node. And that is a fundamental problem and the antipattern I am talking about. Look at it this way. All normal allocations are utilizing all the available memory even though they might hit a remote latency penalty. If you do care about NUMA placement you have an API to enforce a specific placement. What is so different about THP to behave differently. Do we really want to later invent an API to actually allow to utilize all the memory? There are certainly usecases (that triggered the discussion previously) that do not mind the remote latency because all other benefits simply outweight it? That being said what should users who want to use all the memory do to use as many THPs as possible? -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-04 8:48 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-04 8:48 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2365 bytes --] On Mon 03-12-18 13:53:21, David Rientjes wrote: > On Mon, 3 Dec 2018, Michal Hocko wrote: > > > > I think extending functionality so thp can be allocated remotely if truly > > > desired is worthwhile > > > > This is a complete NUMA policy antipatern that we have for all other > > user memory allocations. So far you have to be explicit for your numa > > requirements. You are trying to conflate NUMA api with MADV and that is > > just conflating two orthogonal things and that is just wrong. > > > > No, the page allocator change for both my patch and __GFP_COMPACT_ONLY has > nothing to do with any madvise() mode. It has to do with where thp > allocations are preferred. Yes, this is different than other memory > allocations where it doesn't cause a 13.9% access latency regression for > the lifetime of a binary for users who back their text with hugepages. > MADV_HUGEPAGE still has its purpose to try synchronous memory compaction > at fault time under all thp defrag modes other than "never". The specific > problem being reported here, and that both my patch and __GFP_COMPACT_ONLY > address, is the pointless reclaim activity that does not assist in making > compaction more successful. You do not address my concern though. Sure there are reclaim related issues. Nobody is questioning that. But that is only half of the problem. The thing I am really up to here is that reintroduction of __GFP_THISNODE, which you are pushing for, will conflate madvise mode resp. defrag=always with a numa placement policy because the allocation doesn't fallback to a remote node. And that is a fundamental problem and the antipattern I am talking about. Look at it this way. All normal allocations are utilizing all the available memory even though they might hit a remote latency penalty. If you do care about NUMA placement you have an API to enforce a specific placement. What is so different about THP to behave differently. Do we really want to later invent an API to actually allow to utilize all the memory? There are certainly usecases (that triggered the discussion previously) that do not mind the remote latency because all other benefits simply outweight it? That being said what should users who want to use all the memory do to use as many THPs as possible? -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-04 8:48 ` Michal Hocko @ 2018-12-05 0:07 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-05 0:07 UTC (permalink / raw) To: Michal Hocko Cc: Linus Torvalds, ying.huang, Andrea Arcangeli, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Tue, 4 Dec 2018, Michal Hocko wrote: > The thing I am really up to here is that reintroduction of > __GFP_THISNODE, which you are pushing for, will conflate madvise mode > resp. defrag=always with a numa placement policy because the allocation > doesn't fallback to a remote node. > It isn't specific to MADV_HUGEPAGE, it is the policy for all transparent hugepage allocations, including defrag=always. We agree that MADV_HUGEPAGE is not exactly defined: does it mean try harder to allocate a hugepage locally, try compaction synchronous to the fault, allow remote fallback? It's undefined. The original intent was to be used when thp is disabled system wide (enabled set to "madvise") because its possible the rss of the process increases if backed by thp. That occurs either if faulting on a hugepage aligned area or based on max_ptes_none. So we have at least three possible policies that have evolved over time: preventing increased rss, direct compaction, remote fallback. Certainly not something that fits under a single madvise mode. > And that is a fundamental problem and the antipattern I am talking > about. Look at it this way. All normal allocations are utilizing all the > available memory even though they might hit a remote latency penalty. If > you do care about NUMA placement you have an API to enforce a specific > placement. What is so different about THP to behave differently. Do > we really want to later invent an API to actually allow to utilize all > the memory? There are certainly usecases (that triggered the discussion > previously) that do not mind the remote latency because all other > benefits simply outweight it? > What is different about THP is that on every platform I have measured, NUMA matters more than hugepages. Obviously if on Broadwell, Haswell, and Rome, remote hugepages were a performance win over local pages, this discussion would not be happening. Faulting local pages rather than local hugepages, if possible, is easy and doesn't require reclaim. Faulting remote pages rather than reclaiming local pages is easy in your scenario, it's non-disruptive. So to answer "what is so different about THP?", it's the performance data. The NUMA locality matters more than whether the pages are huge or not. We also have the added benefit of khugepaged being able to collapse pages locally if fragmentation improves rather than being stuck accessing a remote hugepage forever. > That being said what should users who want to use all the memory do to > use as many THPs as possible? If those users want to accept the performance degradation of allocating remote hugepages instead of local pages, that should likely be an extension, either madvise or prctl. That's not necessarily the usecase Andrea would have, I don't believe: he'd still prefer to compact memory locally and avoid the swap storm than allocate remotely. If impossible to reclaim locally for regular pages, remote hugepages may be more beneficial than remote pages. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-05 0:07 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-05 0:07 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 3083 bytes --] On Tue, 4 Dec 2018, Michal Hocko wrote: > The thing I am really up to here is that reintroduction of > __GFP_THISNODE, which you are pushing for, will conflate madvise mode > resp. defrag=always with a numa placement policy because the allocation > doesn't fallback to a remote node. > It isn't specific to MADV_HUGEPAGE, it is the policy for all transparent hugepage allocations, including defrag=always. We agree that MADV_HUGEPAGE is not exactly defined: does it mean try harder to allocate a hugepage locally, try compaction synchronous to the fault, allow remote fallback? It's undefined. The original intent was to be used when thp is disabled system wide (enabled set to "madvise") because its possible the rss of the process increases if backed by thp. That occurs either if faulting on a hugepage aligned area or based on max_ptes_none. So we have at least three possible policies that have evolved over time: preventing increased rss, direct compaction, remote fallback. Certainly not something that fits under a single madvise mode. > And that is a fundamental problem and the antipattern I am talking > about. Look at it this way. All normal allocations are utilizing all the > available memory even though they might hit a remote latency penalty. If > you do care about NUMA placement you have an API to enforce a specific > placement. What is so different about THP to behave differently. Do > we really want to later invent an API to actually allow to utilize all > the memory? There are certainly usecases (that triggered the discussion > previously) that do not mind the remote latency because all other > benefits simply outweight it? > What is different about THP is that on every platform I have measured, NUMA matters more than hugepages. Obviously if on Broadwell, Haswell, and Rome, remote hugepages were a performance win over local pages, this discussion would not be happening. Faulting local pages rather than local hugepages, if possible, is easy and doesn't require reclaim. Faulting remote pages rather than reclaiming local pages is easy in your scenario, it's non-disruptive. So to answer "what is so different about THP?", it's the performance data. The NUMA locality matters more than whether the pages are huge or not. We also have the added benefit of khugepaged being able to collapse pages locally if fragmentation improves rather than being stuck accessing a remote hugepage forever. > That being said what should users who want to use all the memory do to > use as many THPs as possible? If those users want to accept the performance degradation of allocating remote hugepages instead of local pages, that should likely be an extension, either madvise or prctl. That's not necessarily the usecase Andrea would have, I don't believe: he'd still prefer to compact memory locally and avoid the swap storm than allocate remotely. If impossible to reclaim locally for regular pages, remote hugepages may be more beneficial than remote pages. ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-05 0:07 ` David Rientjes @ 2018-12-05 10:18 ` Michal Hocko -1 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-05 10:18 UTC (permalink / raw) To: David Rientjes Cc: Linus Torvalds, ying.huang, Andrea Arcangeli, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Tue 04-12-18 16:07:27, David Rientjes wrote: > On Tue, 4 Dec 2018, Michal Hocko wrote: > > > The thing I am really up to here is that reintroduction of > > __GFP_THISNODE, which you are pushing for, will conflate madvise mode > > resp. defrag=always with a numa placement policy because the allocation > > doesn't fallback to a remote node. > > > > It isn't specific to MADV_HUGEPAGE, it is the policy for all transparent > hugepage allocations, including defrag=always. We agree that > MADV_HUGEPAGE is not exactly defined: does it mean try harder to allocate > a hugepage locally, try compaction synchronous to the fault, allow remote > fallback? It's undefined. Yeah, it is certainly underdefined. One thing is clear though. Using MADV_HUGEPAGE implies that the specific mapping benefits from THPs and is willing to pay associated init cost. This doesn't imply anything regarding NUMA locality and as we have NUMA API it shouldn't even attempt to do so because it would be conflating two things. [...] > > And that is a fundamental problem and the antipattern I am talking > > about. Look at it this way. All normal allocations are utilizing all the > > available memory even though they might hit a remote latency penalty. If > > you do care about NUMA placement you have an API to enforce a specific > > placement. What is so different about THP to behave differently. Do > > we really want to later invent an API to actually allow to utilize all > > the memory? There are certainly usecases (that triggered the discussion > > previously) that do not mind the remote latency because all other > > benefits simply outweight it? > > > > What is different about THP is that on every platform I have measured, > NUMA matters more than hugepages. Obviously if on Broadwell, Haswell, and > Rome, remote hugepages were a performance win over local pages, this > discussion would not be happening. Faulting local pages rather than > local hugepages, if possible, is easy and doesn't require reclaim. > Faulting remote pages rather than reclaiming local pages is easy in your > scenario, it's non-disruptive. You keep ignoring all other usecases mentioned before and that is not really helpful. Access cost can be amortized by other savings. Not to mention NUMA balancing moving around hot THPs with remote accesses. > So to answer "what is so different about THP?", it's the performance data. > The NUMA locality matters more than whether the pages are huge or not. We > also have the added benefit of khugepaged being able to collapse pages > locally if fragmentation improves rather than being stuck accessing a > remote hugepage forever. Please back your claims by a variety of workloads. Including mentioned KVMs one. You keep hand waving about access latency completely ignoring all other aspects and that makes my suspicious that you do not really appreciate all the complexity here even stronger. If there was a general consensus we want to make THP very special wrt. numa locality, I could live with that. It would be inconsistency in the API and as such something that will kick us sooner or later. But it seems that _you_ are the only one to push that direction and you keep ignoring all other usecases consistently throughout all the discussions we have had so far. Several people keeps pointing out that this is a wrong direction but that seems to be completely ignored. I believe that the only way forward is back your claims by numbers covering a larger set of THP users and prove that remote THP is a wrong default behavior. But you cannot really push that through based on a single usecase of yours which you refuse to describe beyond a simple access latency metric. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-05 10:18 ` Michal Hocko 0 siblings, 0 replies; 154+ messages in thread From: Michal Hocko @ 2018-12-05 10:18 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 3816 bytes --] On Tue 04-12-18 16:07:27, David Rientjes wrote: > On Tue, 4 Dec 2018, Michal Hocko wrote: > > > The thing I am really up to here is that reintroduction of > > __GFP_THISNODE, which you are pushing for, will conflate madvise mode > > resp. defrag=always with a numa placement policy because the allocation > > doesn't fallback to a remote node. > > > > It isn't specific to MADV_HUGEPAGE, it is the policy for all transparent > hugepage allocations, including defrag=always. We agree that > MADV_HUGEPAGE is not exactly defined: does it mean try harder to allocate > a hugepage locally, try compaction synchronous to the fault, allow remote > fallback? It's undefined. Yeah, it is certainly underdefined. One thing is clear though. Using MADV_HUGEPAGE implies that the specific mapping benefits from THPs and is willing to pay associated init cost. This doesn't imply anything regarding NUMA locality and as we have NUMA API it shouldn't even attempt to do so because it would be conflating two things. [...] > > And that is a fundamental problem and the antipattern I am talking > > about. Look at it this way. All normal allocations are utilizing all the > > available memory even though they might hit a remote latency penalty. If > > you do care about NUMA placement you have an API to enforce a specific > > placement. What is so different about THP to behave differently. Do > > we really want to later invent an API to actually allow to utilize all > > the memory? There are certainly usecases (that triggered the discussion > > previously) that do not mind the remote latency because all other > > benefits simply outweight it? > > > > What is different about THP is that on every platform I have measured, > NUMA matters more than hugepages. Obviously if on Broadwell, Haswell, and > Rome, remote hugepages were a performance win over local pages, this > discussion would not be happening. Faulting local pages rather than > local hugepages, if possible, is easy and doesn't require reclaim. > Faulting remote pages rather than reclaiming local pages is easy in your > scenario, it's non-disruptive. You keep ignoring all other usecases mentioned before and that is not really helpful. Access cost can be amortized by other savings. Not to mention NUMA balancing moving around hot THPs with remote accesses. > So to answer "what is so different about THP?", it's the performance data. > The NUMA locality matters more than whether the pages are huge or not. We > also have the added benefit of khugepaged being able to collapse pages > locally if fragmentation improves rather than being stuck accessing a > remote hugepage forever. Please back your claims by a variety of workloads. Including mentioned KVMs one. You keep hand waving about access latency completely ignoring all other aspects and that makes my suspicious that you do not really appreciate all the complexity here even stronger. If there was a general consensus we want to make THP very special wrt. numa locality, I could live with that. It would be inconsistency in the API and as such something that will kick us sooner or later. But it seems that _you_ are the only one to push that direction and you keep ignoring all other usecases consistently throughout all the discussions we have had so far. Several people keeps pointing out that this is a wrong direction but that seems to be completely ignored. I believe that the only way forward is back your claims by numbers covering a larger set of THP users and prove that remote THP is a wrong default behavior. But you cannot really push that through based on a single usecase of yours which you refuse to describe beyond a simple access latency metric. -- Michal Hocko SUSE Labs ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression 2018-12-05 10:18 ` Michal Hocko @ 2018-12-05 19:16 ` David Rientjes -1 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-05 19:16 UTC (permalink / raw) To: Michal Hocko Cc: Linus Torvalds, ying.huang, Andrea Arcangeli, s.priebe, mgorman, Linux List Kernel Mailing, alex.williamson, lkp, kirill, Andrew Morton, zi.yan, Vlastimil Babka On Wed, 5 Dec 2018, Michal Hocko wrote: > > It isn't specific to MADV_HUGEPAGE, it is the policy for all transparent > > hugepage allocations, including defrag=always. We agree that > > MADV_HUGEPAGE is not exactly defined: does it mean try harder to allocate > > a hugepage locally, try compaction synchronous to the fault, allow remote > > fallback? It's undefined. > > Yeah, it is certainly underdefined. One thing is clear though. Using > MADV_HUGEPAGE implies that the specific mapping benefits from THPs and > is willing to pay associated init cost. This doesn't imply anything > regarding NUMA locality and as we have NUMA API it shouldn't even > attempt to do so because it would be conflating two things. This is exactly why we use MADV_HUGEPAGE when remapping our text segment to be backed by transparent hugepages, we want to pay the cost at startup to fault thp and that involves synchronous memory compaction rather than quickly falling back to remote memory. This is making the case for me. > > So to answer "what is so different about THP?", it's the performance data. > > The NUMA locality matters more than whether the pages are huge or not. We > > also have the added benefit of khugepaged being able to collapse pages > > locally if fragmentation improves rather than being stuck accessing a > > remote hugepage forever. > > Please back your claims by a variety of workloads. Including mentioned > KVMs one. You keep hand waving about access latency completely ignoring > all other aspects and that makes my suspicious that you do not really > appreciate all the complexity here even stronger. > I discussed the tradeoff of local hugepages vs local pages vs remote hugepages in https://marc.info/?l=linux-kernel&m=154077010828940 on Broadwell, Haswell, and Rome. When a single application does not fit on a single node, we obviously need to extend the API to allow it to fault remotely. We can do that without changing long-standing behavior that prefers to only fault locally and causing real-world users to regress. Your suggestions about how we can extend the API are all very logical. [ Note that is not the regression being addressed here, however, which is massive swap storms due to a fragmented local node, which is why the __GFP_COMPACT_ONLY patch was also proposed by Andrea. The ability to prefer faulting remotely is a worthwhile extension but it does no good whatsoever if we can encounter massive swap storms because we didn't set __GFP_NORETRY appropriately (which both of our patches do) both locally and now remotely. ] ^ permalink raw reply [flat|nested] 154+ messages in thread
* Re: [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-12-05 19:16 ` David Rientjes 0 siblings, 0 replies; 154+ messages in thread From: David Rientjes @ 2018-12-05 19:16 UTC (permalink / raw) To: lkp [-- Attachment #1: Type: text/plain, Size: 2656 bytes --] On Wed, 5 Dec 2018, Michal Hocko wrote: > > It isn't specific to MADV_HUGEPAGE, it is the policy for all transparent > > hugepage allocations, including defrag=always. We agree that > > MADV_HUGEPAGE is not exactly defined: does it mean try harder to allocate > > a hugepage locally, try compaction synchronous to the fault, allow remote > > fallback? It's undefined. > > Yeah, it is certainly underdefined. One thing is clear though. Using > MADV_HUGEPAGE implies that the specific mapping benefits from THPs and > is willing to pay associated init cost. This doesn't imply anything > regarding NUMA locality and as we have NUMA API it shouldn't even > attempt to do so because it would be conflating two things. This is exactly why we use MADV_HUGEPAGE when remapping our text segment to be backed by transparent hugepages, we want to pay the cost at startup to fault thp and that involves synchronous memory compaction rather than quickly falling back to remote memory. This is making the case for me. > > So to answer "what is so different about THP?", it's the performance data. > > The NUMA locality matters more than whether the pages are huge or not. We > > also have the added benefit of khugepaged being able to collapse pages > > locally if fragmentation improves rather than being stuck accessing a > > remote hugepage forever. > > Please back your claims by a variety of workloads. Including mentioned > KVMs one. You keep hand waving about access latency completely ignoring > all other aspects and that makes my suspicious that you do not really > appreciate all the complexity here even stronger. > I discussed the tradeoff of local hugepages vs local pages vs remote hugepages in https://marc.info/?l=linux-kernel&m=154077010828940 on Broadwell, Haswell, and Rome. When a single application does not fit on a single node, we obviously need to extend the API to allow it to fault remotely. We can do that without changing long-standing behavior that prefers to only fault locally and causing real-world users to regress. Your suggestions about how we can extend the API are all very logical. [ Note that is not the regression being addressed here, however, which is massive swap storms due to a fragmented local node, which is why the __GFP_COMPACT_ONLY patch was also proposed by Andrea. The ability to prefer faulting remotely is a worthwhile extension but it does no good whatsoever if we can encounter massive swap storms because we didn't set __GFP_NORETRY appropriately (which both of our patches do) both locally and now remotely. ] ^ permalink raw reply [flat|nested] 154+ messages in thread
* [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression @ 2018-11-27 7:23 kernel test robot 0 siblings, 0 replies; 154+ messages in thread From: kernel test robot @ 2018-11-27 7:23 UTC (permalink / raw) To: Andrea Arcangeli Cc: Linus Torvalds, Michal Hocko, Stefan Priebe, Alex Williamson, Mel Gorman, Zi Yan, Vlastimil Babka, David Rientjes, Kirill A. Shutemov, Andrew Morton, LKML, lkp [-- Attachment #1: Type: text/plain, Size: 33202 bytes --] Greeting, FYI, we noticed a -61.3% regression of vm-scalability.throughput due to commit: commit: ac5b2c18911ffe95c08d69273917f90212cf5659 ("mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings") https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master in testcase: vm-scalability on test machine: 72 threads Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz with 128G memory with following parameters: runtime: 300 thp_enabled: always thp_defrag: always nr_task: 32 nr_ssd: 1 test: swap-w-seq ucode: 0x3d cpufreq_governor: performance test-description: The motivation behind this suite is to exercise functions and regions of the mm/ of the Linux kernel which are of interest to us. test-url: https://git.kernel.org/cgit/linux/kernel/git/wfg/vm-scalability.git/ Details are as below: --------------------------------------------------------------------------------------------------> To reproduce: git clone https://github.com/intel/lkp-tests.git cd lkp-tests bin/lkp install job.yaml # job file is attached in this email bin/lkp run job.yaml ========================================================================================= compiler/cpufreq_governor/kconfig/nr_ssd/nr_task/rootfs/runtime/tbox_group/test/testcase/thp_defrag/thp_enabled/ucode: gcc-7/performance/x86_64-rhel-7.2/1/32/debian-x86_64-2018-04-03.cgz/300/lkp-hsw-ep4/swap-w-seq/vm-scalability/always/always/0x3d commit: 94e297c50b ("include/linux/notifier.h: SRCU: fix ctags") ac5b2c1891 ("mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings") 94e297c50b529f5d ac5b2c18911ffe95c08d692739 ---------------- -------------------------- %stddev %change %stddev \ | \ 0.57 ± 35% +258.8% 2.05 ± 4% vm-scalability.free_time 146022 ± 14% -40.5% 86833 ± 2% vm-scalability.median 29.29 ± 40% -89.6% 3.06 ± 26% vm-scalability.stddev 7454656 ± 9% -61.3% 2885836 ± 3% vm-scalability.throughput 189.21 ± 10% +52.4% 288.34 ± 2% vm-scalability.time.elapsed_time 189.21 ± 10% +52.4% 288.34 ± 2% vm-scalability.time.elapsed_time.max 8768 ± 3% +11.6% 9781 ± 5% vm-scalability.time.involuntary_context_switches 20320196 ± 2% -33.4% 13531732 ± 3% vm-scalability.time.maximum_resident_set_size 425945 ± 9% +17.4% 499908 ± 4% vm-scalability.time.minor_page_faults 253.79 ± 6% +62.0% 411.07 ± 4% vm-scalability.time.system_time 322.52 +8.0% 348.18 vm-scalability.time.user_time 246150 ± 12% +50.3% 370019 ± 4% vm-scalability.time.voluntary_context_switches 7746519 ± 11% +49.0% 11538799 ± 4% cpuidle.C6.usage 192240 ± 10% +44.3% 277460 ± 8% interrupts.CAL:Function_call_interrupts 22.45 ± 85% -80.6% 4.36 ±173% sched_debug.cfs_rq:/.MIN_vruntime.avg 22.45 ± 85% -80.6% 4.36 ±173% sched_debug.cfs_rq:/.max_vruntime.avg 29.36 ± 13% +10.8% 32.52 ± 14% boot-time.boot 24.28 ± 16% +12.4% 27.30 ± 16% boot-time.dhcp 1597 ± 15% +10.2% 1760 ± 15% boot-time.idle 68.25 -9.8 58.48 ± 2% mpstat.cpu.idle% 27.12 ± 5% +10.3 37.42 ± 3% mpstat.cpu.iowait% 2.48 ± 11% -0.8 1.73 ± 2% mpstat.cpu.usr% 3422396 ± 14% +46.6% 5018492 ± 7% softirqs.RCU 1776561 ± 10% +52.4% 2707785 ± 2% softirqs.SCHED 5685772 ± 7% +54.3% 8774055 ± 3% softirqs.TIMER 7742519 ± 11% +49.0% 11534924 ± 4% turbostat.C6 29922317 ± 10% +55.0% 46366941 turbostat.IRQ 9.49 ± 64% -83.0% 1.62 ± 54% turbostat.Pkg%pc2 36878790 ± 27% -84.9% 5570259 ± 47% vmstat.memory.free 1.117e+08 ± 15% +73.5% 1.939e+08 ± 10% vmstat.memory.swpd 25.25 ± 4% +34.7% 34.00 vmstat.procs.b 513725 ± 7% +47.9% 759561 ± 12% numa-numastat.node0.local_node 35753 ±160% +264.7% 130386 ± 39% numa-numastat.node0.numa_foreign 519403 ± 6% +48.7% 772182 ± 12% numa-numastat.node0.numa_hit 35753 ±160% +264.7% 130386 ± 39% numa-numastat.node1.numa_miss 44315 ±138% +198.5% 132279 ± 40% numa-numastat.node1.other_node 32798032 ± 46% +80.6% 59228165 ± 2% numa-meminfo.node0.Active 32798009 ± 46% +80.6% 59228160 ± 2% numa-meminfo.node0.Active(anon) 33430762 ± 46% +80.8% 60429537 ± 2% numa-meminfo.node0.AnonHugePages 33572119 ± 46% +80.2% 60512777 ± 2% numa-meminfo.node0.AnonPages 1310559 ± 64% +86.4% 2442244 ± 2% numa-meminfo.node0.Inactive 1309969 ± 64% +86.4% 2442208 ± 2% numa-meminfo.node0.Inactive(anon) 30385359 ± 53% -90.7% 2821023 ± 44% numa-meminfo.node0.MemFree 35505047 ± 45% +77.6% 63055165 ± 2% numa-meminfo.node0.MemUsed 166560 ± 42% +130.2% 383345 ± 6% numa-meminfo.node0.PageTables 23702 ±105% -89.0% 2617 ± 44% numa-meminfo.node0.Shmem 1212 ± 65% +402.8% 6093 ± 57% numa-meminfo.node1.Shmem 8354144 ± 44% +77.1% 14798964 ± 2% numa-vmstat.node0.nr_active_anon 8552787 ± 44% +76.8% 15122222 ± 2% numa-vmstat.node0.nr_anon_pages 16648 ± 44% +77.1% 29492 ± 2% numa-vmstat.node0.nr_anon_transparent_hugepages 7436650 ± 53% -90.4% 712936 ± 44% numa-vmstat.node0.nr_free_pages 332106 ± 63% +83.8% 610268 ± 2% numa-vmstat.node0.nr_inactive_anon 41929 ± 41% +130.6% 96703 ± 6% numa-vmstat.node0.nr_page_table_pages 5900 ±106% -89.0% 650.75 ± 45% numa-vmstat.node0.nr_shmem 43336 ± 92% +151.2% 108840 ± 7% numa-vmstat.node0.nr_vmscan_write 43110 ± 92% +150.8% 108110 ± 7% numa-vmstat.node0.nr_written 8354142 ± 44% +77.1% 14798956 ± 2% numa-vmstat.node0.nr_zone_active_anon 332105 ± 63% +83.8% 610269 ± 2% numa-vmstat.node0.nr_zone_inactive_anon 321.50 ± 66% +384.9% 1559 ± 59% numa-vmstat.node1.nr_shmem 88815743 ± 10% +33.8% 1.188e+08 ± 2% meminfo.Active 88815702 ± 10% +33.8% 1.188e+08 ± 2% meminfo.Active(anon) 90446011 ± 11% +34.0% 1.212e+08 ± 2% meminfo.AnonHugePages 90613587 ± 11% +34.0% 1.214e+08 ± 2% meminfo.AnonPages 5.15e+08 ± 3% +22.2% 6.293e+08 ± 2% meminfo.Committed_AS 187419 ± 10% -19.6% 150730 ± 7% meminfo.DirectMap4k 3620693 ± 18% +35.3% 4897093 ± 2% meminfo.Inactive 3620054 ± 18% +35.3% 4896961 ± 2% meminfo.Inactive(anon) 36144979 ± 28% -87.0% 4715681 ± 57% meminfo.MemAvailable 36723121 ± 27% -85.9% 5179468 ± 52% meminfo.MemFree 395801 ± 2% +56.9% 620816 ± 4% meminfo.PageTables 178672 +15.1% 205668 ± 2% meminfo.SUnreclaim 249496 +12.6% 280897 meminfo.Slab 1751813 ± 2% +34.7% 2360437 ± 3% meminfo.SwapCached 6.716e+08 -12.4% 5.88e+08 ± 2% meminfo.SwapFree 3926 ± 17% +72.9% 6788 ± 13% meminfo.Writeback 1076 ± 3% +42.9% 1538 ± 4% slabinfo.biovec-max.active_objs 275.75 ± 2% +41.1% 389.00 ± 4% slabinfo.biovec-max.active_slabs 1104 ± 2% +41.0% 1557 ± 4% slabinfo.biovec-max.num_objs 275.75 ± 2% +41.1% 389.00 ± 4% slabinfo.biovec-max.num_slabs 588.25 ± 7% +17.9% 693.75 ± 7% slabinfo.file_lock_cache.active_objs 588.25 ± 7% +17.9% 693.75 ± 7% slabinfo.file_lock_cache.num_objs 13852 ± 3% +37.5% 19050 ± 3% slabinfo.kmalloc-4k.active_objs 1776 ± 3% +37.7% 2446 ± 3% slabinfo.kmalloc-4k.active_slabs 14217 ± 3% +37.7% 19577 ± 3% slabinfo.kmalloc-4k.num_objs 1776 ± 3% +37.7% 2446 ± 3% slabinfo.kmalloc-4k.num_slabs 158.25 ± 15% +54.0% 243.75 ± 18% slabinfo.nfs_read_data.active_objs 158.25 ± 15% +54.0% 243.75 ± 18% slabinfo.nfs_read_data.num_objs 17762 ± 4% +44.3% 25638 ± 4% slabinfo.pool_workqueue.active_objs 563.25 ± 3% +43.7% 809.25 ± 4% slabinfo.pool_workqueue.active_slabs 18048 ± 3% +43.5% 25906 ± 4% slabinfo.pool_workqueue.num_objs 563.25 ± 3% +43.7% 809.25 ± 4% slabinfo.pool_workqueue.num_slabs 34631 ± 3% +21.0% 41905 ± 2% slabinfo.radix_tree_node.active_objs 624.50 ± 3% +20.7% 753.75 ± 2% slabinfo.radix_tree_node.active_slabs 34998 ± 3% +20.7% 42228 ± 2% slabinfo.radix_tree_node.num_objs 624.50 ± 3% +20.7% 753.75 ± 2% slabinfo.radix_tree_node.num_slabs 9.727e+11 ± 8% +50.4% 1.463e+12 ± 12% perf-stat.branch-instructions 1.11 ± 12% +1.2 2.31 ± 8% perf-stat.branch-miss-rate% 1.078e+10 ± 13% +214.9% 3.395e+10 ± 17% perf-stat.branch-misses 3.17 ± 11% -1.5 1.65 ± 9% perf-stat.cache-miss-rate% 8.206e+08 ± 7% +49.4% 1.226e+09 ± 11% perf-stat.cache-misses 2.624e+10 ± 14% +187.0% 7.532e+10 ± 17% perf-stat.cache-references 1174249 ± 9% +52.3% 1788442 ± 3% perf-stat.context-switches 2.921e+12 ± 8% +71.1% 4.998e+12 ± 9% perf-stat.cpu-cycles 1437 ± 14% +85.1% 2661 ± 20% perf-stat.cpu-migrations 7.586e+08 ± 21% +134.7% 1.78e+09 ± 30% perf-stat.dTLB-load-misses 7.943e+11 ± 11% +84.3% 1.464e+12 ± 14% perf-stat.dTLB-loads 93963731 ± 22% +40.9% 1.324e+08 ± 10% perf-stat.dTLB-store-misses 3.394e+11 ± 6% +60.5% 5.449e+11 ± 10% perf-stat.dTLB-stores 1.531e+08 ± 22% +44.0% 2.204e+08 ± 11% perf-stat.iTLB-load-misses 1.688e+08 ± 23% +71.1% 2.888e+08 ± 12% perf-stat.iTLB-loads 3.267e+12 ± 7% +58.5% 5.177e+12 ± 13% perf-stat.instructions 3988 ± 43% +123.9% 8930 ± 22% perf-stat.major-faults 901474 ± 5% +34.2% 1209877 ± 2% perf-stat.minor-faults 31.24 ± 10% +21.7 52.91 ± 2% perf-stat.node-load-miss-rate% 1.135e+08 ± 16% +187.6% 3.264e+08 ± 13% perf-stat.node-load-misses 6.27 ± 17% +26.9 33.19 ± 4% perf-stat.node-store-miss-rate% 27354489 ± 15% +601.2% 1.918e+08 ± 13% perf-stat.node-store-misses 905482 ± 5% +34.6% 1218833 ± 2% perf-stat.page-faults 4254 ± 7% +58.5% 6741 ± 13% perf-stat.path-length 6364 ± 25% +84.1% 11715 ± 14% proc-vmstat.allocstall_movable 46439 ± 12% +100.4% 93049 ± 21% proc-vmstat.compact_migrate_scanned 22425696 ± 10% +29.0% 28932634 ± 6% proc-vmstat.nr_active_anon 22875703 ± 11% +29.2% 29560082 ± 6% proc-vmstat.nr_anon_pages 44620 ± 11% +29.2% 57643 ± 6% proc-vmstat.nr_anon_transparent_hugepages 879436 ± 28% -77.3% 199768 ± 98% proc-vmstat.nr_dirty_background_threshold 1761029 ± 28% -77.3% 400034 ± 98% proc-vmstat.nr_dirty_threshold 715724 +17.6% 841386 ± 3% proc-vmstat.nr_file_pages 8960545 ± 28% -76.4% 2111248 ± 93% proc-vmstat.nr_free_pages 904330 ± 18% +31.2% 1186458 ± 7% proc-vmstat.nr_inactive_anon 11137 ± 2% +27.1% 14154 ± 9% proc-vmstat.nr_isolated_anon 12566 +3.5% 13012 proc-vmstat.nr_kernel_stack 97491 ± 2% +52.6% 148790 ± 10% proc-vmstat.nr_page_table_pages 17674 +6.2% 18763 ± 2% proc-vmstat.nr_slab_reclaimable 44820 +13.0% 50645 ± 2% proc-vmstat.nr_slab_unreclaimable 135763 ± 9% +68.4% 228600 ± 6% proc-vmstat.nr_vmscan_write 1017 ± 10% +54.7% 1573 ± 14% proc-vmstat.nr_writeback 220023 ± 5% +73.5% 381732 ± 6% proc-vmstat.nr_written 22425696 ± 10% +29.0% 28932635 ± 6% proc-vmstat.nr_zone_active_anon 904330 ± 18% +31.2% 1186457 ± 7% proc-vmstat.nr_zone_inactive_anon 1018 ± 10% +55.3% 1581 ± 13% proc-vmstat.nr_zone_write_pending 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_foreign 671.50 ± 96% +479.4% 3890 ± 71% proc-vmstat.numa_hint_faults 1122389 ± 9% +17.2% 1315380 ± 4% proc-vmstat.numa_hit 214722 ± 5% +21.6% 261076 ± 3% proc-vmstat.numa_huge_pte_updates 1108142 ± 9% +17.4% 1300857 ± 4% proc-vmstat.numa_local 145368 ± 48% +63.1% 237050 ± 17% proc-vmstat.numa_miss 159615 ± 44% +57.6% 251573 ± 16% proc-vmstat.numa_other 185.50 ± 81% +8278.6% 15542 ± 40% proc-vmstat.numa_pages_migrated 1.1e+08 ± 5% +21.6% 1.337e+08 ± 3% proc-vmstat.numa_pte_updates 688332 ±106% +177.9% 1913062 ± 3% proc-vmstat.pgalloc_dma32 72593045 ± 10% +51.1% 1.097e+08 ± 3% proc-vmstat.pgdeactivate 919059 ± 4% +35.1% 1241472 ± 2% proc-vmstat.pgfault 3716 ± 45% +120.3% 8186 ± 25% proc-vmstat.pgmajfault 7.25 ± 26% +4.2e+05% 30239 ± 25% proc-vmstat.pgmigrate_fail 5340 ±106% +264.0% 19438 ± 33% proc-vmstat.pgmigrate_success 2.837e+08 ± 10% +51.7% 4.303e+08 ± 3% proc-vmstat.pgpgout 211428 ± 6% +74.1% 368188 ± 4% proc-vmstat.pgrefill 219051 ± 5% +73.7% 380419 ± 5% proc-vmstat.pgrotated 559397 ± 8% +43.0% 800110 ± 11% proc-vmstat.pgscan_direct 32894 ± 59% +158.3% 84981 ± 23% proc-vmstat.pgscan_kswapd 207042 ± 8% +71.5% 355174 ± 5% proc-vmstat.pgsteal_direct 14745 ± 65% +104.3% 30121 ± 18% proc-vmstat.pgsteal_kswapd 70934968 ± 10% +51.7% 1.076e+08 ± 3% proc-vmstat.pswpout 5852284 ± 12% +145.8% 14382881 ± 5% proc-vmstat.slabs_scanned 13453 ± 24% +204.9% 41023 ± 8% proc-vmstat.thp_split_page_failed 138385 ± 10% +51.6% 209783 ± 3% proc-vmstat.thp_split_pmd 138385 ± 10% +51.6% 209782 ± 3% proc-vmstat.thp_swpout 4.61 ± 24% -1.2 3.37 ± 10% perf-profile.calltrace.cycles-pp.hrtimer_interrupt.smp_apic_timer_interrupt.apic_timer_interrupt.cpuidle_enter_state.do_idle 2.90 ± 18% -0.7 2.19 ± 8% perf-profile.calltrace.cycles-pp.__hrtimer_run_queues.hrtimer_interrupt.smp_apic_timer_interrupt.apic_timer_interrupt.cpuidle_enter_state 1.86 ± 32% -0.6 1.22 ± 7% perf-profile.calltrace.cycles-pp.tick_sched_timer.__hrtimer_run_queues.hrtimer_interrupt.smp_apic_timer_interrupt.apic_timer_interrupt 1.60 ± 31% -0.5 1.08 ± 10% perf-profile.calltrace.cycles-pp.tick_sched_handle.tick_sched_timer.__hrtimer_run_queues.hrtimer_interrupt.smp_apic_timer_interrupt 2.98 ± 8% -0.5 2.48 ± 10% perf-profile.calltrace.cycles-pp.menu_select.do_idle.cpu_startup_entry.start_secondary.secondary_startup_64 1.46 ± 32% -0.5 0.96 ± 9% perf-profile.calltrace.cycles-pp.update_process_times.tick_sched_handle.tick_sched_timer.__hrtimer_run_queues.hrtimer_interrupt 0.74 ± 27% -0.5 0.28 ±100% perf-profile.calltrace.cycles-pp.scheduler_tick.update_process_times.tick_sched_handle.tick_sched_timer.__hrtimer_run_queues 1.03 ± 52% -0.4 0.63 ± 15% perf-profile.calltrace.cycles-pp.clockevents_program_event.hrtimer_interrupt.smp_apic_timer_interrupt.apic_timer_interrupt.cpuidle_enter_state 1.17 ± 19% -0.3 0.87 ± 11% perf-profile.calltrace.cycles-pp.tick_nohz_next_event.tick_nohz_get_sleep_length.menu_select.do_idle.cpu_startup_entry 0.80 ± 17% +0.4 1.22 ± 7% perf-profile.calltrace.cycles-pp.nvme_queue_rq.__blk_mq_try_issue_directly.blk_mq_try_issue_directly.blk_mq_make_request.generic_make_request 0.81 ± 16% +0.4 1.23 ± 8% perf-profile.calltrace.cycles-pp.blk_mq_try_issue_directly.blk_mq_make_request.generic_make_request.submit_bio.__swap_writepage 0.81 ± 16% +0.4 1.23 ± 8% perf-profile.calltrace.cycles-pp.__blk_mq_try_issue_directly.blk_mq_try_issue_directly.blk_mq_make_request.generic_make_request.submit_bio 0.52 ± 60% +0.5 1.03 ± 6% perf-profile.calltrace.cycles-pp.dma_pool_alloc.nvme_queue_rq.__blk_mq_try_issue_directly.blk_mq_try_issue_directly.blk_mq_make_request 1.64 ± 16% +0.6 2.21 ± 15% perf-profile.calltrace.cycles-pp.find_next_bit.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_done 0.51 ± 64% +0.8 1.31 ± 17% perf-profile.calltrace.cycles-pp.bt_iter.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_start 0.80 ± 25% +0.9 1.67 ± 19% perf-profile.calltrace.cycles-pp.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_start.blk_mq_make_request 0.82 ± 24% +0.9 1.71 ± 19% perf-profile.calltrace.cycles-pp.blk_mq_in_flight.part_round_stats.blk_account_io_start.blk_mq_make_request.generic_make_request 0.82 ± 25% +0.9 1.73 ± 19% perf-profile.calltrace.cycles-pp.part_round_stats.blk_account_io_start.blk_mq_make_request.generic_make_request.submit_bio 0.87 ± 25% +1.0 1.87 ± 14% perf-profile.calltrace.cycles-pp.blk_account_io_start.blk_mq_make_request.generic_make_request.submit_bio.__swap_writepage 2.05 ± 15% +1.4 3.48 ± 7% perf-profile.calltrace.cycles-pp.generic_make_request.submit_bio.__swap_writepage.pageout.shrink_page_list 2.09 ± 15% +1.4 3.53 ± 7% perf-profile.calltrace.cycles-pp.__swap_writepage.pageout.shrink_page_list.shrink_inactive_list.shrink_node_memcg 2.05 ± 15% +1.4 3.49 ± 7% perf-profile.calltrace.cycles-pp.blk_mq_make_request.generic_make_request.submit_bio.__swap_writepage.pageout 2.06 ± 15% +1.4 3.50 ± 7% perf-profile.calltrace.cycles-pp.submit_bio.__swap_writepage.pageout.shrink_page_list.shrink_inactive_list 2.10 ± 15% +1.4 3.54 ± 6% perf-profile.calltrace.cycles-pp.pageout.shrink_page_list.shrink_inactive_list.shrink_node_memcg.shrink_node 3.31 ± 12% +1.5 4.83 ± 5% perf-profile.calltrace.cycles-pp.shrink_page_list.shrink_inactive_list.shrink_node_memcg.shrink_node.do_try_to_free_pages 3.33 ± 12% +1.5 4.86 ± 5% perf-profile.calltrace.cycles-pp.shrink_inactive_list.shrink_node_memcg.shrink_node.do_try_to_free_pages.try_to_free_pages 3.40 ± 12% +1.6 4.97 ± 6% perf-profile.calltrace.cycles-pp.shrink_node_memcg.shrink_node.do_try_to_free_pages.try_to_free_pages.__alloc_pages_slowpath 3.57 ± 12% +1.6 5.19 ± 7% perf-profile.calltrace.cycles-pp.__alloc_pages_nodemask.do_huge_pmd_anonymous_page.__handle_mm_fault.handle_mm_fault.__do_page_fault 3.48 ± 12% +1.6 5.13 ± 6% perf-profile.calltrace.cycles-pp.shrink_node.do_try_to_free_pages.try_to_free_pages.__alloc_pages_slowpath.__alloc_pages_nodemask 3.48 ± 12% +1.6 5.13 ± 6% perf-profile.calltrace.cycles-pp.do_try_to_free_pages.try_to_free_pages.__alloc_pages_slowpath.__alloc_pages_nodemask.do_huge_pmd_anonymous_page 3.49 ± 12% +1.6 5.13 ± 6% perf-profile.calltrace.cycles-pp.try_to_free_pages.__alloc_pages_slowpath.__alloc_pages_nodemask.do_huge_pmd_anonymous_page.__handle_mm_fault 3.51 ± 12% +1.7 5.17 ± 6% perf-profile.calltrace.cycles-pp.__alloc_pages_slowpath.__alloc_pages_nodemask.do_huge_pmd_anonymous_page.__handle_mm_fault.handle_mm_fault 3.34 ± 14% +2.2 5.57 ± 21% perf-profile.calltrace.cycles-pp.blk_mq_check_inflight.bt_iter.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats 9.14 ± 17% +5.5 14.66 ± 22% perf-profile.calltrace.cycles-pp.bt_iter.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_done 12.10 ± 17% +6.8 18.89 ± 20% perf-profile.calltrace.cycles-pp.blk_mq_queue_tag_busy_iter.blk_mq_in_flight.part_round_stats.blk_account_io_done.blk_mq_end_request 13.88 ± 15% +7.1 21.01 ± 20% perf-profile.calltrace.cycles-pp.handle_irq.do_IRQ.ret_from_intr.cpuidle_enter_state.do_idle 13.87 ± 15% +7.1 21.00 ± 20% perf-profile.calltrace.cycles-pp.handle_edge_irq.handle_irq.do_IRQ.ret_from_intr.cpuidle_enter_state 13.97 ± 15% +7.1 21.10 ± 20% perf-profile.calltrace.cycles-pp.ret_from_intr.cpuidle_enter_state.do_idle.cpu_startup_entry.start_secondary 13.94 ± 15% +7.1 21.07 ± 20% perf-profile.calltrace.cycles-pp.do_IRQ.ret_from_intr.cpuidle_enter_state.do_idle.cpu_startup_entry 12.50 ± 17% +7.2 19.65 ± 20% perf-profile.calltrace.cycles-pp.blk_account_io_done.blk_mq_end_request.blk_mq_complete_request.nvme_irq.__handle_irq_event_percpu 12.70 ± 17% +7.2 19.86 ± 21% perf-profile.calltrace.cycles-pp.blk_mq_end_request.blk_mq_complete_request.nvme_irq.__handle_irq_event_percpu.handle_irq_event_percpu 12.48 ± 17% +7.2 19.65 ± 20% perf-profile.calltrace.cycles-pp.part_round_stats.blk_account_io_done.blk_mq_end_request.blk_mq_complete_request.nvme_irq 12.46 ± 17% +7.2 19.63 ± 21% perf-profile.calltrace.cycles-pp.blk_mq_in_flight.part_round_stats.blk_account_io_done.blk_mq_end_request.blk_mq_complete_request 14.78 ± 18% +8.1 22.83 ± 20% perf-profile.calltrace.cycles-pp.blk_mq_complete_request.nvme_irq.__handle_irq_event_percpu.handle_irq_event_percpu.handle_irq_event 14.87 ± 18% +8.1 22.95 ± 21% perf-profile.calltrace.cycles-pp.nvme_irq.__handle_irq_event_percpu.handle_irq_event_percpu.handle_irq_event.handle_edge_irq 14.89 ± 18% +8.1 22.98 ± 21% perf-profile.calltrace.cycles-pp.handle_irq_event_percpu.handle_irq_event.handle_edge_irq.handle_irq.do_IRQ 14.90 ± 18% +8.1 22.99 ± 21% perf-profile.calltrace.cycles-pp.handle_irq_event.handle_edge_irq.handle_irq.do_IRQ.ret_from_intr 14.88 ± 18% +8.1 22.97 ± 21% perf-profile.calltrace.cycles-pp.__handle_irq_event_percpu.handle_irq_event_percpu.handle_irq_event.handle_edge_irq.handle_irq 4.79 ± 22% -1.3 3.52 ± 9% perf-profile.children.cycles-pp.hrtimer_interrupt 3.04 ± 16% -0.7 2.30 ± 8% perf-profile.children.cycles-pp.__hrtimer_run_queues 1.98 ± 29% -0.7 1.29 ± 7% perf-profile.children.cycles-pp.tick_sched_timer 1.70 ± 27% -0.6 1.14 ± 9% perf-profile.children.cycles-pp.tick_sched_handle 1.57 ± 29% -0.5 1.03 ± 10% perf-profile.children.cycles-pp.update_process_times 3.02 ± 8% -0.5 2.52 ± 10% perf-profile.children.cycles-pp.menu_select 1.19 ± 19% -0.3 0.89 ± 10% perf-profile.children.cycles-pp.tick_nohz_next_event 0.81 ± 25% -0.2 0.56 ± 11% perf-profile.children.cycles-pp.scheduler_tick 0.42 ± 19% -0.1 0.30 ± 14% perf-profile.children.cycles-pp._raw_spin_lock 0.27 ± 13% -0.1 0.21 ± 15% perf-profile.children.cycles-pp.hrtimer_next_event_without 0.11 ± 35% -0.0 0.07 ± 19% perf-profile.children.cycles-pp.run_local_timers 0.10 ± 15% -0.0 0.07 ± 28% perf-profile.children.cycles-pp.cpu_load_update 0.14 ± 9% -0.0 0.11 ± 15% perf-profile.children.cycles-pp.perf_event_task_tick 0.07 ± 17% +0.0 0.10 ± 12% perf-profile.children.cycles-pp.blk_flush_plug_list 0.07 ± 17% +0.0 0.10 ± 12% perf-profile.children.cycles-pp.blk_mq_flush_plug_list 0.06 ± 26% +0.0 0.11 ± 17% perf-profile.children.cycles-pp.read 0.07 ± 17% +0.0 0.11 ± 36% perf-profile.children.cycles-pp.deferred_split_scan 0.15 ± 14% +0.1 0.21 ± 13% perf-profile.children.cycles-pp.blk_mq_sched_dispatch_requests 0.15 ± 16% +0.1 0.21 ± 15% perf-profile.children.cycles-pp.blk_mq_dispatch_rq_list 0.15 ± 14% +0.1 0.22 ± 14% perf-profile.children.cycles-pp.__blk_mq_run_hw_queue 0.08 ± 23% +0.1 0.14 ± 34% perf-profile.children.cycles-pp.shrink_slab 0.08 ± 23% +0.1 0.14 ± 34% perf-profile.children.cycles-pp.do_shrink_slab 0.72 ± 19% +0.3 1.00 ± 8% perf-profile.children.cycles-pp._raw_spin_lock_irqsave 0.44 ± 18% +0.3 0.74 ± 14% perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath 0.86 ± 18% +0.4 1.30 ± 9% perf-profile.children.cycles-pp.blk_mq_try_issue_directly 0.88 ± 18% +0.5 1.34 ± 9% perf-profile.children.cycles-pp.__blk_mq_try_issue_directly 0.82 ± 19% +0.5 1.30 ± 9% perf-profile.children.cycles-pp.dma_pool_alloc 1.02 ± 15% +0.5 1.55 ± 9% perf-profile.children.cycles-pp.nvme_queue_rq 1.07 ± 15% +0.7 1.76 ± 21% perf-profile.children.cycles-pp.__indirect_thunk_start 2.42 ± 16% +0.7 3.16 ± 13% perf-profile.children.cycles-pp.find_next_bit 0.95 ± 26% +1.1 2.00 ± 15% perf-profile.children.cycles-pp.blk_account_io_start 2.19 ± 17% +1.5 3.72 ± 8% perf-profile.children.cycles-pp.blk_mq_make_request 2.20 ± 17% +1.5 3.73 ± 8% perf-profile.children.cycles-pp.submit_bio 2.20 ± 17% +1.5 3.73 ± 8% perf-profile.children.cycles-pp.generic_make_request 2.21 ± 17% +1.5 3.76 ± 8% perf-profile.children.cycles-pp.__swap_writepage 2.23 ± 17% +1.5 3.77 ± 7% perf-profile.children.cycles-pp.pageout 3.60 ± 13% +1.6 5.22 ± 7% perf-profile.children.cycles-pp.__alloc_pages_nodemask 3.51 ± 15% +1.6 5.15 ± 6% perf-profile.children.cycles-pp.shrink_page_list 3.48 ± 12% +1.6 5.13 ± 6% perf-profile.children.cycles-pp.do_try_to_free_pages 3.53 ± 14% +1.6 5.17 ± 6% perf-profile.children.cycles-pp.shrink_inactive_list 3.49 ± 12% +1.6 5.13 ± 6% perf-profile.children.cycles-pp.try_to_free_pages 3.51 ± 12% +1.7 5.19 ± 6% perf-profile.children.cycles-pp.__alloc_pages_slowpath 3.61 ± 14% +1.7 5.30 ± 6% perf-profile.children.cycles-pp.shrink_node_memcg 3.69 ± 15% +1.8 5.45 ± 7% perf-profile.children.cycles-pp.shrink_node 4.10 ± 17% +2.4 6.47 ± 18% perf-profile.children.cycles-pp.blk_mq_check_inflight 10.64 ± 16% +6.8 17.39 ± 17% perf-profile.children.cycles-pp.bt_iter 13.17 ± 16% +7.4 20.59 ± 18% perf-profile.children.cycles-pp.blk_account_io_done 13.39 ± 16% +7.4 20.81 ± 19% perf-profile.children.cycles-pp.blk_mq_end_request 15.67 ± 17% +8.2 23.84 ± 20% perf-profile.children.cycles-pp.handle_irq 15.66 ± 17% +8.2 23.83 ± 20% perf-profile.children.cycles-pp.handle_edge_irq 15.57 ± 17% +8.2 23.73 ± 20% perf-profile.children.cycles-pp.nvme_irq 15.60 ± 17% +8.2 23.77 ± 20% perf-profile.children.cycles-pp.handle_irq_event 15.58 ± 17% +8.2 23.75 ± 20% perf-profile.children.cycles-pp.__handle_irq_event_percpu 15.59 ± 17% +8.2 23.77 ± 20% perf-profile.children.cycles-pp.handle_irq_event_percpu 15.75 ± 17% +8.2 23.93 ± 20% perf-profile.children.cycles-pp.ret_from_intr 15.73 ± 17% +8.2 23.91 ± 20% perf-profile.children.cycles-pp.do_IRQ 15.54 ± 17% +8.2 23.73 ± 19% perf-profile.children.cycles-pp.blk_mq_complete_request 14.07 ± 16% +8.4 22.45 ± 16% perf-profile.children.cycles-pp.part_round_stats 14.05 ± 16% +8.4 22.45 ± 16% perf-profile.children.cycles-pp.blk_mq_queue_tag_busy_iter 14.05 ± 16% +8.4 22.45 ± 16% perf-profile.children.cycles-pp.blk_mq_in_flight 0.38 ± 20% -0.1 0.28 ± 16% perf-profile.self.cycles-pp._raw_spin_lock 0.10 ± 13% -0.0 0.07 ± 17% perf-profile.self.cycles-pp.idle_cpu 0.12 ± 14% -0.0 0.09 ± 7% perf-profile.self.cycles-pp.perf_mux_hrtimer_handler 0.10 ± 15% -0.0 0.07 ± 28% perf-profile.self.cycles-pp.cpu_load_update 0.14 ± 9% -0.0 0.11 ± 15% perf-profile.self.cycles-pp.perf_event_task_tick 0.62 ± 16% +0.3 0.89 ± 12% perf-profile.self.cycles-pp.dma_pool_alloc 0.44 ± 18% +0.3 0.74 ± 14% perf-profile.self.cycles-pp.native_queued_spin_lock_slowpath 0.81 ± 16% +0.5 1.32 ± 25% perf-profile.self.cycles-pp.__indirect_thunk_start 2.07 ± 16% +0.6 2.69 ± 12% perf-profile.self.cycles-pp.find_next_bit 1.77 ± 16% +1.1 2.91 ± 15% perf-profile.self.cycles-pp.blk_mq_queue_tag_busy_iter 3.82 ± 16% +2.2 6.00 ± 18% perf-profile.self.cycles-pp.blk_mq_check_inflight 6.43 ± 15% +4.1 10.56 ± 16% perf-profile.self.cycles-pp.bt_iter vm-scalability.time.system_time 600 +-+-------------------------------------------------------------------+ | | 500 +-O OO | O O OO | | O O O O O O | 400 +-+ O O O O | | | 300 +-+ .+.++. .+ .+ .+ .+.+ +.+ .++.+.++ .++.+.++. | | ++ + :.+ + + + : +.+ : +.+ + .++.+ +.+ .| 200 +-+ + + : : : : + + | |: : : : : | |: :: : : | 100 +-+ :: :: | | : : | 0 +-+-------------------------------------------------------------------+ vm-scalability.time.maximum_resident_set_size 2.5e+07 +-+---------------------------------------------------------------+ | | | ++.++.++.+. +. +. + +.++.+ +.++.+ .+.++. .++. .++.+ .+ | 2e+07 +-+ + .+ + +.+: : : : + ++ + + +.| | : + : : : : | | : : : : : | 1.5e+07 O-+O OO: : : : | |: O O O O : : : : | 1e+07 +-+ O O O O OO O : : : : | |:O O :: :: | |: :: :: | 5e+06 +-+ : : | | : : | | : : | 0 +-+---------------------------------------------------------------+ [*] bisect-good sample [O] bisect-bad sample Disclaimer: Results have been estimated based on internal Intel analysis and are provided for informational purposes only. Any difference in system hardware or software design or configuration may affect actual performance. Thanks, Rong Chen [-- Attachment #2: config-4.19.0-12678-gac5b2c1 --] [-- Type: text/plain, Size: 168446 bytes --] # # Automatically generated file; DO NOT EDIT. # Linux/x86_64 4.19.0 Kernel Configuration # # # Compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 # CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=70300 CONFIG_CLANG_VERSION=0 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y # # General setup # CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_BUILD_SALT="" CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_HAVE_KERNEL_LZ4=y CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set # CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set # CONFIG_KERNEL_LZ4 is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_USELIB=y CONFIG_AUDIT=y CONFIG_HAVE_ARCH_AUDITSYSCALL=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y # # IRQ subsystem # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_SIM=y CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y CONFIG_GENERIC_IRQ_RESERVATION_MODE=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # CONFIG_GENERIC_IRQ_DEBUGFS is not set CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_ARCH_CLOCKSOURCE_INIT=y CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y CONFIG_GENERIC_CMOS_UPDATE=y # # Timers subsystem # CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set # CONFIG_NO_HZ_IDLE is not set CONFIG_NO_HZ_FULL=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set CONFIG_PREEMPT_COUNT=y # # CPU/Task time and stats accounting # CONFIG_VIRT_CPU_ACCOUNTING=y CONFIG_VIRT_CPU_ACCOUNTING_GEN=y # CONFIG_IRQ_TIME_ACCOUNTING is not set CONFIG_HAVE_SCHED_AVG_IRQ=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y CONFIG_TASK_IO_ACCOUNTING=y # CONFIG_PSI is not set CONFIG_CPU_ISOLATION=y # # RCU Subsystem # CONFIG_TREE_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y CONFIG_TREE_SRCU=y CONFIG_TASKS_RCU=y CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y CONFIG_CONTEXT_TRACKING=y # CONFIG_CONTEXT_TRACKING_FORCE is not set CONFIG_RCU_NOCB_CPU=y CONFIG_BUILD_BIN2C=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=20 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_NUMA_BALANCING=y CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y CONFIG_MEMCG=y CONFIG_MEMCG_SWAP=y CONFIG_MEMCG_SWAP_ENABLED=y CONFIG_MEMCG_KMEM=y CONFIG_BLK_CGROUP=y # CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_CGROUP_WRITEBACK=y CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y CONFIG_RT_GROUP_SCHED=y CONFIG_CGROUP_PIDS=y CONFIG_CGROUP_RDMA=y CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_HUGETLB=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_DEVICE=y # CONFIG_CGROUP_CPUACCT is not set CONFIG_CGROUP_PERF=y CONFIG_CGROUP_BPF=y # CONFIG_CGROUP_DEBUG is not set CONFIG_SOCK_CGROUP_DATA=y CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y CONFIG_USER_NS=y CONFIG_PID_NS=y CONFIG_NET_NS=y CONFIG_CHECKPOINT_RESTORE=y CONFIG_SCHED_AUTOGROUP=y # CONFIG_SYSFS_DEPRECATED is not set CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y CONFIG_RD_LZ4=y CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y CONFIG_HAVE_UID16=y CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BPF=y CONFIG_EXPERT=y CONFIG_UID16=y CONFIG_MULTIUSER=y CONFIG_SGETMASK_SYSCALL=y CONFIG_SYSFS_SYSCALL=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_FHANDLE=y CONFIG_POSIX_TIMERS=y CONFIG_PRINTK=y CONFIG_PRINTK_NMI=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_FUTEX_PI=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_BPF_SYSCALL=y # CONFIG_BPF_JIT_ALWAYS_ON is not set CONFIG_USERFAULTFD=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_RSEQ=y # CONFIG_DEBUG_RSEQ is not set CONFIG_EMBEDDED=y CONFIG_HAVE_PERF_EVENTS=y # CONFIG_PC104 is not set # # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y # CONFIG_SLUB_MEMCG_SYSFS_ON is not set # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y # CONFIG_SLOB is not set CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLAB_FREELIST_RANDOM is not set # CONFIG_SLAB_FREELIST_HARDENED is not set CONFIG_SLUB_CPU_PARTIAL=y CONFIG_SYSTEM_DATA_VERIFICATION=y CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y CONFIG_64BIT=y CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_MMU=y CONFIG_ARCH_MMAP_RND_BITS_MIN=28 CONFIG_ARCH_MMAP_RND_BITS_MAX=32 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_FILTER_PGPROT=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ZONE_DMA32=y CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # CONFIG_ZONE_DMA=y CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_X2APIC=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set CONFIG_RETPOLINE=y CONFIG_INTEL_RDT=y CONFIG_X86_EXTENDED_PLATFORM=y # CONFIG_X86_NUMACHIP is not set # CONFIG_X86_VSMP is not set CONFIG_X86_UV=y # CONFIG_X86_GOLDFISH is not set # CONFIG_X86_INTEL_MID is not set CONFIG_X86_INTEL_LPSS=y # CONFIG_X86_AMD_PLATFORM_DEVICE is not set CONFIG_IOSF_MBI=y # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y # CONFIG_SCHED_OMIT_FRAME_POINTER is not set CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y CONFIG_PARAVIRT_XXL=y # CONFIG_PARAVIRT_DEBUG is not set CONFIG_PARAVIRT_SPINLOCKS=y # CONFIG_QUEUED_LOCK_STAT is not set CONFIG_XEN=y CONFIG_XEN_PV=y CONFIG_XEN_PV_SMP=y CONFIG_XEN_DOM0=y CONFIG_XEN_PVHVM=y CONFIG_XEN_PVHVM_SMP=y CONFIG_XEN_512GB=y CONFIG_XEN_SAVE_RESTORE=y # CONFIG_XEN_DEBUG_FS is not set # CONFIG_XEN_PVH is not set CONFIG_KVM_GUEST=y # CONFIG_KVM_DEBUG_FS is not set CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT_CLOCK=y # CONFIG_JAILHOUSE_GUEST is not set # CONFIG_MK8 is not set # CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set CONFIG_GENERIC_CPU=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=64 CONFIG_X86_DEBUGCTLMSR=y # CONFIG_PROCESSOR_SELECT is not set CONFIG_CPU_SUP_INTEL=y CONFIG_CPU_SUP_AMD=y CONFIG_CPU_SUP_HYGON=y CONFIG_CPU_SUP_CENTAUR=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y CONFIG_GART_IOMMU=y # CONFIG_CALGARY_IOMMU is not set CONFIG_MAXSMP=y CONFIG_NR_CPUS_RANGE_BEGIN=8192 CONFIG_NR_CPUS_RANGE_END=8192 CONFIG_NR_CPUS_DEFAULT=8192 CONFIG_NR_CPUS=8192 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y CONFIG_X86_MCE=y CONFIG_X86_MCELOG_LEGACY=y CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y CONFIG_X86_MCE_THRESHOLD=y CONFIG_X86_MCE_INJECT=m CONFIG_X86_THERMAL_VECTOR=y # # Performance monitoring # CONFIG_PERF_EVENTS_INTEL_UNCORE=y CONFIG_PERF_EVENTS_INTEL_RAPL=y CONFIG_PERF_EVENTS_INTEL_CSTATE=y # CONFIG_PERF_EVENTS_AMD_POWER is not set CONFIG_X86_16BIT=y CONFIG_X86_ESPFIX64=y CONFIG_X86_VSYSCALL_EMULATION=y CONFIG_I8K=m CONFIG_MICROCODE=y CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y CONFIG_X86_MSR=y CONFIG_X86_CPUID=y # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y # CONFIG_X86_CPA_STATISTICS is not set CONFIG_ARCH_HAS_MEM_ENCRYPT=y # CONFIG_AMD_MEM_ENCRYPT is not set CONFIG_NUMA=y CONFIG_AMD_NUMA=y CONFIG_X86_64_ACPI_NUMA=y CONFIG_NODES_SPAN_OTHER_NODES=y # CONFIG_NUMA_EMU is not set CONFIG_NODES_SHIFT=10 CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_MEMORY_PROBE=y CONFIG_ARCH_PROC_KCORE_TEXT=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 CONFIG_X86_PMEM_LEGACY_DEVICE=y CONFIG_X86_PMEM_LEGACY=m CONFIG_X86_CHECK_BIOS_CORRUPTION=y # CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set CONFIG_X86_RESERVE_LOW=64 CONFIG_MTRR=y CONFIG_MTRR_SANITIZER=y CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y CONFIG_X86_SMAP=y CONFIG_X86_INTEL_UMIP=y CONFIG_X86_INTEL_MPX=y CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y CONFIG_EFI=y CONFIG_EFI_STUB=y # CONFIG_EFI_MIXED is not set CONFIG_SECCOMP=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y # CONFIG_KEXEC_FILE is not set CONFIG_CRASH_DUMP=y CONFIG_KEXEC_JUMP=y CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 CONFIG_HOTPLUG_CPU=y CONFIG_BOOTPARAM_HOTPLUG_CPU0=y # CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_COMPAT_VDSO is not set CONFIG_LEGACY_VSYSCALL_EMULATE=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set CONFIG_MODIFY_LDT_SYSCALL=y CONFIG_HAVE_LIVEPATCH=y # CONFIG_LIVEPATCH is not set CONFIG_ARCH_HAS_ADD_PAGES=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y CONFIG_USE_PERCPU_NUMA_NODE_ID=y CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y CONFIG_ARCH_ENABLE_THP_MIGRATION=y # # Power management and ACPI options # CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y # CONFIG_SUSPEND_SKIP_SYNC is not set CONFIG_HIBERNATE_CALLBACKS=y CONFIG_HIBERNATION=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y CONFIG_PM_DEBUG=y CONFIG_PM_ADVANCED_DEBUG=y CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_SLEEP_DEBUG=y # CONFIG_DPM_WATCHDOG is not set # CONFIG_PM_TRACE_RTC is not set CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set CONFIG_ARCH_SUPPORTS_ACPI=y CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y # CONFIG_ACPI_DEBUGGER is not set CONFIG_ACPI_SPCR_TABLE=y CONFIG_ACPI_LPIT=y CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS_POWER is not set CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y CONFIG_ACPI_EC_DEBUGFS=m CONFIG_ACPI_AC=y CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=y # CONFIG_ACPI_TAD is not set CONFIG_ACPI_DOCK=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_IPMI=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=m CONFIG_ACPI_THERMAL=y CONFIG_ACPI_NUMA=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_DEBUG=y CONFIG_ACPI_PCI_SLOT=y CONFIG_ACPI_CONTAINER=y CONFIG_ACPI_HOTPLUG_MEMORY=y CONFIG_ACPI_HOTPLUG_IOAPIC=y CONFIG_ACPI_SBS=m CONFIG_ACPI_HED=y CONFIG_ACPI_CUSTOM_METHOD=m CONFIG_ACPI_BGRT=y # CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set CONFIG_ACPI_NFIT=m CONFIG_HAVE_ACPI_APEI=y CONFIG_HAVE_ACPI_APEI_NMI=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=m CONFIG_ACPI_APEI_ERST_DEBUG=y # CONFIG_DPTF_POWER is not set CONFIG_ACPI_WATCHDOG=y CONFIG_ACPI_EXTLOG=m # CONFIG_PMIC_OPREGION is not set # CONFIG_ACPI_CONFIGFS is not set CONFIG_X86_PM_TIMER=y CONFIG_SFI=y # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_GOV_ATTR_SET=y CONFIG_CPU_FREQ_GOV_COMMON=y # CONFIG_CPU_FREQ_STAT is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set # # CPU frequency scaling drivers # CONFIG_X86_INTEL_PSTATE=y CONFIG_X86_PCC_CPUFREQ=m CONFIG_X86_ACPI_CPUFREQ=m CONFIG_X86_ACPI_CPUFREQ_CPB=y CONFIG_X86_POWERNOW_K8=m CONFIG_X86_AMD_FREQ_SENSITIVITY=m # CONFIG_X86_SPEEDSTEP_CENTRINO is not set CONFIG_X86_P4_CLOCKMOD=m # # shared options # CONFIG_X86_SPEEDSTEP_LIB=m # # CPU Idle # CONFIG_CPU_IDLE=y # CONFIG_CPU_IDLE_GOV_LADDER is not set CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_INTEL_IDLE=y # # Bus options (PCI etc.) # CONFIG_PCI=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_XEN=y CONFIG_PCI_DOMAINS=y CONFIG_MMCONF_FAM10H=y # CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCIEPORTBUS=y CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_PCIEAER=y CONFIG_PCIEAER_INJECT=m CONFIG_PCIE_ECRC=y CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIEASPM_DEFAULT=y # CONFIG_PCIEASPM_POWERSAVE is not set # CONFIG_PCIEASPM_POWER_SUPERSAVE is not set # CONFIG_PCIEASPM_PERFORMANCE is not set CONFIG_PCIE_PME=y # CONFIG_PCIE_DPC is not set # CONFIG_PCIE_PTM is not set CONFIG_PCI_MSI=y CONFIG_PCI_MSI_IRQ_DOMAIN=y CONFIG_PCI_QUIRKS=y # CONFIG_PCI_DEBUG is not set # CONFIG_PCI_REALLOC_ENABLE_AUTO is not set CONFIG_PCI_STUB=y # CONFIG_PCI_PF_STUB is not set # CONFIG_XEN_PCIDEV_FRONTEND is not set CONFIG_PCI_ATS=y CONFIG_PCI_LOCKLESS_CONFIG=y CONFIG_PCI_IOV=y CONFIG_PCI_PRI=y CONFIG_PCI_PASID=y # CONFIG_PCI_P2PDMA is not set CONFIG_PCI_LABEL=y # CONFIG_PCI_HYPERV is not set CONFIG_HOTPLUG_PCI=y CONFIG_HOTPLUG_PCI_ACPI=y CONFIG_HOTPLUG_PCI_ACPI_IBM=m # CONFIG_HOTPLUG_PCI_CPCI is not set # CONFIG_HOTPLUG_PCI_SHPC is not set # # PCI controller drivers # # # Cadence PCIe controllers support # # CONFIG_VMD is not set # # DesignWare PCI Core Support # # CONFIG_PCIE_DW_PLAT_HOST is not set # # PCI Endpoint # # CONFIG_PCI_ENDPOINT is not set # # PCI switch controller drivers # # CONFIG_PCI_SW_SWITCHTEC is not set # CONFIG_ISA_BUS is not set CONFIG_ISA_DMA_API=y CONFIG_AMD_NB=y CONFIG_PCCARD=y # CONFIG_PCMCIA is not set CONFIG_CARDBUS=y # # PC-card bridges # CONFIG_YENTA=m CONFIG_YENTA_O2=y CONFIG_YENTA_RICOH=y CONFIG_YENTA_TI=y CONFIG_YENTA_ENE_TUNE=y CONFIG_YENTA_TOSHIBA=y # CONFIG_RAPIDIO is not set # CONFIG_X86_SYSFB is not set # # Binary Emulations # CONFIG_IA32_EMULATION=y # CONFIG_IA32_AOUT is not set # CONFIG_X86_X32 is not set CONFIG_COMPAT_32=y CONFIG_COMPAT=y CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y CONFIG_X86_DEV_DMA_OPS=y CONFIG_HAVE_GENERIC_GUP=y # # Firmware Drivers # CONFIG_EDD=m # CONFIG_EDD_OFF is not set CONFIG_FIRMWARE_MEMMAP=y CONFIG_DMIID=y CONFIG_DMI_SYSFS=y CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m # CONFIG_FW_CFG_SYSFS is not set # CONFIG_GOOGLE_FIRMWARE is not set # # EFI (Extensible Firmware Interface) Support # CONFIG_EFI_VARS=y CONFIG_EFI_ESRT=y CONFIG_EFI_VARS_PSTORE=y CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y CONFIG_EFI_RUNTIME_MAP=y # CONFIG_EFI_FAKE_MEMMAP is not set CONFIG_EFI_RUNTIME_WRAPPERS=y # CONFIG_EFI_BOOTLOADER_CONTROL is not set # CONFIG_EFI_CAPSULE_LOADER is not set # CONFIG_EFI_TEST is not set # CONFIG_APPLE_PROPERTIES is not set # CONFIG_RESET_ATTACK_MITIGATION is not set CONFIG_UEFI_CPER=y CONFIG_UEFI_CPER_X86=y # # Tegra firmware driver # CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_IRQFD=y CONFIG_HAVE_KVM_IRQ_ROUTING=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_MMIO=y CONFIG_KVM_ASYNC_PF=y CONFIG_HAVE_KVM_MSI=y CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y CONFIG_KVM_VFIO=y CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y CONFIG_KVM_COMPAT=y CONFIG_HAVE_KVM_IRQ_BYPASS=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m CONFIG_KVM_MMU_AUDIT=y CONFIG_VHOST_NET=m # CONFIG_VHOST_SCSI is not set # CONFIG_VHOST_VSOCK is not set CONFIG_VHOST=m # CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set # # General architecture-dependent options # CONFIG_CRASH_CORE=y CONFIG_KEXEC_CORE=y CONFIG_HOTPLUG_SMT=y CONFIG_OPROFILE=m CONFIG_OPROFILE_EVENT_MULTIPLEX=y CONFIG_HAVE_OPROFILE=y CONFIG_OPROFILE_NMI_TIMER=y CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_OPTPROBES=y CONFIG_KPROBES_ON_FTRACE=y CONFIG_UPROBES=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_KRETPROBES=y CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_KPROBES_ON_FTRACE=y CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y CONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_RSEQ=y CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y CONFIG_HAVE_CLK=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y CONFIG_HAVE_RCU_TABLE_FREE=y CONFIG_HAVE_RCU_TABLE_INVALIDATE=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y CONFIG_HAVE_CMPXCHG_LOCAL=y CONFIG_HAVE_CMPXCHG_DOUBLE=y CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_SECCOMP_FILTER=y CONFIG_HAVE_ARCH_STACKLEAK=y CONFIG_HAVE_STACKPROTECTOR=y CONFIG_CC_HAS_STACKPROTECTOR_NONE=y CONFIG_STACKPROTECTOR=y CONFIG_STACKPROTECTOR_STRONG=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y CONFIG_HAVE_ARCH_HUGE_VMAP=y CONFIG_HAVE_ARCH_SOFT_DIRTY=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_RELA=y CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_HAVE_EXIT_THREAD=y CONFIG_ARCH_MMAP_RND_BITS=28 CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y CONFIG_HAVE_COPY_THREAD_TLS=y CONFIG_HAVE_STACK_VALIDATION=y CONFIG_HAVE_RELIABLE_STACKTRACE=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_COMPAT_OLD_SIGACTION=y CONFIG_COMPAT_32BIT_TIME=y CONFIG_HAVE_ARCH_VMAP_STACK=y CONFIG_VMAP_STACK=y CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y CONFIG_ARCH_HAS_REFCOUNT=y # CONFIG_REFCOUNT_FULL is not set CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y # # GCOV-based kernel profiling # # CONFIG_GCOV_KERNEL is not set CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y CONFIG_PLUGIN_HOSTCC="g++" CONFIG_HAVE_GCC_PLUGINS=y # CONFIG_GCC_PLUGINS is not set CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_MODULE_SIG is not set # CONFIG_MODULE_COMPRESS is not set # CONFIG_TRIM_UNUSED_KSYMS is not set CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y CONFIG_BLK_SCSI_REQUEST=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y # CONFIG_BLK_DEV_ZONED is not set CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_DEV_THROTTLING_LOW is not set # CONFIG_BLK_CMDLINE_PARSER is not set # CONFIG_BLK_WBT is not set # CONFIG_BLK_CGROUP_IOLATENCY is not set CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_SED_OPAL is not set # # Partition Types # CONFIG_PARTITION_ADVANCED=y # CONFIG_ACORN_PARTITION is not set # CONFIG_AIX_PARTITION is not set CONFIG_OSF_PARTITION=y CONFIG_AMIGA_PARTITION=y # CONFIG_ATARI_PARTITION is not set CONFIG_MAC_PARTITION=y CONFIG_MSDOS_PARTITION=y CONFIG_BSD_DISKLABEL=y CONFIG_MINIX_SUBPARTITION=y CONFIG_SOLARIS_X86_PARTITION=y CONFIG_UNIXWARE_DISKLABEL=y # CONFIG_LDM_PARTITION is not set CONFIG_SGI_PARTITION=y # CONFIG_ULTRIX_PARTITION is not set CONFIG_SUN_PARTITION=y CONFIG_KARMA_PARTITION=y CONFIG_EFI_PARTITION=y # CONFIG_SYSV68_PARTITION is not set # CONFIG_CMDLINE_PARTITION is not set CONFIG_BLOCK_COMPAT=y CONFIG_BLK_MQ_PCI=y CONFIG_BLK_MQ_VIRTIO=y CONFIG_BLK_PM=y # # IO Schedulers # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y CONFIG_CFQ_GROUP_IOSCHED=y CONFIG_DEFAULT_DEADLINE=y # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="deadline" CONFIG_MQ_IOSCHED_DEADLINE=y CONFIG_MQ_IOSCHED_KYBER=y # CONFIG_IOSCHED_BFQ is not set CONFIG_PREEMPT_NOTIFIERS=y CONFIG_PADATA=y CONFIG_ASN1=y CONFIG_INLINE_SPIN_UNLOCK_IRQ=y CONFIG_INLINE_READ_UNLOCK=y CONFIG_INLINE_READ_UNLOCK_IRQ=y CONFIG_INLINE_WRITE_UNLOCK=y CONFIG_INLINE_WRITE_UNLOCK_IRQ=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_RWSEM_SPIN_ON_OWNER=y CONFIG_LOCK_SPIN_ON_OWNER=y CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y CONFIG_QUEUED_RWLOCKS=y CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y CONFIG_FREEZER=y # # Executable file formats # CONFIG_BINFMT_ELF=y CONFIG_COMPAT_BINFMT_ELF=y CONFIG_ELFCORE=y CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_BINFMT_SCRIPT=y CONFIG_BINFMT_MISC=m CONFIG_COREDUMP=y # # Memory Management options # CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SPARSEMEM_MANUAL=y CONFIG_SPARSEMEM=y CONFIG_NEED_MULTIPLE_NODES=y CONFIG_HAVE_MEMORY_PRESENT=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_HAVE_MEMBLOCK_NODE_MAP=y CONFIG_ARCH_DISCARD_MEMBLOCK=y CONFIG_MEMORY_ISOLATION=y CONFIG_HAVE_BOOTMEM_INFO_NODE=y CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTPLUG_SPARSE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTREMOVE=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_MEMORY_BALLOON=y CONFIG_BALLOON_COMPACTION=y CONFIG_COMPACTION=y CONFIG_MIGRATION=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y CONFIG_MEMORY_FAILURE=y CONFIG_HWPOISON_INJECT=m CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y # CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set CONFIG_ARCH_WANTS_THP_SWAP=y CONFIG_THP_SWAP=y CONFIG_TRANSPARENT_HUGE_PAGECACHE=y CONFIG_CLEANCACHE=y CONFIG_FRONTSWAP=y CONFIG_CMA=y # CONFIG_CMA_DEBUG is not set # CONFIG_CMA_DEBUGFS is not set CONFIG_CMA_AREAS=7 # CONFIG_MEM_SOFT_DIRTY is not set CONFIG_ZSWAP=y CONFIG_ZPOOL=y CONFIG_ZBUD=y # CONFIG_Z3FOLD is not set CONFIG_ZSMALLOC=y # CONFIG_PGTABLE_MAPPING is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_GENERIC_EARLY_IOREMAP=y # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set CONFIG_IDLE_PAGE_TRACKING=y CONFIG_ARCH_HAS_ZONE_DEVICE=y CONFIG_ZONE_DEVICE=y CONFIG_ARCH_HAS_HMM=y CONFIG_DEV_PAGEMAP_OPS=y # CONFIG_HMM_MIRROR is not set # CONFIG_DEVICE_PRIVATE is not set # CONFIG_DEVICE_PUBLIC is not set CONFIG_FRAME_VECTOR=y CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y CONFIG_ARCH_HAS_PKEYS=y # CONFIG_PERCPU_STATS is not set # CONFIG_GUP_BENCHMARK is not set CONFIG_ARCH_HAS_PTE_SPECIAL=y CONFIG_NET=y CONFIG_COMPAT_NETLINK_MESSAGES=y CONFIG_NET_INGRESS=y CONFIG_NET_EGRESS=y # # Networking options # CONFIG_PACKET=y CONFIG_PACKET_DIAG=m CONFIG_UNIX=y CONFIG_UNIX_DIAG=m # CONFIG_TLS is not set CONFIG_XFRM=y CONFIG_XFRM_ALGO=y CONFIG_XFRM_USER=y # CONFIG_XFRM_INTERFACE is not set CONFIG_XFRM_SUB_POLICY=y CONFIG_XFRM_MIGRATE=y CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m CONFIG_NET_KEY=m CONFIG_NET_KEY_MIGRATE=y # CONFIG_XDP_SOCKETS is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_FIB_TRIE_STATS=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y CONFIG_IP_ROUTE_CLASSID=y CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y # CONFIG_IP_PNP_BOOTP is not set # CONFIG_IP_PNP_RARP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE_DEMUX=m CONFIG_NET_IP_TUNNEL=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE_COMMON=y CONFIG_IP_MROUTE=y CONFIG_IP_MROUTE_MULTIPLE_TABLES=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_SYN_COOKIES=y CONFIG_NET_IPVTI=m CONFIG_NET_UDP_TUNNEL=m CONFIG_NET_FOU=m CONFIG_NET_FOU_IP_TUNNELS=y CONFIG_INET_AH=m CONFIG_INET_ESP=m # CONFIG_INET_ESP_OFFLOAD is not set CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m CONFIG_INET_XFRM_MODE_TRANSPORT=m CONFIG_INET_XFRM_MODE_TUNNEL=m CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m CONFIG_INET_UDP_DIAG=m # CONFIG_INET_RAW_DIAG is not set # CONFIG_INET_DIAG_DESTROY is not set CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=m CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m CONFIG_TCP_CONG_HYBLA=m CONFIG_TCP_CONG_VEGAS=m # CONFIG_TCP_CONG_NV is not set CONFIG_TCP_CONG_SCALABLE=m CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m # CONFIG_TCP_CONG_DCTCP is not set # CONFIG_TCP_CONG_CDG is not set # CONFIG_TCP_CONG_BBR is not set CONFIG_DEFAULT_CUBIC=y # CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_TCP_MD5SIG=y CONFIG_IPV6=y CONFIG_IPV6_ROUTER_PREF=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m # CONFIG_INET6_ESP_OFFLOAD is not set CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=m # CONFIG_IPV6_ILA is not set CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m CONFIG_INET6_XFRM_MODE_TRANSPORT=m CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_VTI=m CONFIG_IPV6_SIT=m CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m # CONFIG_IPV6_GRE is not set CONFIG_IPV6_FOU=m CONFIG_IPV6_FOU_TUNNEL=m CONFIG_IPV6_MULTIPLE_TABLES=y # CONFIG_IPV6_SUBTREES is not set CONFIG_IPV6_MROUTE=y CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y CONFIG_IPV6_PIMSM_V2=y CONFIG_IPV6_SEG6_LWTUNNEL=y # CONFIG_IPV6_SEG6_HMAC is not set CONFIG_IPV6_SEG6_BPF=y CONFIG_NETLABEL=y CONFIG_NETWORK_SECMARK=y CONFIG_NET_PTP_CLASSIFY=y CONFIG_NETWORK_PHY_TIMESTAMPING=y CONFIG_NETFILTER=y CONFIG_NETFILTER_ADVANCED=y CONFIG_BRIDGE_NETFILTER=m # # Core Netfilter Configuration # CONFIG_NETFILTER_INGRESS=y CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_FAMILY_BRIDGE=y CONFIG_NETFILTER_FAMILY_ARP=y CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NETFILTER_NETLINK_OSF=m CONFIG_NF_CONNTRACK=m CONFIG_NF_LOG_COMMON=m # CONFIG_NF_LOG_NETDEV is not set CONFIG_NETFILTER_CONNCOUNT=m CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y CONFIG_NF_CONNTRACK_ZONES=y CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y # CONFIG_NF_CONNTRACK_TIMEOUT is not set CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CONNTRACK_LABELS=y CONFIG_NF_CT_PROTO_DCCP=y CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=y CONFIG_NF_CT_PROTO_UDPLITE=y CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m CONFIG_NF_CONNTRACK_BROADCAST=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m CONFIG_NF_CONNTRACK_SNMP=m CONFIG_NF_CONNTRACK_PPTP=m CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m # CONFIG_NETFILTER_NETLINK_GLUE_CT is not set CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y CONFIG_NF_NAT_PROTO_DCCP=y CONFIG_NF_NAT_PROTO_UDPLITE=y CONFIG_NF_NAT_PROTO_SCTP=y CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m CONFIG_NF_NAT_SIP=m CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_REDIRECT=y CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m # CONFIG_NF_TABLES_SET is not set # CONFIG_NF_TABLES_INET is not set # CONFIG_NF_TABLES_NETDEV is not set # CONFIG_NFT_NUMGEN is not set CONFIG_NFT_CT=m CONFIG_NFT_COUNTER=m # CONFIG_NFT_CONNLIMIT is not set CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m # CONFIG_NFT_MASQ is not set # CONFIG_NFT_REDIR is not set CONFIG_NFT_NAT=m # CONFIG_NFT_TUNNEL is not set # CONFIG_NFT_OBJREF is not set # CONFIG_NFT_QUEUE is not set # CONFIG_NFT_QUOTA is not set # CONFIG_NFT_REJECT is not set CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m # CONFIG_NFT_XFRM is not set # CONFIG_NFT_SOCKET is not set # CONFIG_NFT_OSF is not set # CONFIG_NFT_TPROXY is not set # CONFIG_NF_FLOW_TABLE is not set CONFIG_NETFILTER_XTABLES=y # # Xtables combined modules # CONFIG_NETFILTER_XT_MARK=m CONFIG_NETFILTER_XT_CONNMARK=m CONFIG_NETFILTER_XT_SET=m # # Xtables targets # CONFIG_NETFILTER_XT_TARGET_AUDIT=m CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m CONFIG_NETFILTER_XT_TARGET_HMARK=m CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m CONFIG_NETFILTER_XT_TARGET_LED=m CONFIG_NETFILTER_XT_TARGET_LOG=m CONFIG_NETFILTER_XT_TARGET_MARK=m CONFIG_NETFILTER_XT_NAT=m CONFIG_NETFILTER_XT_TARGET_NETMAP=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m CONFIG_NETFILTER_XT_TARGET_REDIRECT=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TPROXY=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_SECMARK=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m # # Xtables matches # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m CONFIG_NETFILTER_XT_MATCH_BPF=m # CONFIG_NETFILTER_XT_MATCH_CGROUP is not set CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ECN=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m # CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set CONFIG_NETFILTER_XT_MATCH_IPRANGE=m CONFIG_NETFILTER_XT_MATCH_IPVS=m CONFIG_NETFILTER_XT_MATCH_L2TP=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m CONFIG_NETFILTER_XT_MATCH_NFACCT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_RATEEST=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_RECENT=m CONFIG_NETFILTER_XT_MATCH_SCTP=m # CONFIG_NETFILTER_XT_MATCH_SOCKET is not set CONFIG_NETFILTER_XT_MATCH_STATE=m CONFIG_NETFILTER_XT_MATCH_STATISTIC=m CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m CONFIG_IP_SET=m CONFIG_IP_SET_MAX=256 CONFIG_IP_SET_BITMAP_IP=m CONFIG_IP_SET_BITMAP_IPMAC=m CONFIG_IP_SET_BITMAP_PORT=m CONFIG_IP_SET_HASH_IP=m # CONFIG_IP_SET_HASH_IPMARK is not set CONFIG_IP_SET_HASH_IPPORT=m CONFIG_IP_SET_HASH_IPPORTIP=m CONFIG_IP_SET_HASH_IPPORTNET=m # CONFIG_IP_SET_HASH_IPMAC is not set # CONFIG_IP_SET_HASH_MAC is not set # CONFIG_IP_SET_HASH_NETPORTNET is not set CONFIG_IP_SET_HASH_NET=m # CONFIG_IP_SET_HASH_NETNET is not set CONFIG_IP_SET_HASH_NETPORT=m CONFIG_IP_SET_HASH_NETIFACE=m CONFIG_IP_SET_LIST_SET=m CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y # CONFIG_IP_VS_DEBUG is not set CONFIG_IP_VS_TAB_BITS=12 # # IPVS transport protocol load balancing support # CONFIG_IP_VS_PROTO_TCP=y CONFIG_IP_VS_PROTO_UDP=y CONFIG_IP_VS_PROTO_AH_ESP=y CONFIG_IP_VS_PROTO_ESP=y CONFIG_IP_VS_PROTO_AH=y CONFIG_IP_VS_PROTO_SCTP=y # # IPVS scheduler # CONFIG_IP_VS_RR=m CONFIG_IP_VS_WRR=m CONFIG_IP_VS_LC=m CONFIG_IP_VS_WLC=m # CONFIG_IP_VS_FO is not set # CONFIG_IP_VS_OVF is not set CONFIG_IP_VS_LBLC=m CONFIG_IP_VS_LBLCR=m CONFIG_IP_VS_DH=m CONFIG_IP_VS_SH=m # CONFIG_IP_VS_MH is not set CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m # # IPVS SH scheduler # CONFIG_IP_VS_SH_TAB_BITS=8 # # IPVS MH scheduler # CONFIG_IP_VS_MH_TAB_INDEX=12 # # IPVS application helper # CONFIG_IP_VS_FTP=m CONFIG_IP_VS_NFCT=y CONFIG_IP_VS_PE_SIP=m # # IP: Netfilter Configuration # CONFIG_NF_DEFRAG_IPV4=m # CONFIG_NF_SOCKET_IPV4 is not set CONFIG_NF_TPROXY_IPV4=m # CONFIG_NF_TABLES_IPV4 is not set # CONFIG_NF_TABLES_ARP is not set CONFIG_NF_DUP_IPV4=m # CONFIG_NF_LOG_ARP is not set CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m CONFIG_NF_NAT_IPV4=m CONFIG_NF_NAT_MASQUERADE_IPV4=y CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_TARGET_SYNPROXY=m CONFIG_IP_NF_NAT=m CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_RAW=m CONFIG_IP_NF_SECURITY=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m # # IPv6: Netfilter Configuration # # CONFIG_NF_SOCKET_IPV6 is not set CONFIG_NF_TPROXY_IPV6=m # CONFIG_NF_TABLES_IPV6 is not set CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m CONFIG_NF_NAT_IPV6=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_MATCH_FRAG=m CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m # CONFIG_IP6_NF_MATCH_SRH is not set CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_TARGET_SYNPROXY=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m CONFIG_IP6_NF_SECURITY=m # CONFIG_IP6_NF_NAT is not set CONFIG_NF_DEFRAG_IPV6=m # CONFIG_NF_TABLES_BRIDGE is not set CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m CONFIG_BRIDGE_EBT_T_NAT=m CONFIG_BRIDGE_EBT_802_3=m CONFIG_BRIDGE_EBT_AMONG=m CONFIG_BRIDGE_EBT_ARP=m CONFIG_BRIDGE_EBT_IP=m CONFIG_BRIDGE_EBT_IP6=m CONFIG_BRIDGE_EBT_LIMIT=m CONFIG_BRIDGE_EBT_MARK=m CONFIG_BRIDGE_EBT_PKTTYPE=m CONFIG_BRIDGE_EBT_STP=m CONFIG_BRIDGE_EBT_VLAN=m CONFIG_BRIDGE_EBT_ARPREPLY=m CONFIG_BRIDGE_EBT_DNAT=m CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m CONFIG_BRIDGE_EBT_NFLOG=m # CONFIG_BPFILTER is not set CONFIG_IP_DCCP=m CONFIG_INET_DCCP_DIAG=m # # DCCP CCIDs Configuration # # CONFIG_IP_DCCP_CCID2_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_TFRC_LIB=y # # DCCP Kernel Hacking # # CONFIG_IP_DCCP_DEBUG is not set CONFIG_IP_SCTP=m # CONFIG_SCTP_DBG_OBJCNT is not set # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set CONFIG_SCTP_COOKIE_HMAC_MD5=y CONFIG_SCTP_COOKIE_HMAC_SHA1=y CONFIG_INET_SCTP_DIAG=m # CONFIG_RDS is not set CONFIG_TIPC=m CONFIG_TIPC_MEDIA_UDP=y CONFIG_TIPC_DIAG=m CONFIG_ATM=m CONFIG_ATM_CLIP=m # CONFIG_ATM_CLIP_NO_ICMP is not set CONFIG_ATM_LANE=m # CONFIG_ATM_MPOA is not set CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set CONFIG_L2TP=m CONFIG_L2TP_DEBUGFS=m CONFIG_L2TP_V3=y CONFIG_L2TP_IP=m CONFIG_L2TP_ETH=m CONFIG_STP=m CONFIG_GARP=m CONFIG_MRP=m CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_HAVE_NET_DSA=y # CONFIG_NET_DSA is not set CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q_MVRP=y # CONFIG_DECNET is not set CONFIG_LLC=m # CONFIG_LLC2 is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_PHONET is not set # CONFIG_6LOWPAN is not set CONFIG_IEEE802154=m # CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set CONFIG_IEEE802154_SOCKET=m CONFIG_MAC802154=m CONFIG_NET_SCHED=y # # Queueing/Scheduling # CONFIG_NET_SCH_CBQ=m CONFIG_NET_SCH_HTB=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_MULTIQ=m CONFIG_NET_SCH_RED=m CONFIG_NET_SCH_SFB=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m # CONFIG_NET_SCH_CBS is not set # CONFIG_NET_SCH_ETF is not set # CONFIG_NET_SCH_TAPRIO is not set CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_DRR=m CONFIG_NET_SCH_MQPRIO=m # CONFIG_NET_SCH_SKBPRIO is not set CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m CONFIG_NET_SCH_CODEL=m CONFIG_NET_SCH_FQ_CODEL=m # CONFIG_NET_SCH_CAKE is not set # CONFIG_NET_SCH_FQ is not set # CONFIG_NET_SCH_HHF is not set # CONFIG_NET_SCH_PIE is not set CONFIG_NET_SCH_INGRESS=m CONFIG_NET_SCH_PLUG=m # CONFIG_NET_SCH_DEFAULT is not set # # Classification # CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_PERF=y CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m CONFIG_NET_CLS_FLOW=m CONFIG_NET_CLS_CGROUP=y CONFIG_NET_CLS_BPF=m # CONFIG_NET_CLS_FLOWER is not set # CONFIG_NET_CLS_MATCHALL is not set CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=m CONFIG_NET_EMATCH_NBYTE=m CONFIG_NET_EMATCH_U32=m CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m # CONFIG_NET_EMATCH_CANID is not set CONFIG_NET_EMATCH_IPSET=m # CONFIG_NET_EMATCH_IPT is not set CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m CONFIG_GACT_PROB=y CONFIG_NET_ACT_MIRRED=m # CONFIG_NET_ACT_SAMPLE is not set CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m CONFIG_NET_ACT_CSUM=m # CONFIG_NET_ACT_VLAN is not set # CONFIG_NET_ACT_BPF is not set # CONFIG_NET_ACT_CONNMARK is not set # CONFIG_NET_ACT_SKBMOD is not set # CONFIG_NET_ACT_IFE is not set # CONFIG_NET_ACT_TUNNEL_KEY is not set CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y CONFIG_DCB=y CONFIG_DNS_RESOLVER=m # CONFIG_BATMAN_ADV is not set CONFIG_OPENVSWITCH=m CONFIG_OPENVSWITCH_GRE=m CONFIG_OPENVSWITCH_VXLAN=m CONFIG_VSOCKETS=m CONFIG_VSOCKETS_DIAG=m CONFIG_VMWARE_VMCI_VSOCKETS=m # CONFIG_VIRTIO_VSOCKETS is not set # CONFIG_HYPERV_VSOCKETS is not set CONFIG_NETLINK_DIAG=m CONFIG_MPLS=y CONFIG_NET_MPLS_GSO=m # CONFIG_MPLS_ROUTING is not set CONFIG_NET_NSH=m # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set CONFIG_NET_L3_MASTER_DEV=y # CONFIG_NET_NCSI is not set CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y # CONFIG_CGROUP_NET_PRIO is not set CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y CONFIG_BPF_JIT=y CONFIG_BPF_STREAM_PARSER=y CONFIG_NET_FLOW_LIMIT=y # # Network testing # CONFIG_NET_PKTGEN=m CONFIG_NET_DROP_MONITOR=y # CONFIG_HAMRADIO is not set CONFIG_CAN=m CONFIG_CAN_RAW=m CONFIG_CAN_BCM=m CONFIG_CAN_GW=m # # CAN Device Drivers # CONFIG_CAN_VCAN=m # CONFIG_CAN_VXCAN is not set # CONFIG_CAN_SLCAN is not set CONFIG_CAN_DEV=m CONFIG_CAN_CALC_BITTIMING=y # CONFIG_CAN_C_CAN is not set # CONFIG_CAN_CC770 is not set # CONFIG_CAN_IFI_CANFD is not set # CONFIG_CAN_M_CAN is not set # CONFIG_CAN_PEAK_PCIEFD is not set # CONFIG_CAN_SJA1000 is not set # CONFIG_CAN_SOFTING is not set # # CAN SPI interfaces # # CONFIG_CAN_HI311X is not set # CONFIG_CAN_MCP251X is not set # # CAN USB interfaces # # CONFIG_CAN_8DEV_USB is not set # CONFIG_CAN_EMS_USB is not set # CONFIG_CAN_ESD_USB2 is not set # CONFIG_CAN_GS_USB is not set # CONFIG_CAN_KVASER_USB is not set # CONFIG_CAN_MCBA_USB is not set # CONFIG_CAN_PEAK_USB is not set # CONFIG_CAN_UCAN is not set # CONFIG_CAN_DEBUG_DEVICES is not set # CONFIG_BT is not set # CONFIG_AF_RXRPC is not set # CONFIG_AF_KCM is not set CONFIG_STREAM_PARSER=y CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y CONFIG_WEXT_CORE=y CONFIG_WEXT_PROC=y CONFIG_WEXT_PRIV=y CONFIG_CFG80211=m # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_CERTIFICATION_ONUS is not set CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set CONFIG_CFG80211_CRDA_SUPPORT=y CONFIG_CFG80211_WEXT=y CONFIG_LIB80211=m # CONFIG_LIB80211_DEBUG is not set CONFIG_MAC80211=m CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y CONFIG_MAC80211_DEBUGFS=y # CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 # CONFIG_WIMAX is not set CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y # CONFIG_RFKILL_GPIO is not set CONFIG_NET_9P=y CONFIG_NET_9P_VIRTIO=y # CONFIG_NET_9P_XEN is not set # CONFIG_NET_9P_DEBUG is not set # CONFIG_CAIF is not set # CONFIG_CEPH_LIB is not set # CONFIG_NFC is not set # CONFIG_PSAMPLE is not set # CONFIG_NET_IFE is not set CONFIG_LWTUNNEL=y CONFIG_LWTUNNEL_BPF=y CONFIG_DST_CACHE=y CONFIG_GRO_CELLS=y CONFIG_NET_SOCK_MSG=y # CONFIG_NET_DEVLINK is not set CONFIG_MAY_USE_DEVLINK=y CONFIG_FAILOVER=y CONFIG_HAVE_EBPF_JIT=y # # Device Drivers # # # Generic Driver Options # CONFIG_UEVENT_HELPER=y CONFIG_UEVENT_HELPER_PATH="" CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y # # Firmware loader # CONFIG_FW_LOADER=y CONFIG_EXTRA_FIRMWARE="" CONFIG_FW_LOADER_USER_HELPER=y CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y CONFIG_ALLOW_DEV_COREDUMP=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_SYS_HYPERVISOR=y CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_REGMAP=y CONFIG_REGMAP_I2C=y CONFIG_REGMAP_SPI=y CONFIG_DMA_SHARED_BUFFER=y # CONFIG_DMA_FENCE_TRACE is not set CONFIG_DMA_CMA=y # # Default contiguous memory area size: # CONFIG_CMA_SIZE_MBYTES=200 CONFIG_CMA_SIZE_SEL_MBYTES=y # CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set # CONFIG_CMA_SIZE_SEL_MIN is not set # CONFIG_CMA_SIZE_SEL_MAX is not set CONFIG_CMA_ALIGNMENT=8 # # Bus devices # CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y # CONFIG_GNSS is not set CONFIG_MTD=m # CONFIG_MTD_TESTS is not set # CONFIG_MTD_REDBOOT_PARTS is not set # CONFIG_MTD_CMDLINE_PARTS is not set # CONFIG_MTD_AR7_PARTS is not set # # Partition parsers # # # User Modules And Translation Layers # CONFIG_MTD_BLKDEVS=m CONFIG_MTD_BLOCK=m # CONFIG_MTD_BLOCK_RO is not set # CONFIG_FTL is not set # CONFIG_NFTL is not set # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # CONFIG_SSFDC is not set # CONFIG_SM_FTL is not set # CONFIG_MTD_OOPS is not set # CONFIG_MTD_SWAP is not set # CONFIG_MTD_PARTITIONED_MASTER is not set # # RAM/ROM/Flash chip drivers # # CONFIG_MTD_CFI is not set # CONFIG_MTD_JEDECPROBE is not set CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y CONFIG_MTD_MAP_BANK_WIDTH_4=y CONFIG_MTD_CFI_I1=y CONFIG_MTD_CFI_I2=y # CONFIG_MTD_RAM is not set # CONFIG_MTD_ROM is not set # CONFIG_MTD_ABSENT is not set # # Mapping drivers for chip access # # CONFIG_MTD_COMPLEX_MAPPINGS is not set # CONFIG_MTD_INTEL_VR_NOR is not set # CONFIG_MTD_PLATRAM is not set # # Self-contained MTD device drivers # # CONFIG_MTD_PMC551 is not set # CONFIG_MTD_DATAFLASH is not set # CONFIG_MTD_MCHP23K256 is not set # CONFIG_MTD_SST25L is not set # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_MTDRAM is not set # CONFIG_MTD_BLOCK2MTD is not set # # Disk-On-Chip Device Drivers # # CONFIG_MTD_DOCG3 is not set # CONFIG_MTD_ONENAND is not set # CONFIG_MTD_NAND is not set # CONFIG_MTD_SPI_NAND is not set # # LPDDR & LPDDR2 PCM memory drivers # # CONFIG_MTD_LPDDR is not set # CONFIG_MTD_SPI_NOR is not set CONFIG_MTD_UBI=m CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_LIMIT=20 # CONFIG_MTD_UBI_FASTMAP is not set # CONFIG_MTD_UBI_GLUEBI is not set # CONFIG_MTD_UBI_BLOCK is not set # CONFIG_OF is not set CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m # CONFIG_PARPORT_PC_FIFO is not set # CONFIG_PARPORT_PC_SUPERIO is not set # CONFIG_PARPORT_AX88796 is not set CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y CONFIG_PNP=y # CONFIG_PNP_DEBUG_MESSAGES is not set # # Protocols # CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_NULL_BLK=m CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y CONFIG_BLK_DEV_FD=m CONFIG_CDROM=m # CONFIG_PARIDE is not set CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m # CONFIG_ZRAM is not set # CONFIG_BLK_DEV_UMEM is not set CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_DRBD is not set CONFIG_BLK_DEV_NBD=m # CONFIG_BLK_DEV_SKD is not set CONFIG_BLK_DEV_SX8=m CONFIG_BLK_DEV_RAM=m CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set CONFIG_ATA_OVER_ETH=m CONFIG_XEN_BLKDEV_FRONTEND=m # CONFIG_XEN_BLKDEV_BACKEND is not set CONFIG_VIRTIO_BLK=y # CONFIG_VIRTIO_BLK_SCSI is not set # CONFIG_BLK_DEV_RBD is not set CONFIG_BLK_DEV_RSXX=m # # NVME Support # CONFIG_NVME_CORE=m CONFIG_BLK_DEV_NVME=m CONFIG_NVME_MULTIPATH=y CONFIG_NVME_FABRICS=m # CONFIG_NVME_FC is not set CONFIG_NVME_TARGET=m CONFIG_NVME_TARGET_LOOP=m # CONFIG_NVME_TARGET_FC is not set # # Misc devices # CONFIG_SENSORS_LIS3LV02D=m # CONFIG_AD525X_DPOT is not set # CONFIG_DUMMY_IRQ is not set # CONFIG_IBM_ASM is not set # CONFIG_PHANTOM is not set CONFIG_SGI_IOC4=m CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m # CONFIG_ICS932S401 is not set CONFIG_ENCLOSURE_SERVICES=m CONFIG_SGI_XP=m CONFIG_HP_ILO=m CONFIG_SGI_GRU=m # CONFIG_SGI_GRU_DEBUG is not set CONFIG_APDS9802ALS=m CONFIG_ISL29003=m CONFIG_ISL29020=m CONFIG_SENSORS_TSL2550=m CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_APDS990X=m # CONFIG_HMC6352 is not set # CONFIG_DS1682 is not set CONFIG_VMWARE_BALLOON=m # CONFIG_USB_SWITCH_FSA9480 is not set # CONFIG_LATTICE_ECP3_CONFIG is not set # CONFIG_SRAM is not set # CONFIG_PCI_ENDPOINT_TEST is not set # CONFIG_C2PORT is not set # # EEPROM support # CONFIG_EEPROM_AT24=m # CONFIG_EEPROM_AT25 is not set CONFIG_EEPROM_LEGACY=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m # CONFIG_EEPROM_93XX46 is not set # CONFIG_EEPROM_IDT_89HPESX is not set # CONFIG_EEPROM_EE1004 is not set CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y # # Texas Instruments shared transport line discipline # # CONFIG_TI_ST is not set CONFIG_SENSORS_LIS3_I2C=m CONFIG_ALTERA_STAPL=m CONFIG_INTEL_MEI=y CONFIG_INTEL_MEI_ME=y # CONFIG_INTEL_MEI_TXE is not set CONFIG_VMWARE_VMCI=m # # Intel MIC & related support # # # Intel MIC Bus Driver # # CONFIG_INTEL_MIC_BUS is not set # # SCIF Bus Driver # # CONFIG_SCIF_BUS is not set # # VOP Bus Driver # # CONFIG_VOP_BUS is not set # # Intel MIC Host Driver # # # Intel MIC Card Driver # # # SCIF Driver # # # Intel MIC Coprocessor State Management (COSM) Drivers # # # VOP Driver # # CONFIG_GENWQE is not set # CONFIG_ECHO is not set # CONFIG_MISC_RTSX_PCI is not set # CONFIG_MISC_RTSX_USB is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set # # SCSI device support # CONFIG_SCSI_MOD=y CONFIG_RAID_ATTRS=m CONFIG_SCSI=y CONFIG_SCSI_DMA=y CONFIG_SCSI_NETLINK=y # CONFIG_SCSI_MQ_DEFAULT is not set CONFIG_SCSI_PROC_FS=y # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=m CONFIG_CHR_DEV_ST=m CONFIG_CHR_DEV_OSST=m CONFIG_BLK_DEV_SR=m CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_CHR_DEV_SG=m CONFIG_CHR_DEV_SCH=m CONFIG_SCSI_ENCLOSURE=m CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y CONFIG_SCSI_SCAN_ASYNC=y # # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=m CONFIG_SCSI_FC_ATTRS=m CONFIG_SCSI_ISCSI_ATTRS=m CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y CONFIG_SCSI_SRP_ATTRS=m CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m CONFIG_ISCSI_BOOT_SYSFS=m CONFIG_SCSI_CXGB3_ISCSI=m CONFIG_SCSI_CXGB4_ISCSI=m CONFIG_SCSI_BNX2_ISCSI=m CONFIG_SCSI_BNX2X_FCOE=m CONFIG_BE2ISCSI=m # CONFIG_BLK_DEV_3W_XXXX_RAID is not set CONFIG_SCSI_HPSA=m CONFIG_SCSI_3W_9XXX=m CONFIG_SCSI_3W_SAS=m # CONFIG_SCSI_ACARD is not set CONFIG_SCSI_AACRAID=m # CONFIG_SCSI_AIC7XXX is not set CONFIG_SCSI_AIC79XX=m CONFIG_AIC79XX_CMDS_PER_DEVICE=4 CONFIG_AIC79XX_RESET_DELAY_MS=15000 # CONFIG_AIC79XX_DEBUG_ENABLE is not set CONFIG_AIC79XX_DEBUG_MASK=0 # CONFIG_AIC79XX_REG_PRETTY_PRINT is not set # CONFIG_SCSI_AIC94XX is not set CONFIG_SCSI_MVSAS=m # CONFIG_SCSI_MVSAS_DEBUG is not set CONFIG_SCSI_MVSAS_TASKLET=y CONFIG_SCSI_MVUMI=m # CONFIG_SCSI_DPT_I2O is not set # CONFIG_SCSI_ADVANSYS is not set CONFIG_SCSI_ARCMSR=m # CONFIG_SCSI_ESAS2R is not set # CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_LEGACY is not set CONFIG_MEGARAID_SAS=m CONFIG_SCSI_MPT3SAS=m CONFIG_SCSI_MPT2SAS_MAX_SGE=128 CONFIG_SCSI_MPT3SAS_MAX_SGE=128 CONFIG_SCSI_MPT2SAS=m # CONFIG_SCSI_SMARTPQI is not set CONFIG_SCSI_UFSHCD=m CONFIG_SCSI_UFSHCD_PCI=m # CONFIG_SCSI_UFS_DWC_TC_PCI is not set # CONFIG_SCSI_UFSHCD_PLATFORM is not set # CONFIG_SCSI_UFS_BSG is not set CONFIG_SCSI_HPTIOP=m # CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_MYRB is not set # CONFIG_SCSI_MYRS is not set CONFIG_VMWARE_PVSCSI=m # CONFIG_XEN_SCSI_FRONTEND is not set CONFIG_HYPERV_STORAGE=m CONFIG_LIBFC=m CONFIG_LIBFCOE=m CONFIG_FCOE=m CONFIG_FCOE_FNIC=m # CONFIG_SCSI_SNIC is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_GDTH is not set CONFIG_SCSI_ISCI=m # CONFIG_SCSI_IPS is not set CONFIG_SCSI_INITIO=m # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_PPA is not set # CONFIG_SCSI_IMM is not set CONFIG_SCSI_STEX=m # CONFIG_SCSI_SYM53C8XX_2 is not set CONFIG_SCSI_IPR=m CONFIG_SCSI_IPR_TRACE=y CONFIG_SCSI_IPR_DUMP=y # CONFIG_SCSI_QLOGIC_1280 is not set CONFIG_SCSI_QLA_FC=m # CONFIG_TCM_QLA2XXX is not set CONFIG_SCSI_QLA_ISCSI=m # CONFIG_SCSI_LPFC is not set # CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_AM53C974 is not set # CONFIG_SCSI_WD719X is not set CONFIG_SCSI_DEBUG=m CONFIG_SCSI_PMCRAID=m CONFIG_SCSI_PM8001=m # CONFIG_SCSI_BFA_FC is not set CONFIG_SCSI_VIRTIO=m CONFIG_SCSI_CHELSIO_FCOE=m CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=y CONFIG_SCSI_DH_HP_SW=y CONFIG_SCSI_DH_EMC=y CONFIG_SCSI_DH_ALUA=y CONFIG_SCSI_OSD_INITIATOR=m CONFIG_SCSI_OSD_ULD=m CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_SCSI_OSD_DEBUG is not set CONFIG_ATA=m CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y # CONFIG_SATA_ZPODD is not set CONFIG_SATA_PMP=y # # Controllers with non-SFF native interface # CONFIG_SATA_AHCI=m CONFIG_SATA_MOBILE_LPM_POLICY=0 CONFIG_SATA_AHCI_PLATFORM=m # CONFIG_SATA_INIC162X is not set CONFIG_SATA_ACARD_AHCI=m CONFIG_SATA_SIL24=m CONFIG_ATA_SFF=y # # SFF controllers with custom DMA interface # CONFIG_PDC_ADMA=m CONFIG_SATA_QSTOR=m CONFIG_SATA_SX4=m CONFIG_ATA_BMDMA=y # # SATA SFF controllers with BMDMA # CONFIG_ATA_PIIX=m # CONFIG_SATA_DWC is not set CONFIG_SATA_MV=m CONFIG_SATA_NV=m CONFIG_SATA_PROMISE=m CONFIG_SATA_SIL=m CONFIG_SATA_SIS=m CONFIG_SATA_SVW=m CONFIG_SATA_ULI=m CONFIG_SATA_VIA=m CONFIG_SATA_VITESSE=m # # PATA SFF controllers with BMDMA # CONFIG_PATA_ALI=m CONFIG_PATA_AMD=m CONFIG_PATA_ARTOP=m CONFIG_PATA_ATIIXP=m CONFIG_PATA_ATP867X=m CONFIG_PATA_CMD64X=m # CONFIG_PATA_CYPRESS is not set # CONFIG_PATA_EFAR is not set CONFIG_PATA_HPT366=m CONFIG_PATA_HPT37X=m CONFIG_PATA_HPT3X2N=m CONFIG_PATA_HPT3X3=m # CONFIG_PATA_HPT3X3_DMA is not set CONFIG_PATA_IT8213=m CONFIG_PATA_IT821X=m CONFIG_PATA_JMICRON=m CONFIG_PATA_MARVELL=m CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m # CONFIG_PATA_NS87415 is not set CONFIG_PATA_OLDPIIX=m # CONFIG_PATA_OPTIDMA is not set CONFIG_PATA_PDC2027X=m CONFIG_PATA_PDC_OLD=m # CONFIG_PATA_RADISYS is not set CONFIG_PATA_RDC=m CONFIG_PATA_SCH=m CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_SIL680=m CONFIG_PATA_SIS=m CONFIG_PATA_TOSHIBA=m # CONFIG_PATA_TRIFLEX is not set CONFIG_PATA_VIA=m # CONFIG_PATA_WINBOND is not set # # PIO-only SFF controllers # # CONFIG_PATA_CMD640_PCI is not set # CONFIG_PATA_MPIIX is not set # CONFIG_PATA_NS87410 is not set # CONFIG_PATA_OPTI is not set # CONFIG_PATA_PLATFORM is not set # CONFIG_PATA_RZ1000 is not set # # Generic fallback / legacy drivers # CONFIG_PATA_ACPI=m CONFIG_ATA_GENERIC=m # CONFIG_PATA_LEGACY is not set CONFIG_MD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_AUTODETECT=y CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m CONFIG_MD_MULTIPATH=m CONFIG_MD_FAULTY=m # CONFIG_MD_CLUSTER is not set # CONFIG_BCACHE is not set CONFIG_BLK_DEV_DM_BUILTIN=y CONFIG_BLK_DEV_DM=m CONFIG_DM_DEBUG=y CONFIG_DM_BUFIO=m # CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m # CONFIG_DM_UNSTRIPED is not set CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_THIN_PROVISIONING=m CONFIG_DM_CACHE=m CONFIG_DM_CACHE_SMQ=m # CONFIG_DM_WRITECACHE is not set # CONFIG_DM_ERA is not set CONFIG_DM_MIRROR=m CONFIG_DM_LOG_USERSPACE=m CONFIG_DM_RAID=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=m CONFIG_DM_DELAY=m CONFIG_DM_UEVENT=y CONFIG_DM_FLAKEY=m CONFIG_DM_VERITY=m # CONFIG_DM_VERITY_FEC is not set CONFIG_DM_SWITCH=m CONFIG_DM_LOG_WRITES=m # CONFIG_DM_INTEGRITY is not set CONFIG_TARGET_CORE=m CONFIG_TCM_IBLOCK=m CONFIG_TCM_FILEIO=m CONFIG_TCM_PSCSI=m # CONFIG_TCM_USER2 is not set CONFIG_LOOPBACK_TARGET=m CONFIG_TCM_FC=m CONFIG_ISCSI_TARGET=m # CONFIG_ISCSI_TARGET_CXGB4 is not set # CONFIG_SBP_TARGET is not set CONFIG_FUSION=y CONFIG_FUSION_SPI=m # CONFIG_FUSION_FC is not set CONFIG_FUSION_SAS=m CONFIG_FUSION_MAX_SGE=128 CONFIG_FUSION_CTL=m CONFIG_FUSION_LOGGING=y # # IEEE 1394 (FireWire) support # CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m CONFIG_FIREWIRE_SBP2=m CONFIG_FIREWIRE_NET=m # CONFIG_FIREWIRE_NOSY is not set CONFIG_MACINTOSH_DRIVERS=y CONFIG_MAC_EMUMOUSEBTN=y CONFIG_NETDEVICES=y CONFIG_MII=y CONFIG_NET_CORE=y CONFIG_BONDING=m CONFIG_DUMMY=m # CONFIG_EQUALIZER is not set CONFIG_NET_FC=y CONFIG_IFB=m CONFIG_NET_TEAM=m CONFIG_NET_TEAM_MODE_BROADCAST=m CONFIG_NET_TEAM_MODE_ROUNDROBIN=m CONFIG_NET_TEAM_MODE_RANDOM=m CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m CONFIG_NET_TEAM_MODE_LOADBALANCE=m CONFIG_MACVLAN=m CONFIG_MACVTAP=m # CONFIG_IPVLAN is not set CONFIG_VXLAN=m # CONFIG_GENEVE is not set # CONFIG_GTP is not set CONFIG_MACSEC=y CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y CONFIG_NETPOLL=y CONFIG_NET_POLL_CONTROLLER=y CONFIG_TUN=m CONFIG_TAP=m # CONFIG_TUN_VNET_CROSS_LE is not set CONFIG_VETH=m CONFIG_VIRTIO_NET=y CONFIG_NLMON=m CONFIG_NET_VRF=y # CONFIG_ARCNET is not set # CONFIG_ATM_DRIVERS is not set # # CAIF transport drivers # # # Distributed Switch Architecture drivers # CONFIG_ETHERNET=y CONFIG_MDIO=y # CONFIG_NET_VENDOR_3COM is not set # CONFIG_NET_VENDOR_ADAPTEC is not set CONFIG_NET_VENDOR_AGERE=y # CONFIG_ET131X is not set CONFIG_NET_VENDOR_ALACRITECH=y # CONFIG_SLICOSS is not set # CONFIG_NET_VENDOR_ALTEON is not set # CONFIG_ALTERA_TSE is not set CONFIG_NET_VENDOR_AMAZON=y # CONFIG_ENA_ETHERNET is not set # CONFIG_NET_VENDOR_AMD is not set CONFIG_NET_VENDOR_AQUANTIA=y # CONFIG_AQTION is not set CONFIG_NET_VENDOR_ARC=y CONFIG_NET_VENDOR_ATHEROS=y CONFIG_ATL2=m CONFIG_ATL1=m CONFIG_ATL1E=m CONFIG_ATL1C=m CONFIG_ALX=m # CONFIG_NET_VENDOR_AURORA is not set CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y CONFIG_B44_PCICORE_AUTOSELECT=y CONFIG_B44_PCI=y # CONFIG_BCMGENET is not set CONFIG_BNX2=m CONFIG_CNIC=m CONFIG_TIGON3=y CONFIG_TIGON3_HWMON=y # CONFIG_BNX2X is not set # CONFIG_SYSTEMPORT is not set # CONFIG_BNXT is not set CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=m CONFIG_NET_VENDOR_CADENCE=y # CONFIG_MACB is not set CONFIG_NET_VENDOR_CAVIUM=y # CONFIG_THUNDER_NIC_PF is not set # CONFIG_THUNDER_NIC_VF is not set # CONFIG_THUNDER_NIC_BGX is not set # CONFIG_THUNDER_NIC_RGX is not set CONFIG_CAVIUM_PTP=y # CONFIG_LIQUIDIO is not set # CONFIG_LIQUIDIO_VF is not set CONFIG_NET_VENDOR_CHELSIO=y # CONFIG_CHELSIO_T1 is not set CONFIG_CHELSIO_T3=m CONFIG_CHELSIO_T4=m # CONFIG_CHELSIO_T4_DCB is not set CONFIG_CHELSIO_T4VF=m CONFIG_CHELSIO_LIB=m CONFIG_NET_VENDOR_CISCO=y CONFIG_ENIC=m CONFIG_NET_VENDOR_CORTINA=y # CONFIG_CX_ECAT is not set CONFIG_DNET=m CONFIG_NET_VENDOR_DEC=y CONFIG_NET_TULIP=y CONFIG_DE2104X=m CONFIG_DE2104X_DSL=0 CONFIG_TULIP=y # CONFIG_TULIP_MWI is not set CONFIG_TULIP_MMIO=y # CONFIG_TULIP_NAPI is not set CONFIG_DE4X5=m CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m CONFIG_PCMCIA_XIRCOM=m # CONFIG_NET_VENDOR_DLINK is not set CONFIG_NET_VENDOR_EMULEX=y CONFIG_BE2NET=m CONFIG_BE2NET_HWMON=y CONFIG_BE2NET_BE2=y CONFIG_BE2NET_BE3=y CONFIG_BE2NET_LANCER=y CONFIG_BE2NET_SKYHAWK=y CONFIG_NET_VENDOR_EZCHIP=y # CONFIG_NET_VENDOR_HP is not set CONFIG_NET_VENDOR_HUAWEI=y # CONFIG_HINIC is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y # CONFIG_E100 is not set CONFIG_E1000=y CONFIG_E1000E=y CONFIG_E1000E_HWTS=y CONFIG_IGB=y CONFIG_IGB_HWMON=y CONFIG_IGBVF=m CONFIG_IXGB=m CONFIG_IXGBE=y CONFIG_IXGBE_HWMON=y CONFIG_IXGBE_DCB=y CONFIG_IXGBEVF=m CONFIG_I40E=m # CONFIG_I40E_DCB is not set # CONFIG_I40EVF is not set # CONFIG_ICE is not set # CONFIG_FM10K is not set # CONFIG_IGC is not set CONFIG_JME=m CONFIG_NET_VENDOR_MARVELL=y CONFIG_MVMDIO=m CONFIG_SKGE=m CONFIG_SKGE_DEBUG=y CONFIG_SKGE_GENESIS=y CONFIG_SKY2=m CONFIG_SKY2_DEBUG=y CONFIG_NET_VENDOR_MELLANOX=y CONFIG_MLX4_EN=m CONFIG_MLX4_EN_DCB=y CONFIG_MLX4_CORE=m CONFIG_MLX4_DEBUG=y CONFIG_MLX4_CORE_GEN2=y # CONFIG_MLX5_CORE is not set # CONFIG_MLXSW_CORE is not set # CONFIG_MLXFW is not set # CONFIG_NET_VENDOR_MICREL is not set CONFIG_NET_VENDOR_MICROCHIP=y # CONFIG_ENC28J60 is not set # CONFIG_ENCX24J600 is not set # CONFIG_LAN743X is not set CONFIG_NET_VENDOR_MICROSEMI=y CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m # CONFIG_FEALNX is not set # CONFIG_NET_VENDOR_NATSEMI is not set CONFIG_NET_VENDOR_NETERION=y # CONFIG_S2IO is not set # CONFIG_VXGE is not set CONFIG_NET_VENDOR_NETRONOME=y # CONFIG_NFP is not set CONFIG_NET_VENDOR_NI=y # CONFIG_NI_XGE_MANAGEMENT_ENET is not set # CONFIG_NET_VENDOR_NVIDIA is not set CONFIG_NET_VENDOR_OKI=y CONFIG_ETHOC=m CONFIG_NET_VENDOR_PACKET_ENGINES=y # CONFIG_HAMACHI is not set CONFIG_YELLOWFIN=m CONFIG_NET_VENDOR_QLOGIC=y CONFIG_QLA3XXX=m CONFIG_QLCNIC=m CONFIG_QLCNIC_SRIOV=y CONFIG_QLCNIC_DCB=y CONFIG_QLCNIC_HWMON=y CONFIG_QLGE=m CONFIG_NETXEN_NIC=m # CONFIG_QED is not set CONFIG_NET_VENDOR_QUALCOMM=y # CONFIG_QCOM_EMAC is not set # CONFIG_RMNET is not set # CONFIG_NET_VENDOR_RDC is not set CONFIG_NET_VENDOR_REALTEK=y # CONFIG_ATP is not set CONFIG_8139CP=y CONFIG_8139TOO=y CONFIG_8139TOO_PIO=y # CONFIG_8139TOO_TUNE_TWISTER is not set CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set CONFIG_R8169=y CONFIG_NET_VENDOR_RENESAS=y CONFIG_NET_VENDOR_ROCKER=y CONFIG_NET_VENDOR_SAMSUNG=y # CONFIG_SXGBE_ETH is not set # CONFIG_NET_VENDOR_SEEQ is not set CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_SFC=m CONFIG_SFC_MTD=y CONFIG_SFC_MCDI_MON=y CONFIG_SFC_SRIOV=y CONFIG_SFC_MCDI_LOGGING=y # CONFIG_SFC_FALCON is not set # CONFIG_NET_VENDOR_SILAN is not set # CONFIG_NET_VENDOR_SIS is not set CONFIG_NET_VENDOR_SMSC=y CONFIG_EPIC100=m # CONFIG_SMSC911X is not set CONFIG_SMSC9420=m CONFIG_NET_VENDOR_SOCIONEXT=y # CONFIG_NET_VENDOR_STMICRO is not set # CONFIG_NET_VENDOR_SUN is not set CONFIG_NET_VENDOR_SYNOPSYS=y # CONFIG_DWC_XLGMAC is not set # CONFIG_NET_VENDOR_TEHUTI is not set # CONFIG_NET_VENDOR_TI is not set # CONFIG_NET_VENDOR_VIA is not set # CONFIG_NET_VENDOR_WIZNET is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_NET_SB1000 is not set CONFIG_MDIO_DEVICE=y CONFIG_MDIO_BUS=y # CONFIG_MDIO_BCM_UNIMAC is not set CONFIG_MDIO_BITBANG=m # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_MSCC_MIIM is not set # CONFIG_MDIO_THUNDER is not set CONFIG_PHYLIB=y CONFIG_SWPHY=y # CONFIG_LED_TRIGGER_PHY is not set # # MII PHY device drivers # CONFIG_AMD_PHY=m # CONFIG_AQUANTIA_PHY is not set # CONFIG_ASIX_PHY is not set CONFIG_AT803X_PHY=m # CONFIG_BCM7XXX_PHY is not set CONFIG_BCM87XX_PHY=m CONFIG_BCM_NET_PHYLIB=m CONFIG_BROADCOM_PHY=m CONFIG_CICADA_PHY=m # CONFIG_CORTINA_PHY is not set CONFIG_DAVICOM_PHY=m # CONFIG_DP83822_PHY is not set # CONFIG_DP83TC811_PHY is not set # CONFIG_DP83848_PHY is not set # CONFIG_DP83867_PHY is not set CONFIG_FIXED_PHY=y CONFIG_ICPLUS_PHY=m # CONFIG_INTEL_XWAY_PHY is not set CONFIG_LSI_ET1011C_PHY=m CONFIG_LXT_PHY=m CONFIG_MARVELL_PHY=m # CONFIG_MARVELL_10G_PHY is not set CONFIG_MICREL_PHY=m # CONFIG_MICROCHIP_PHY is not set # CONFIG_MICROCHIP_T1_PHY is not set # CONFIG_MICROSEMI_PHY is not set CONFIG_NATIONAL_PHY=m CONFIG_QSEMI_PHY=m CONFIG_REALTEK_PHY=y # CONFIG_RENESAS_PHY is not set # CONFIG_ROCKCHIP_PHY is not set CONFIG_SMSC_PHY=m CONFIG_STE10XP=m # CONFIG_TERANETICS_PHY is not set CONFIG_VITESSE_PHY=m # CONFIG_XILINX_GMII2RGMII is not set # CONFIG_MICREL_KS8995MA is not set # CONFIG_PLIP is not set CONFIG_PPP=m CONFIG_PPP_BSDCOMP=m CONFIG_PPP_DEFLATE=m CONFIG_PPP_FILTER=y CONFIG_PPP_MPPE=m CONFIG_PPP_MULTILINK=y CONFIG_PPPOATM=m CONFIG_PPPOE=m CONFIG_PPTP=m CONFIG_PPPOL2TP=m CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m CONFIG_SLIP=m CONFIG_SLHC=m CONFIG_SLIP_COMPRESSED=y CONFIG_SLIP_SMART=y # CONFIG_SLIP_MODE_SLIP6 is not set CONFIG_USB_NET_DRIVERS=y CONFIG_USB_CATC=y CONFIG_USB_KAWETH=y CONFIG_USB_PEGASUS=y CONFIG_USB_RTL8150=y CONFIG_USB_RTL8152=m # CONFIG_USB_LAN78XX is not set CONFIG_USB_USBNET=y CONFIG_USB_NET_AX8817X=y CONFIG_USB_NET_AX88179_178A=m CONFIG_USB_NET_CDCETHER=y CONFIG_USB_NET_CDC_EEM=y CONFIG_USB_NET_CDC_NCM=m # CONFIG_USB_NET_HUAWEI_CDC_NCM is not set CONFIG_USB_NET_CDC_MBIM=m CONFIG_USB_NET_DM9601=y # CONFIG_USB_NET_SR9700 is not set # CONFIG_USB_NET_SR9800 is not set CONFIG_USB_NET_SMSC75XX=y CONFIG_USB_NET_SMSC95XX=y CONFIG_USB_NET_GL620A=y CONFIG_USB_NET_NET1080=y CONFIG_USB_NET_PLUSB=y CONFIG_USB_NET_MCS7830=y CONFIG_USB_NET_RNDIS_HOST=y CONFIG_USB_NET_CDC_SUBSET_ENABLE=y CONFIG_USB_NET_CDC_SUBSET=y CONFIG_USB_ALI_M5632=y CONFIG_USB_AN2720=y CONFIG_USB_BELKIN=y CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=y CONFIG_USB_NET_CX82310_ETH=m CONFIG_USB_NET_KALMIA=m CONFIG_USB_NET_QMI_WWAN=m CONFIG_USB_HSO=m CONFIG_USB_NET_INT51X1=y CONFIG_USB_IPHETH=y CONFIG_USB_SIERRA_NET=y CONFIG_USB_VL600=m # CONFIG_USB_NET_CH9200 is not set CONFIG_WLAN=y # CONFIG_WIRELESS_WDS is not set CONFIG_WLAN_VENDOR_ADMTEK=y # CONFIG_ADM8211 is not set CONFIG_WLAN_VENDOR_ATH=y # CONFIG_ATH_DEBUG is not set # CONFIG_ATH5K is not set # CONFIG_ATH5K_PCI is not set # CONFIG_ATH9K is not set # CONFIG_ATH9K_HTC is not set # CONFIG_CARL9170 is not set # CONFIG_ATH6KL is not set # CONFIG_AR5523 is not set # CONFIG_WIL6210 is not set # CONFIG_ATH10K is not set # CONFIG_WCN36XX is not set CONFIG_WLAN_VENDOR_ATMEL=y # CONFIG_ATMEL is not set # CONFIG_AT76C50X_USB is not set CONFIG_WLAN_VENDOR_BROADCOM=y # CONFIG_B43 is not set # CONFIG_B43LEGACY is not set # CONFIG_BRCMSMAC is not set # CONFIG_BRCMFMAC is not set CONFIG_WLAN_VENDOR_CISCO=y # CONFIG_AIRO is not set CONFIG_WLAN_VENDOR_INTEL=y # CONFIG_IPW2100 is not set # CONFIG_IPW2200 is not set # CONFIG_IWL4965 is not set # CONFIG_IWL3945 is not set # CONFIG_IWLWIFI is not set CONFIG_WLAN_VENDOR_INTERSIL=y # CONFIG_HOSTAP is not set # CONFIG_HERMES is not set # CONFIG_P54_COMMON is not set # CONFIG_PRISM54 is not set CONFIG_WLAN_VENDOR_MARVELL=y # CONFIG_LIBERTAS is not set # CONFIG_LIBERTAS_THINFIRM is not set # CONFIG_MWIFIEX is not set # CONFIG_MWL8K is not set CONFIG_WLAN_VENDOR_MEDIATEK=y # CONFIG_MT7601U is not set # CONFIG_MT76x0U is not set # CONFIG_MT76x0E is not set # CONFIG_MT76x2E is not set # CONFIG_MT76x2U is not set CONFIG_WLAN_VENDOR_RALINK=y # CONFIG_RT2X00 is not set CONFIG_WLAN_VENDOR_REALTEK=y # CONFIG_RTL8180 is not set # CONFIG_RTL8187 is not set CONFIG_RTL_CARDS=m # CONFIG_RTL8192CE is not set # CONFIG_RTL8192SE is not set # CONFIG_RTL8192DE is not set # CONFIG_RTL8723AE is not set # CONFIG_RTL8723BE is not set # CONFIG_RTL8188EE is not set # CONFIG_RTL8192EE is not set # CONFIG_RTL8821AE is not set # CONFIG_RTL8192CU is not set # CONFIG_RTL8XXXU is not set CONFIG_WLAN_VENDOR_RSI=y # CONFIG_RSI_91X is not set CONFIG_WLAN_VENDOR_ST=y # CONFIG_CW1200 is not set CONFIG_WLAN_VENDOR_TI=y # CONFIG_WL1251 is not set # CONFIG_WL12XX is not set # CONFIG_WL18XX is not set # CONFIG_WLCORE is not set CONFIG_WLAN_VENDOR_ZYDAS=y # CONFIG_USB_ZD1201 is not set # CONFIG_ZD1211RW is not set CONFIG_WLAN_VENDOR_QUANTENNA=y # CONFIG_QTNFMAC_PEARL_PCIE is not set CONFIG_MAC80211_HWSIM=m # CONFIG_USB_NET_RNDIS_WLAN is not set # # Enable WiMAX (Networking options) to see the WiMAX drivers # CONFIG_WAN=y # CONFIG_LANMEDIA is not set CONFIG_HDLC=m CONFIG_HDLC_RAW=m # CONFIG_HDLC_RAW_ETH is not set CONFIG_HDLC_CISCO=m CONFIG_HDLC_FR=m CONFIG_HDLC_PPP=m # # X.25/LAPB support is disabled # # CONFIG_PCI200SYN is not set # CONFIG_WANXL is not set # CONFIG_PC300TOO is not set # CONFIG_FARSYNC is not set # CONFIG_DSCC4 is not set CONFIG_DLCI=m CONFIG_DLCI_MAX=8 # CONFIG_SBNI is not set CONFIG_IEEE802154_DRIVERS=m CONFIG_IEEE802154_FAKELB=m # CONFIG_IEEE802154_AT86RF230 is not set # CONFIG_IEEE802154_MRF24J40 is not set # CONFIG_IEEE802154_CC2520 is not set # CONFIG_IEEE802154_ATUSB is not set # CONFIG_IEEE802154_ADF7242 is not set # CONFIG_IEEE802154_CA8210 is not set # CONFIG_IEEE802154_MCR20A is not set # CONFIG_IEEE802154_HWSIM is not set CONFIG_XEN_NETDEV_FRONTEND=m # CONFIG_XEN_NETDEV_BACKEND is not set CONFIG_VMXNET3=m # CONFIG_FUJITSU_ES is not set CONFIG_HYPERV_NET=m CONFIG_NETDEVSIM=m CONFIG_NET_FAILOVER=y CONFIG_ISDN=y CONFIG_ISDN_I4L=m CONFIG_ISDN_PPP=y CONFIG_ISDN_PPP_VJ=y CONFIG_ISDN_MPP=y CONFIG_IPPP_FILTER=y # CONFIG_ISDN_PPP_BSDCOMP is not set CONFIG_ISDN_AUDIO=y CONFIG_ISDN_TTY_FAX=y # # ISDN feature submodules # CONFIG_ISDN_DIVERSION=m # # ISDN4Linux hardware drivers # # # Passive cards # # CONFIG_ISDN_DRV_HISAX is not set CONFIG_ISDN_CAPI=m # CONFIG_CAPI_TRACE is not set CONFIG_ISDN_CAPI_CAPI20=m CONFIG_ISDN_CAPI_MIDDLEWARE=y CONFIG_ISDN_CAPI_CAPIDRV=m # CONFIG_ISDN_CAPI_CAPIDRV_VERBOSE is not set # # CAPI hardware drivers # CONFIG_CAPI_AVM=y CONFIG_ISDN_DRV_AVMB1_B1PCI=m CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y CONFIG_ISDN_DRV_AVMB1_T1PCI=m CONFIG_ISDN_DRV_AVMB1_C4=m # CONFIG_CAPI_EICON is not set CONFIG_ISDN_DRV_GIGASET=m CONFIG_GIGASET_CAPI=y CONFIG_GIGASET_BASE=m CONFIG_GIGASET_M105=m CONFIG_GIGASET_M101=m # CONFIG_GIGASET_DEBUG is not set CONFIG_HYSDN=m CONFIG_HYSDN_CAPI=y CONFIG_MISDN=m CONFIG_MISDN_DSP=m CONFIG_MISDN_L1OIP=m # # mISDN hardware drivers # CONFIG_MISDN_HFCPCI=m CONFIG_MISDN_HFCMULTI=m CONFIG_MISDN_HFCUSB=m CONFIG_MISDN_AVMFRITZ=m CONFIG_MISDN_SPEEDFAX=m CONFIG_MISDN_INFINEON=m CONFIG_MISDN_W6692=m CONFIG_MISDN_NETJET=m CONFIG_MISDN_IPAC=m CONFIG_MISDN_ISAR=m CONFIG_ISDN_HDLC=m # CONFIG_NVM is not set # # Input device support # CONFIG_INPUT=y CONFIG_INPUT_LEDS=y CONFIG_INPUT_FF_MEMLESS=y CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_SPARSEKMAP=m # CONFIG_INPUT_MATRIXKMAP is not set # # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y # CONFIG_INPUT_MOUSEDEV_PSAUX is not set CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_ADP5588 is not set # CONFIG_KEYBOARD_ADP5589 is not set CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_QT1070 is not set # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_DLINK_DIR685 is not set # CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_GPIO is not set # CONFIG_KEYBOARD_GPIO_POLLED is not set # CONFIG_KEYBOARD_TCA6416 is not set # CONFIG_KEYBOARD_TCA8418 is not set # CONFIG_KEYBOARD_MATRIX is not set # CONFIG_KEYBOARD_LM8323 is not set # CONFIG_KEYBOARD_LM8333 is not set # CONFIG_KEYBOARD_MAX7359 is not set # CONFIG_KEYBOARD_MCS is not set # CONFIG_KEYBOARD_MPR121 is not set # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_OPENCORES is not set # CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_STOWAWAY is not set # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_TM2_TOUCHKEY is not set # CONFIG_KEYBOARD_XTKBD is not set CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=y CONFIG_MOUSE_PS2_ALPS=y CONFIG_MOUSE_PS2_BYD=y CONFIG_MOUSE_PS2_LOGIPS2PP=y CONFIG_MOUSE_PS2_SYNAPTICS=y CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y CONFIG_MOUSE_PS2_CYPRESS=y CONFIG_MOUSE_PS2_LIFEBOOK=y CONFIG_MOUSE_PS2_TRACKPOINT=y CONFIG_MOUSE_PS2_ELANTECH=y CONFIG_MOUSE_PS2_ELANTECH_SMBUS=y CONFIG_MOUSE_PS2_SENTELIC=y # CONFIG_MOUSE_PS2_TOUCHKIT is not set CONFIG_MOUSE_PS2_FOCALTECH=y # CONFIG_MOUSE_PS2_VMMOUSE is not set CONFIG_MOUSE_PS2_SMBUS=y CONFIG_MOUSE_SERIAL=m CONFIG_MOUSE_APPLETOUCH=m CONFIG_MOUSE_BCM5974=m CONFIG_MOUSE_CYAPA=m # CONFIG_MOUSE_ELAN_I2C is not set CONFIG_MOUSE_VSXXXAA=m # CONFIG_MOUSE_GPIO is not set CONFIG_MOUSE_SYNAPTICS_I2C=m CONFIG_MOUSE_SYNAPTICS_USB=m # CONFIG_INPUT_JOYSTICK is not set CONFIG_INPUT_TABLET=y CONFIG_TABLET_USB_ACECAD=m CONFIG_TABLET_USB_AIPTEK=m CONFIG_TABLET_USB_GTCO=m # CONFIG_TABLET_USB_HANWANG is not set CONFIG_TABLET_USB_KBTAB=m # CONFIG_TABLET_USB_PEGASUS is not set # CONFIG_TABLET_SERIAL_WACOM4 is not set CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_PROPERTIES=y # CONFIG_TOUCHSCREEN_ADS7846 is not set # CONFIG_TOUCHSCREEN_AD7877 is not set # CONFIG_TOUCHSCREEN_AD7879 is not set # CONFIG_TOUCHSCREEN_ATMEL_MXT is not set # CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set # CONFIG_TOUCHSCREEN_BU21013 is not set # CONFIG_TOUCHSCREEN_BU21029 is not set # CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set # CONFIG_TOUCHSCREEN_CY8CTMG110 is not set # CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set # CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set # CONFIG_TOUCHSCREEN_DYNAPRO is not set # CONFIG_TOUCHSCREEN_HAMPSHIRE is not set # CONFIG_TOUCHSCREEN_EETI is not set # CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set # CONFIG_TOUCHSCREEN_EXC3000 is not set # CONFIG_TOUCHSCREEN_FUJITSU is not set # CONFIG_TOUCHSCREEN_GOODIX is not set # CONFIG_TOUCHSCREEN_HIDEEP is not set # CONFIG_TOUCHSCREEN_ILI210X is not set # CONFIG_TOUCHSCREEN_S6SY761 is not set # CONFIG_TOUCHSCREEN_GUNZE is not set # CONFIG_TOUCHSCREEN_EKTF2127 is not set # CONFIG_TOUCHSCREEN_ELAN is not set # CONFIG_TOUCHSCREEN_ELO is not set CONFIG_TOUCHSCREEN_WACOM_W8001=m CONFIG_TOUCHSCREEN_WACOM_I2C=m # CONFIG_TOUCHSCREEN_MAX11801 is not set # CONFIG_TOUCHSCREEN_MCS5000 is not set # CONFIG_TOUCHSCREEN_MMS114 is not set # CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_INEXIO is not set # CONFIG_TOUCHSCREEN_MK712 is not set # CONFIG_TOUCHSCREEN_PENMOUNT is not set # CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set # CONFIG_TOUCHSCREEN_TOUCHWIN is not set # CONFIG_TOUCHSCREEN_PIXCIR is not set # CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set # CONFIG_TOUCHSCREEN_WM97XX is not set # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set # CONFIG_TOUCHSCREEN_TSC_SERIO is not set # CONFIG_TOUCHSCREEN_TSC2004 is not set # CONFIG_TOUCHSCREEN_TSC2005 is not set # CONFIG_TOUCHSCREEN_TSC2007 is not set # CONFIG_TOUCHSCREEN_RM_TS is not set # CONFIG_TOUCHSCREEN_SILEAD is not set # CONFIG_TOUCHSCREEN_SIS_I2C is not set # CONFIG_TOUCHSCREEN_ST1232 is not set # CONFIG_TOUCHSCREEN_STMFTS is not set # CONFIG_TOUCHSCREEN_SUR40 is not set # CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set # CONFIG_TOUCHSCREEN_SX8654 is not set # CONFIG_TOUCHSCREEN_TPS6507X is not set # CONFIG_TOUCHSCREEN_ZET6223 is not set # CONFIG_TOUCHSCREEN_ZFORCE is not set # CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set CONFIG_INPUT_MISC=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_BMA150 is not set # CONFIG_INPUT_E3X0_BUTTON is not set CONFIG_INPUT_PCSPKR=m # CONFIG_INPUT_MMA8450 is not set CONFIG_INPUT_APANEL=m # CONFIG_INPUT_GP2A is not set # CONFIG_INPUT_GPIO_BEEPER is not set # CONFIG_INPUT_GPIO_DECODER is not set CONFIG_INPUT_ATLAS_BTNS=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m # CONFIG_INPUT_KXTJ9 is not set CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_CM109=m CONFIG_INPUT_UINPUT=m # CONFIG_INPUT_PCF8574 is not set # CONFIG_INPUT_PWM_BEEPER is not set # CONFIG_INPUT_PWM_VIBRA is not set # CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set # CONFIG_INPUT_ADXL34X is not set # CONFIG_INPUT_IMS_PCU is not set # CONFIG_INPUT_CMA3000 is not set CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m # CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set # CONFIG_INPUT_DRV260X_HAPTICS is not set # CONFIG_INPUT_DRV2665_HAPTICS is not set # CONFIG_INPUT_DRV2667_HAPTICS is not set # CONFIG_RMI4_CORE is not set # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PARKBD is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y CONFIG_SERIO_RAW=m CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_PS2MULT is not set CONFIG_SERIO_ARC_PS2=m CONFIG_HYPERV_KEYBOARD=m # CONFIG_SERIO_GPIO_PS2 is not set # CONFIG_USERIO is not set # CONFIG_GAMEPORT is not set # # Character devices # CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y # CONFIG_LEGACY_PTYS is not set CONFIG_SERIAL_NONSTANDARD=y # CONFIG_ROCKETPORT is not set CONFIG_CYCLADES=m # CONFIG_CYZ_INTR is not set CONFIG_MOXA_INTELLIO=m CONFIG_MOXA_SMARTIO=m CONFIG_SYNCLINK=m CONFIG_SYNCLINKMP=m CONFIG_SYNCLINK_GT=m CONFIG_NOZOMI=m # CONFIG_ISI is not set CONFIG_N_HDLC=m CONFIG_N_GSM=m # CONFIG_TRACE_SINK is not set CONFIG_DEVMEM=y # CONFIG_DEVKMEM is not set # # Serial drivers # CONFIG_SERIAL_EARLYCON=y CONFIG_SERIAL_8250=y # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set CONFIG_SERIAL_8250_PNP=y # CONFIG_SERIAL_8250_FINTEK is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_EXAR=y CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y CONFIG_SERIAL_8250_DW=y # CONFIG_SERIAL_8250_RT288X is not set CONFIG_SERIAL_8250_LPSS=y CONFIG_SERIAL_8250_MID=y # CONFIG_SERIAL_8250_MOXA is not set # # Non-8250 serial port support # # CONFIG_SERIAL_MAX3100 is not set # CONFIG_SERIAL_MAX310X is not set # CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_JSM=m # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SC16IS7XX is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_IFX6X60 is not set CONFIG_SERIAL_ARC=m CONFIG_SERIAL_ARC_NR_PORTS=1 # CONFIG_SERIAL_RP2 is not set # CONFIG_SERIAL_FSL_LPUART is not set # CONFIG_SERIAL_DEV_BUS is not set # CONFIG_TTY_PRINTK is not set CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m CONFIG_HVC_DRIVER=y CONFIG_HVC_IRQ=y CONFIG_HVC_XEN=y CONFIG_HVC_XEN_FRONTEND=y CONFIG_VIRTIO_CONSOLE=y CONFIG_IPMI_HANDLER=m CONFIG_IPMI_DMI_DECODE=y # CONFIG_IPMI_PANIC_EVENT is not set CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m # CONFIG_IPMI_SSIF is not set CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_VIA=m CONFIG_HW_RANDOM_VIRTIO=y CONFIG_NVRAM=y # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_MWAVE is not set CONFIG_RAW_DRIVER=y CONFIG_MAX_RAW_DEVS=8192 CONFIG_HPET=y CONFIG_HPET_MMAP=y # CONFIG_HPET_MMAP_DEFAULT is not set CONFIG_HANGCHECK_TIMER=m CONFIG_UV_MMTIMER=m CONFIG_TCG_TPM=y CONFIG_HW_RANDOM_TPM=y CONFIG_TCG_TIS_CORE=y CONFIG_TCG_TIS=y # CONFIG_TCG_TIS_SPI is not set # CONFIG_TCG_TIS_I2C_ATMEL is not set # CONFIG_TCG_TIS_I2C_INFINEON is not set # CONFIG_TCG_TIS_I2C_NUVOTON is not set CONFIG_TCG_NSC=m CONFIG_TCG_ATMEL=m CONFIG_TCG_INFINEON=m # CONFIG_TCG_XEN is not set CONFIG_TCG_CRB=y # CONFIG_TCG_VTPM_PROXY is not set # CONFIG_TCG_TIS_ST33ZP24_I2C is not set # CONFIG_TCG_TIS_ST33ZP24_SPI is not set CONFIG_TELCLOCK=m CONFIG_DEVPORT=y # CONFIG_XILLYBUS is not set # CONFIG_RANDOM_TRUST_CPU is not set # # I2C support # CONFIG_I2C=y CONFIG_ACPI_I2C_OPREGION=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m CONFIG_I2C_MUX=m # # Multiplexer I2C Chip support # # CONFIG_I2C_MUX_GPIO is not set # CONFIG_I2C_MUX_LTC4306 is not set # CONFIG_I2C_MUX_PCA9541 is not set # CONFIG_I2C_MUX_PCA954x is not set # CONFIG_I2C_MUX_REG is not set # CONFIG_I2C_MUX_MLXCPLD is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=y CONFIG_I2C_ALGOBIT=y CONFIG_I2C_ALGOPCA=m # # I2C Hardware Bus support # # # PC SMBus host controller drivers # # CONFIG_I2C_ALI1535 is not set # CONFIG_I2C_ALI1563 is not set # CONFIG_I2C_ALI15X3 is not set CONFIG_I2C_AMD756=m CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m CONFIG_I2C_I801=y CONFIG_I2C_ISCH=m CONFIG_I2C_ISMT=m CONFIG_I2C_PIIX4=m CONFIG_I2C_NFORCE2=m CONFIG_I2C_NFORCE2_S4985=m # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set CONFIG_I2C_SIS96X=m CONFIG_I2C_VIA=m CONFIG_I2C_VIAPRO=m # # ACPI drivers # CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # # CONFIG_I2C_CBUS_GPIO is not set CONFIG_I2C_DESIGNWARE_CORE=m CONFIG_I2C_DESIGNWARE_PLATFORM=m # CONFIG_I2C_DESIGNWARE_SLAVE is not set CONFIG_I2C_DESIGNWARE_PCI=m # CONFIG_I2C_DESIGNWARE_BAYTRAIL is not set # CONFIG_I2C_EMEV2 is not set # CONFIG_I2C_GPIO is not set # CONFIG_I2C_OCORES is not set CONFIG_I2C_PCA_PLATFORM=m CONFIG_I2C_SIMTEC=m # CONFIG_I2C_XILINX is not set # # External I2C/SMBus adapter drivers # CONFIG_I2C_DIOLAN_U2C=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m # CONFIG_I2C_ROBOTFUZZ_OSIF is not set # CONFIG_I2C_TAOS_EVM is not set CONFIG_I2C_TINY_USB=m CONFIG_I2C_VIPERBOARD=m # # Other I2C/SMBus bus drivers # # CONFIG_I2C_MLXCPLD is not set CONFIG_I2C_STUB=m # CONFIG_I2C_SLAVE is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set CONFIG_SPI=y # CONFIG_SPI_DEBUG is not set CONFIG_SPI_MASTER=y # CONFIG_SPI_MEM is not set # # SPI Master Controller Drivers # # CONFIG_SPI_ALTERA is not set # CONFIG_SPI_AXI_SPI_ENGINE is not set # CONFIG_SPI_BITBANG is not set # CONFIG_SPI_BUTTERFLY is not set # CONFIG_SPI_CADENCE is not set CONFIG_SPI_DESIGNWARE=m # CONFIG_SPI_DW_PCI is not set # CONFIG_SPI_DW_MMIO is not set # CONFIG_SPI_GPIO is not set # CONFIG_SPI_LM70_LLP is not set # CONFIG_SPI_OC_TINY is not set CONFIG_SPI_PXA2XX=m CONFIG_SPI_PXA2XX_PCI=m # CONFIG_SPI_ROCKCHIP is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_XCOMM is not set # CONFIG_SPI_XILINX is not set # CONFIG_SPI_ZYNQMP_GQSPI is not set # # SPI Protocol Masters # # CONFIG_SPI_SPIDEV is not set # CONFIG_SPI_LOOPBACK_TEST is not set # CONFIG_SPI_TLE62X0 is not set # CONFIG_SPI_SLAVE is not set # CONFIG_SPMI is not set # CONFIG_HSI is not set CONFIG_PPS=y # CONFIG_PPS_DEBUG is not set # # PPS clients support # # CONFIG_PPS_CLIENT_KTIMER is not set CONFIG_PPS_CLIENT_LDISC=m CONFIG_PPS_CLIENT_PARPORT=m CONFIG_PPS_CLIENT_GPIO=m # # PPS generators support # # # PTP clock support # CONFIG_PTP_1588_CLOCK=y CONFIG_DP83640_PHY=m CONFIG_PTP_1588_CLOCK_KVM=y CONFIG_PINCTRL=y CONFIG_PINMUX=y CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set # CONFIG_PINCTRL_AMD is not set # CONFIG_PINCTRL_MCP23S08 is not set # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL_BAYTRAIL=y # CONFIG_PINCTRL_CHERRYVIEW is not set # CONFIG_PINCTRL_BROXTON is not set # CONFIG_PINCTRL_CANNONLAKE is not set # CONFIG_PINCTRL_CEDARFORK is not set # CONFIG_PINCTRL_DENVERTON is not set # CONFIG_PINCTRL_GEMINILAKE is not set # CONFIG_PINCTRL_ICELAKE is not set # CONFIG_PINCTRL_LEWISBURG is not set # CONFIG_PINCTRL_SUNRISEPOINT is not set CONFIG_GPIOLIB=y CONFIG_GPIOLIB_FASTPATH_LIMIT=512 CONFIG_GPIO_ACPI=y CONFIG_GPIOLIB_IRQCHIP=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y # # Memory mapped GPIO drivers # # CONFIG_GPIO_AMDPT is not set # CONFIG_GPIO_DWAPB is not set # CONFIG_GPIO_EXAR is not set # CONFIG_GPIO_GENERIC_PLATFORM is not set # CONFIG_GPIO_ICH is not set CONFIG_GPIO_LYNXPOINT=m # CONFIG_GPIO_MB86S7X is not set CONFIG_GPIO_MOCKUP=y # CONFIG_GPIO_VX855 is not set # # Port-mapped I/O GPIO drivers # # CONFIG_GPIO_F7188X is not set # CONFIG_GPIO_IT87 is not set # CONFIG_GPIO_SCH is not set # CONFIG_GPIO_SCH311X is not set # CONFIG_GPIO_WINBOND is not set # CONFIG_GPIO_WS16C48 is not set # # I2C GPIO expanders # # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_MAX7300 is not set # CONFIG_GPIO_MAX732X is not set # CONFIG_GPIO_PCA953X is not set # CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_TPIC2810 is not set # # MFD GPIO expanders # # # PCI GPIO expanders # # CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_ML_IOH is not set # CONFIG_GPIO_PCI_IDIO_16 is not set # CONFIG_GPIO_PCIE_IDIO_24 is not set # CONFIG_GPIO_RDC321X is not set # # SPI GPIO expanders # # CONFIG_GPIO_MAX3191X is not set # CONFIG_GPIO_MAX7301 is not set # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_PISOSR is not set # CONFIG_GPIO_XRA1403 is not set # # USB GPIO expanders # # CONFIG_GPIO_VIPERBOARD is not set # CONFIG_W1 is not set # CONFIG_POWER_AVS is not set CONFIG_POWER_RESET=y # CONFIG_POWER_RESET_RESTART is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set # CONFIG_TEST_POWER is not set # CONFIG_CHARGER_ADP5061 is not set # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2781 is not set # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_SBS is not set # CONFIG_CHARGER_SBS is not set # CONFIG_MANAGER_SBS is not set # CONFIG_BATTERY_BQ27XXX is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set # CONFIG_CHARGER_ISP1704 is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_LP8727 is not set # CONFIG_CHARGER_GPIO is not set # CONFIG_CHARGER_LTC3651 is not set # CONFIG_CHARGER_BQ2415X is not set # CONFIG_CHARGER_BQ24190 is not set # CONFIG_CHARGER_BQ24257 is not set # CONFIG_CHARGER_BQ24735 is not set # CONFIG_CHARGER_BQ25890 is not set CONFIG_CHARGER_SMB347=m # CONFIG_BATTERY_GAUGE_LTC2941 is not set # CONFIG_CHARGER_RT9455 is not set CONFIG_HWMON=y CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set # # Native drivers # CONFIG_SENSORS_ABITUGURU=m CONFIG_SENSORS_ABITUGURU3=m # CONFIG_SENSORS_AD7314 is not set CONFIG_SENSORS_AD7414=m CONFIG_SENSORS_AD7418=m CONFIG_SENSORS_ADM1021=m CONFIG_SENSORS_ADM1025=m CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m CONFIG_SENSORS_ADT7X10=m # CONFIG_SENSORS_ADT7310 is not set CONFIG_SENSORS_ADT7410=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m CONFIG_SENSORS_ADT7475=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_K8TEMP=m CONFIG_SENSORS_K10TEMP=m CONFIG_SENSORS_FAM15H_POWER=m CONFIG_SENSORS_APPLESMC=m CONFIG_SENSORS_ASB100=m # CONFIG_SENSORS_ASPEED is not set CONFIG_SENSORS_ATXP1=m CONFIG_SENSORS_DS620=m CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_DELL_SMM=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_F71805F=m CONFIG_SENSORS_F71882FG=m CONFIG_SENSORS_F75375S=m CONFIG_SENSORS_FSCHMD=m # CONFIG_SENSORS_FTSTEUTATES is not set CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_G760A=m # CONFIG_SENSORS_G762 is not set # CONFIG_SENSORS_HIH6130 is not set CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m # CONFIG_SENSORS_I5500 is not set CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IT87=m # CONFIG_SENSORS_JC42 is not set # CONFIG_SENSORS_POWR1220 is not set CONFIG_SENSORS_LINEAGE=m # CONFIG_SENSORS_LTC2945 is not set # CONFIG_SENSORS_LTC2990 is not set CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m # CONFIG_SENSORS_LTC4222 is not set CONFIG_SENSORS_LTC4245=m # CONFIG_SENSORS_LTC4260 is not set CONFIG_SENSORS_LTC4261=m # CONFIG_SENSORS_MAX1111 is not set CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m CONFIG_SENSORS_MAX197=m # CONFIG_SENSORS_MAX31722 is not set # CONFIG_SENSORS_MAX6621 is not set CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m CONFIG_SENSORS_MAX6697=m # CONFIG_SENSORS_MAX31790 is not set CONFIG_SENSORS_MCP3021=m # CONFIG_SENSORS_TC654 is not set # CONFIG_SENSORS_ADCXX is not set CONFIG_SENSORS_LM63=m # CONFIG_SENSORS_LM70 is not set CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m CONFIG_SENSORS_LM80=m CONFIG_SENSORS_LM83=m CONFIG_SENSORS_LM85=m CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m CONFIG_SENSORS_LM95234=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_LM95245=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_NTC_THERMISTOR=m # CONFIG_SENSORS_NCT6683 is not set CONFIG_SENSORS_NCT6775=m # CONFIG_SENSORS_NCT7802 is not set # CONFIG_SENSORS_NCT7904 is not set # CONFIG_SENSORS_NPCM7XX is not set CONFIG_SENSORS_PCF8591=m CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m CONFIG_SENSORS_ADM1275=m # CONFIG_SENSORS_IBM_CFFPS is not set # CONFIG_SENSORS_IR35221 is not set CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LTC2978=m # CONFIG_SENSORS_LTC3815 is not set CONFIG_SENSORS_MAX16064=m # CONFIG_SENSORS_MAX20751 is not set # CONFIG_SENSORS_MAX31785 is not set CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m # CONFIG_SENSORS_TPS40422 is not set # CONFIG_SENSORS_TPS53679 is not set CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m CONFIG_SENSORS_ZL6100=m # CONFIG_SENSORS_SHT15 is not set CONFIG_SENSORS_SHT21=m # CONFIG_SENSORS_SHT3x is not set # CONFIG_SENSORS_SHTC1 is not set CONFIG_SENSORS_SIS5595=m CONFIG_SENSORS_DME1737=m CONFIG_SENSORS_EMC1403=m # CONFIG_SENSORS_EMC2103 is not set CONFIG_SENSORS_EMC6W201=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m CONFIG_SENSORS_SCH56XX_COMMON=m CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m # CONFIG_SENSORS_STTS751 is not set # CONFIG_SENSORS_SMM665 is not set # CONFIG_SENSORS_ADC128D818 is not set CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m # CONFIG_SENSORS_ADS7871 is not set CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_INA209=m CONFIG_SENSORS_INA2XX=m # CONFIG_SENSORS_INA3221 is not set # CONFIG_SENSORS_TC74 is not set CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m # CONFIG_SENSORS_TMP103 is not set # CONFIG_SENSORS_TMP108 is not set CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_VIA_CPUTEMP=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m # CONFIG_SENSORS_W83773G is not set CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m CONFIG_SENSORS_W83793=m CONFIG_SENSORS_W83795=m # CONFIG_SENSORS_W83795_FANCTRL is not set CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m # CONFIG_SENSORS_XGENE is not set # # ACPI drivers # CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=y # CONFIG_THERMAL_STATISTICS is not set CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_HWMON=y CONFIG_THERMAL_WRITABLE_TRIPS=y CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y # CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set # CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set # CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set CONFIG_THERMAL_GOV_FAIR_SHARE=y CONFIG_THERMAL_GOV_STEP_WISE=y CONFIG_THERMAL_GOV_BANG_BANG=y CONFIG_THERMAL_GOV_USER_SPACE=y # CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set # CONFIG_CLOCK_THERMAL is not set # CONFIG_DEVFREQ_THERMAL is not set # CONFIG_THERMAL_EMULATION is not set CONFIG_INTEL_POWERCLAMP=m CONFIG_X86_PKG_TEMP_THERMAL=m # CONFIG_INTEL_SOC_DTS_THERMAL is not set # # ACPI INT340X thermal drivers # # CONFIG_INT340X_THERMAL is not set CONFIG_INTEL_PCH_THERMAL=m CONFIG_WATCHDOG=y CONFIG_WATCHDOG_CORE=y # CONFIG_WATCHDOG_NOWAYOUT is not set CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y # CONFIG_WATCHDOG_SYSFS is not set # # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m CONFIG_WDAT_WDT=m # CONFIG_XILINX_WATCHDOG is not set # CONFIG_ZIIRAVE_WATCHDOG is not set # CONFIG_CADENCE_WATCHDOG is not set # CONFIG_DW_WATCHDOG is not set # CONFIG_MAX63XX_WATCHDOG is not set # CONFIG_ACQUIRE_WDT is not set # CONFIG_ADVANTECH_WDT is not set CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m # CONFIG_EBC_C384_WDT is not set CONFIG_F71808E_WDT=m CONFIG_SP5100_TCO=m CONFIG_SBC_FITPC2_WATCHDOG=m # CONFIG_EUROTECH_WDT is not set CONFIG_IB700_WDT=m CONFIG_IBMASR=m # CONFIG_WAFER_WDT is not set CONFIG_I6300ESB_WDT=y CONFIG_IE6XX_WDT=m CONFIG_ITCO_WDT=y CONFIG_ITCO_VENDOR_SUPPORT=y CONFIG_IT8712F_WDT=m CONFIG_IT87_WDT=m CONFIG_HP_WATCHDOG=m CONFIG_HPWDT_NMI_DECODING=y # CONFIG_SC1200_WDT is not set # CONFIG_PC87413_WDT is not set CONFIG_NV_TCO=m # CONFIG_60XX_WDT is not set # CONFIG_CPU5_WDT is not set CONFIG_SMSC_SCH311X_WDT=m # CONFIG_SMSC37B787_WDT is not set CONFIG_VIA_WDT=m CONFIG_W83627HF_WDT=m CONFIG_W83877F_WDT=m CONFIG_W83977F_WDT=m CONFIG_MACHZ_WDT=m # CONFIG_SBC_EPX_C3_WATCHDOG is not set # CONFIG_INTEL_MEI_WDT is not set # CONFIG_NI903X_WDT is not set # CONFIG_NIC7018_WDT is not set # CONFIG_MEN_A21_WDT is not set CONFIG_XEN_WDT=m # # PCI-based Watchdog Cards # CONFIG_PCIPCWATCHDOG=m CONFIG_WDTPCI=m # # USB-based Watchdog Cards # CONFIG_USBPCWATCHDOG=m # # Watchdog Pretimeout Governors # # CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set CONFIG_SSB_POSSIBLE=y CONFIG_SSB=m CONFIG_SSB_SPROM=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y CONFIG_SSB_SDIOHOST_POSSIBLE=y CONFIG_SSB_SDIOHOST=y CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y # CONFIG_SSB_DRIVER_GPIO is not set CONFIG_BCMA_POSSIBLE=y CONFIG_BCMA=m CONFIG_BCMA_HOST_PCI_POSSIBLE=y CONFIG_BCMA_HOST_PCI=y # CONFIG_BCMA_HOST_SOC is not set CONFIG_BCMA_DRIVER_PCI=y CONFIG_BCMA_DRIVER_GMAC_CMN=y # CONFIG_BCMA_DRIVER_GPIO is not set # CONFIG_BCMA_DEBUG is not set # # Multifunction device drivers # CONFIG_MFD_CORE=y # CONFIG_MFD_AS3711 is not set # CONFIG_PMIC_ADP5520 is not set # CONFIG_MFD_AAT2870_CORE is not set # CONFIG_MFD_AT91_USART is not set # CONFIG_MFD_BCM590XX is not set # CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_CROS_EC is not set # CONFIG_MFD_MADERA is not set # CONFIG_PMIC_DA903X is not set # CONFIG_MFD_DA9052_SPI is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9055 is not set # CONFIG_MFD_DA9062 is not set # CONFIG_MFD_DA9063 is not set # CONFIG_MFD_DA9150 is not set # CONFIG_MFD_DLN2 is not set # CONFIG_MFD_MC13XXX_SPI is not set # CONFIG_MFD_MC13XXX_I2C is not set # CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_I2CPLD is not set # CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set CONFIG_LPC_ICH=y CONFIG_LPC_SCH=m # CONFIG_INTEL_SOC_PMIC is not set # CONFIG_INTEL_SOC_PMIC_CHTWC is not set # CONFIG_INTEL_SOC_PMIC_CHTDC_TI is not set # CONFIG_MFD_INTEL_LPSS_ACPI is not set # CONFIG_MFD_INTEL_LPSS_PCI is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_88PM800 is not set # CONFIG_MFD_88PM805 is not set # CONFIG_MFD_88PM860X is not set # CONFIG_MFD_MAX14577 is not set # CONFIG_MFD_MAX77693 is not set # CONFIG_MFD_MAX77843 is not set # CONFIG_MFD_MAX8907 is not set # CONFIG_MFD_MAX8925 is not set # CONFIG_MFD_MAX8997 is not set # CONFIG_MFD_MAX8998 is not set # CONFIG_MFD_MT6397 is not set # CONFIG_MFD_MENF21BMC is not set # CONFIG_EZX_PCAP is not set CONFIG_MFD_VIPERBOARD=m # CONFIG_MFD_RETU is not set # CONFIG_MFD_PCF50633 is not set # CONFIG_UCB1400_CORE is not set # CONFIG_MFD_RDC321X is not set # CONFIG_MFD_RT5033 is not set # CONFIG_MFD_RC5T583 is not set # CONFIG_MFD_SEC_CORE is not set # CONFIG_MFD_SI476X_CORE is not set CONFIG_MFD_SM501=m # CONFIG_MFD_SM501_GPIO is not set # CONFIG_MFD_SKY81452 is not set # CONFIG_MFD_SMSC is not set # CONFIG_ABX500_CORE is not set # CONFIG_MFD_SYSCON is not set # CONFIG_MFD_TI_AM335X_TSCADC is not set # CONFIG_MFD_LP3943 is not set # CONFIG_MFD_LP8788 is not set # CONFIG_MFD_TI_LMU is not set # CONFIG_MFD_PALMAS is not set # CONFIG_TPS6105X is not set # CONFIG_TPS65010 is not set # CONFIG_TPS6507X is not set # CONFIG_MFD_TPS65086 is not set # CONFIG_MFD_TPS65090 is not set # CONFIG_MFD_TPS68470 is not set # CONFIG_MFD_TI_LP873X is not set # CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TPS65910 is not set # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912_SPI is not set # CONFIG_MFD_TPS80031 is not set # CONFIG_TWL4030_CORE is not set # CONFIG_TWL6040_CORE is not set # CONFIG_MFD_WL1273_CORE is not set # CONFIG_MFD_LM3533 is not set CONFIG_MFD_VX855=m # CONFIG_MFD_ARIZONA_I2C is not set # CONFIG_MFD_ARIZONA_SPI is not set # CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM831X_I2C is not set # CONFIG_MFD_WM831X_SPI is not set # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set # CONFIG_REGULATOR is not set CONFIG_RC_CORE=m CONFIG_RC_MAP=m # CONFIG_LIRC is not set CONFIG_RC_DECODERS=y CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m CONFIG_IR_RC6_DECODER=m CONFIG_IR_JVC_DECODER=m CONFIG_IR_SONY_DECODER=m CONFIG_IR_SANYO_DECODER=m CONFIG_IR_SHARP_DECODER=m CONFIG_IR_MCE_KBD_DECODER=m CONFIG_IR_XMP_DECODER=m # CONFIG_IR_IMON_DECODER is not set CONFIG_RC_DEVICES=y CONFIG_RC_ATI_REMOTE=m CONFIG_IR_ENE=m CONFIG_IR_IMON=m # CONFIG_IR_IMON_RAW is not set CONFIG_IR_MCEUSB=m CONFIG_IR_ITE_CIR=m CONFIG_IR_FINTEK=m CONFIG_IR_NUVOTON=m CONFIG_IR_REDRAT3=m CONFIG_IR_STREAMZAP=m CONFIG_IR_WINBOND_CIR=m # CONFIG_IR_IGORPLUGUSB is not set CONFIG_IR_IGUANA=m CONFIG_IR_TTUSBIR=m CONFIG_RC_LOOPBACK=m # CONFIG_IR_SERIAL is not set # CONFIG_IR_SIR is not set CONFIG_MEDIA_SUPPORT=m # # Multimedia core support # CONFIG_MEDIA_CAMERA_SUPPORT=y CONFIG_MEDIA_ANALOG_TV_SUPPORT=y CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_MEDIA_RADIO_SUPPORT=y # CONFIG_MEDIA_SDR_SUPPORT is not set # CONFIG_MEDIA_CEC_SUPPORT is not set # CONFIG_MEDIA_CONTROLLER is not set CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2=m # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set CONFIG_VIDEO_TUNER=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m CONFIG_DVB_CORE=m # CONFIG_DVB_MMAP is not set CONFIG_DVB_NET=y CONFIG_TTPCI_EEPROM=m CONFIG_DVB_MAX_ADAPTERS=8 CONFIG_DVB_DYNAMIC_MINORS=y # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set # CONFIG_DVB_ULE_DEBUG is not set # # Media drivers # CONFIG_MEDIA_USB_SUPPORT=y # # Webcam devices # CONFIG_USB_VIDEO_CLASS=m CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y CONFIG_USB_GSPCA=m CONFIG_USB_M5602=m CONFIG_USB_STV06XX=m CONFIG_USB_GL860=m CONFIG_USB_GSPCA_BENQ=m CONFIG_USB_GSPCA_CONEX=m CONFIG_USB_GSPCA_CPIA1=m # CONFIG_USB_GSPCA_DTCS033 is not set CONFIG_USB_GSPCA_ETOMS=m CONFIG_USB_GSPCA_FINEPIX=m CONFIG_USB_GSPCA_JEILINJ=m CONFIG_USB_GSPCA_JL2005BCD=m # CONFIG_USB_GSPCA_KINECT is not set CONFIG_USB_GSPCA_KONICA=m CONFIG_USB_GSPCA_MARS=m CONFIG_USB_GSPCA_MR97310A=m CONFIG_USB_GSPCA_NW80X=m CONFIG_USB_GSPCA_OV519=m CONFIG_USB_GSPCA_OV534=m CONFIG_USB_GSPCA_OV534_9=m CONFIG_USB_GSPCA_PAC207=m CONFIG_USB_GSPCA_PAC7302=m CONFIG_USB_GSPCA_PAC7311=m CONFIG_USB_GSPCA_SE401=m CONFIG_USB_GSPCA_SN9C2028=m CONFIG_USB_GSPCA_SN9C20X=m CONFIG_USB_GSPCA_SONIXB=m CONFIG_USB_GSPCA_SONIXJ=m CONFIG_USB_GSPCA_SPCA500=m CONFIG_USB_GSPCA_SPCA501=m CONFIG_USB_GSPCA_SPCA505=m CONFIG_USB_GSPCA_SPCA506=m CONFIG_USB_GSPCA_SPCA508=m CONFIG_USB_GSPCA_SPCA561=m CONFIG_USB_GSPCA_SPCA1528=m CONFIG_USB_GSPCA_SQ905=m CONFIG_USB_GSPCA_SQ905C=m CONFIG_USB_GSPCA_SQ930X=m CONFIG_USB_GSPCA_STK014=m # CONFIG_USB_GSPCA_STK1135 is not set CONFIG_USB_GSPCA_STV0680=m CONFIG_USB_GSPCA_SUNPLUS=m CONFIG_USB_GSPCA_T613=m CONFIG_USB_GSPCA_TOPRO=m # CONFIG_USB_GSPCA_TOUPTEK is not set CONFIG_USB_GSPCA_TV8532=m CONFIG_USB_GSPCA_VC032X=m CONFIG_USB_GSPCA_VICAM=m CONFIG_USB_GSPCA_XIRLINK_CIT=m CONFIG_USB_GSPCA_ZC3XX=m CONFIG_USB_PWC=m # CONFIG_USB_PWC_DEBUG is not set CONFIG_USB_PWC_INPUT_EVDEV=y # CONFIG_VIDEO_CPIA2 is not set CONFIG_USB_ZR364XX=m CONFIG_USB_STKWEBCAM=m CONFIG_USB_S2255=m # CONFIG_VIDEO_USBTV is not set # # Analog TV USB devices # CONFIG_VIDEO_PVRUSB2=m CONFIG_VIDEO_PVRUSB2_SYSFS=y CONFIG_VIDEO_PVRUSB2_DVB=y # CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set CONFIG_VIDEO_HDPVR=m CONFIG_VIDEO_USBVISION=m # CONFIG_VIDEO_STK1160_COMMON is not set # CONFIG_VIDEO_GO7007 is not set # # Analog/digital TV USB devices # CONFIG_VIDEO_AU0828=m CONFIG_VIDEO_AU0828_V4L2=y # CONFIG_VIDEO_AU0828_RC is not set CONFIG_VIDEO_CX231XX=m CONFIG_VIDEO_CX231XX_RC=y CONFIG_VIDEO_CX231XX_ALSA=m CONFIG_VIDEO_CX231XX_DVB=m CONFIG_VIDEO_TM6000=m CONFIG_VIDEO_TM6000_ALSA=m CONFIG_VIDEO_TM6000_DVB=m # # Digital TV USB devices # CONFIG_DVB_USB=m # CONFIG_DVB_USB_DEBUG is not set CONFIG_DVB_USB_DIB3000MC=m CONFIG_DVB_USB_A800=m CONFIG_DVB_USB_DIBUSB_MB=m # CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set CONFIG_DVB_USB_DIBUSB_MC=m CONFIG_DVB_USB_DIB0700=m CONFIG_DVB_USB_UMT_010=m CONFIG_DVB_USB_CXUSB=m CONFIG_DVB_USB_M920X=m CONFIG_DVB_USB_DIGITV=m CONFIG_DVB_USB_VP7045=m CONFIG_DVB_USB_VP702X=m CONFIG_DVB_USB_GP8PSK=m CONFIG_DVB_USB_NOVA_T_USB2=m CONFIG_DVB_USB_TTUSB2=m CONFIG_DVB_USB_DTT200U=m CONFIG_DVB_USB_OPERA1=m CONFIG_DVB_USB_AF9005=m CONFIG_DVB_USB_AF9005_REMOTE=m CONFIG_DVB_USB_PCTV452E=m CONFIG_DVB_USB_DW2102=m CONFIG_DVB_USB_CINERGY_T2=m CONFIG_DVB_USB_DTV5100=m CONFIG_DVB_USB_AZ6027=m CONFIG_DVB_USB_TECHNISAT_USB2=m CONFIG_DVB_USB_V2=m CONFIG_DVB_USB_AF9015=m CONFIG_DVB_USB_AF9035=m CONFIG_DVB_USB_ANYSEE=m CONFIG_DVB_USB_AU6610=m CONFIG_DVB_USB_AZ6007=m CONFIG_DVB_USB_CE6230=m CONFIG_DVB_USB_EC168=m CONFIG_DVB_USB_GL861=m CONFIG_DVB_USB_LME2510=m CONFIG_DVB_USB_MXL111SF=m CONFIG_DVB_USB_RTL28XXU=m # CONFIG_DVB_USB_DVBSKY is not set # CONFIG_DVB_USB_ZD1301 is not set CONFIG_DVB_TTUSB_BUDGET=m CONFIG_DVB_TTUSB_DEC=m CONFIG_SMS_USB_DRV=m CONFIG_DVB_B2C2_FLEXCOP_USB=m # CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set # CONFIG_DVB_AS102 is not set # # Webcam, TV (analog/digital) USB devices # CONFIG_VIDEO_EM28XX=m # CONFIG_VIDEO_EM28XX_V4L2 is not set CONFIG_VIDEO_EM28XX_ALSA=m CONFIG_VIDEO_EM28XX_DVB=m CONFIG_VIDEO_EM28XX_RC=m CONFIG_MEDIA_PCI_SUPPORT=y # # Media capture support # # CONFIG_VIDEO_MEYE is not set # CONFIG_VIDEO_SOLO6X10 is not set # CONFIG_VIDEO_TW5864 is not set # CONFIG_VIDEO_TW68 is not set # CONFIG_VIDEO_TW686X is not set # # Media capture/analog TV support # CONFIG_VIDEO_IVTV=m # CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set # CONFIG_VIDEO_IVTV_ALSA is not set CONFIG_VIDEO_FB_IVTV=m # CONFIG_VIDEO_HEXIUM_GEMINI is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_DT3155 is not set # # Media capture/analog/hybrid TV support # CONFIG_VIDEO_CX18=m CONFIG_VIDEO_CX18_ALSA=m CONFIG_VIDEO_CX23885=m CONFIG_MEDIA_ALTERA_CI=m # CONFIG_VIDEO_CX25821 is not set CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_ALSA=m CONFIG_VIDEO_CX88_BLACKBIRD=m CONFIG_VIDEO_CX88_DVB=m CONFIG_VIDEO_CX88_ENABLE_VP3054=y CONFIG_VIDEO_CX88_VP3054=m CONFIG_VIDEO_CX88_MPEG=m CONFIG_VIDEO_BT848=m CONFIG_DVB_BT8XX=m CONFIG_VIDEO_SAA7134=m CONFIG_VIDEO_SAA7134_ALSA=m CONFIG_VIDEO_SAA7134_RC=y CONFIG_VIDEO_SAA7134_DVB=m CONFIG_VIDEO_SAA7164=m # # Media digital TV PCI Adapters # CONFIG_DVB_AV7110_IR=y CONFIG_DVB_AV7110=m CONFIG_DVB_AV7110_OSD=y CONFIG_DVB_BUDGET_CORE=m CONFIG_DVB_BUDGET=m CONFIG_DVB_BUDGET_CI=m CONFIG_DVB_BUDGET_AV=m CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_B2C2_FLEXCOP_PCI=m # CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set CONFIG_DVB_PLUTO2=m CONFIG_DVB_DM1105=m CONFIG_DVB_PT1=m # CONFIG_DVB_PT3 is not set CONFIG_MANTIS_CORE=m CONFIG_DVB_MANTIS=m CONFIG_DVB_HOPPER=m CONFIG_DVB_NGENE=m CONFIG_DVB_DDBRIDGE=m # CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_SMIPCIE is not set # CONFIG_DVB_NETUP_UNIDVB is not set # CONFIG_V4L_PLATFORM_DRIVERS is not set # CONFIG_V4L_MEM2MEM_DRIVERS is not set # CONFIG_V4L_TEST_DRIVERS is not set # CONFIG_DVB_PLATFORM_DRIVERS is not set # # Supported MMC/SDIO adapters # CONFIG_SMS_SDIO_DRV=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_TEA575X=m # CONFIG_RADIO_SI470X is not set # CONFIG_RADIO_SI4713 is not set # CONFIG_USB_MR800 is not set # CONFIG_USB_DSBR is not set # CONFIG_RADIO_MAXIRADIO is not set # CONFIG_RADIO_SHARK is not set # CONFIG_RADIO_SHARK2 is not set # CONFIG_USB_KEENE is not set # CONFIG_USB_RAREMONO is not set # CONFIG_USB_MA901 is not set # CONFIG_RADIO_TEA5764 is not set # CONFIG_RADIO_SAA7706H is not set # CONFIG_RADIO_TEF6862 is not set # CONFIG_RADIO_WL1273 is not set # # Texas Instruments WL128x FM driver (ST based) # # # Supported FireWire (IEEE 1394) Adapters # CONFIG_DVB_FIREDTV=m CONFIG_DVB_FIREDTV_INPUT=y CONFIG_MEDIA_COMMON_OPTIONS=y # # common driver options # CONFIG_VIDEO_CX2341X=m CONFIG_VIDEO_TVEEPROM=m CONFIG_CYPRESS_FIRMWARE=m CONFIG_VIDEOBUF2_CORE=m CONFIG_VIDEOBUF2_V4L2=m CONFIG_VIDEOBUF2_MEMOPS=m CONFIG_VIDEOBUF2_VMALLOC=m CONFIG_VIDEOBUF2_DMA_SG=m CONFIG_VIDEOBUF2_DVB=m CONFIG_DVB_B2C2_FLEXCOP=m CONFIG_VIDEO_SAA7146=m CONFIG_VIDEO_SAA7146_VV=m CONFIG_SMS_SIANO_MDTV=m CONFIG_SMS_SIANO_RC=y # CONFIG_SMS_SIANO_DEBUGFS is not set # # Media ancillary drivers (tuners, sensors, i2c, spi, frontends) # CONFIG_MEDIA_SUBDRV_AUTOSELECT=y CONFIG_MEDIA_ATTACH=y CONFIG_VIDEO_IR_I2C=m # # Audio decoders, processors and mixers # CONFIG_VIDEO_TVAUDIO=m CONFIG_VIDEO_TDA7432=m CONFIG_VIDEO_MSP3400=m CONFIG_VIDEO_CS3308=m CONFIG_VIDEO_CS5345=m CONFIG_VIDEO_CS53L32A=m CONFIG_VIDEO_WM8775=m CONFIG_VIDEO_WM8739=m CONFIG_VIDEO_VP27SMPX=m # # RDS decoders # CONFIG_VIDEO_SAA6588=m # # Video decoders # CONFIG_VIDEO_SAA711X=m # # Video and audio decoders # CONFIG_VIDEO_SAA717X=m CONFIG_VIDEO_CX25840=m # # Video encoders # CONFIG_VIDEO_SAA7127=m # # Camera sensor devices # # # Flash devices # # # Video improvement chips # CONFIG_VIDEO_UPD64031A=m CONFIG_VIDEO_UPD64083=m # # Audio/Video compression chips # CONFIG_VIDEO_SAA6752HS=m # # SDR tuner chips # # # Miscellaneous helper chips # CONFIG_VIDEO_M52790=m # # Sensors used on soc_camera driver # # # Media SPI Adapters # # CONFIG_CXD2880_SPI_DRV is not set CONFIG_MEDIA_TUNER=m CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA18250=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA827X=m CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_MT2060=m CONFIG_MEDIA_TUNER_MT2063=m CONFIG_MEDIA_TUNER_MT2266=m CONFIG_MEDIA_TUNER_MT2131=m CONFIG_MEDIA_TUNER_QT1010=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m CONFIG_MEDIA_TUNER_XC4000=m CONFIG_MEDIA_TUNER_MXL5005S=m CONFIG_MEDIA_TUNER_MXL5007T=m CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_MEDIA_TUNER_MAX2165=m CONFIG_MEDIA_TUNER_TDA18218=m CONFIG_MEDIA_TUNER_FC0011=m CONFIG_MEDIA_TUNER_FC0012=m CONFIG_MEDIA_TUNER_FC0013=m CONFIG_MEDIA_TUNER_TDA18212=m CONFIG_MEDIA_TUNER_E4000=m CONFIG_MEDIA_TUNER_FC2580=m CONFIG_MEDIA_TUNER_M88RS6000T=m CONFIG_MEDIA_TUNER_TUA9001=m CONFIG_MEDIA_TUNER_SI2157=m CONFIG_MEDIA_TUNER_IT913X=m CONFIG_MEDIA_TUNER_R820T=m CONFIG_MEDIA_TUNER_QM1D1C0042=m CONFIG_MEDIA_TUNER_QM1D1B0004=m # # Multistandard (satellite) frontends # CONFIG_DVB_STB0899=m CONFIG_DVB_STB6100=m CONFIG_DVB_STV090x=m CONFIG_DVB_STV0910=m CONFIG_DVB_STV6110x=m CONFIG_DVB_STV6111=m CONFIG_DVB_MXL5XX=m CONFIG_DVB_M88DS3103=m # # Multistandard (cable + terrestrial) frontends # CONFIG_DVB_DRXK=m CONFIG_DVB_TDA18271C2DD=m CONFIG_DVB_SI2165=m CONFIG_DVB_MN88472=m CONFIG_DVB_MN88473=m # # DVB-S (satellite) frontends # CONFIG_DVB_CX24110=m CONFIG_DVB_CX24123=m CONFIG_DVB_MT312=m CONFIG_DVB_ZL10036=m CONFIG_DVB_ZL10039=m CONFIG_DVB_S5H1420=m CONFIG_DVB_STV0288=m CONFIG_DVB_STB6000=m CONFIG_DVB_STV0299=m CONFIG_DVB_STV6110=m CONFIG_DVB_STV0900=m CONFIG_DVB_TDA8083=m CONFIG_DVB_TDA10086=m CONFIG_DVB_TDA8261=m CONFIG_DVB_VES1X93=m CONFIG_DVB_TUNER_ITD1000=m CONFIG_DVB_TUNER_CX24113=m CONFIG_DVB_TDA826X=m CONFIG_DVB_TUA6100=m CONFIG_DVB_CX24116=m CONFIG_DVB_CX24117=m CONFIG_DVB_CX24120=m CONFIG_DVB_SI21XX=m CONFIG_DVB_TS2020=m CONFIG_DVB_DS3000=m CONFIG_DVB_MB86A16=m CONFIG_DVB_TDA10071=m # # DVB-T (terrestrial) frontends # CONFIG_DVB_SP8870=m CONFIG_DVB_SP887X=m CONFIG_DVB_CX22700=m CONFIG_DVB_CX22702=m CONFIG_DVB_DRXD=m CONFIG_DVB_L64781=m CONFIG_DVB_TDA1004X=m CONFIG_DVB_NXT6000=m CONFIG_DVB_MT352=m CONFIG_DVB_ZL10353=m CONFIG_DVB_DIB3000MB=m CONFIG_DVB_DIB3000MC=m CONFIG_DVB_DIB7000M=m CONFIG_DVB_DIB7000P=m CONFIG_DVB_TDA10048=m CONFIG_DVB_AF9013=m CONFIG_DVB_EC100=m CONFIG_DVB_STV0367=m CONFIG_DVB_CXD2820R=m CONFIG_DVB_CXD2841ER=m CONFIG_DVB_RTL2830=m CONFIG_DVB_RTL2832=m CONFIG_DVB_SI2168=m CONFIG_DVB_GP8PSK_FE=m # # DVB-C (cable) frontends # CONFIG_DVB_VES1820=m CONFIG_DVB_TDA10021=m CONFIG_DVB_TDA10023=m CONFIG_DVB_STV0297=m # # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # CONFIG_DVB_NXT200X=m CONFIG_DVB_OR51211=m CONFIG_DVB_OR51132=m CONFIG_DVB_BCM3510=m CONFIG_DVB_LGDT330X=m CONFIG_DVB_LGDT3305=m CONFIG_DVB_LGDT3306A=m CONFIG_DVB_LG2160=m CONFIG_DVB_S5H1409=m CONFIG_DVB_AU8522=m CONFIG_DVB_AU8522_DTV=m CONFIG_DVB_AU8522_V4L=m CONFIG_DVB_S5H1411=m # # ISDB-T (terrestrial) frontends # CONFIG_DVB_S921=m CONFIG_DVB_DIB8000=m CONFIG_DVB_MB86A20S=m # # ISDB-S (satellite) & ISDB-T (terrestrial) frontends # CONFIG_DVB_TC90522=m # # Digital terrestrial only tuners/PLL # CONFIG_DVB_PLL=m CONFIG_DVB_TUNER_DIB0070=m CONFIG_DVB_TUNER_DIB0090=m # # SEC control devices for DVB-S # CONFIG_DVB_DRX39XYJ=m CONFIG_DVB_LNBH25=m CONFIG_DVB_LNBP21=m CONFIG_DVB_LNBP22=m CONFIG_DVB_ISL6405=m CONFIG_DVB_ISL6421=m CONFIG_DVB_ISL6423=m CONFIG_DVB_A8293=m CONFIG_DVB_LGS8GXX=m CONFIG_DVB_ATBM8830=m CONFIG_DVB_TDA665x=m CONFIG_DVB_IX2505V=m CONFIG_DVB_M88RS2000=m CONFIG_DVB_AF9033=m # # Common Interface (EN50221) controller drivers # CONFIG_DVB_CXD2099=m # # Tools to develop new frontends # CONFIG_DVB_DUMMY_FE=m # # Graphics support # CONFIG_AGP=y CONFIG_AGP_AMD64=y CONFIG_AGP_INTEL=y CONFIG_AGP_SIS=y CONFIG_AGP_VIA=y CONFIG_INTEL_GTT=y CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=64 CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=m CONFIG_DRM_MIPI_DSI=y # CONFIG_DRM_DP_AUX_CHARDEV is not set CONFIG_DRM_DEBUG_SELFTEST=m CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 # CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set CONFIG_DRM_LOAD_EDID_FIRMWARE=y # CONFIG_DRM_DP_CEC is not set CONFIG_DRM_TTM=m # # I2C encoder or helper chips # CONFIG_DRM_I2C_CH7006=m CONFIG_DRM_I2C_SIL164=m CONFIG_DRM_I2C_NXP_TDA998X=m # CONFIG_DRM_I2C_NXP_TDA9950 is not set # CONFIG_DRM_RADEON is not set # CONFIG_DRM_AMDGPU is not set # # ACP (Audio CoProcessor) Configuration # # # AMD Library routines # # CONFIG_DRM_NOUVEAU is not set CONFIG_DRM_I915=m # CONFIG_DRM_I915_ALPHA_SUPPORT is not set CONFIG_DRM_I915_CAPTURE_ERROR=y CONFIG_DRM_I915_COMPRESS_ERROR=y CONFIG_DRM_I915_USERPTR=y # CONFIG_DRM_I915_GVT is not set # # drm/i915 Debugging # # CONFIG_DRM_I915_WERROR is not set # CONFIG_DRM_I915_DEBUG is not set # CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set # CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set # CONFIG_DRM_I915_DEBUG_GUC is not set # CONFIG_DRM_I915_SELFTEST is not set # CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set # CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set # CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set CONFIG_DRM_VGEM=m # CONFIG_DRM_VKMS is not set CONFIG_DRM_VMWGFX=m CONFIG_DRM_VMWGFX_FBCON=y CONFIG_DRM_GMA500=m CONFIG_DRM_GMA600=y CONFIG_DRM_GMA3600=y CONFIG_DRM_UDL=m CONFIG_DRM_AST=m CONFIG_DRM_MGAG200=m CONFIG_DRM_CIRRUS_QEMU=m CONFIG_DRM_QXL=m # CONFIG_DRM_BOCHS is not set # CONFIG_DRM_VIRTIO_GPU is not set CONFIG_DRM_PANEL=y # # Display Panels # # CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set CONFIG_DRM_BRIDGE=y CONFIG_DRM_PANEL_BRIDGE=y # # Display Interface Bridges # # CONFIG_DRM_ANALOGIX_ANX78XX is not set # CONFIG_DRM_HISI_HIBMC is not set # CONFIG_DRM_TINYDRM is not set # CONFIG_DRM_XEN is not set # CONFIG_DRM_LEGACY is not set CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y CONFIG_DRM_LIB_RANDOM=y # # Frame buffer Devices # CONFIG_FB_CMDLINE=y CONFIG_FB_NOTIFY=y CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set CONFIG_FB_BOOT_VESA_SUPPORT=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_SYS_FILLRECT=m CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m CONFIG_FB_DEFERRED_IO=y # CONFIG_FB_MODE_HELPERS is not set CONFIG_FB_TILEBLITTING=y # # Frame buffer hardware drivers # # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ARC is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_VGA16 is not set # CONFIG_FB_UVESA is not set CONFIG_FB_VESA=y CONFIG_FB_EFI=y # CONFIG_FB_N411 is not set # CONFIG_FB_HGA is not set # CONFIG_FB_OPENCORES is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_I740 is not set # CONFIG_FB_LE80578 is not set # CONFIG_FB_INTEL is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set # CONFIG_FB_VIA is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_VT8623 is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_ARK is not set # CONFIG_FB_PM3 is not set # CONFIG_FB_CARMINE is not set # CONFIG_FB_SM501 is not set # CONFIG_FB_SMSCUFX is not set # CONFIG_FB_UDL is not set # CONFIG_FB_IBM_GXT4500 is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_XEN_FBDEV_FRONTEND is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set CONFIG_FB_HYPERV=m # CONFIG_FB_SIMPLE is not set # CONFIG_FB_SM712 is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m # CONFIG_LCD_L4F00242T03 is not set # CONFIG_LCD_LMS283GF05 is not set # CONFIG_LCD_LTV350QV is not set # CONFIG_LCD_ILI922X is not set # CONFIG_LCD_ILI9320 is not set # CONFIG_LCD_TDO24M is not set # CONFIG_LCD_VGG2432A4 is not set CONFIG_LCD_PLATFORM=m # CONFIG_LCD_AMS369FG06 is not set # CONFIG_LCD_LMS501KF03 is not set # CONFIG_LCD_HX8357 is not set # CONFIG_LCD_OTM3225A is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_BACKLIGHT_GENERIC is not set # CONFIG_BACKLIGHT_PWM is not set CONFIG_BACKLIGHT_APPLE=m # CONFIG_BACKLIGHT_PM8941_WLED is not set # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # CONFIG_BACKLIGHT_LM3630A is not set # CONFIG_BACKLIGHT_LM3639 is not set # CONFIG_BACKLIGHT_LP855X is not set # CONFIG_BACKLIGHT_GPIO is not set # CONFIG_BACKLIGHT_LV5207LP is not set # CONFIG_BACKLIGHT_BD6107 is not set # CONFIG_BACKLIGHT_ARCXCNN is not set CONFIG_HDMI=y # # Console display driver support # CONFIG_VGA_CONSOLE=y CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 # CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set CONFIG_DUMMY_CONSOLE=y CONFIG_DUMMY_CONSOLE_COLUMNS=80 CONFIG_DUMMY_CONSOLE_ROWS=25 CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y # CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set CONFIG_LOGO=y # CONFIG_LOGO_LINUX_MONO is not set # CONFIG_LOGO_LINUX_VGA16 is not set CONFIG_LOGO_LINUX_CLUT224=y CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y CONFIG_SOUND_OSS_CORE_PRECLAIM=y CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_SEQ_DEVICE=m CONFIG_SND_RAWMIDI=m CONFIG_SND_JACK=y CONFIG_SND_JACK_INPUT_DEV=y CONFIG_SND_OSSEMUL=y # CONFIG_SND_MIXER_OSS is not set # CONFIG_SND_PCM_OSS is not set CONFIG_SND_PCM_TIMER=y CONFIG_SND_HRTIMER=m CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_MAX_CARDS=32 # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_PROC_FS=y CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m CONFIG_SND_SEQUENCER_OSS=m CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_SEQ_MIDI_EVENT=m CONFIG_SND_SEQ_MIDI=m CONFIG_SND_SEQ_MIDI_EMUL=m CONFIG_SND_SEQ_VIRMIDI=m CONFIG_SND_MPU401_UART=m CONFIG_SND_OPL3_LIB=m CONFIG_SND_OPL3_LIB_SEQ=m CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DRIVERS=y CONFIG_SND_PCSP=m CONFIG_SND_DUMMY=m CONFIG_SND_ALOOP=m CONFIG_SND_VIRMIDI=m CONFIG_SND_MTPAV=m # CONFIG_SND_MTS64 is not set # CONFIG_SND_SERIAL_U16550 is not set CONFIG_SND_MPU401=m # CONFIG_SND_PORTMAN2X4 is not set CONFIG_SND_AC97_POWER_SAVE=y CONFIG_SND_AC97_POWER_SAVE_DEFAULT=5 CONFIG_SND_PCI=y CONFIG_SND_AD1889=m # CONFIG_SND_ALS300 is not set # CONFIG_SND_ALS4000 is not set CONFIG_SND_ALI5451=m CONFIG_SND_ASIHPI=m CONFIG_SND_ATIIXP=m CONFIG_SND_ATIIXP_MODEM=m CONFIG_SND_AU8810=m CONFIG_SND_AU8820=m CONFIG_SND_AU8830=m # CONFIG_SND_AW2 is not set # CONFIG_SND_AZT3328 is not set CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set CONFIG_SND_CA0106=m CONFIG_SND_CMIPCI=m CONFIG_SND_OXYGEN_LIB=m CONFIG_SND_OXYGEN=m # CONFIG_SND_CS4281 is not set CONFIG_SND_CS46XX=m CONFIG_SND_CS46XX_NEW_DSP=y CONFIG_SND_CTXFI=m CONFIG_SND_DARLA20=m CONFIG_SND_GINA20=m CONFIG_SND_LAYLA20=m CONFIG_SND_DARLA24=m CONFIG_SND_GINA24=m CONFIG_SND_LAYLA24=m CONFIG_SND_MONA=m CONFIG_SND_MIA=m CONFIG_SND_ECHO3G=m CONFIG_SND_INDIGO=m CONFIG_SND_INDIGOIO=m CONFIG_SND_INDIGODJ=m CONFIG_SND_INDIGOIOX=m CONFIG_SND_INDIGODJX=m CONFIG_SND_EMU10K1=m CONFIG_SND_EMU10K1_SEQ=m CONFIG_SND_EMU10K1X=m CONFIG_SND_ENS1370=m CONFIG_SND_ENS1371=m # CONFIG_SND_ES1938 is not set CONFIG_SND_ES1968=m CONFIG_SND_ES1968_INPUT=y CONFIG_SND_ES1968_RADIO=y # CONFIG_SND_FM801 is not set CONFIG_SND_HDSP=m CONFIG_SND_HDSPM=m CONFIG_SND_ICE1712=m CONFIG_SND_ICE1724=m CONFIG_SND_INTEL8X0=m CONFIG_SND_INTEL8X0M=m CONFIG_SND_KORG1212=m CONFIG_SND_LOLA=m CONFIG_SND_LX6464ES=m CONFIG_SND_MAESTRO3=m CONFIG_SND_MAESTRO3_INPUT=y CONFIG_SND_MIXART=m # CONFIG_SND_NM256 is not set CONFIG_SND_PCXHR=m # CONFIG_SND_RIPTIDE is not set CONFIG_SND_RME32=m CONFIG_SND_RME96=m CONFIG_SND_RME9652=m # CONFIG_SND_SONICVIBES is not set CONFIG_SND_TRIDENT=m CONFIG_SND_VIA82XX=m CONFIG_SND_VIA82XX_MODEM=m CONFIG_SND_VIRTUOSO=m CONFIG_SND_VX222=m # CONFIG_SND_YMFPCI is not set # # HD-Audio # CONFIG_SND_HDA=m CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_HWDEP=y # CONFIG_SND_HDA_RECONFIG is not set CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INPUT_BEEP_MODE=0 # CONFIG_SND_HDA_PATCH_LOADER is not set CONFIG_SND_HDA_CODEC_REALTEK=m CONFIG_SND_HDA_CODEC_ANALOG=m CONFIG_SND_HDA_CODEC_SIGMATEL=m CONFIG_SND_HDA_CODEC_VIA=m CONFIG_SND_HDA_CODEC_HDMI=m CONFIG_SND_HDA_CODEC_CIRRUS=m CONFIG_SND_HDA_CODEC_CONEXANT=m CONFIG_SND_HDA_CODEC_CA0110=m CONFIG_SND_HDA_CODEC_CA0132=m CONFIG_SND_HDA_CODEC_CA0132_DSP=y CONFIG_SND_HDA_CODEC_CMEDIA=m CONFIG_SND_HDA_CODEC_SI3054=m CONFIG_SND_HDA_GENERIC=m CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 CONFIG_SND_HDA_CORE=m CONFIG_SND_HDA_DSP_LOADER=y CONFIG_SND_HDA_COMPONENT=y CONFIG_SND_HDA_I915=y CONFIG_SND_HDA_PREALLOC_SIZE=512 CONFIG_SND_SPI=y CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=m CONFIG_SND_USB_UA101=m CONFIG_SND_USB_USX2Y=m CONFIG_SND_USB_CAIAQ=m CONFIG_SND_USB_CAIAQ_INPUT=y CONFIG_SND_USB_US122L=m CONFIG_SND_USB_6FIRE=m # CONFIG_SND_USB_HIFACE is not set # CONFIG_SND_BCD2000 is not set # CONFIG_SND_USB_POD is not set # CONFIG_SND_USB_PODHD is not set # CONFIG_SND_USB_TONEPORT is not set # CONFIG_SND_USB_VARIAX is not set CONFIG_SND_FIREWIRE=y CONFIG_SND_FIREWIRE_LIB=m # CONFIG_SND_DICE is not set # CONFIG_SND_OXFW is not set CONFIG_SND_ISIGHT=m # CONFIG_SND_FIREWORKS is not set # CONFIG_SND_BEBOB is not set # CONFIG_SND_FIREWIRE_DIGI00X is not set # CONFIG_SND_FIREWIRE_TASCAM is not set # CONFIG_SND_FIREWIRE_MOTU is not set # CONFIG_SND_FIREFACE is not set # CONFIG_SND_SOC is not set CONFIG_SND_X86=y # CONFIG_HDMI_LPE_AUDIO is not set CONFIG_SND_SYNTH_EMUX=m # CONFIG_SND_XEN_FRONTEND is not set CONFIG_AC97_BUS=m # # HID support # CONFIG_HID=y CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HIDRAW=y CONFIG_UHID=m CONFIG_HID_GENERIC=y # # Special HID drivers # CONFIG_HID_A4TECH=y # CONFIG_HID_ACCUTOUCH is not set CONFIG_HID_ACRUX=m # CONFIG_HID_ACRUX_FF is not set CONFIG_HID_APPLE=y CONFIG_HID_APPLEIR=m # CONFIG_HID_ASUS is not set CONFIG_HID_AUREAL=m CONFIG_HID_BELKIN=y # CONFIG_HID_BETOP_FF is not set # CONFIG_HID_BIGBEN_FF is not set CONFIG_HID_CHERRY=y CONFIG_HID_CHICONY=y # CONFIG_HID_CORSAIR is not set # CONFIG_HID_COUGAR is not set CONFIG_HID_PRODIKEYS=m # CONFIG_HID_CMEDIA is not set # CONFIG_HID_CP2112 is not set CONFIG_HID_CYPRESS=y CONFIG_HID_DRAGONRISE=m # CONFIG_DRAGONRISE_FF is not set # CONFIG_HID_EMS_FF is not set # CONFIG_HID_ELAN is not set CONFIG_HID_ELECOM=m # CONFIG_HID_ELO is not set CONFIG_HID_EZKEY=y # CONFIG_HID_GEMBIRD is not set # CONFIG_HID_GFRM is not set CONFIG_HID_HOLTEK=m # CONFIG_HOLTEK_FF is not set # CONFIG_HID_GT683R is not set CONFIG_HID_KEYTOUCH=m CONFIG_HID_KYE=m CONFIG_HID_UCLOGIC=m CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_ICADE=m # CONFIG_HID_ITE is not set # CONFIG_HID_JABRA is not set CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=y CONFIG_HID_LCPOWER=m CONFIG_HID_LED=m # CONFIG_HID_LENOVO is not set CONFIG_HID_LOGITECH=y CONFIG_HID_LOGITECH_DJ=m CONFIG_HID_LOGITECH_HIDPP=m # CONFIG_LOGITECH_FF is not set # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWHEELS_FF is not set CONFIG_HID_MAGICMOUSE=y # CONFIG_HID_MAYFLASH is not set # CONFIG_HID_REDRAGON is not set CONFIG_HID_MICROSOFT=y CONFIG_HID_MONTEREY=y CONFIG_HID_MULTITOUCH=m # CONFIG_HID_NTI is not set CONFIG_HID_NTRIG=y CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m # CONFIG_PANTHERLORD_FF is not set # CONFIG_HID_PENMOUNT is not set CONFIG_HID_PETALYNX=m CONFIG_HID_PICOLCD=m CONFIG_HID_PICOLCD_FB=y CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y CONFIG_HID_PICOLCD_CIR=y CONFIG_HID_PLANTRONICS=y CONFIG_HID_PRIMAX=m # CONFIG_HID_RETRODE is not set CONFIG_HID_ROCCAT=m CONFIG_HID_SAITEK=m CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m # CONFIG_SONY_FF is not set CONFIG_HID_SPEEDLINK=m # CONFIG_HID_STEAM is not set CONFIG_HID_STEELSERIES=m CONFIG_HID_SUNPLUS=m # CONFIG_HID_RMI is not set CONFIG_HID_GREENASIA=m # CONFIG_GREENASIA_FF is not set CONFIG_HID_HYPERV_MOUSE=m CONFIG_HID_SMARTJOYPLUS=m # CONFIG_SMARTJOYPLUS_FF is not set CONFIG_HID_TIVO=m CONFIG_HID_TOPSEED=m CONFIG_HID_THINGM=m CONFIG_HID_THRUSTMASTER=m # CONFIG_THRUSTMASTER_FF is not set # CONFIG_HID_UDRAW_PS3 is not set CONFIG_HID_WACOM=m CONFIG_HID_WIIMOTE=m # CONFIG_HID_XINMO is not set CONFIG_HID_ZEROPLUS=m # CONFIG_ZEROPLUS_FF is not set CONFIG_HID_ZYDACRON=m # CONFIG_HID_SENSOR_HUB is not set # CONFIG_HID_ALPS is not set # # USB HID support # CONFIG_USB_HID=y CONFIG_HID_PID=y CONFIG_USB_HIDDEV=y # # I2C HID support # CONFIG_I2C_HID=m # # Intel ISH HID support # # CONFIG_INTEL_ISH_HID is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_SUPPORT=y CONFIG_USB_COMMON=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB=y CONFIG_USB_PCI=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # CONFIG_USB_DEFAULT_PERSIST=y # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set # CONFIG_USB_OTG_WHITELIST is not set # CONFIG_USB_OTG_BLACKLIST_HUB is not set # CONFIG_USB_LEDS_TRIGGER_USBPORT is not set CONFIG_USB_MON=y CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m # CONFIG_USB_WUSB_CBAF_DEBUG is not set # # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=y # CONFIG_USB_XHCI_DBGCAP is not set CONFIG_USB_XHCI_PCI=y CONFIG_USB_XHCI_PLATFORM=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_PCI=y # CONFIG_USB_EHCI_HCD_PLATFORM is not set # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_FOTG210_HCD is not set # CONFIG_USB_MAX3421_HCD is not set CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_HCD_PCI=y # CONFIG_USB_OHCI_HCD_PLATFORM is not set CONFIG_USB_UHCI_HCD=y # CONFIG_USB_U132_HCD is not set # CONFIG_USB_SL811_HCD is not set # CONFIG_USB_R8A66597_HCD is not set # CONFIG_USB_WHCI_HCD is not set CONFIG_USB_HWA_HCD=m # CONFIG_USB_HCD_BCMA is not set # CONFIG_USB_HCD_SSB is not set # CONFIG_USB_HCD_TEST_MODE is not set # # USB Device Class drivers # CONFIG_USB_ACM=m CONFIG_USB_PRINTER=m CONFIG_USB_WDM=m CONFIG_USB_TMC=m # # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may # # # also be needed; see USB_STORAGE Help for more info # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_REALTEK=m CONFIG_REALTEK_AUTOPM=y CONFIG_USB_STORAGE_DATAFAB=m CONFIG_USB_STORAGE_FREECOM=m CONFIG_USB_STORAGE_ISD200=m CONFIG_USB_STORAGE_USBAT=m CONFIG_USB_STORAGE_SDDR09=m CONFIG_USB_STORAGE_SDDR55=m CONFIG_USB_STORAGE_JUMPSHOT=m CONFIG_USB_STORAGE_ALAUDA=m CONFIG_USB_STORAGE_ONETOUCH=m CONFIG_USB_STORAGE_KARMA=m CONFIG_USB_STORAGE_CYPRESS_ATACB=m CONFIG_USB_STORAGE_ENE_UB6250=m CONFIG_USB_UAS=m # # USB Imaging devices # CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m # CONFIG_USBIP_CORE is not set # CONFIG_USB_MUSB_HDRC is not set CONFIG_USB_DWC3=y # CONFIG_USB_DWC3_HOST is not set CONFIG_USB_DWC3_GADGET=y # CONFIG_USB_DWC3_DUAL_ROLE is not set # # Platform Glue Driver Support # CONFIG_USB_DWC3_PCI=y CONFIG_USB_DWC3_HAPS=y # CONFIG_USB_DWC2 is not set # CONFIG_USB_CHIPIDEA is not set # CONFIG_USB_ISP1760 is not set # # USB port drivers # CONFIG_USB_USS720=m CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_CONSOLE=y CONFIG_USB_SERIAL_GENERIC=y # CONFIG_USB_SERIAL_SIMPLE is not set CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_ARK3116=m CONFIG_USB_SERIAL_BELKIN=m CONFIG_USB_SERIAL_CH341=m CONFIG_USB_SERIAL_WHITEHEAT=m CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CP210X=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_VISOR=m CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m # CONFIG_USB_SERIAL_F81232 is not set # CONFIG_USB_SERIAL_F8153X is not set CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m CONFIG_USB_SERIAL_KEYSPAN_PDA=m CONFIG_USB_SERIAL_KEYSPAN=m CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m # CONFIG_USB_SERIAL_METRO is not set CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7715_PARPORT=y CONFIG_USB_SERIAL_MOS7840=m # CONFIG_USB_SERIAL_MXUPORT is not set CONFIG_USB_SERIAL_NAVMAN=m CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_QCAUX=m CONFIG_USB_SERIAL_QUALCOMM=m CONFIG_USB_SERIAL_SPCP8X5=m CONFIG_USB_SERIAL_SAFE=m CONFIG_USB_SERIAL_SAFE_PADDED=y CONFIG_USB_SERIAL_SIERRAWIRELESS=m CONFIG_USB_SERIAL_SYMBOL=m # CONFIG_USB_SERIAL_TI is not set CONFIG_USB_SERIAL_CYBERJACK=m CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m CONFIG_USB_SERIAL_OMNINET=m CONFIG_USB_SERIAL_OPTICON=m CONFIG_USB_SERIAL_XSENS_MT=m # CONFIG_USB_SERIAL_WISHBONE is not set CONFIG_USB_SERIAL_SSU100=m CONFIG_USB_SERIAL_QT2=m # CONFIG_USB_SERIAL_UPD78F0730 is not set CONFIG_USB_SERIAL_DEBUG=m # # USB Miscellaneous drivers # CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m CONFIG_USB_ADUTUX=m CONFIG_USB_SEVSEG=m # CONFIG_USB_RIO500 is not set CONFIG_USB_LEGOTOWER=m CONFIG_USB_LCD=m # CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set CONFIG_USB_IDMOUSE=m CONFIG_USB_FTDI_ELAN=m CONFIG_USB_APPLEDISPLAY=m CONFIG_USB_SISUSBVGA=m CONFIG_USB_SISUSBVGA_CON=y CONFIG_USB_LD=m # CONFIG_USB_TRANCEVIBRATOR is not set CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set # CONFIG_USB_EHSET_TEST_FIXTURE is not set CONFIG_USB_ISIGHTFW=m # CONFIG_USB_YUREX is not set CONFIG_USB_EZUSB_FX2=m # CONFIG_USB_HUB_USB251XB is not set CONFIG_USB_HSIC_USB3503=m # CONFIG_USB_HSIC_USB4604 is not set # CONFIG_USB_LINK_LAYER_TEST is not set # CONFIG_USB_CHAOSKEY is not set CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m # # USB Physical Layer drivers # CONFIG_USB_PHY=y CONFIG_NOP_USB_XCEIV=y # CONFIG_USB_GPIO_VBUS is not set # CONFIG_USB_ISP1301 is not set CONFIG_USB_GADGET=y # CONFIG_USB_GADGET_DEBUG is not set # CONFIG_USB_GADGET_DEBUG_FILES is not set # CONFIG_USB_GADGET_DEBUG_FS is not set CONFIG_USB_GADGET_VBUS_DRAW=2 CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 # # USB Peripheral Controller # # CONFIG_USB_FOTG210_UDC is not set # CONFIG_USB_GR_UDC is not set # CONFIG_USB_R8A66597 is not set # CONFIG_USB_PXA27X is not set # CONFIG_USB_MV_UDC is not set # CONFIG_USB_MV_U3D is not set # CONFIG_USB_M66592 is not set # CONFIG_USB_BDC_UDC is not set # CONFIG_USB_AMD5536UDC is not set # CONFIG_USB_NET2272 is not set # CONFIG_USB_NET2280 is not set # CONFIG_USB_GOKU is not set # CONFIG_USB_EG20T is not set # CONFIG_USB_DUMMY_HCD is not set CONFIG_USB_LIBCOMPOSITE=m CONFIG_USB_F_MASS_STORAGE=m # CONFIG_USB_CONFIGFS is not set # CONFIG_USB_ZERO is not set # CONFIG_USB_AUDIO is not set # CONFIG_USB_ETH is not set # CONFIG_USB_G_NCM is not set # CONFIG_USB_GADGETFS is not set # CONFIG_USB_FUNCTIONFS is not set CONFIG_USB_MASS_STORAGE=m # CONFIG_USB_GADGET_TARGET is not set # CONFIG_USB_G_SERIAL is not set # CONFIG_USB_MIDI_GADGET is not set # CONFIG_USB_G_PRINTER is not set # CONFIG_USB_CDC_COMPOSITE is not set # CONFIG_USB_G_ACM_MS is not set # CONFIG_USB_G_MULTI is not set # CONFIG_USB_G_HID is not set # CONFIG_USB_G_DBGP is not set # CONFIG_USB_G_WEBCAM is not set # CONFIG_TYPEC is not set # CONFIG_USB_LED_TRIG is not set # CONFIG_USB_ULPI_BUS is not set CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m CONFIG_UWB_I1480U=m CONFIG_MMC=m CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_SDIO_UART=m # CONFIG_MMC_TEST is not set # # MMC/SD/SDIO Host Controller Drivers # # CONFIG_MMC_DEBUG is not set CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m CONFIG_MMC_RICOH_MMC=y CONFIG_MMC_SDHCI_ACPI=m CONFIG_MMC_SDHCI_PLTFM=m # CONFIG_MMC_SDHCI_F_SDH30 is not set # CONFIG_MMC_WBSD is not set CONFIG_MMC_TIFM_SD=m # CONFIG_MMC_SPI is not set CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m CONFIG_MMC_VUB300=m CONFIG_MMC_USHC=m # CONFIG_MMC_USDHI6ROL0 is not set CONFIG_MMC_CQHCI=m # CONFIG_MMC_TOSHIBA_PCI is not set # CONFIG_MMC_MTK is not set # CONFIG_MMC_SDHCI_XENON is not set CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set # # MemoryStick drivers # # CONFIG_MEMSTICK_UNSAFE_RESUME is not set CONFIG_MSPRO_BLOCK=m # CONFIG_MS_BLOCK is not set # # MemoryStick Host Controller Drivers # CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m CONFIG_MEMSTICK_R592=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y # CONFIG_LEDS_CLASS_FLASH is not set # CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set # # LED drivers # # CONFIG_LEDS_APU is not set CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM3642 is not set # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_GPIO is not set CONFIG_LEDS_LP3944=m # CONFIG_LEDS_LP3952 is not set CONFIG_LEDS_LP55XX_COMMON=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m CONFIG_LEDS_LP5562=m # CONFIG_LEDS_LP8501 is not set CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA963X is not set # CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_PWM is not set # CONFIG_LEDS_BD2802 is not set CONFIG_LEDS_INTEL_SS4200=m # CONFIG_LEDS_LT3593 is not set # CONFIG_LEDS_TCA6507 is not set # CONFIG_LEDS_TLC591XX is not set # CONFIG_LEDS_LM355x is not set # # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) # CONFIG_LEDS_BLINKM=m # CONFIG_LEDS_MLXCPLD is not set # CONFIG_LEDS_MLXREG is not set # CONFIG_LEDS_USER is not set # CONFIG_LEDS_NIC78BX is not set # # LED Triggers # CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_ONESHOT=m # CONFIG_LEDS_TRIGGER_DISK is not set # CONFIG_LEDS_TRIGGER_MTD is not set CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_BACKLIGHT=m # CONFIG_LEDS_TRIGGER_CPU is not set # CONFIG_LEDS_TRIGGER_ACTIVITY is not set # CONFIG_LEDS_TRIGGER_GPIO is not set CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # # iptables trigger is under Netfilter config (LED target) # CONFIG_LEDS_TRIGGER_TRANSIENT=m CONFIG_LEDS_TRIGGER_CAMERA=m # CONFIG_LEDS_TRIGGER_PANIC is not set # CONFIG_LEDS_TRIGGER_NETDEV is not set # CONFIG_LEDS_TRIGGER_PATTERN is not set # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y CONFIG_EDAC=y CONFIG_EDAC_LEGACY_SYSFS=y # CONFIG_EDAC_DEBUG is not set CONFIG_EDAC_DECODE_MCE=m # CONFIG_EDAC_GHES is not set CONFIG_EDAC_AMD64=m # CONFIG_EDAC_AMD64_ERROR_INJECTION is not set CONFIG_EDAC_E752X=m CONFIG_EDAC_I82975X=m CONFIG_EDAC_I3000=m CONFIG_EDAC_I3200=m # CONFIG_EDAC_IE31200 is not set CONFIG_EDAC_X38=m CONFIG_EDAC_I5400=m CONFIG_EDAC_I7CORE=m CONFIG_EDAC_I5000=m CONFIG_EDAC_I5100=m CONFIG_EDAC_I7300=m CONFIG_EDAC_SBRIDGE=m # CONFIG_EDAC_SKX is not set # CONFIG_EDAC_PND2 is not set CONFIG_RTC_LIB=y CONFIG_RTC_MC146818_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # CONFIG_RTC_SYSTOHC is not set # CONFIG_RTC_DEBUG is not set CONFIG_RTC_NVMEM=y # # RTC interfaces # CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set # CONFIG_RTC_DRV_TEST is not set # # I2C RTC drivers # # CONFIG_RTC_DRV_ABB5ZES3 is not set # CONFIG_RTC_DRV_ABX80X is not set CONFIG_RTC_DRV_DS1307=m # CONFIG_RTC_DRV_DS1307_CENTURY is not set CONFIG_RTC_DRV_DS1374=m # CONFIG_RTC_DRV_DS1374_WDT is not set CONFIG_RTC_DRV_DS1672=m CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_ISL12022=m CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8523=m # CONFIG_RTC_DRV_PCF85063 is not set # CONFIG_RTC_DRV_PCF85363 is not set CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m CONFIG_RTC_DRV_M41T80_WDT=y CONFIG_RTC_DRV_BQ32K=m # CONFIG_RTC_DRV_S35390A is not set CONFIG_RTC_DRV_FM3130=m # CONFIG_RTC_DRV_RX8010 is not set CONFIG_RTC_DRV_RX8581=m CONFIG_RTC_DRV_RX8025=m CONFIG_RTC_DRV_EM3027=m # CONFIG_RTC_DRV_RV8803 is not set # # SPI RTC drivers # # CONFIG_RTC_DRV_M41T93 is not set # CONFIG_RTC_DRV_M41T94 is not set # CONFIG_RTC_DRV_DS1302 is not set # CONFIG_RTC_DRV_DS1305 is not set # CONFIG_RTC_DRV_DS1343 is not set # CONFIG_RTC_DRV_DS1347 is not set # CONFIG_RTC_DRV_DS1390 is not set # CONFIG_RTC_DRV_MAX6916 is not set # CONFIG_RTC_DRV_R9701 is not set # CONFIG_RTC_DRV_RX4581 is not set # CONFIG_RTC_DRV_RX6110 is not set # CONFIG_RTC_DRV_RS5C348 is not set # CONFIG_RTC_DRV_MAX6902 is not set # CONFIG_RTC_DRV_PCF2123 is not set # CONFIG_RTC_DRV_MCP795 is not set CONFIG_RTC_I2C_AND_SPI=y # # SPI and I2C RTC drivers # CONFIG_RTC_DRV_DS3232=m CONFIG_RTC_DRV_DS3232_HWMON=y # CONFIG_RTC_DRV_PCF2127 is not set CONFIG_RTC_DRV_RV3029C2=m CONFIG_RTC_DRV_RV3029_HWMON=y # # Platform RTC drivers # CONFIG_RTC_DRV_CMOS=y CONFIG_RTC_DRV_DS1286=m CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m # CONFIG_RTC_DRV_DS1685_FAMILY is not set CONFIG_RTC_DRV_DS1742=m CONFIG_RTC_DRV_DS2404=m CONFIG_RTC_DRV_STK17TA8=m # CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_M48T35=m CONFIG_RTC_DRV_M48T59=m CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m # # on-CPU RTC drivers # # CONFIG_RTC_DRV_FTRTC010 is not set # # HID Sensor RTC drivers # # CONFIG_RTC_DRV_HID_SENSOR_TIME is not set CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set # # DMA Devices # CONFIG_DMA_ENGINE=y CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DMA_ACPI=y # CONFIG_ALTERA_MSGDMA is not set # CONFIG_INTEL_IDMA64 is not set # CONFIG_INTEL_IOATDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_HIDMA is not set CONFIG_DW_DMAC_CORE=y CONFIG_DW_DMAC=m CONFIG_DW_DMAC_PCI=y CONFIG_HSU_DMA=y # # DMA Clients # CONFIG_ASYNC_TX_DMA=y CONFIG_DMATEST=m CONFIG_DMA_ENGINE_RAID=y # # DMABUF options # CONFIG_SYNC_FILE=y CONFIG_SW_SYNC=y # CONFIG_UDMABUF is not set CONFIG_AUXDISPLAY=y # CONFIG_HD44780 is not set CONFIG_KS0108=m CONFIG_KS0108_PORT=0x378 CONFIG_KS0108_DELAY=2 CONFIG_CFAG12864B=m CONFIG_CFAG12864B_RATE=20 # CONFIG_IMG_ASCII_LCD is not set # CONFIG_PANEL is not set CONFIG_UIO=m CONFIG_UIO_CIF=m CONFIG_UIO_PDRV_GENIRQ=m # CONFIG_UIO_DMEM_GENIRQ is not set CONFIG_UIO_AEC=m CONFIG_UIO_SERCOS3=m CONFIG_UIO_PCI_GENERIC=m # CONFIG_UIO_NETX is not set # CONFIG_UIO_PRUSS is not set # CONFIG_UIO_MF624 is not set # CONFIG_UIO_HV_GENERIC is not set CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO_VIRQFD=m CONFIG_VFIO=m # CONFIG_VFIO_NOIOMMU is not set CONFIG_VFIO_PCI=m # CONFIG_VFIO_PCI_VGA is not set CONFIG_VFIO_PCI_MMAP=y CONFIG_VFIO_PCI_INTX=y CONFIG_VFIO_PCI_IGD=y # CONFIG_VFIO_MDEV is not set CONFIG_IRQ_BYPASS_MANAGER=m # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO=y CONFIG_VIRTIO_MENU=y CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_BALLOON=y # CONFIG_VIRTIO_INPUT is not set # CONFIG_VIRTIO_MMIO is not set # # Microsoft Hyper-V guest support # CONFIG_HYPERV=m CONFIG_HYPERV_TSCPAGE=y CONFIG_HYPERV_UTILS=m CONFIG_HYPERV_BALLOON=m # # Xen driver support # CONFIG_XEN_BALLOON=y # CONFIG_XEN_SELFBALLOONING is not set # CONFIG_XEN_BALLOON_MEMORY_HOTPLUG is not set CONFIG_XEN_SCRUB_PAGES_DEFAULT=y CONFIG_XEN_DEV_EVTCHN=m CONFIG_XEN_BACKEND=y CONFIG_XENFS=m CONFIG_XEN_COMPAT_XENFS=y CONFIG_XEN_SYS_HYPERVISOR=y CONFIG_XEN_XENBUS_FRONTEND=y # CONFIG_XEN_GNTDEV is not set # CONFIG_XEN_GRANT_DEV_ALLOC is not set # CONFIG_XEN_GRANT_DMA_ALLOC is not set CONFIG_SWIOTLB_XEN=y CONFIG_XEN_TMEM=m CONFIG_XEN_PCIDEV_BACKEND=m # CONFIG_XEN_PVCALLS_FRONTEND is not set # CONFIG_XEN_PVCALLS_BACKEND is not set # CONFIG_XEN_SCSI_BACKEND is not set CONFIG_XEN_PRIVCMD=m CONFIG_XEN_ACPI_PROCESSOR=m # CONFIG_XEN_MCE_LOG is not set CONFIG_XEN_HAVE_PVMMU=y CONFIG_XEN_EFI=y CONFIG_XEN_AUTO_XLATE=y CONFIG_XEN_ACPI=y CONFIG_XEN_SYMS=y CONFIG_XEN_HAVE_VPMU=y CONFIG_STAGING=y # CONFIG_PRISM2_USB is not set # CONFIG_COMEDI is not set # CONFIG_RTL8192U is not set CONFIG_RTLLIB=m CONFIG_RTLLIB_CRYPTO_CCMP=m CONFIG_RTLLIB_CRYPTO_TKIP=m CONFIG_RTLLIB_CRYPTO_WEP=m CONFIG_RTL8192E=m # CONFIG_RTL8723BS is not set CONFIG_R8712U=m # CONFIG_R8188EU is not set # CONFIG_R8822BE is not set # CONFIG_RTS5208 is not set # CONFIG_VT6655 is not set # CONFIG_VT6656 is not set # CONFIG_FB_SM750 is not set # CONFIG_FB_XGI is not set # # Speakup console speech # # CONFIG_SPEAKUP is not set # CONFIG_STAGING_MEDIA is not set # # Android # # CONFIG_LTE_GDM724X is not set CONFIG_FIREWIRE_SERIAL=m CONFIG_FWTTY_MAX_TOTAL_PORTS=64 CONFIG_FWTTY_MAX_CARD_PORTS=32 # CONFIG_GS_FPGABOOT is not set # CONFIG_UNISYSSPAR is not set # CONFIG_FB_TFT is not set # CONFIG_WILC1000_SDIO is not set # CONFIG_WILC1000_SPI is not set # CONFIG_MOST is not set # CONFIG_KS7010 is not set # CONFIG_GREYBUS is not set # CONFIG_DRM_VBOXVIDEO is not set # CONFIG_PI433 is not set # CONFIG_MTK_MMC is not set # # Gasket devices # # CONFIG_STAGING_GASKET_FRAMEWORK is not set # CONFIG_XIL_AXIS_FIFO is not set # CONFIG_EROFS_FS is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m # CONFIG_ACER_WIRELESS is not set CONFIG_ACERHDF=m # CONFIG_ALIENWARE_WMI is not set CONFIG_ASUS_LAPTOP=m CONFIG_DCDBAS=m # CONFIG_DELL_SMBIOS is not set CONFIG_DELL_WMI_AIO=m # CONFIG_DELL_WMI_LED is not set # CONFIG_DELL_SMO8800 is not set # CONFIG_DELL_RBTN is not set CONFIG_DELL_RBU=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_TABLET=m CONFIG_AMILO_RFKILL=m # CONFIG_GPD_POCKET_FAN is not set CONFIG_HP_ACCEL=m # CONFIG_HP_WIRELESS is not set CONFIG_HP_WMI=m # CONFIG_LG_LAPTOP is not set CONFIG_MSI_LAPTOP=m CONFIG_PANASONIC_LAPTOP=m CONFIG_COMPAL_LAPTOP=m CONFIG_SONY_LAPTOP=m CONFIG_SONYPI_COMPAT=y CONFIG_IDEAPAD_LAPTOP=m # CONFIG_SURFACE3_WMI is not set CONFIG_THINKPAD_ACPI=m CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set # CONFIG_THINKPAD_ACPI_DEBUG is not set # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set CONFIG_THINKPAD_ACPI_VIDEO=y CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y CONFIG_SENSORS_HDAPS=m # CONFIG_INTEL_MENLOW is not set CONFIG_EEEPC_LAPTOP=m CONFIG_ASUS_WMI=m CONFIG_ASUS_NB_WMI=m CONFIG_EEEPC_WMI=m # CONFIG_ASUS_WIRELESS is not set CONFIG_ACPI_WMI=m CONFIG_WMI_BMOF=m # CONFIG_INTEL_WMI_THUNDERBOLT is not set CONFIG_MSI_WMI=m # CONFIG_PEAQ_WMI is not set CONFIG_TOPSTAR_LAPTOP=m CONFIG_TOSHIBA_BT_RFKILL=m # CONFIG_TOSHIBA_HAPS is not set # CONFIG_TOSHIBA_WMI is not set CONFIG_ACPI_CMPC=m # CONFIG_INTEL_INT0002_VGPIO is not set # CONFIG_INTEL_HID_EVENT is not set # CONFIG_INTEL_VBTN is not set CONFIG_INTEL_IPS=m # CONFIG_INTEL_PMC_CORE is not set # CONFIG_IBM_RTL is not set CONFIG_SAMSUNG_LAPTOP=m CONFIG_MXM_WMI=m CONFIG_INTEL_OAKTRAIL=m CONFIG_SAMSUNG_Q10=m CONFIG_APPLE_GMUX=m # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set CONFIG_PVPANIC=y # CONFIG_INTEL_PMC_IPC is not set # CONFIG_SURFACE_PRO3_BUTTON is not set # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_MLX_PLATFORM is not set # CONFIG_INTEL_TURBO_MAX_3 is not set # CONFIG_I2C_MULTI_INSTANTIATE is not set # CONFIG_INTEL_ATOMISP2_PM is not set CONFIG_PMC_ATOM=y # CONFIG_CHROME_PLATFORMS is not set # CONFIG_MELLANOX_PLATFORM is not set CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y # # Common Clock Framework # # CONFIG_COMMON_CLK_MAX9485 is not set # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_CDCE706 is not set # CONFIG_COMMON_CLK_CS2000_CP is not set # CONFIG_COMMON_CLK_PWM is not set # CONFIG_HWSPINLOCK is not set # # Clock Source drivers # CONFIG_CLKEVT_I8253=y CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y CONFIG_MAILBOX=y CONFIG_PCC=y # CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y # # Generic IOMMU Pagetable Support # # CONFIG_IOMMU_DEBUGFS is not set # CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set CONFIG_IOMMU_IOVA=y CONFIG_AMD_IOMMU=y CONFIG_AMD_IOMMU_V2=m CONFIG_DMAR_TABLE=y CONFIG_INTEL_IOMMU=y # CONFIG_INTEL_IOMMU_SVM is not set # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set CONFIG_INTEL_IOMMU_FLOPPY_WA=y CONFIG_IRQ_REMAP=y # # Remoteproc drivers # # CONFIG_REMOTEPROC is not set # # Rpmsg drivers # # CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set # CONFIG_SOUNDWIRE is not set # # SOC (System On Chip) specific Drivers # # # Amlogic SoC drivers # # # Broadcom SoC drivers # # # NXP/Freescale QorIQ SoC drivers # # # i.MX SoC drivers # # # Qualcomm SoC drivers # # CONFIG_SOC_TI is not set # # Xilinx SoC drivers # # CONFIG_XILINX_VCU is not set CONFIG_PM_DEVFREQ=y # # DEVFREQ Governors # CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_PERFORMANCE is not set # CONFIG_DEVFREQ_GOV_POWERSAVE is not set # CONFIG_DEVFREQ_GOV_USERSPACE is not set # CONFIG_DEVFREQ_GOV_PASSIVE is not set # # DEVFREQ Drivers # # CONFIG_PM_DEVFREQ_EVENT is not set CONFIG_EXTCON=y # # Extcon Device Drivers # # CONFIG_EXTCON_GPIO is not set # CONFIG_EXTCON_INTEL_INT3496 is not set # CONFIG_EXTCON_MAX3355 is not set # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set # CONFIG_EXTCON_USB_GPIO is not set # CONFIG_MEMORY is not set # CONFIG_IIO is not set CONFIG_NTB=m # CONFIG_NTB_AMD is not set # CONFIG_NTB_IDT is not set # CONFIG_NTB_INTEL is not set # CONFIG_NTB_SWITCHTEC is not set # CONFIG_NTB_PINGPONG is not set # CONFIG_NTB_TOOL is not set # CONFIG_NTB_PERF is not set # CONFIG_NTB_TRANSPORT is not set # CONFIG_VME_BUS is not set CONFIG_PWM=y CONFIG_PWM_SYSFS=y CONFIG_PWM_LPSS=m CONFIG_PWM_LPSS_PCI=m CONFIG_PWM_LPSS_PLATFORM=m # CONFIG_PWM_PCA9685 is not set # # IRQ chip support # CONFIG_ARM_GIC_MAX_NR=1 # CONFIG_IPACK_BUS is not set # CONFIG_RESET_CONTROLLER is not set # CONFIG_FMC is not set # # PHY Subsystem # CONFIG_GENERIC_PHY=y # CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set CONFIG_POWERCAP=y CONFIG_INTEL_RAPL=m # CONFIG_IDLE_INJECT is not set # CONFIG_MCB is not set # # Performance monitor support # CONFIG_RAS=y # CONFIG_RAS_CEC is not set # CONFIG_THUNDERBOLT is not set # # Android # # CONFIG_ANDROID is not set CONFIG_LIBNVDIMM=m CONFIG_BLK_DEV_PMEM=m CONFIG_ND_BLK=m CONFIG_ND_CLAIM=y CONFIG_ND_BTT=m CONFIG_BTT=y CONFIG_ND_PFN=m CONFIG_NVDIMM_PFN=y CONFIG_NVDIMM_DAX=y CONFIG_DAX_DRIVER=y CONFIG_DAX=y CONFIG_DEV_DAX=m CONFIG_DEV_DAX_PMEM=m CONFIG_NVMEM=y # # HW tracing support # CONFIG_STM=m # CONFIG_STM_PROTO_BASIC is not set # CONFIG_STM_PROTO_SYS_T is not set CONFIG_STM_DUMMY=m CONFIG_STM_SOURCE_CONSOLE=m CONFIG_STM_SOURCE_HEARTBEAT=m CONFIG_STM_SOURCE_FTRACE=m CONFIG_INTEL_TH=m CONFIG_INTEL_TH_PCI=m # CONFIG_INTEL_TH_ACPI is not set CONFIG_INTEL_TH_GTH=m CONFIG_INTEL_TH_STH=m CONFIG_INTEL_TH_MSU=m CONFIG_INTEL_TH_PTI=m # CONFIG_INTEL_TH_DEBUG is not set # CONFIG_FPGA is not set CONFIG_PM_OPP=y # CONFIG_UNISYS_VISORBUS is not set # CONFIG_SIOX is not set # CONFIG_SLIMBUS is not set # # File systems # CONFIG_DCACHE_WORD_ACCESS=y CONFIG_FS_IOMAP=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y CONFIG_EXT4_ENCRYPTION=y CONFIG_EXT4_FS_ENCRYPTION=y # CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_RT=y CONFIG_XFS_ONLINE_SCRUB=y CONFIG_XFS_ONLINE_REPAIR=y CONFIG_XFS_DEBUG=y CONFIG_XFS_ASSERT_FATAL=y CONFIG_GFS2_FS=m CONFIG_GFS2_FS_LOCKING_DLM=y CONFIG_OCFS2_FS=m CONFIG_OCFS2_FS_O2CB=m CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m CONFIG_OCFS2_FS_STATS=y CONFIG_OCFS2_DEBUG_MASKLOG=y # CONFIG_OCFS2_DEBUG_FS is not set CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y # CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set # CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set # CONFIG_BTRFS_DEBUG is not set # CONFIG_BTRFS_ASSERT is not set # CONFIG_BTRFS_FS_REF_VERIFY is not set # CONFIG_NILFS2_FS is not set CONFIG_F2FS_FS=m CONFIG_F2FS_STAT_FS=y CONFIG_F2FS_FS_XATTR=y CONFIG_F2FS_FS_POSIX_ACL=y # CONFIG_F2FS_FS_SECURITY is not set # CONFIG_F2FS_CHECK_FS is not set CONFIG_F2FS_FS_ENCRYPTION=y # CONFIG_F2FS_IO_TRACE is not set # CONFIG_F2FS_FAULT_INJECTION is not set CONFIG_FS_DAX=y CONFIG_FS_DAX_PMD=y CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y # CONFIG_EXPORTFS_BLOCK_OPS is not set CONFIG_FILE_LOCKING=y CONFIG_MANDATORY_FILE_LOCKING=y CONFIG_FS_ENCRYPTION=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y # CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=y # CONFIG_QFMT_V1 is not set CONFIG_QFMT_V2=y CONFIG_QUOTACTL=y CONFIG_QUOTACTL_COMPAT=y CONFIG_AUTOFS4_FS=y CONFIG_AUTOFS_FS=y CONFIG_FUSE_FS=m CONFIG_CUSE=m CONFIG_OVERLAY_FS=m # CONFIG_OVERLAY_FS_REDIRECT_DIR is not set CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y # CONFIG_OVERLAY_FS_INDEX is not set # CONFIG_OVERLAY_FS_XINO_AUTO is not set # CONFIG_OVERLAY_FS_METACOPY is not set # # Caches # CONFIG_FSCACHE=m CONFIG_FSCACHE_STATS=y # CONFIG_FSCACHE_HISTOGRAM is not set # CONFIG_FSCACHE_DEBUG is not set # CONFIG_FSCACHE_OBJECT_LIST is not set CONFIG_CACHEFILES=m # CONFIG_CACHEFILES_DEBUG is not set # CONFIG_CACHEFILES_HISTOGRAM is not set # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=m CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="ascii" # CONFIG_FAT_DEFAULT_UTF8 is not set # CONFIG_NTFS_FS is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_VMCORE=y # CONFIG_PROC_VMCORE_DEVICE_DUMP is not set CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y CONFIG_PROC_CHILDREN=y CONFIG_KERNFS=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_MEMFD_CREATE=y CONFIG_ARCH_HAS_GIGANTIC_PAGE=y CONFIG_CONFIGFS_FS=y CONFIG_EFIVAR_FS=y CONFIG_MISC_FILESYSTEMS=y # CONFIG_ORANGEFS_FS is not set # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_JFFS2_FS is not set # CONFIG_UBIFS_FS is not set CONFIG_CRAMFS=m CONFIG_CRAMFS_BLOCKDEV=y # CONFIG_CRAMFS_MTD is not set CONFIG_SQUASHFS=m CONFIG_SQUASHFS_FILE_CACHE=y # CONFIG_SQUASHFS_FILE_DIRECT is not set CONFIG_SQUASHFS_DECOMP_SINGLE=y # CONFIG_SQUASHFS_DECOMP_MULTI is not set # CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_ZLIB=y # CONFIG_SQUASHFS_LZ4 is not set CONFIG_SQUASHFS_LZO=y CONFIG_SQUASHFS_XZ=y # CONFIG_SQUASHFS_ZSTD is not set # CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_VXFS_FS is not set CONFIG_MINIX_FS=m # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set CONFIG_PSTORE=y CONFIG_PSTORE_DEFLATE_COMPRESS=y # CONFIG_PSTORE_LZO_COMPRESS is not set # CONFIG_PSTORE_LZ4_COMPRESS is not set # CONFIG_PSTORE_LZ4HC_COMPRESS is not set # CONFIG_PSTORE_842_COMPRESS is not set # CONFIG_PSTORE_ZSTD_COMPRESS is not set CONFIG_PSTORE_COMPRESS=y CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" CONFIG_PSTORE_CONSOLE=y CONFIG_PSTORE_PMSG=y # CONFIG_PSTORE_FTRACE is not set CONFIG_PSTORE_RAM=m # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set # CONFIG_EXOFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=y # CONFIG_NFS_V2 is not set CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=m # CONFIG_NFS_SWAP is not set CONFIG_NFS_V4_1=y CONFIG_NFS_V4_2=y CONFIG_PNFS_FILE_LAYOUT=m CONFIG_PNFS_BLOCK=m CONFIG_PNFS_FLEXFILE_LAYOUT=m CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" # CONFIG_NFS_V4_1_MIGRATION is not set CONFIG_NFS_V4_SECURITY_LABEL=y CONFIG_ROOT_NFS=y # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y CONFIG_NFS_DEBUG=y CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y # CONFIG_NFSD_BLOCKLAYOUT is not set # CONFIG_NFSD_SCSILAYOUT is not set # CONFIG_NFSD_FLEXFILELAYOUT is not set CONFIG_NFSD_V4_SECURITY_LABEL=y # CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_GRACE_PERIOD=y CONFIG_LOCKD=y CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC_BACKCHANNEL=y CONFIG_RPCSEC_GSS_KRB5=m CONFIG_SUNRPC_DEBUG=y # CONFIG_CEPH_FS is not set CONFIG_CIFS=m # CONFIG_CIFS_STATS2 is not set CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y CONFIG_CIFS_ACL=y CONFIG_CIFS_DEBUG=y # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DEBUG_DUMP_KEYS is not set CONFIG_CIFS_DFS_UPCALL=y # CONFIG_CIFS_FSCACHE is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set CONFIG_9P_FS=y CONFIG_9P_FS_POSIX_ACL=y # CONFIG_9P_FS_SECURITY is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_737=m CONFIG_NLS_CODEPAGE_775=m CONFIG_NLS_CODEPAGE_850=m CONFIG_NLS_CODEPAGE_852=m CONFIG_NLS_CODEPAGE_855=m CONFIG_NLS_CODEPAGE_857=m CONFIG_NLS_CODEPAGE_860=m CONFIG_NLS_CODEPAGE_861=m CONFIG_NLS_CODEPAGE_862=m CONFIG_NLS_CODEPAGE_863=m CONFIG_NLS_CODEPAGE_864=m CONFIG_NLS_CODEPAGE_865=m CONFIG_NLS_CODEPAGE_866=m CONFIG_NLS_CODEPAGE_869=m CONFIG_NLS_CODEPAGE_936=m CONFIG_NLS_CODEPAGE_950=m CONFIG_NLS_CODEPAGE_932=m CONFIG_NLS_CODEPAGE_949=m CONFIG_NLS_CODEPAGE_874=m CONFIG_NLS_ISO8859_8=m CONFIG_NLS_CODEPAGE_1250=m CONFIG_NLS_CODEPAGE_1251=m CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=m CONFIG_NLS_ISO8859_2=m CONFIG_NLS_ISO8859_3=m CONFIG_NLS_ISO8859_4=m CONFIG_NLS_ISO8859_5=m CONFIG_NLS_ISO8859_6=m CONFIG_NLS_ISO8859_7=m CONFIG_NLS_ISO8859_9=m CONFIG_NLS_ISO8859_13=m CONFIG_NLS_ISO8859_14=m CONFIG_NLS_ISO8859_15=m CONFIG_NLS_KOI8_R=m CONFIG_NLS_KOI8_U=m CONFIG_NLS_MAC_ROMAN=m CONFIG_NLS_MAC_CELTIC=m CONFIG_NLS_MAC_CENTEURO=m CONFIG_NLS_MAC_CROATIAN=m CONFIG_NLS_MAC_CYRILLIC=m CONFIG_NLS_MAC_GAELIC=m CONFIG_NLS_MAC_GREEK=m CONFIG_NLS_MAC_ICELAND=m CONFIG_NLS_MAC_INUIT=m CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_TURKISH=m CONFIG_NLS_UTF8=m CONFIG_DLM=m CONFIG_DLM_DEBUG=y # # Security options # CONFIG_KEYS=y CONFIG_KEYS_COMPAT=y CONFIG_PERSISTENT_KEYRINGS=y CONFIG_BIG_KEYS=y CONFIG_TRUSTED_KEYS=y CONFIG_ENCRYPTED_KEYS=y # CONFIG_KEY_DH_OPERATIONS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set CONFIG_SECURITY=y CONFIG_SECURITY_WRITABLE_HOOKS=y CONFIG_SECURITYFS=y CONFIG_SECURITY_NETWORK=y CONFIG_PAGE_TABLE_ISOLATION=y CONFIG_SECURITY_NETWORK_XFRM=y CONFIG_SECURITY_PATH=y CONFIG_INTEL_TXT=y CONFIG_LSM_MMAP_MIN_ADDR=65535 CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_HARDENED_USERCOPY is not set # CONFIG_FORTIFY_SOURCE is not set # CONFIG_STATIC_USERMODEHELPER is not set CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 # CONFIG_SECURITY_SMACK is not set # CONFIG_SECURITY_TOMOYO is not set CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y # CONFIG_SECURITY_APPARMOR_DEBUG is not set # CONFIG_SECURITY_LOADPIN is not set # CONFIG_SECURITY_YAMA is not set CONFIG_INTEGRITY=y CONFIG_INTEGRITY_SIGNATURE=y CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y CONFIG_INTEGRITY_TRUSTED_KEYRING=y CONFIG_INTEGRITY_AUDIT=y CONFIG_IMA=y CONFIG_IMA_MEASURE_PCR_IDX=10 CONFIG_IMA_LSM_RULES=y # CONFIG_IMA_TEMPLATE is not set CONFIG_IMA_NG_TEMPLATE=y # CONFIG_IMA_SIG_TEMPLATE is not set CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng" CONFIG_IMA_DEFAULT_HASH_SHA1=y # CONFIG_IMA_DEFAULT_HASH_SHA256 is not set # CONFIG_IMA_DEFAULT_HASH_SHA512 is not set CONFIG_IMA_DEFAULT_HASH="sha1" # CONFIG_IMA_WRITE_POLICY is not set # CONFIG_IMA_READ_POLICY is not set CONFIG_IMA_APPRAISE=y # CONFIG_IMA_APPRAISE_BUILD_POLICY is not set CONFIG_IMA_APPRAISE_BOOTPARAM=y CONFIG_IMA_TRUSTED_KEYRING=y # CONFIG_IMA_BLACKLIST_KEYRING is not set # CONFIG_IMA_LOAD_X509 is not set CONFIG_EVM=y CONFIG_EVM_ATTR_FSUUID=y # CONFIG_EVM_ADD_XATTRS is not set # CONFIG_EVM_LOAD_X509 is not set CONFIG_DEFAULT_SECURITY_SELINUX=y # CONFIG_DEFAULT_SECURITY_APPARMOR is not set # CONFIG_DEFAULT_SECURITY_DAC is not set CONFIG_DEFAULT_SECURITY="selinux" CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m CONFIG_ASYNC_XOR=m CONFIG_ASYNC_PQ=m CONFIG_ASYNC_RAID6_RECOV=m CONFIG_CRYPTO=y # # Crypto core or helper # CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_AKCIPHER=y CONFIG_CRYPTO_KPP2=y CONFIG_CRYPTO_ACOMP2=y CONFIG_CRYPTO_RSA=y # CONFIG_CRYPTO_DH is not set # CONFIG_CRYPTO_ECDH is not set CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_USER=m CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_PCRYPT=m CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=m CONFIG_CRYPTO_TEST=m CONFIG_CRYPTO_SIMD=m CONFIG_CRYPTO_GLUE_HELPER_X86=m CONFIG_CRYPTO_ENGINE=m # # Authenticated Encryption with Associated Data # CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=y # CONFIG_CRYPTO_CHACHA20POLY1305 is not set # CONFIG_CRYPTO_AEGIS128 is not set # CONFIG_CRYPTO_AEGIS128L is not set # CONFIG_CRYPTO_AEGIS256 is not set # CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set # CONFIG_CRYPTO_AEGIS128L_AESNI_SSE2 is not set # CONFIG_CRYPTO_AEGIS256_AESNI_SSE2 is not set # CONFIG_CRYPTO_MORUS640 is not set # CONFIG_CRYPTO_MORUS640_SSE2 is not set # CONFIG_CRYPTO_MORUS1280 is not set # CONFIG_CRYPTO_MORUS1280_SSE2 is not set # CONFIG_CRYPTO_MORUS1280_AVX2 is not set CONFIG_CRYPTO_SEQIV=y CONFIG_CRYPTO_ECHAINIV=m # # Block modes # CONFIG_CRYPTO_CBC=y # CONFIG_CRYPTO_CFB is not set CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=y CONFIG_CRYPTO_ECB=y CONFIG_CRYPTO_LRW=m # CONFIG_CRYPTO_OFB is not set CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_XTS=y # CONFIG_CRYPTO_KEYWRAP is not set # # Hash modes # CONFIG_CRYPTO_CMAC=m CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_VMAC=m # # Digest # CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_CRC32C_INTEL=m CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_CRC32_PCLMUL=m CONFIG_CRYPTO_CRCT10DIF=y CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m CONFIG_CRYPTO_GHASH=y # CONFIG_CRYPTO_POLY1305 is not set # CONFIG_CRYPTO_POLY1305_X86_64 is not set CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA1_SSSE3=m CONFIG_CRYPTO_SHA256_SSSE3=m CONFIG_CRYPTO_SHA512_SSSE3=m CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SHA3=m # CONFIG_CRYPTO_SM3 is not set CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m # # Ciphers # CONFIG_CRYPTO_AES=y # CONFIG_CRYPTO_AES_TI is not set CONFIG_CRYPTO_AES_X86_64=y CONFIG_CRYPTO_AES_NI_INTEL=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_BLOWFISH_X86_64=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAMELLIA_X86_64=m CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m CONFIG_CRYPTO_CAST_COMMON=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST5_AVX_X86_64=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_CAST6_AVX_X86_64=m CONFIG_CRYPTO_DES=m # CONFIG_CRYPTO_DES3_EDE_X86_64 is not set CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_SALSA20=m # CONFIG_CRYPTO_CHACHA20 is not set # CONFIG_CRYPTO_CHACHA20_X86_64 is not set CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m CONFIG_CRYPTO_SERPENT_AVX_X86_64=m CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m # CONFIG_CRYPTO_SM4 is not set CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m CONFIG_CRYPTO_TWOFISH_X86_64=m CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m # # Compression # CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_LZO=y # CONFIG_CRYPTO_842 is not set # CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4HC is not set # CONFIG_CRYPTO_ZSTD is not set # # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m CONFIG_CRYPTO_DRBG_MENU=y CONFIG_CRYPTO_DRBG_HMAC=y # CONFIG_CRYPTO_DRBG_HASH is not set # CONFIG_CRYPTO_DRBG_CTR is not set CONFIG_CRYPTO_DRBG=y CONFIG_CRYPTO_JITTERENTROPY=y CONFIG_CRYPTO_USER_API=y CONFIG_CRYPTO_USER_API_HASH=y CONFIG_CRYPTO_USER_API_SKCIPHER=y # CONFIG_CRYPTO_USER_API_RNG is not set # CONFIG_CRYPTO_USER_API_AEAD is not set # CONFIG_CRYPTO_STATS is not set CONFIG_CRYPTO_HASH_INFO=y CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=m CONFIG_CRYPTO_DEV_PADLOCK_AES=m CONFIG_CRYPTO_DEV_PADLOCK_SHA=m # CONFIG_CRYPTO_DEV_CCP is not set # CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set # CONFIG_CRYPTO_DEV_QAT_C3XXX is not set # CONFIG_CRYPTO_DEV_QAT_C62X is not set # CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set # CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set # CONFIG_CRYPTO_DEV_QAT_C62XVF is not set # CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set # CONFIG_CRYPTO_DEV_CHELSIO is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y # CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE is not set CONFIG_X509_CERTIFICATE_PARSER=y # CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set CONFIG_PKCS7_MESSAGE_PARSER=y # CONFIG_PKCS7_TEST_KEY is not set # CONFIG_SIGNED_PE_FILE_VERIFICATION is not set # # Certificates for signature checking # CONFIG_SYSTEM_TRUSTED_KEYRING=y CONFIG_SYSTEM_TRUSTED_KEYS="" # CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set # CONFIG_SECONDARY_TRUSTED_KEYRING is not set # CONFIG_SYSTEM_BLACKLIST_KEYRING is not set CONFIG_BINARY_PRINTF=y # # Library routines # CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y CONFIG_RATIONAL=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_IOMAP=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_ARCH_HAS_FAST_MULTIPLIER=y CONFIG_CRC_CCITT=y CONFIG_CRC16=y CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=m CONFIG_CRC32=y # CONFIG_CRC32_SELFTEST is not set CONFIG_CRC32_SLICEBY8=y # CONFIG_CRC32_SLICEBY4 is not set # CONFIG_CRC32_SARWATE is not set # CONFIG_CRC32_BIT is not set # CONFIG_CRC64 is not set # CONFIG_CRC4 is not set # CONFIG_CRC7 is not set CONFIG_LIBCRC32C=y CONFIG_CRC8=m CONFIG_XXHASH=m # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_DECOMPRESS=y CONFIG_ZSTD_COMPRESS=m CONFIG_ZSTD_DECOMPRESS=m CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y CONFIG_XZ_DEC_POWERPC=y CONFIG_XZ_DEC_IA64=y CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_ARMTHUMB=y CONFIG_XZ_DEC_SPARC=y CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_LZ4=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_REED_SOLOMON=m CONFIG_REED_SOLOMON_ENC8=y CONFIG_REED_SOLOMON_DEC8=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m CONFIG_TEXTSEARCH_FSM=m CONFIG_BTREE=y CONFIG_INTERVAL_TREE=y CONFIG_XARRAY_MULTI=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_DMA_DIRECT_OPS=y CONFIG_SWIOTLB=y CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPUMASK_OFFSTACK=y CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_GLOB=y # CONFIG_GLOB_SELFTEST is not set CONFIG_NLATTR=y CONFIG_CLZ_TAB=y CONFIG_CORDIC=m # CONFIG_DDR is not set CONFIG_IRQ_POLL=y CONFIG_MPILIB=y CONFIG_SIGNATURE=y CONFIG_OID_REGISTRY=y CONFIG_UCS2_STRING=y CONFIG_FONT_SUPPORT=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_SG_POOL=y CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_ARCH_HAS_PMEM_API=y CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y CONFIG_ARCH_HAS_UACCESS_MCSAFE=y CONFIG_SBITMAP=y CONFIG_PRIME_NUMBERS=m # CONFIG_STRING_SELFTEST is not set # # Kernel hacking # # # printk and dmesg options # CONFIG_PRINTK_TIME=y CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_BOOT_PRINTK_DELAY=y CONFIG_DYNAMIC_DEBUG=y # # Compile-time checks and compiler options # CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_REDUCED=y # CONFIG_DEBUG_INFO_SPLIT is not set # CONFIG_DEBUG_INFO_DWARF4 is not set # CONFIG_GDB_SCRIPTS is not set CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=2048 CONFIG_STRIP_ASM_SYMS=y # CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_PAGE_OWNER is not set CONFIG_DEBUG_FS=y CONFIG_HEADERS_CHECK=y CONFIG_DEBUG_SECTION_MISMATCH=y CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_STACK_VALIDATION=y # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_DEBUG_KERNEL=y # # Memory Debugging # # CONFIG_PAGE_EXTENSION is not set # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_PAGE_REF is not set CONFIG_DEBUG_RODATA_TEST=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_VM is not set CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m # CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_HAVE_DEBUG_STACKOVERFLOW=y CONFIG_DEBUG_STACKOVERFLOW=y CONFIG_HAVE_ARCH_KASAN=y # CONFIG_KASAN is not set CONFIG_ARCH_HAS_KCOV=y CONFIG_CC_HAS_SANCOV_TRACE_PC=y # CONFIG_KCOV is not set CONFIG_DEBUG_SHIRQ=y # # Debug Lockups and Hangs # CONFIG_LOCKUP_DETECTOR=y CONFIG_SOFTLOCKUP_DETECTOR=y # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y CONFIG_HARDLOCKUP_DETECTOR=y CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1 # CONFIG_DETECT_HUNG_TASK is not set # CONFIG_WQ_WATCHDOG is not set CONFIG_PANIC_ON_OOPS=y CONFIG_PANIC_ON_OOPS_VALUE=1 CONFIG_PANIC_TIMEOUT=0 CONFIG_SCHED_DEBUG=y CONFIG_SCHED_INFO=y CONFIG_SCHEDSTATS=y # CONFIG_SCHED_STACK_END_CHECK is not set # CONFIG_DEBUG_TIMEKEEPING is not set # # Lock Debugging (spinlocks, mutexes, etc...) # CONFIG_LOCK_DEBUGGING_SUPPORT=y # CONFIG_PROVE_LOCKING is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set # CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_LOCK_ALLOC is not set CONFIG_DEBUG_ATOMIC_SLEEP=y # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_LOCK_TORTURE_TEST=m CONFIG_WW_MUTEX_SELFTEST=m CONFIG_STACKTRACE=y # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y CONFIG_DEBUG_LIST=y # CONFIG_DEBUG_PI_LIST is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set # # RCU Debugging # CONFIG_TORTURE_TEST=m CONFIG_RCU_PERF_TEST=m CONFIG_RCU_TORTURE_TEST=m CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_RCU_TRACE is not set # CONFIG_RCU_EQS_DEBUG is not set # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set CONFIG_NOTIFIER_ERROR_INJECTION=m CONFIG_PM_NOTIFIER_ERROR_INJECT=m # CONFIG_NETDEV_NOTIFIER_ERROR_INJECT is not set CONFIG_FUNCTION_ERROR_INJECTION=y CONFIG_FAULT_INJECTION=y # CONFIG_FAILSLAB is not set # CONFIG_FAIL_PAGE_ALLOC is not set CONFIG_FAIL_MAKE_REQUEST=y # CONFIG_FAIL_IO_TIMEOUT is not set # CONFIG_FAIL_FUTEX is not set CONFIG_FAULT_INJECTION_DEBUG_FS=y # CONFIG_FAIL_FUNCTION is not set # CONFIG_FAIL_MMC_REQUEST is not set CONFIG_LATENCYTOP=y CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_FENTRY=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACER_MAX_TRACE=y CONFIG_TRACE_CLOCK=y CONFIG_RING_BUFFER=y CONFIG_EVENT_TRACING=y CONFIG_CONTEXT_SWITCH_TRACER=y CONFIG_RING_BUFFER_ALLOW_SWAP=y CONFIG_TRACING=y CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y CONFIG_FTRACE=y CONFIG_FUNCTION_TRACER=y CONFIG_FUNCTION_GRAPH_TRACER=y # CONFIG_PREEMPTIRQ_EVENTS is not set # CONFIG_IRQSOFF_TRACER is not set CONFIG_SCHED_TRACER=y # CONFIG_HWLAT_TRACER is not set CONFIG_FTRACE_SYSCALLS=y CONFIG_TRACER_SNAPSHOT=y # CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set # CONFIG_PROFILE_ALL_BRANCHES is not set CONFIG_STACK_TRACER=y CONFIG_BLK_DEV_IO_TRACE=y CONFIG_KPROBE_EVENTS=y # CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set CONFIG_UPROBE_EVENTS=y CONFIG_BPF_EVENTS=y CONFIG_PROBE_EVENTS=y CONFIG_DYNAMIC_FTRACE=y CONFIG_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_FUNCTION_PROFILER=y # CONFIG_BPF_KPROBE_OVERRIDE is not set CONFIG_FTRACE_MCOUNT_RECORD=y # CONFIG_FTRACE_STARTUP_TEST is not set # CONFIG_MMIOTRACE is not set CONFIG_TRACING_MAP=y CONFIG_HIST_TRIGGERS=y # CONFIG_TRACEPOINT_BENCHMARK is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set # CONFIG_PREEMPTIRQ_DELAY_TEST is not set # CONFIG_TRACE_EVAL_MAP_FILE is not set CONFIG_TRACING_EVENTS_GPIO=y CONFIG_PROVIDE_OHCI1394_DMA_INIT=y # CONFIG_DMA_API_DEBUG is not set CONFIG_RUNTIME_TESTING_MENU=y CONFIG_LKDTM=m # CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_SORT is not set # CONFIG_KPROBES_SANITY_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set CONFIG_RBTREE_TEST=m CONFIG_INTERVAL_TREE_TEST=m CONFIG_PERCPU_TEST=m CONFIG_ATOMIC64_SELFTEST=y CONFIG_ASYNC_RAID6_TEST=m # CONFIG_TEST_HEXDUMP is not set # CONFIG_TEST_STRING_HELPERS is not set CONFIG_TEST_KSTRTOX=m CONFIG_TEST_PRINTF=m CONFIG_TEST_BITMAP=m # CONFIG_TEST_BITFIELD is not set # CONFIG_TEST_UUID is not set # CONFIG_TEST_XARRAY is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_RHASHTABLE is not set # CONFIG_TEST_HASH is not set # CONFIG_TEST_IDA is not set CONFIG_TEST_LKM=m CONFIG_TEST_USER_COPY=m CONFIG_TEST_BPF=m # CONFIG_FIND_BIT_BENCHMARK is not set CONFIG_TEST_FIRMWARE=m CONFIG_TEST_SYSCTL=m CONFIG_TEST_UDELAY=m CONFIG_TEST_STATIC_KEYS=m CONFIG_TEST_KMOD=m # CONFIG_TEST_MEMCAT_P is not set # CONFIG_MEMTEST is not set # CONFIG_BUG_ON_DATA_CORRUPTION is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y # CONFIG_UBSAN is not set CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y CONFIG_STRICT_DEVMEM=y # CONFIG_IO_STRICT_DEVMEM is not set CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_EARLY_PRINTK_USB=y CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK_DBGP=y # CONFIG_EARLY_PRINTK_EFI is not set # CONFIG_EARLY_PRINTK_USB_XDBC is not set # CONFIG_X86_PTDUMP is not set # CONFIG_EFI_PGT_DUMP is not set # CONFIG_DEBUG_WX is not set CONFIG_DOUBLEFAULT=y # CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_DEBUG is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_X86_DECODER_SELFTEST=y CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_UDELAY=2 CONFIG_IO_DELAY_TYPE_NONE=3 CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_0XED is not set # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 CONFIG_DEBUG_BOOT_PARAMS=y # CONFIG_CPA_DEBUG is not set CONFIG_OPTIMIZE_INLINING=y # CONFIG_DEBUG_ENTRY is not set # CONFIG_DEBUG_NMI_SELFTEST is not set CONFIG_X86_DEBUG_FPU=y # CONFIG_PUNIT_ATOM_DEBUG is not set CONFIG_UNWINDER_ORC=y # CONFIG_UNWINDER_FRAME_POINTER is not set # CONFIG_UNWINDER_GUESS is not set [-- Attachment #3: job-script --] [-- Type: text/plain, Size: 7614 bytes --] #!/bin/sh export_top_env() { export suite='vm-scalability' export testcase='vm-scalability' export category='benchmark' export runtime=300 export nr_task=32 export job_origin='/lkp/lkp/.src-20181111-000856/allot/cyclic:p1:linux-devel:devel-hourly/lkp-hsw-ep4/vm-scalability-swap-1ssd.yaml' export queue='validate' export testbox='lkp-hsw-ep4' export tbox_group='lkp-hsw-ep4' export submit_id='5bf493490b9a93518ed242bf' export job_file='/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-20878-1jb6hcf-3.yaml' export id='8c95128fd0e7d0f29da62d0cecd664ab489fcc1c' export model='Haswell-EP' export nr_node=2 export nr_cpu=72 export memory='128G' export nr_ssd_partitions=1 export ssd_partitions='/dev/nvme0n1p1' export swap_partitions= export rootfs_partition= export brand='Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz' export ucode='0x3d' export need_kconfig='CONFIG_BLK_DEV_SD CONFIG_SCSI CONFIG_BLOCK=y CONFIG_SATA_AHCI CONFIG_SATA_AHCI_PLATFORM CONFIG_ATA CONFIG_PCI=y CONFIG_SWAP CONFIG_MMU CONFIG_BLOCK CONFIG_BLK_DEV_LOOP' export commit='ac5b2c18911ffe95c08d69273917f90212cf5659' export kconfig='x86_64-rhel-7.2' export compiler='gcc-7' export rootfs='debian-x86_64-2018-04-03.cgz' export enqueue_time='2018-11-21 07:05:45 +0800' export _id='5bf493490b9a93518ed242c0' export _rt='/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659' export user='lkp' export head_commit='872879f0b9025e9d84b186b442f9fb98c34f36b8' export base_commit='651022382c7f8da46cb4872a545ee1da6d097d2a' export branch='linux-devel/devel-hourly-2018111020' export result_root='/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/3' export LKP_SERVER='inn' export max_uptime=1500 export initrd='/osimage/debian/debian-x86_64-2018-04-03.cgz' export bootloader_append='root=/dev/ram0 user=lkp job=/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-20878-1jb6hcf-3.yaml ARCH=x86_64 kconfig=x86_64-rhel-7.2 branch=linux-devel/devel-hourly-2018111020 commit=ac5b2c18911ffe95c08d69273917f90212cf5659 BOOT_IMAGE=/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/vmlinuz-4.19.0-12678-gac5b2c1 max_uptime=1500 RESULT_ROOT=/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/3 LKP_SERVER=inn debug apic=debug sysrq_always_enabled rcupdate.rcu_cpu_stall_timeout=100 net.ifnames=0 printk.devkmsg=on panic=-1 softlockup_panic=1 nmi_watchdog=panic oops=panic load_ramdisk=2 prompt_ramdisk=0 drbd.minor_count=8 systemd.log_level=err ignore_loglevel console=tty0 earlyprintk=ttyS0,115200 console=ttyS0,115200 vga=normal rw' export modules_initrd='/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/modules.cgz' export bm_initrd='/osimage/deps/debian-x86_64-2018-04-03.cgz/run-ipconfig_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/lkp_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/rsync-rootfs_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/perf_2018-06-26.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/perf-x86_64-6f0d349d922b_2018-06-26.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/vm-scalability_2018-05-17.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/vm-scalability-x86_64-7afdeab_2018-06-06.cgz,/osimage/pkg/common/vm-scalability-x86_64.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/mpstat_2018-06-19.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/turbostat_2018-05-17.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/turbostat-x86_64-d5256b2_2018-05-18.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/hw+lkp-run-on-qemu.cgz' export lkp_initrd='/lkp/lkp/lkp-x86_64.cgz' export site='inn' export LKP_CGI_PORT=80 export LKP_CIFS_PORT=139 export repeat_to=4 export kernel='/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/vmlinuz-4.19.0-12678-gac5b2c1' export dequeue_time='2018-11-21 07:20:48 +0800' export job_initrd='/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-20878-1jb6hcf-3.cgz' [ -n "$LKP_SRC" ] || export LKP_SRC=/lkp/${user:-lkp}/src } run_job() { echo $$ > $TMP/run-job.pid . $LKP_SRC/lib/http.sh . $LKP_SRC/lib/job.sh . $LKP_SRC/lib/env.sh export_top_env run_setup thp_enabled='always' thp_defrag='always' $LKP_SRC/setup/transparent_hugepage run_setup nr_ssd=1 $LKP_SRC/setup/disk run_setup $LKP_SRC/setup/swap run_setup $LKP_SRC/setup/cpufreq_governor 'performance' run_monitor delay=90 $LKP_SRC/monitors/no-stdout/wrapper perf-profile run_monitor $LKP_SRC/monitors/wrapper kmsg run_monitor $LKP_SRC/monitors/no-stdout/wrapper boot-time run_monitor $LKP_SRC/monitors/wrapper iostat run_monitor $LKP_SRC/monitors/wrapper heartbeat run_monitor $LKP_SRC/monitors/wrapper vmstat run_monitor $LKP_SRC/monitors/wrapper numa-numastat run_monitor $LKP_SRC/monitors/wrapper numa-vmstat run_monitor $LKP_SRC/monitors/wrapper numa-meminfo run_monitor $LKP_SRC/monitors/wrapper proc-vmstat run_monitor $LKP_SRC/monitors/wrapper proc-stat run_monitor $LKP_SRC/monitors/wrapper meminfo run_monitor $LKP_SRC/monitors/wrapper slabinfo run_monitor $LKP_SRC/monitors/wrapper interrupts run_monitor $LKP_SRC/monitors/wrapper lock_stat run_monitor $LKP_SRC/monitors/wrapper latency_stats run_monitor $LKP_SRC/monitors/wrapper softirqs run_monitor $LKP_SRC/monitors/one-shot/wrapper bdi_dev_mapping run_monitor $LKP_SRC/monitors/wrapper diskstats run_monitor $LKP_SRC/monitors/wrapper nfsstat run_monitor $LKP_SRC/monitors/wrapper cpuidle run_monitor $LKP_SRC/monitors/wrapper cpufreq-stats run_monitor $LKP_SRC/monitors/wrapper turbostat run_monitor $LKP_SRC/monitors/wrapper sched_debug run_monitor $LKP_SRC/monitors/wrapper perf-stat run_monitor $LKP_SRC/monitors/wrapper mpstat run_monitor $LKP_SRC/monitors/wrapper oom-killer run_monitor $LKP_SRC/monitors/plain/watchdog run_test test='swap-w-seq' $LKP_SRC/tests/wrapper vm-scalability } extract_stats() { $LKP_SRC/stats/wrapper perf-profile $LKP_SRC/stats/wrapper vm-scalability $LKP_SRC/stats/wrapper kmsg $LKP_SRC/stats/wrapper boot-time $LKP_SRC/stats/wrapper iostat $LKP_SRC/stats/wrapper vmstat $LKP_SRC/stats/wrapper numa-numastat $LKP_SRC/stats/wrapper numa-vmstat $LKP_SRC/stats/wrapper numa-meminfo $LKP_SRC/stats/wrapper proc-vmstat $LKP_SRC/stats/wrapper meminfo $LKP_SRC/stats/wrapper slabinfo $LKP_SRC/stats/wrapper interrupts $LKP_SRC/stats/wrapper lock_stat $LKP_SRC/stats/wrapper latency_stats $LKP_SRC/stats/wrapper softirqs $LKP_SRC/stats/wrapper diskstats $LKP_SRC/stats/wrapper nfsstat $LKP_SRC/stats/wrapper cpuidle $LKP_SRC/stats/wrapper turbostat $LKP_SRC/stats/wrapper sched_debug $LKP_SRC/stats/wrapper perf-stat $LKP_SRC/stats/wrapper mpstat $LKP_SRC/stats/wrapper time vm-scalability.time $LKP_SRC/stats/wrapper time $LKP_SRC/stats/wrapper dmesg $LKP_SRC/stats/wrapper kmsg $LKP_SRC/stats/wrapper stderr $LKP_SRC/stats/wrapper last_state } "$@" [-- Attachment #4: job.yaml --] [-- Type: text/plain, Size: 5227 bytes --] --- #! jobs/vm-scalability-swap-1ssd.yaml suite: vm-scalability testcase: vm-scalability category: benchmark runtime: 300 transparent_hugepage: thp_enabled: always thp_defrag: always nr_task: 32 disk: nr_ssd: 1 swap: perf-profile: delay: 90 vm-scalability: test: swap-w-seq job_origin: "/lkp/lkp/.src-20181111-000856/allot/cyclic:p1:linux-devel:devel-hourly/lkp-hsw-ep4/vm-scalability-swap-1ssd.yaml" #! queue options queue: bisect testbox: lkp-hsw-ep4 tbox_group: lkp-hsw-ep4 submit_id: 5bf464730b9a9399b443c46e job_file: "/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-39348-na2tm0-0.yaml" id: 219435d8178e1704d93f28409e84e6b0b49e1e83 #! hosts/lkp-hsw-ep4 model: Haswell-EP nr_node: 2 nr_cpu: 72 memory: 128G nr_ssd_partitions: 1 ssd_partitions: "/dev/nvme0n1p1" swap_partitions: rootfs_partition: brand: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz ucode: '0x3d' #! include/category/benchmark kmsg: boot-time: iostat: heartbeat: vmstat: numa-numastat: numa-vmstat: numa-meminfo: proc-vmstat: proc-stat: meminfo: slabinfo: interrupts: lock_stat: latency_stats: softirqs: bdi_dev_mapping: diskstats: nfsstat: cpuidle: cpufreq-stats: turbostat: sched_debug: perf-stat: mpstat: #! include/category/ALL cpufreq_governor: performance #! include/disk/nr_ssd need_kconfig: - CONFIG_BLK_DEV_SD - CONFIG_SCSI - CONFIG_BLOCK=y - CONFIG_SATA_AHCI - CONFIG_SATA_AHCI_PLATFORM - CONFIG_ATA - CONFIG_PCI=y - CONFIG_SWAP - CONFIG_MMU - CONFIG_BLOCK - CONFIG_BLK_DEV_LOOP #! include/swap #! include/vm-scalability #! include/queue/cyclic commit: ac5b2c18911ffe95c08d69273917f90212cf5659 #! default params kconfig: x86_64-rhel-7.2 compiler: gcc-7 rootfs: debian-x86_64-2018-04-03.cgz enqueue_time: 2018-11-21 03:45:55.818490092 +08:00 _id: 5bf464730b9a9399b443c46e _rt: "/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659" #! schedule options user: lkp head_commit: 872879f0b9025e9d84b186b442f9fb98c34f36b8 base_commit: 651022382c7f8da46cb4872a545ee1da6d097d2a branch: linux-devel/devel-hourly-2018111020 result_root: "/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/0" LKP_SERVER: inn max_uptime: 1500 initrd: "/osimage/debian/debian-x86_64-2018-04-03.cgz" bootloader_append: - root=/dev/ram0 - user=lkp - job=/lkp/jobs/scheduled/lkp-hsw-ep4/vm-scalability-300-always-always-32-1-swap-w-seq-ucode=0x3d-performance-debian-x86_64-2018-04-03.cgz-ac5b2c18911ffe95c08d69273917f90212cf5659-20181121-39348-na2tm0-0.yaml - ARCH=x86_64 - kconfig=x86_64-rhel-7.2 - branch=linux-devel/devel-hourly-2018111020 - commit=ac5b2c18911ffe95c08d69273917f90212cf5659 - BOOT_IMAGE=/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/vmlinuz-4.19.0-12678-gac5b2c1 - max_uptime=1500 - RESULT_ROOT=/result/vm-scalability/300-always-always-32-1-swap-w-seq-ucode=0x3d-performance/lkp-hsw-ep4/debian-x86_64-2018-04-03.cgz/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/0 - LKP_SERVER=inn - debug - apic=debug - sysrq_always_enabled - rcupdate.rcu_cpu_stall_timeout=100 - net.ifnames=0 - printk.devkmsg=on - panic=-1 - softlockup_panic=1 - nmi_watchdog=panic - oops=panic - load_ramdisk=2 - prompt_ramdisk=0 - drbd.minor_count=8 - systemd.log_level=err - ignore_loglevel - console=tty0 - earlyprintk=ttyS0,115200 - console=ttyS0,115200 - vga=normal - rw modules_initrd: "/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/modules.cgz" bm_initrd: "/osimage/deps/debian-x86_64-2018-04-03.cgz/run-ipconfig_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/lkp_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/rsync-rootfs_2018-04-03.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/perf_2018-06-26.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/perf-x86_64-6f0d349d922b_2018-06-26.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/vm-scalability_2018-05-17.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/vm-scalability-x86_64-7afdeab_2018-06-06.cgz,/osimage/pkg/common/vm-scalability-x86_64.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/mpstat_2018-06-19.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/turbostat_2018-05-17.cgz,/osimage/pkg/debian-x86_64-2018-04-03.cgz/turbostat-x86_64-d5256b2_2018-05-18.cgz,/osimage/deps/debian-x86_64-2018-04-03.cgz/hw+lkp-run-on-qemu.cgz" lkp_initrd: "/lkp/lkp/lkp-x86_64.cgz" site: inn #! /lkp/lkp/.src-20181113-085441/include/site/inn LKP_CGI_PORT: 80 LKP_CIFS_PORT: 139 oom-killer: watchdog: #! runtime status repeat_to: 2 #! user overrides kernel: "/pkg/linux/x86_64-rhel-7.2/gcc-7/ac5b2c18911ffe95c08d69273917f90212cf5659/vmlinuz-4.19.0-12678-gac5b2c1" dequeue_time: 2018-11-21 04:14:26.995976798 +08:00 #! /lkp/lkp/.src-20181120-101648/include/site/inn job_state: finished loadavg: 14.22 19.85 9.78 1/613 8595 start_time: '1542745133' end_time: '1542745426' version: "/lkp/lkp/.src-20181120-101648" [-- Attachment #5: reproduce --] [-- Type: text/plain, Size: 942 bytes --] echo 'always' > /sys/kernel/mm/transparent_hugepage/enabled echo 'always' > /sys/kernel/mm/transparent_hugepage/defrag swapoff -a mkswap /dev/nvme0n1p1 swapon /dev/nvme0n1p1 for cpu_dir in /sys/devices/system/cpu/cpu[0-9]* do online_file="$cpu_dir"/online [ -f "$online_file" ] && [ "$(cat "$online_file")" -eq 0 ] && continue file="$cpu_dir"/cpufreq/scaling_governor [ -f "$file" ] && echo "performance" > "$file" done cd /lkp/benchmarks/vm-scalability mount -t tmpfs -o size=100% vm-scalability-tmp /tmp/vm-scalability-tmp truncate -s 135081086976 /tmp/vm-scalability-tmp/vm-scalability.img mkfs.xfs -q /tmp/vm-scalability-tmp/vm-scalability.img mount -o loop /tmp/vm-scalability-tmp/vm-scalability.img /tmp/vm-scalability-tmp/vm-scalability ./case-swap-w-seq ./usemem --runtime 300 -n 32 21842904768 umount /tmp/vm-scalability-tmp/vm-scalability rm /tmp/vm-scalability-tmp/vm-scalability.img umount /tmp/vm-scalability-tmp ^ permalink raw reply [flat|nested] 154+ messages in thread
end of thread, other threads:[~2019-04-15 11:48 UTC | newest] Thread overview: 154+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-11-27 6:25 [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression kernel test robot 2018-11-27 6:25 ` kernel test robot 2018-11-27 17:08 ` [LKP] " Linus Torvalds 2018-11-27 17:08 ` Linus Torvalds 2018-11-27 18:17 ` [LKP] " Michal Hocko 2018-11-27 18:17 ` Michal Hocko 2018-11-27 18:21 ` [LKP] " Michal Hocko 2018-11-27 18:21 ` Michal Hocko 2018-11-27 19:05 ` [LKP] " Vlastimil Babka 2018-11-27 19:05 ` Vlastimil Babka 2018-11-27 19:16 ` [LKP] " Vlastimil Babka 2018-11-27 19:16 ` Vlastimil Babka 2018-11-27 20:57 ` [LKP] " Andrea Arcangeli 2018-11-27 20:57 ` Andrea Arcangeli 2018-11-27 22:50 ` [LKP] " Linus Torvalds 2018-11-27 22:50 ` Linus Torvalds 2018-11-28 6:30 ` [LKP] " Michal Hocko 2018-11-28 6:30 ` Michal Hocko 2018-11-28 3:20 ` [LKP] " Huang, Ying 2018-11-28 3:20 ` Huang, Ying 2018-11-28 16:48 ` [LKP] " Linus Torvalds 2018-11-28 16:48 ` Linus Torvalds 2018-11-28 18:39 ` [LKP] " Andrea Arcangeli 2018-11-28 18:39 ` Andrea Arcangeli 2018-11-28 23:10 ` [LKP] " David Rientjes 2018-11-28 23:10 ` David Rientjes 2018-12-03 18:01 ` [LKP] " Linus Torvalds 2018-12-03 18:01 ` Linus Torvalds 2018-12-03 18:14 ` [LKP] " Michal Hocko 2018-12-03 18:14 ` Michal Hocko 2018-12-03 18:19 ` [LKP] " Linus Torvalds 2018-12-03 18:19 ` Linus Torvalds 2018-12-03 18:30 ` [LKP] " Michal Hocko 2018-12-03 18:30 ` Michal Hocko 2018-12-03 18:45 ` [LKP] " Linus Torvalds 2018-12-03 18:45 ` Linus Torvalds 2018-12-03 18:59 ` [LKP] " Michal Hocko 2018-12-03 18:59 ` Michal Hocko 2018-12-03 19:23 ` [LKP] " Andrea Arcangeli 2018-12-03 19:23 ` Andrea Arcangeli 2018-12-03 20:26 ` [LKP] " David Rientjes 2018-12-03 20:26 ` David Rientjes 2018-12-03 19:28 ` [LKP] " Linus Torvalds 2018-12-03 19:28 ` Linus Torvalds 2018-12-03 20:12 ` [LKP] " Andrea Arcangeli 2018-12-03 20:12 ` Andrea Arcangeli 2018-12-03 20:36 ` [LKP] " David Rientjes 2018-12-03 20:36 ` David Rientjes 2018-12-03 22:04 ` [LKP] " Linus Torvalds 2018-12-03 22:04 ` Linus Torvalds 2018-12-03 22:27 ` [LKP] " Linus Torvalds 2018-12-03 22:27 ` Linus Torvalds 2018-12-03 22:57 ` [LKP] " David Rientjes 2018-12-03 22:57 ` David Rientjes 2018-12-04 9:22 ` [LKP] " Vlastimil Babka 2018-12-04 9:22 ` Vlastimil Babka 2018-12-04 10:45 ` [LKP] " Mel Gorman 2018-12-04 10:45 ` Mel Gorman 2018-12-05 0:47 ` [LKP] " David Rientjes 2018-12-05 0:47 ` David Rientjes 2018-12-05 9:08 ` [LKP] " Michal Hocko 2018-12-05 9:08 ` Michal Hocko 2018-12-05 10:43 ` [LKP] " Mel Gorman 2018-12-05 10:43 ` Mel Gorman 2018-12-05 11:43 ` [LKP] " Michal Hocko 2018-12-05 11:43 ` Michal Hocko 2018-12-05 10:06 ` [LKP] " Mel Gorman 2018-12-05 10:06 ` Mel Gorman 2018-12-05 20:40 ` [LKP] " Andrea Arcangeli 2018-12-05 20:40 ` Andrea Arcangeli 2018-12-05 21:59 ` [LKP] " David Rientjes 2018-12-05 21:59 ` David Rientjes 2018-12-06 0:00 ` [LKP] " Andrea Arcangeli 2018-12-06 0:00 ` Andrea Arcangeli 2018-12-05 22:03 ` [LKP] " Linus Torvalds 2018-12-05 22:03 ` Linus Torvalds 2018-12-05 22:12 ` [LKP] " David Rientjes 2018-12-05 22:12 ` David Rientjes 2018-12-05 23:36 ` [LKP] " Andrea Arcangeli 2018-12-05 23:36 ` Andrea Arcangeli 2018-12-05 23:51 ` [LKP] " Linus Torvalds 2018-12-05 23:51 ` Linus Torvalds 2018-12-06 0:58 ` [LKP] " Linus Torvalds 2018-12-06 0:58 ` Linus Torvalds 2018-12-06 9:14 ` MADV_HUGEPAGE vs. NUMA semantic (was: Re: [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression) Michal Hocko 2018-12-06 9:14 ` MADV_HUGEPAGE vs. NUMA semantic (was: " Michal Hocko 2018-12-06 23:49 ` MADV_HUGEPAGE vs. NUMA semantic (was: Re: [LKP] " David Rientjes 2018-12-06 23:49 ` MADV_HUGEPAGE vs. NUMA semantic (was: " David Rientjes 2018-12-07 7:34 ` MADV_HUGEPAGE vs. NUMA semantic (was: Re: [LKP] " Michal Hocko 2018-12-07 7:34 ` MADV_HUGEPAGE vs. NUMA semantic (was: " Michal Hocko 2018-12-07 4:31 ` MADV_HUGEPAGE vs. NUMA semantic (was: Re: [LKP] " Linus Torvalds 2018-12-07 4:31 ` MADV_HUGEPAGE vs. NUMA semantic (was: " Linus Torvalds 2018-12-07 7:49 ` MADV_HUGEPAGE vs. NUMA semantic (was: Re: [LKP] " Michal Hocko 2018-12-07 7:49 ` MADV_HUGEPAGE vs. NUMA semantic (was: " Michal Hocko 2018-12-07 9:06 ` MADV_HUGEPAGE vs. NUMA semantic (was: Re: [LKP] " Vlastimil Babka 2018-12-07 9:06 ` MADV_HUGEPAGE vs. NUMA semantic (was: " Vlastimil Babka 2018-12-07 23:15 ` MADV_HUGEPAGE vs. NUMA semantic (was: Re: [LKP] " David Rientjes 2018-12-07 23:15 ` MADV_HUGEPAGE vs. NUMA semantic (was: " David Rientjes 2018-12-06 23:43 ` [LKP] [mm] ac5b2c1891: vm-scalability.throughput -61.3% regression David Rientjes 2018-12-06 23:43 ` David Rientjes 2018-12-07 4:01 ` [LKP] " Linus Torvalds 2018-12-07 4:01 ` Linus Torvalds 2018-12-10 0:29 ` [LKP] " David Rientjes 2018-12-10 0:29 ` David Rientjes 2018-12-10 4:49 ` [LKP] " Andrea Arcangeli 2018-12-10 4:49 ` Andrea Arcangeli 2018-12-12 0:37 ` [LKP] " David Rientjes 2018-12-12 0:37 ` David Rientjes 2018-12-12 9:50 ` [LKP] " Michal Hocko 2018-12-12 9:50 ` Michal Hocko 2018-12-12 17:00 ` [LKP] " Andrea Arcangeli 2018-12-12 17:00 ` Andrea Arcangeli 2018-12-14 11:32 ` [LKP] " Michal Hocko 2018-12-14 11:32 ` Michal Hocko 2018-12-12 10:14 ` [LKP] " Vlastimil Babka 2018-12-12 10:14 ` Vlastimil Babka 2018-12-14 21:04 ` [LKP] " David Rientjes 2018-12-14 21:04 ` David Rientjes 2018-12-14 21:33 ` [LKP] " Vlastimil Babka 2018-12-14 21:33 ` Vlastimil Babka 2018-12-21 22:18 ` [LKP] " David Rientjes 2018-12-21 22:18 ` David Rientjes 2018-12-21 22:18 ` [LKP] " David Rientjes 2018-12-22 12:08 ` Mel Gorman 2018-12-22 12:08 ` Mel Gorman 2018-12-14 23:11 ` [LKP] " Mel Gorman 2018-12-14 23:11 ` Mel Gorman 2018-12-21 22:15 ` [LKP] " David Rientjes 2018-12-21 22:15 ` David Rientjes 2018-12-12 10:44 ` [LKP] " Andrea Arcangeli 2018-12-12 10:44 ` Andrea Arcangeli 2019-04-15 11:48 ` [LKP] " Michal Hocko 2019-04-15 11:48 ` Michal Hocko 2018-12-06 0:18 ` [LKP] " David Rientjes 2018-12-06 0:18 ` David Rientjes 2018-12-06 0:54 ` [LKP] " Andrea Arcangeli 2018-12-06 0:54 ` Andrea Arcangeli 2018-12-06 9:23 ` [LKP] " Vlastimil Babka 2018-12-06 9:23 ` Vlastimil Babka 2018-12-03 20:39 ` [LKP] " David Rientjes 2018-12-03 20:39 ` David Rientjes 2018-12-03 21:25 ` [LKP] " Michal Hocko 2018-12-03 21:25 ` Michal Hocko 2018-12-03 21:53 ` [LKP] " David Rientjes 2018-12-03 21:53 ` David Rientjes 2018-12-04 8:48 ` [LKP] " Michal Hocko 2018-12-04 8:48 ` Michal Hocko 2018-12-05 0:07 ` [LKP] " David Rientjes 2018-12-05 0:07 ` David Rientjes 2018-12-05 10:18 ` [LKP] " Michal Hocko 2018-12-05 10:18 ` Michal Hocko 2018-12-05 19:16 ` [LKP] " David Rientjes 2018-12-05 19:16 ` David Rientjes 2018-11-27 7:23 [LKP] " kernel test robot
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.